Add version 0.5.0 48/548/1
authorPeter Szilagyi <peter.3.szilagyi@nokia.com>
Tue, 23 Jul 2019 19:29:46 +0000 (19:29 +0000)
committerPeter Szilagyi <peter.3.szilagyi@nokia.com>
Tue, 23 Jul 2019 19:31:06 +0000 (19:31 +0000)
Change-Id: Ic052ea806f728c7e437038b1809f84a47af90011
Signed-off-by: Peter Szilagyi <peter.3.szilagyi@nokia.com>
1614 files changed:
Dockerfile
README.md
RELNOTES
cmd/submgr.go
config/submgr.yaml
container-tag.yaml
e2ap/headers/ABS-Status.h [new file with mode: 0644]
e2ap/headers/ABSInformation.h [new file with mode: 0644]
e2ap/headers/ABSInformationFDD.h [new file with mode: 0644]
e2ap/headers/ABSInformationTDD.h [new file with mode: 0644]
e2ap/headers/ANY.h [new file with mode: 0644]
e2ap/headers/AS-SecurityInformation.h [new file with mode: 0644]
e2ap/headers/ActionParameter-ID.h [new file with mode: 0644]
e2ap/headers/ActionParameter-Item.h [new file with mode: 0644]
e2ap/headers/ActionParameter-Value.h [new file with mode: 0644]
e2ap/headers/ActivatedCellList-Item.h [new file with mode: 0644]
e2ap/headers/ActivatedCellList.h [new file with mode: 0644]
e2ap/headers/ActivatedNRCellList-Item.h [new file with mode: 0644]
e2ap/headers/ActivatedNRCellList.h [new file with mode: 0644]
e2ap/headers/ActivationID.h [new file with mode: 0644]
e2ap/headers/AdditionalSpecialSubframe-Info.h [new file with mode: 0644]
e2ap/headers/AdditionalSpecialSubframeExtension-Info.h [new file with mode: 0644]
e2ap/headers/AdditionalSpecialSubframePatterns.h [new file with mode: 0644]
e2ap/headers/AdditionalSpecialSubframePatternsExtension.h [new file with mode: 0644]
e2ap/headers/AerialUEsubscriptionInformation.h [new file with mode: 0644]
e2ap/headers/AllocationAndRetentionPriority.h [new file with mode: 0644]
e2ap/headers/AreaScopeOfMDT.h [new file with mode: 0644]
e2ap/headers/AreaScopeOfQMC.h [new file with mode: 0644]
e2ap/headers/BIT_STRING.h [new file with mode: 0644]
e2ap/headers/BOOLEAN.h [new file with mode: 0644]
e2ap/headers/BandInfo.h [new file with mode: 0644]
e2ap/headers/BandwidthReducedSI.h [new file with mode: 0644]
e2ap/headers/BearerType.h [new file with mode: 0644]
e2ap/headers/BenefitMetric.h [new file with mode: 0644]
e2ap/headers/BitRate.h [new file with mode: 0644]
e2ap/headers/BluetoothMeasConfig.h [new file with mode: 0644]
e2ap/headers/BluetoothMeasConfigNameList.h [new file with mode: 0644]
e2ap/headers/BluetoothMeasurementConfiguration.h [new file with mode: 0644]
e2ap/headers/BluetoothName.h [new file with mode: 0644]
e2ap/headers/BroadcastPLMNs-Item.h [new file with mode: 0644]
e2ap/headers/CNTypeRestrictions.h [new file with mode: 0644]
e2ap/headers/CNTypeRestrictionsItem.h [new file with mode: 0644]
e2ap/headers/COUNTValueExtended.h [new file with mode: 0644]
e2ap/headers/COUNTvalue.h [new file with mode: 0644]
e2ap/headers/COUNTvaluePDCP-SNlength18.h [new file with mode: 0644]
e2ap/headers/CRNTI.h [new file with mode: 0644]
e2ap/headers/CSG-Id.h [new file with mode: 0644]
e2ap/headers/CSGMembershipStatus.h [new file with mode: 0644]
e2ap/headers/CSIReportList.h [new file with mode: 0644]
e2ap/headers/CSIReportPerCSIProcess.h [new file with mode: 0644]
e2ap/headers/CSIReportPerCSIProcessItem.h [new file with mode: 0644]
e2ap/headers/CallProcess-ID.h [new file with mode: 0644]
e2ap/headers/CapacityValue.h [new file with mode: 0644]
e2ap/headers/Cause.h [new file with mode: 0644]
e2ap/headers/CauseMisc.h [new file with mode: 0644]
e2ap/headers/CauseProtocol.h [new file with mode: 0644]
e2ap/headers/CauseRIC.h [new file with mode: 0644]
e2ap/headers/CauseRadioNetwork.h [new file with mode: 0644]
e2ap/headers/CauseTransport.h [new file with mode: 0644]
e2ap/headers/Cell-Size.h [new file with mode: 0644]
e2ap/headers/CellActivationFailure.h [new file with mode: 0644]
e2ap/headers/CellActivationRequest.h [new file with mode: 0644]
e2ap/headers/CellActivationResponse.h [new file with mode: 0644]
e2ap/headers/CellAssistanceInformation.h [new file with mode: 0644]
e2ap/headers/CellBasedMDT.h [new file with mode: 0644]
e2ap/headers/CellBasedQMC.h [new file with mode: 0644]
e2ap/headers/CellCapacityClassValue.h [new file with mode: 0644]
e2ap/headers/CellDeploymentStatusIndicator.h [new file with mode: 0644]
e2ap/headers/CellIdListforMDT.h [new file with mode: 0644]
e2ap/headers/CellIdListforQMC.h [new file with mode: 0644]
e2ap/headers/CellInformation-Item.h [new file with mode: 0644]
e2ap/headers/CellInformation-List.h [new file with mode: 0644]
e2ap/headers/CellMeasurementResult-Item.h [new file with mode: 0644]
e2ap/headers/CellMeasurementResult-List.h [new file with mode: 0644]
e2ap/headers/CellReplacingInfo.h [new file with mode: 0644]
e2ap/headers/CellReportingIndicator.h [new file with mode: 0644]
e2ap/headers/CellToReport-Item.h [new file with mode: 0644]
e2ap/headers/CellToReport-List.h [new file with mode: 0644]
e2ap/headers/CellType.h [new file with mode: 0644]
e2ap/headers/CoMPHypothesisSet.h [new file with mode: 0644]
e2ap/headers/CoMPHypothesisSetItem.h [new file with mode: 0644]
e2ap/headers/CoMPInformation.h [new file with mode: 0644]
e2ap/headers/CoMPInformationItem.h [new file with mode: 0644]
e2ap/headers/CoMPInformationStartTime.h [new file with mode: 0644]
e2ap/headers/CompleteFailureCauseInformation-Item.h [new file with mode: 0644]
e2ap/headers/CompleteFailureCauseInformation-List.h [new file with mode: 0644]
e2ap/headers/CompositeAvailableCapacity.h [new file with mode: 0644]
e2ap/headers/CompositeAvailableCapacityGroup.h [new file with mode: 0644]
e2ap/headers/Correlation-ID.h [new file with mode: 0644]
e2ap/headers/CoverageModification-Item.h [new file with mode: 0644]
e2ap/headers/CoverageModificationList.h [new file with mode: 0644]
e2ap/headers/Criticality.h [new file with mode: 0644]
e2ap/headers/CriticalityDiagnostics-IE-List.h [new file with mode: 0644]
e2ap/headers/CriticalityDiagnostics.h [new file with mode: 0644]
e2ap/headers/CyclicPrefixDL.h [new file with mode: 0644]
e2ap/headers/CyclicPrefixUL.h [new file with mode: 0644]
e2ap/headers/DL-ABS-status.h [new file with mode: 0644]
e2ap/headers/DL-Forwarding.h [new file with mode: 0644]
e2ap/headers/DL-GBR-PRB-usage.h [new file with mode: 0644]
e2ap/headers/DL-Total-PRB-usage.h [new file with mode: 0644]
e2ap/headers/DL-non-GBR-PRB-usage.h [new file with mode: 0644]
e2ap/headers/DL-scheduling-PDCCH-CCE-usage.h [new file with mode: 0644]
e2ap/headers/DLResourceBitmapULandDLSharing.h [new file with mode: 0644]
e2ap/headers/DLResourcesULandDLSharing.h [new file with mode: 0644]
e2ap/headers/DRB-ID.h [new file with mode: 0644]
e2ap/headers/DataForwardingAddressIndication.h [new file with mode: 0644]
e2ap/headers/DataTrafficResourceIndication.h [new file with mode: 0644]
e2ap/headers/DataTrafficResources.h [new file with mode: 0644]
e2ap/headers/DeactivationIndication.h [new file with mode: 0644]
e2ap/headers/DeliveryStatus.h [new file with mode: 0644]
e2ap/headers/DuplicationActivation.h [new file with mode: 0644]
e2ap/headers/DynamicDLTransmissionInformation.h [new file with mode: 0644]
e2ap/headers/DynamicNAICSInformation.h [new file with mode: 0644]
e2ap/headers/E-RAB-ID.h [new file with mode: 0644]
e2ap/headers/E-RAB-Item.h [new file with mode: 0644]
e2ap/headers/E-RAB-Level-QoS-Parameters.h [new file with mode: 0644]
e2ap/headers/E-RAB-List.h [new file with mode: 0644]
e2ap/headers/E-RABUsageReport-Item.h [new file with mode: 0644]
e2ap/headers/E-RABUsageReportList.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-List.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeAdded-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeAdded-List.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeAdded-ModAckItem.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeAdded-ModAckList.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBModAckList.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeModified-ModAckItem.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeModified-ModAckList.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeModified-SgNBModAckList.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeReleased-ModAckList.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeReleased-SgNBModAckList.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToReleased-ModAckItem.h [new file with mode: 0644]
e2ap/headers/E-RABs-Admitted-ToReleased-SgNBModAck-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-AdmittedToBeModified-SgNBModConf-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-AdmittedToBeModified-SgNBModConfList.h [new file with mode: 0644]
e2ap/headers/E-RABs-DataForwardingAddress-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-DataForwardingAddress-List.h [new file with mode: 0644]
e2ap/headers/E-RABs-SubjectToCounterCheck-List.h [new file with mode: 0644]
e2ap/headers/E-RABs-SubjectToCounterCheckItem.h [new file with mode: 0644]
e2ap/headers/E-RABs-SubjectToSgNBCounterCheck-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-SubjectToSgNBCounterCheck-List.h [new file with mode: 0644]
e2ap/headers/E-RABs-SubjectToStatusTransfer-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-SubjectToStatusTransfer-List.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeAdded-Item-SCG-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeAdded-Item-Split-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeAdded-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeAdded-List-ModReq.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeAdded-List.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeAdded-ModReqItem.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeAdded-SgNBAddReq-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeAdded-SgNBAddReqList.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeAdded-SgNBModReq-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeAdded-SgNBModReq-List.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeModified-List-ModReq.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeModified-ModReqItem-Split-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeModified-ModReqItem.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeModified-SgNBModReq-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeModified-SgNBModReq-List.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeModified-SgNBModReqd-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeModified-SgNBModReqdList.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-List-ModReq.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-List-RelConf.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-List-RelReq.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-ModReqItem.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-ModReqd.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-ModReqdItem.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-RelConfItem.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-RelReqItem.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBChaConf-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBChaConfList.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBModReq-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBModReq-List.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBModReqd-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBModReqdList.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBRelConf-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBRelConfList.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBRelReq-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBRelReqList.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBRelReqd-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeReleased-SgNBRelReqdList.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeSetup-Item.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeSetup-List.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeSetup-ListRetrieve.h [new file with mode: 0644]
e2ap/headers/E-RABs-ToBeSetupRetrieve-Item.h [new file with mode: 0644]
e2ap/headers/E2AP-PDU.h [new file with mode: 0644]
e2ap/headers/E2SM-gNB-X2-actionDefinition.h [new file with mode: 0644]
e2ap/headers/E2SM-gNB-X2-callProcessID.h [new file with mode: 0644]
e2ap/headers/E2SM-gNB-X2-controlHeader.h [new file with mode: 0644]
e2ap/headers/E2SM-gNB-X2-controlMessage.h [new file with mode: 0644]
e2ap/headers/E2SM-gNB-X2-eventTriggerDefinition.h [new file with mode: 0644]
e2ap/headers/E2SM-gNB-X2-indicationHeader.h [new file with mode: 0644]
e2ap/headers/E2SM-gNB-X2-indicationMessage.h [new file with mode: 0644]
e2ap/headers/EARFCN.h [new file with mode: 0644]
e2ap/headers/EARFCNExtension.h [new file with mode: 0644]
e2ap/headers/ECGI.h [new file with mode: 0644]
e2ap/headers/EN-DC-ResourceConfiguration.h [new file with mode: 0644]
e2ap/headers/ENB-ID.h [new file with mode: 0644]
e2ap/headers/ENBConfigurationUpdate.h [new file with mode: 0644]
e2ap/headers/ENBConfigurationUpdateAcknowledge.h [new file with mode: 0644]
e2ap/headers/ENBConfigurationUpdateFailure.h [new file with mode: 0644]
e2ap/headers/ENDCCellActivationFailure.h [new file with mode: 0644]
e2ap/headers/ENDCCellActivationRequest.h [new file with mode: 0644]
e2ap/headers/ENDCCellActivationResponse.h [new file with mode: 0644]
e2ap/headers/ENDCConfigurationUpdate.h [new file with mode: 0644]
e2ap/headers/ENDCConfigurationUpdateAcknowledge.h [new file with mode: 0644]
e2ap/headers/ENDCConfigurationUpdateFailure.h [new file with mode: 0644]
e2ap/headers/ENDCPartialResetConfirm.h [new file with mode: 0644]
e2ap/headers/ENDCPartialResetRequired.h [new file with mode: 0644]
e2ap/headers/ENDCX2RemovalFailure.h [new file with mode: 0644]
e2ap/headers/ENDCX2RemovalRequest.h [new file with mode: 0644]
e2ap/headers/ENDCX2RemovalResponse.h [new file with mode: 0644]
e2ap/headers/ENDCX2SetupFailure.h [new file with mode: 0644]
e2ap/headers/ENDCX2SetupRequest.h [new file with mode: 0644]
e2ap/headers/ENDCX2SetupResponse.h [new file with mode: 0644]
e2ap/headers/EPLMNs.h [new file with mode: 0644]
e2ap/headers/ERABActivityNotifyItem.h [new file with mode: 0644]
e2ap/headers/ERABActivityNotifyItemList.h [new file with mode: 0644]
e2ap/headers/EUTRA-Mode-Info.h [new file with mode: 0644]
e2ap/headers/EUTRANCellIdentifier.h [new file with mode: 0644]
e2ap/headers/EUTRANRCellResourceCoordinationRequest.h [new file with mode: 0644]
e2ap/headers/EUTRANRCellResourceCoordinationResponse.h [new file with mode: 0644]
e2ap/headers/EUTRANTraceID.h [new file with mode: 0644]
e2ap/headers/EncryptionAlgorithms.h [new file with mode: 0644]
e2ap/headers/EnhancedRNTP.h [new file with mode: 0644]
e2ap/headers/EnhancedRNTPStartTime.h [new file with mode: 0644]
e2ap/headers/ErrorIndication.h [new file with mode: 0644]
e2ap/headers/EventType.h [new file with mode: 0644]
e2ap/headers/ExpectedActivityPeriod.h [new file with mode: 0644]
e2ap/headers/ExpectedHOInterval.h [new file with mode: 0644]
e2ap/headers/ExpectedIdlePeriod.h [new file with mode: 0644]
e2ap/headers/ExpectedUEActivityBehaviour.h [new file with mode: 0644]
e2ap/headers/ExpectedUEBehaviour.h [new file with mode: 0644]
e2ap/headers/ExtendedBitRate.h [new file with mode: 0644]
e2ap/headers/ExtendedULInterferenceOverloadInfo.h [new file with mode: 0644]
e2ap/headers/FDD-Info.h [new file with mode: 0644]
e2ap/headers/FDD-InfoNeighbourServedNRCell-Information.h [new file with mode: 0644]
e2ap/headers/FDD-InfoServedNRCell-Information.h [new file with mode: 0644]
e2ap/headers/FiveGS-TAC.h [new file with mode: 0644]
e2ap/headers/ForbiddenInterRATs.h [new file with mode: 0644]
e2ap/headers/ForbiddenLACs.h [new file with mode: 0644]
e2ap/headers/ForbiddenLAs-Item.h [new file with mode: 0644]
e2ap/headers/ForbiddenLAs.h [new file with mode: 0644]
e2ap/headers/ForbiddenTACs.h [new file with mode: 0644]
e2ap/headers/ForbiddenTAs-Item.h [new file with mode: 0644]
e2ap/headers/ForbiddenTAs.h [new file with mode: 0644]
e2ap/headers/Fourframes.h [new file with mode: 0644]
e2ap/headers/FreqBandIndicator.h [new file with mode: 0644]
e2ap/headers/FreqBandIndicatorPriority.h [new file with mode: 0644]
e2ap/headers/FreqBandNrItem.h [new file with mode: 0644]
e2ap/headers/GBR-QosInformation.h [new file with mode: 0644]
e2ap/headers/GNB-ID.h [new file with mode: 0644]
e2ap/headers/GNBOverloadInformation.h [new file with mode: 0644]
e2ap/headers/GNBStatusIndication.h [new file with mode: 0644]
e2ap/headers/GTP-TEI.h [new file with mode: 0644]
e2ap/headers/GTPtunnelEndpoint.h [new file with mode: 0644]
e2ap/headers/GU-Group-ID.h [new file with mode: 0644]
e2ap/headers/GUGroupIDList.h [new file with mode: 0644]
e2ap/headers/GUMMEI.h [new file with mode: 0644]
e2ap/headers/GlobalENB-ID.h [new file with mode: 0644]
e2ap/headers/GlobalGNB-ID.h [new file with mode: 0644]
e2ap/headers/HFN.h [new file with mode: 0644]
e2ap/headers/HFNModified.h [new file with mode: 0644]
e2ap/headers/HFNforPDCP-SNlength18.h [new file with mode: 0644]
e2ap/headers/HWLoadIndicator.h [new file with mode: 0644]
e2ap/headers/HandoverCancel.h [new file with mode: 0644]
e2ap/headers/HandoverPreparationFailure.h [new file with mode: 0644]
e2ap/headers/HandoverReport.h [new file with mode: 0644]
e2ap/headers/HandoverReportType.h [new file with mode: 0644]
e2ap/headers/HandoverRequest.h [new file with mode: 0644]
e2ap/headers/HandoverRequestAcknowledge.h [new file with mode: 0644]
e2ap/headers/HandoverRestrictionList.h [new file with mode: 0644]
e2ap/headers/INTEGER.h [new file with mode: 0644]
e2ap/headers/InitiatingMessage.h [new file with mode: 0644]
e2ap/headers/InitiatingMessageE2.h [new file with mode: 0644]
e2ap/headers/InitiatingNodeType-EndcConfigUpdate.h [new file with mode: 0644]
e2ap/headers/InitiatingNodeType-EndcX2Removal.h [new file with mode: 0644]
e2ap/headers/InitiatingNodeType-EndcX2Setup.h [new file with mode: 0644]
e2ap/headers/InitiatingNodeType-EutranrCellResourceCoordination.h [new file with mode: 0644]
e2ap/headers/IntegrityProtectionAlgorithms.h [new file with mode: 0644]
e2ap/headers/Interface-ID.h [new file with mode: 0644]
e2ap/headers/InterfaceDirection.h [new file with mode: 0644]
e2ap/headers/InterfaceMessage.h [new file with mode: 0644]
e2ap/headers/InterfaceMessageType.h [new file with mode: 0644]
e2ap/headers/InterfaceProtocolIE-ID.h [new file with mode: 0644]
e2ap/headers/InterfaceProtocolIE-Item.h [new file with mode: 0644]
e2ap/headers/InterfaceProtocolIE-Test.h [new file with mode: 0644]
e2ap/headers/InterfaceProtocolIE-Value.h [new file with mode: 0644]
e2ap/headers/InterfacesToTrace.h [new file with mode: 0644]
e2ap/headers/InvokeIndication.h [new file with mode: 0644]
e2ap/headers/Key-eNodeB-Star.h [new file with mode: 0644]
e2ap/headers/LAC.h [new file with mode: 0644]
e2ap/headers/LCID.h [new file with mode: 0644]
e2ap/headers/LHN-ID.h [new file with mode: 0644]
e2ap/headers/LastVisitedCell-Item.h [new file with mode: 0644]
e2ap/headers/LastVisitedEUTRANCellInformation.h [new file with mode: 0644]
e2ap/headers/LastVisitedGERANCellInformation.h [new file with mode: 0644]
e2ap/headers/LastVisitedNGRANCellInformation.h [new file with mode: 0644]
e2ap/headers/LastVisitedUTRANCellInformation.h [new file with mode: 0644]
e2ap/headers/Limited-list.h [new file with mode: 0644]
e2ap/headers/Links-to-log.h [new file with mode: 0644]
e2ap/headers/ListofEUTRACellsinEUTRACoordinationReq.h [new file with mode: 0644]
e2ap/headers/ListofEUTRACellsinEUTRACoordinationResp.h [new file with mode: 0644]
e2ap/headers/ListofEUTRACellsinNRCoordinationReq.h [new file with mode: 0644]
e2ap/headers/ListofNRCellsinNRCoordinationReq.h [new file with mode: 0644]
e2ap/headers/ListofNRCellsinNRCoordinationResp.h [new file with mode: 0644]
e2ap/headers/LoadIndicator.h [new file with mode: 0644]
e2ap/headers/LoadInformation.h [new file with mode: 0644]
e2ap/headers/LocationReportingInformation.h [new file with mode: 0644]
e2ap/headers/M1PeriodicReporting.h [new file with mode: 0644]
e2ap/headers/M1ReportingTrigger.h [new file with mode: 0644]
e2ap/headers/M1ThresholdEventA2.h [new file with mode: 0644]
e2ap/headers/M3Configuration.h [new file with mode: 0644]
e2ap/headers/M3period.h [new file with mode: 0644]
e2ap/headers/M4Configuration.h [new file with mode: 0644]
e2ap/headers/M4period.h [new file with mode: 0644]
e2ap/headers/M5Configuration.h [new file with mode: 0644]
e2ap/headers/M5period.h [new file with mode: 0644]
e2ap/headers/M6Configuration.h [new file with mode: 0644]
e2ap/headers/M6delay-threshold.h [new file with mode: 0644]
e2ap/headers/M6report-interval.h [new file with mode: 0644]
e2ap/headers/M7Configuration.h [new file with mode: 0644]
e2ap/headers/M7period.h [new file with mode: 0644]
e2ap/headers/MBMS-Service-Area-Identity-List.h [new file with mode: 0644]
e2ap/headers/MBMS-Service-Area-Identity.h [new file with mode: 0644]
e2ap/headers/MBSFN-Subframe-Info.h [new file with mode: 0644]
e2ap/headers/MBSFN-Subframe-Infolist.h [new file with mode: 0644]
e2ap/headers/MDT-Activation.h [new file with mode: 0644]
e2ap/headers/MDT-Configuration.h [new file with mode: 0644]
e2ap/headers/MDT-Location-Info.h [new file with mode: 0644]
e2ap/headers/MDTPLMNList.h [new file with mode: 0644]
e2ap/headers/MME-Code.h [new file with mode: 0644]
e2ap/headers/MME-Group-ID.h [new file with mode: 0644]
e2ap/headers/MakeBeforeBreakIndicator.h [new file with mode: 0644]
e2ap/headers/ManagementBasedMDTallowed.h [new file with mode: 0644]
e2ap/headers/Masked-IMEISV.h [new file with mode: 0644]
e2ap/headers/MeNBCoordinationAssistanceInformation.h [new file with mode: 0644]
e2ap/headers/MeNBResourceCoordinationInformation.h [new file with mode: 0644]
e2ap/headers/MeNBtoSeNBContainer.h [new file with mode: 0644]
e2ap/headers/MeNBtoSgNBContainer.h [new file with mode: 0644]
e2ap/headers/Measurement-ID.h [new file with mode: 0644]
e2ap/headers/MeasurementFailureCause-Item.h [new file with mode: 0644]
e2ap/headers/MeasurementFailureCause-List.h [new file with mode: 0644]
e2ap/headers/MeasurementInitiationResult-Item.h [new file with mode: 0644]
e2ap/headers/MeasurementInitiationResult-List.h [new file with mode: 0644]
e2ap/headers/MeasurementThresholdA2.h [new file with mode: 0644]
e2ap/headers/MeasurementsToActivate.h [new file with mode: 0644]
e2ap/headers/MobilityChangeAcknowledge.h [new file with mode: 0644]
e2ap/headers/MobilityChangeFailure.h [new file with mode: 0644]
e2ap/headers/MobilityChangeRequest.h [new file with mode: 0644]
e2ap/headers/MobilityInformation.h [new file with mode: 0644]
e2ap/headers/MobilityParametersInformation.h [new file with mode: 0644]
e2ap/headers/MobilityParametersModificationRange.h [new file with mode: 0644]
e2ap/headers/MultibandInfoList.h [new file with mode: 0644]
e2ap/headers/NR-TxBW.h [new file with mode: 0644]
e2ap/headers/NRCGI.h [new file with mode: 0644]
e2ap/headers/NRCellIdentifier.h [new file with mode: 0644]
e2ap/headers/NRFreqInfo.h [new file with mode: 0644]
e2ap/headers/NRNRB.h [new file with mode: 0644]
e2ap/headers/NRNeighbour-Information.h [new file with mode: 0644]
e2ap/headers/NRPCI.h [new file with mode: 0644]
e2ap/headers/NRS-NSSS-PowerOffset.h [new file with mode: 0644]
e2ap/headers/NRSCS.h [new file with mode: 0644]
e2ap/headers/NRUESecurityCapabilities.h [new file with mode: 0644]
e2ap/headers/NRencryptionAlgorithms.h [new file with mode: 0644]
e2ap/headers/NRintegrityProtectionAlgorithms.h [new file with mode: 0644]
e2ap/headers/NRrestrictionin5GS.h [new file with mode: 0644]
e2ap/headers/NRrestrictioninEPSasSecondaryRAT.h [new file with mode: 0644]
e2ap/headers/NSSS-NumOccasionDifferentPrecoder.h [new file with mode: 0644]
e2ap/headers/NULL.h [new file with mode: 0644]
e2ap/headers/NativeEnumerated.h [new file with mode: 0644]
e2ap/headers/NativeInteger.h [new file with mode: 0644]
e2ap/headers/Neighbour-Information.h [new file with mode: 0644]
e2ap/headers/NewDRBIDrequest.h [new file with mode: 0644]
e2ap/headers/NextHopChainingCount.h [new file with mode: 0644]
e2ap/headers/Number-of-Antennaports.h [new file with mode: 0644]
e2ap/headers/OBJECT_IDENTIFIER.h [new file with mode: 0644]
e2ap/headers/OCTET_STRING.h [new file with mode: 0644]
e2ap/headers/OPEN_TYPE.h [new file with mode: 0644]
e2ap/headers/OffsetOfNbiotChannelNumberToEARFCN.h [new file with mode: 0644]
e2ap/headers/Old-ECGIs.h [new file with mode: 0644]
e2ap/headers/Oneframe.h [new file with mode: 0644]
e2ap/headers/PA-Values.h [new file with mode: 0644]
e2ap/headers/PCI.h [new file with mode: 0644]
e2ap/headers/PDCP-SN.h [new file with mode: 0644]
e2ap/headers/PDCP-SNExtended.h [new file with mode: 0644]
e2ap/headers/PDCP-SNlength18.h [new file with mode: 0644]
e2ap/headers/PDCPChangeIndication.h [new file with mode: 0644]
e2ap/headers/PDCPSnLength.h [new file with mode: 0644]
e2ap/headers/PLMN-Identity.h [new file with mode: 0644]
e2ap/headers/PLMNAreaBasedQMC.h [new file with mode: 0644]
e2ap/headers/PLMNListforQMC.h [new file with mode: 0644]
e2ap/headers/PRACH-Configuration.h [new file with mode: 0644]
e2ap/headers/Packet-LossRate.h [new file with mode: 0644]
e2ap/headers/PartialSuccessIndicator.h [new file with mode: 0644]
e2ap/headers/PedestrianUE.h [new file with mode: 0644]
e2ap/headers/Port-Number.h [new file with mode: 0644]
e2ap/headers/Pre-emptionCapability.h [new file with mode: 0644]
e2ap/headers/Pre-emptionVulnerability.h [new file with mode: 0644]
e2ap/headers/Presence.h [new file with mode: 0644]
e2ap/headers/PrintableString.h [new file with mode: 0644]
e2ap/headers/PriorityLevel.h [new file with mode: 0644]
e2ap/headers/PrivateIE-Container.h [new file with mode: 0644]
e2ap/headers/PrivateIE-Field.h [new file with mode: 0644]
e2ap/headers/PrivateIE-ID.h [new file with mode: 0644]
e2ap/headers/PrivateMessage.h [new file with mode: 0644]
e2ap/headers/ProSeAuthorized.h [new file with mode: 0644]
e2ap/headers/ProSeDirectCommunication.h [new file with mode: 0644]
e2ap/headers/ProSeDirectDiscovery.h [new file with mode: 0644]
e2ap/headers/ProSeUEtoNetworkRelaying.h [new file with mode: 0644]
e2ap/headers/ProcedureCode.h [new file with mode: 0644]
e2ap/headers/ProtectedEUTRAResourceIndication.h [new file with mode: 0644]
e2ap/headers/ProtectedFootprintTimePattern.h [new file with mode: 0644]
e2ap/headers/ProtectedResourceList-Item.h [new file with mode: 0644]
e2ap/headers/ProtectedResourceList.h [new file with mode: 0644]
e2ap/headers/ProtocolExtensionContainer.h [new file with mode: 0644]
e2ap/headers/ProtocolExtensionField.h [new file with mode: 0644]
e2ap/headers/ProtocolIE-Container.h [new file with mode: 0644]
e2ap/headers/ProtocolIE-ContainerList.h [new file with mode: 0644]
e2ap/headers/ProtocolIE-ContainerPair.h [new file with mode: 0644]
e2ap/headers/ProtocolIE-ContainerPairList.h [new file with mode: 0644]
e2ap/headers/ProtocolIE-Field.h [new file with mode: 0644]
e2ap/headers/ProtocolIE-FieldPair.h [new file with mode: 0644]
e2ap/headers/ProtocolIE-ID.h [new file with mode: 0644]
e2ap/headers/ProtocolIE-Single-Container.h [new file with mode: 0644]
e2ap/headers/QCI.h [new file with mode: 0644]
e2ap/headers/RANfunction-Item.h [new file with mode: 0644]
e2ap/headers/RANfunctionDefinition.h [new file with mode: 0644]
e2ap/headers/RANfunctionID-Item.h [new file with mode: 0644]
e2ap/headers/RANfunctionID.h [new file with mode: 0644]
e2ap/headers/RANfunctionIDcause-Item.h [new file with mode: 0644]
e2ap/headers/RANfunctions-List.h [new file with mode: 0644]
e2ap/headers/RANfunctionsID-List.h [new file with mode: 0644]
e2ap/headers/RANfunctionsIDcause-List.h [new file with mode: 0644]
e2ap/headers/RICaction-Admitted-Item.h [new file with mode: 0644]
e2ap/headers/RICaction-Admitted-List.h [new file with mode: 0644]
e2ap/headers/RICaction-NotAdmitted-Item.h [new file with mode: 0644]
e2ap/headers/RICaction-NotAdmitted-List.h [new file with mode: 0644]
e2ap/headers/RICaction-ToBeSetup-Item.h [new file with mode: 0644]
e2ap/headers/RICactionDefinition.h [new file with mode: 0644]
e2ap/headers/RICactionID.h [new file with mode: 0644]
e2ap/headers/RICactionType.h [new file with mode: 0644]
e2ap/headers/RICactions-ToBeSetup-List.h [new file with mode: 0644]
e2ap/headers/RICcallProcessID.h [new file with mode: 0644]
e2ap/headers/RICcause.h [new file with mode: 0644]
e2ap/headers/RICcontrolAckRequest.h [new file with mode: 0644]
e2ap/headers/RICcontrolAcknowledge.h [new file with mode: 0644]
e2ap/headers/RICcontrolFailure.h [new file with mode: 0644]
e2ap/headers/RICcontrolHeader.h [new file with mode: 0644]
e2ap/headers/RICcontrolMessage.h [new file with mode: 0644]
e2ap/headers/RICcontrolRequest.h [new file with mode: 0644]
e2ap/headers/RICcontrolStatus.h [new file with mode: 0644]
e2ap/headers/RICeventTriggerDefinition.h [new file with mode: 0644]
e2ap/headers/RICindication.h [new file with mode: 0644]
e2ap/headers/RICindicationHeader.h [new file with mode: 0644]
e2ap/headers/RICindicationMessage.h [new file with mode: 0644]
e2ap/headers/RICindicationSN.h [new file with mode: 0644]
e2ap/headers/RICindicationType.h [new file with mode: 0644]
e2ap/headers/RICrequestID.h [new file with mode: 0644]
e2ap/headers/RICserviceQuery.h [new file with mode: 0644]
e2ap/headers/RICserviceUpdate.h [new file with mode: 0644]
e2ap/headers/RICserviceUpdateAcknowledge.h [new file with mode: 0644]
e2ap/headers/RICserviceUpdateFailure.h [new file with mode: 0644]
e2ap/headers/RICsubscription.h [new file with mode: 0644]
e2ap/headers/RICsubscriptionDeleteFailure.h [new file with mode: 0644]
e2ap/headers/RICsubscriptionDeleteRequest.h [new file with mode: 0644]
e2ap/headers/RICsubscriptionDeleteResponse.h [new file with mode: 0644]
e2ap/headers/RICsubscriptionFailure.h [new file with mode: 0644]
e2ap/headers/RICsubscriptionRequest.h [new file with mode: 0644]
e2ap/headers/RICsubscriptionResponse.h [new file with mode: 0644]
e2ap/headers/RICsubsequentAction.h [new file with mode: 0644]
e2ap/headers/RICsubsequentActionType.h [new file with mode: 0644]
e2ap/headers/RICtimeToWait.h [new file with mode: 0644]
e2ap/headers/RLC-Status.h [new file with mode: 0644]
e2ap/headers/RLCMode.h [new file with mode: 0644]
e2ap/headers/RLFIndication.h [new file with mode: 0644]
e2ap/headers/RNL-Header.h [new file with mode: 0644]
e2ap/headers/RNTP-Threshold.h [new file with mode: 0644]
e2ap/headers/RRC-Config-Ind.h [new file with mode: 0644]
e2ap/headers/RRC-Context.h [new file with mode: 0644]
e2ap/headers/RRCConnReestabIndicator.h [new file with mode: 0644]
e2ap/headers/RRCConnSetupIndicator.h [new file with mode: 0644]
e2ap/headers/RRCContainer.h [new file with mode: 0644]
e2ap/headers/RRCTransfer.h [new file with mode: 0644]
e2ap/headers/RSRPMRList.h [new file with mode: 0644]
e2ap/headers/RSRPMeasurementResult.h [new file with mode: 0644]
e2ap/headers/RadioResourceStatus.h [new file with mode: 0644]
e2ap/headers/RadioframeAllocationOffset.h [new file with mode: 0644]
e2ap/headers/RadioframeAllocationPeriod.h [new file with mode: 0644]
e2ap/headers/ReceiveStatusOfULPDCPSDUsExtended.h [new file with mode: 0644]
e2ap/headers/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h [new file with mode: 0644]
e2ap/headers/ReceiveStatusofULPDCPSDUs.h [new file with mode: 0644]
e2ap/headers/Reestablishment-Indication.h [new file with mode: 0644]
e2ap/headers/Registration-Request.h [new file with mode: 0644]
e2ap/headers/RelativeNarrowbandTxPower.h [new file with mode: 0644]
e2ap/headers/ReplacingCellsList-Item.h [new file with mode: 0644]
e2ap/headers/ReplacingCellsList.h [new file with mode: 0644]
e2ap/headers/ReportAmountMDT.h [new file with mode: 0644]
e2ap/headers/ReportArea.h [new file with mode: 0644]
e2ap/headers/ReportCharacteristics.h [new file with mode: 0644]
e2ap/headers/ReportIntervalMDT.h [new file with mode: 0644]
e2ap/headers/ReportingPeriodicity.h [new file with mode: 0644]
e2ap/headers/ReportingPeriodicityCSIR.h [new file with mode: 0644]
e2ap/headers/ReportingPeriodicityRSRPMR.h [new file with mode: 0644]
e2ap/headers/ReservedSubframePattern.h [new file with mode: 0644]
e2ap/headers/ResetRequest.h [new file with mode: 0644]
e2ap/headers/ResetResponse.h [new file with mode: 0644]
e2ap/headers/ResourceStatusFailure.h [new file with mode: 0644]
e2ap/headers/ResourceStatusRequest.h [new file with mode: 0644]
e2ap/headers/ResourceStatusResponse.h [new file with mode: 0644]
e2ap/headers/ResourceStatusUpdate.h [new file with mode: 0644]
e2ap/headers/ResourceType.h [new file with mode: 0644]
e2ap/headers/RespondingNodeType-EndcConfigUpdate.h [new file with mode: 0644]
e2ap/headers/RespondingNodeType-EndcX2Removal.h [new file with mode: 0644]
e2ap/headers/RespondingNodeType-EndcX2Setup.h [new file with mode: 0644]
e2ap/headers/RespondingNodeType-EutranrCellResourceCoordination.h [new file with mode: 0644]
e2ap/headers/ResponseInformationSeNBReconfComp-RejectByMeNBItem.h [new file with mode: 0644]
e2ap/headers/ResponseInformationSeNBReconfComp-SuccessItem.h [new file with mode: 0644]
e2ap/headers/ResponseInformationSeNBReconfComp.h [new file with mode: 0644]
e2ap/headers/ResponseInformationSgNBReconfComp-RejectByMeNBItem.h [new file with mode: 0644]
e2ap/headers/ResponseInformationSgNBReconfComp-SuccessItem.h [new file with mode: 0644]
e2ap/headers/ResponseInformationSgNBReconfComp.h [new file with mode: 0644]
e2ap/headers/ResumeID.h [new file with mode: 0644]
e2ap/headers/RetrieveUEContextFailure.h [new file with mode: 0644]
e2ap/headers/RetrieveUEContextRequest.h [new file with mode: 0644]
e2ap/headers/RetrieveUEContextResponse.h [new file with mode: 0644]
e2ap/headers/S1TNLLoadIndicator.h [new file with mode: 0644]
e2ap/headers/SCGChangeIndication.h [new file with mode: 0644]
e2ap/headers/SCGConfigurationQuery.h [new file with mode: 0644]
e2ap/headers/SGNB-Addition-Trigger-Ind.h [new file with mode: 0644]
e2ap/headers/SIPTOBearerDeactivationIndication.h [new file with mode: 0644]
e2ap/headers/SNStatusTransfer.h [new file with mode: 0644]
e2ap/headers/SRBType.h [new file with mode: 0644]
e2ap/headers/SRVCCOperationPossible.h [new file with mode: 0644]
e2ap/headers/SULInformation.h [new file with mode: 0644]
e2ap/headers/ScheduledCommunicationTime.h [new file with mode: 0644]
e2ap/headers/SeNBAdditionRequest.h [new file with mode: 0644]
e2ap/headers/SeNBAdditionRequestAcknowledge.h [new file with mode: 0644]
e2ap/headers/SeNBAdditionRequestReject.h [new file with mode: 0644]
e2ap/headers/SeNBCounterCheckRequest.h [new file with mode: 0644]
e2ap/headers/SeNBModificationConfirm.h [new file with mode: 0644]
e2ap/headers/SeNBModificationRefuse.h [new file with mode: 0644]
e2ap/headers/SeNBModificationRequest.h [new file with mode: 0644]
e2ap/headers/SeNBModificationRequestAcknowledge.h [new file with mode: 0644]
e2ap/headers/SeNBModificationRequestReject.h [new file with mode: 0644]
e2ap/headers/SeNBModificationRequired.h [new file with mode: 0644]
e2ap/headers/SeNBReconfigurationComplete.h [new file with mode: 0644]
e2ap/headers/SeNBReleaseConfirm.h [new file with mode: 0644]
e2ap/headers/SeNBReleaseRequest.h [new file with mode: 0644]
e2ap/headers/SeNBReleaseRequired.h [new file with mode: 0644]
e2ap/headers/SeNBSecurityKey.h [new file with mode: 0644]
e2ap/headers/SeNBtoMeNBContainer.h [new file with mode: 0644]
e2ap/headers/SecondaryRATDataUsageReport.h [new file with mode: 0644]
e2ap/headers/SecondaryRATUsageReport-Item.h [new file with mode: 0644]
e2ap/headers/SecondaryRATUsageReportList.h [new file with mode: 0644]
e2ap/headers/ServedCell-Information.h [new file with mode: 0644]
e2ap/headers/ServedCells.h [new file with mode: 0644]
e2ap/headers/ServedCellsToActivate-Item.h [new file with mode: 0644]
e2ap/headers/ServedCellsToActivate.h [new file with mode: 0644]
e2ap/headers/ServedCellsToModify-Item.h [new file with mode: 0644]
e2ap/headers/ServedCellsToModify.h [new file with mode: 0644]
e2ap/headers/ServedEUTRAcellsENDCX2ManagementList.h [new file with mode: 0644]
e2ap/headers/ServedEUTRAcellsToDeleteListENDCConfUpd.h [new file with mode: 0644]
e2ap/headers/ServedEUTRAcellsToModifyListENDCConfUpd.h [new file with mode: 0644]
e2ap/headers/ServedNRCell-Information.h [new file with mode: 0644]
e2ap/headers/ServedNRCellsToActivate-Item.h [new file with mode: 0644]
e2ap/headers/ServedNRCellsToActivate.h [new file with mode: 0644]
e2ap/headers/ServedNRCellsToModify-Item.h [new file with mode: 0644]
e2ap/headers/ServedNRcellsENDCX2ManagementList.h [new file with mode: 0644]
e2ap/headers/ServedNRcellsToDeleteENDCConfUpdList.h [new file with mode: 0644]
e2ap/headers/ServedNRcellsToModifyENDCConfUpdList.h [new file with mode: 0644]
e2ap/headers/ServiceType.h [new file with mode: 0644]
e2ap/headers/SgNB-UE-X2AP-ID.h [new file with mode: 0644]
e2ap/headers/SgNBActivityNotification.h [new file with mode: 0644]
e2ap/headers/SgNBAdditionRequest.h [new file with mode: 0644]
e2ap/headers/SgNBAdditionRequestAcknowledge.h [new file with mode: 0644]
e2ap/headers/SgNBAdditionRequestReject.h [new file with mode: 0644]
e2ap/headers/SgNBChangeConfirm.h [new file with mode: 0644]
e2ap/headers/SgNBChangeRefuse.h [new file with mode: 0644]
e2ap/headers/SgNBChangeRequired.h [new file with mode: 0644]
e2ap/headers/SgNBCoordinationAssistanceInformation.h [new file with mode: 0644]
e2ap/headers/SgNBCounterCheckRequest.h [new file with mode: 0644]
e2ap/headers/SgNBModificationConfirm.h [new file with mode: 0644]
e2ap/headers/SgNBModificationRefuse.h [new file with mode: 0644]
e2ap/headers/SgNBModificationRequest.h [new file with mode: 0644]
e2ap/headers/SgNBModificationRequestAcknowledge.h [new file with mode: 0644]
e2ap/headers/SgNBModificationRequestReject.h [new file with mode: 0644]
e2ap/headers/SgNBModificationRequired.h [new file with mode: 0644]
e2ap/headers/SgNBReconfigurationComplete.h [new file with mode: 0644]
e2ap/headers/SgNBReleaseConfirm.h [new file with mode: 0644]
e2ap/headers/SgNBReleaseRequest.h [new file with mode: 0644]
e2ap/headers/SgNBReleaseRequestAcknowledge.h [new file with mode: 0644]
e2ap/headers/SgNBReleaseRequestReject.h [new file with mode: 0644]
e2ap/headers/SgNBReleaseRequired.h [new file with mode: 0644]
e2ap/headers/SgNBResourceCoordinationInformation.h [new file with mode: 0644]
e2ap/headers/SgNBSecurityKey.h [new file with mode: 0644]
e2ap/headers/SgNBtoMeNBContainer.h [new file with mode: 0644]
e2ap/headers/SharedResourceType.h [new file with mode: 0644]
e2ap/headers/ShortMAC-I.h [new file with mode: 0644]
e2ap/headers/SourceOfUEActivityBehaviourInformation.h [new file with mode: 0644]
e2ap/headers/SpecialSubframe-Info.h [new file with mode: 0644]
e2ap/headers/SpecialSubframePatterns.h [new file with mode: 0644]
e2ap/headers/SpectrumSharingGroupID.h [new file with mode: 0644]
e2ap/headers/SplitSRB.h [new file with mode: 0644]
e2ap/headers/SplitSRBs.h [new file with mode: 0644]
e2ap/headers/Style-ID.h [new file with mode: 0644]
e2ap/headers/SubbandCQI.h [new file with mode: 0644]
e2ap/headers/SubbandCQICodeword0.h [new file with mode: 0644]
e2ap/headers/SubbandCQICodeword1.h [new file with mode: 0644]
e2ap/headers/SubbandCQIItem.h [new file with mode: 0644]
e2ap/headers/SubbandCQIList.h [new file with mode: 0644]
e2ap/headers/SubbandSize.h [new file with mode: 0644]
e2ap/headers/SubframeAllocation.h [new file with mode: 0644]
e2ap/headers/SubframeAssignment.h [new file with mode: 0644]
e2ap/headers/SubframeType.h [new file with mode: 0644]
e2ap/headers/SubscriberProfileIDforRFP.h [new file with mode: 0644]
e2ap/headers/Subscription-Based-UE-DifferentiationInfo.h [new file with mode: 0644]
e2ap/headers/SuccessfulOutcome.h [new file with mode: 0644]
e2ap/headers/SuccessfulOutcomeE2.h [new file with mode: 0644]
e2ap/headers/SupportedSULFreqBandItem.h [new file with mode: 0644]
e2ap/headers/TABasedMDT.h [new file with mode: 0644]
e2ap/headers/TABasedQMC.h [new file with mode: 0644]
e2ap/headers/TAC.h [new file with mode: 0644]
e2ap/headers/TAI-Item.h [new file with mode: 0644]
e2ap/headers/TAIBasedMDT.h [new file with mode: 0644]
e2ap/headers/TAIBasedQMC.h [new file with mode: 0644]
e2ap/headers/TAIListforMDT.h [new file with mode: 0644]
e2ap/headers/TAIListforQMC.h [new file with mode: 0644]
e2ap/headers/TAListforMDT.h [new file with mode: 0644]
e2ap/headers/TAListforQMC.h [new file with mode: 0644]
e2ap/headers/TDD-Info.h [new file with mode: 0644]
e2ap/headers/TDD-InfoNeighbourServedNRCell-Information.h [new file with mode: 0644]
e2ap/headers/TDD-InfoServedNRCell-Information.h [new file with mode: 0644]
e2ap/headers/TargetCellInUTRAN.h [new file with mode: 0644]
e2ap/headers/TargeteNBtoSource-eNBTransparentContainer.h [new file with mode: 0644]
e2ap/headers/Threshold-RSRP.h [new file with mode: 0644]
e2ap/headers/Threshold-RSRQ.h [new file with mode: 0644]
e2ap/headers/Time-UE-StayedInCell-EnhancedGranularity.h [new file with mode: 0644]
e2ap/headers/Time-UE-StayedInCell.h [new file with mode: 0644]
e2ap/headers/TimeStamp.h [new file with mode: 0644]
e2ap/headers/TimeToWait.h [new file with mode: 0644]
e2ap/headers/TraceActivation.h [new file with mode: 0644]
e2ap/headers/TraceCollectionEntityIPAddress.h [new file with mode: 0644]
e2ap/headers/TraceDepth.h [new file with mode: 0644]
e2ap/headers/Transmission-Bandwidth.h [new file with mode: 0644]
e2ap/headers/TransportLayerAddress.h [new file with mode: 0644]
e2ap/headers/TriggeringMessage.h [new file with mode: 0644]
e2ap/headers/TunnelInformation.h [new file with mode: 0644]
e2ap/headers/TypeOfError.h [new file with mode: 0644]
e2ap/headers/TypeOfMessage.h [new file with mode: 0644]
e2ap/headers/UE-ContextInformation-SgNBModReq.h [new file with mode: 0644]
e2ap/headers/UE-ContextInformation.h [new file with mode: 0644]
e2ap/headers/UE-ContextInformationRetrieve.h [new file with mode: 0644]
e2ap/headers/UE-ContextInformationSeNBModReq.h [new file with mode: 0644]
e2ap/headers/UE-ContextKeptIndicator.h [new file with mode: 0644]
e2ap/headers/UE-ContextReferenceAtSeNB.h [new file with mode: 0644]
e2ap/headers/UE-ContextReferenceAtSgNB.h [new file with mode: 0644]
e2ap/headers/UE-ContextReferenceAtWT.h [new file with mode: 0644]
e2ap/headers/UE-HistoryInformation.h [new file with mode: 0644]
e2ap/headers/UE-HistoryInformationFromTheUE.h [new file with mode: 0644]
e2ap/headers/UE-RLF-Report-Container-for-extended-bands.h [new file with mode: 0644]
e2ap/headers/UE-RLF-Report-Container.h [new file with mode: 0644]
e2ap/headers/UE-S1AP-ID.h [new file with mode: 0644]
e2ap/headers/UE-X2AP-ID-Extension.h [new file with mode: 0644]
e2ap/headers/UE-X2AP-ID.h [new file with mode: 0644]
e2ap/headers/UEAggregateMaximumBitRate.h [new file with mode: 0644]
e2ap/headers/UEAppLayerMeasConfig.h [new file with mode: 0644]
e2ap/headers/UEContextRelease.h [new file with mode: 0644]
e2ap/headers/UEID.h [new file with mode: 0644]
e2ap/headers/UENRMeasurement.h [new file with mode: 0644]
e2ap/headers/UESecurityCapabilities.h [new file with mode: 0644]
e2ap/headers/UESidelinkAggregateMaximumBitRate.h [new file with mode: 0644]
e2ap/headers/UEsToBeResetList-Item.h [new file with mode: 0644]
e2ap/headers/UEsToBeResetList.h [new file with mode: 0644]
e2ap/headers/UL-GBR-PRB-usage.h [new file with mode: 0644]
e2ap/headers/UL-HighInterferenceIndication.h [new file with mode: 0644]
e2ap/headers/UL-HighInterferenceIndicationInfo-Item.h [new file with mode: 0644]
e2ap/headers/UL-HighInterferenceIndicationInfo.h [new file with mode: 0644]
e2ap/headers/UL-InterferenceOverloadIndication-Item.h [new file with mode: 0644]
e2ap/headers/UL-InterferenceOverloadIndication.h [new file with mode: 0644]
e2ap/headers/UL-Total-PRB-usage.h [new file with mode: 0644]
e2ap/headers/UL-UE-Configuration.h [new file with mode: 0644]
e2ap/headers/UL-non-GBR-PRB-usage.h [new file with mode: 0644]
e2ap/headers/UL-scheduling-PDCCH-CCE-usage.h [new file with mode: 0644]
e2ap/headers/ULConfiguration.h [new file with mode: 0644]
e2ap/headers/ULOnlySharing.h [new file with mode: 0644]
e2ap/headers/ULResourceBitmapULandDLSharing.h [new file with mode: 0644]
e2ap/headers/ULResourcesULandDLSharing.h [new file with mode: 0644]
e2ap/headers/ULandDLSharing.h [new file with mode: 0644]
e2ap/headers/UnsuccessfulOutcome.h [new file with mode: 0644]
e2ap/headers/UnsuccessfulOutcomeE2.h [new file with mode: 0644]
e2ap/headers/UsableABSInformation.h [new file with mode: 0644]
e2ap/headers/UsableABSInformationFDD.h [new file with mode: 0644]
e2ap/headers/UsableABSInformationTDD.h [new file with mode: 0644]
e2ap/headers/UserPlaneTrafficActivityReport.h [new file with mode: 0644]
e2ap/headers/V2XServicesAuthorized.h [new file with mode: 0644]
e2ap/headers/VehicleUE.h [new file with mode: 0644]
e2ap/headers/WLANMeasConfig.h [new file with mode: 0644]
e2ap/headers/WLANMeasConfigNameList.h [new file with mode: 0644]
e2ap/headers/WLANMeasurementConfiguration.h [new file with mode: 0644]
e2ap/headers/WLANName.h [new file with mode: 0644]
e2ap/headers/WT-UE-XwAP-ID.h [new file with mode: 0644]
e2ap/headers/WTID-Long-Type2.h [new file with mode: 0644]
e2ap/headers/WTID-Type1.h [new file with mode: 0644]
e2ap/headers/WTID.h [new file with mode: 0644]
e2ap/headers/WidebandCQI.h [new file with mode: 0644]
e2ap/headers/WidebandCQICodeword1.h [new file with mode: 0644]
e2ap/headers/X2AP-Message.h [new file with mode: 0644]
e2ap/headers/X2AP-PDU.h [new file with mode: 0644]
e2ap/headers/X2APMessageTransfer.h [new file with mode: 0644]
e2ap/headers/X2BenefitValue.h [new file with mode: 0644]
e2ap/headers/X2Release.h [new file with mode: 0644]
e2ap/headers/X2RemovalFailure.h [new file with mode: 0644]
e2ap/headers/X2RemovalRequest.h [new file with mode: 0644]
e2ap/headers/X2RemovalResponse.h [new file with mode: 0644]
e2ap/headers/X2SetupFailure.h [new file with mode: 0644]
e2ap/headers/X2SetupRequest.h [new file with mode: 0644]
e2ap/headers/X2SetupResponse.h [new file with mode: 0644]
e2ap/headers/asn_SEQUENCE_OF.h [new file with mode: 0644]
e2ap/headers/asn_SET_OF.h [new file with mode: 0644]
e2ap/headers/asn_application.h [new file with mode: 0644]
e2ap/headers/asn_bit_data.h [new file with mode: 0644]
e2ap/headers/asn_codecs.h [new file with mode: 0644]
e2ap/headers/asn_codecs_prim.h [new file with mode: 0644]
e2ap/headers/asn_constant.h [new file with mode: 0644]
e2ap/headers/asn_internal.h [new file with mode: 0644]
e2ap/headers/asn_ioc.h [new file with mode: 0644]
e2ap/headers/asn_random_fill.h [new file with mode: 0644]
e2ap/headers/asn_system.h [new file with mode: 0644]
e2ap/headers/ber_decoder.h [new file with mode: 0644]
e2ap/headers/ber_tlv_length.h [new file with mode: 0644]
e2ap/headers/ber_tlv_tag.h [new file with mode: 0644]
e2ap/headers/constr_CHOICE.h [new file with mode: 0644]
e2ap/headers/constr_SEQUENCE.h [new file with mode: 0644]
e2ap/headers/constr_SEQUENCE_OF.h [new file with mode: 0644]
e2ap/headers/constr_SET_OF.h [new file with mode: 0644]
e2ap/headers/constr_TYPE.h [new file with mode: 0644]
e2ap/headers/constraints.h [new file with mode: 0644]
e2ap/headers/der_encoder.h [new file with mode: 0644]
e2ap/headers/oer_decoder.h [new file with mode: 0644]
e2ap/headers/oer_encoder.h [new file with mode: 0644]
e2ap/headers/oer_support.h [new file with mode: 0644]
e2ap/headers/per_decoder.h [new file with mode: 0644]
e2ap/headers/per_encoder.h [new file with mode: 0644]
e2ap/headers/per_opentype.h [new file with mode: 0644]
e2ap/headers/per_support.h [new file with mode: 0644]
e2ap/headers/xer_decoder.h [new file with mode: 0644]
e2ap/headers/xer_encoder.h [new file with mode: 0644]
e2ap/headers/xer_support.h [new file with mode: 0644]
e2ap/lib/ABS-Status.c [new file with mode: 0644]
e2ap/lib/ABSInformation.c [new file with mode: 0644]
e2ap/lib/ABSInformationFDD.c [new file with mode: 0644]
e2ap/lib/ABSInformationTDD.c [new file with mode: 0644]
e2ap/lib/ANY.c [new file with mode: 0644]
e2ap/lib/AS-SecurityInformation.c [new file with mode: 0644]
e2ap/lib/ActionParameter-ID.c [new file with mode: 0644]
e2ap/lib/ActionParameter-Item.c [new file with mode: 0644]
e2ap/lib/ActionParameter-Value.c [new file with mode: 0644]
e2ap/lib/ActivatedCellList-Item.c [new file with mode: 0644]
e2ap/lib/ActivatedCellList.c [new file with mode: 0644]
e2ap/lib/ActivatedNRCellList-Item.c [new file with mode: 0644]
e2ap/lib/ActivatedNRCellList.c [new file with mode: 0644]
e2ap/lib/ActivationID.c [new file with mode: 0644]
e2ap/lib/AdditionalSpecialSubframe-Info.c [new file with mode: 0644]
e2ap/lib/AdditionalSpecialSubframeExtension-Info.c [new file with mode: 0644]
e2ap/lib/AdditionalSpecialSubframePatterns.c [new file with mode: 0644]
e2ap/lib/AdditionalSpecialSubframePatternsExtension.c [new file with mode: 0644]
e2ap/lib/AerialUEsubscriptionInformation.c [new file with mode: 0644]
e2ap/lib/AllocationAndRetentionPriority.c [new file with mode: 0644]
e2ap/lib/AreaScopeOfMDT.c [new file with mode: 0644]
e2ap/lib/AreaScopeOfQMC.c [new file with mode: 0644]
e2ap/lib/BIT_STRING.c [new file with mode: 0644]
e2ap/lib/BIT_STRING_oer.c [new file with mode: 0644]
e2ap/lib/BOOLEAN.c [new file with mode: 0644]
e2ap/lib/BandInfo.c [new file with mode: 0644]
e2ap/lib/BandwidthReducedSI.c [new file with mode: 0644]
e2ap/lib/BearerType.c [new file with mode: 0644]
e2ap/lib/BenefitMetric.c [new file with mode: 0644]
e2ap/lib/BitRate.c [new file with mode: 0644]
e2ap/lib/BluetoothMeasConfig.c [new file with mode: 0644]
e2ap/lib/BluetoothMeasConfigNameList.c [new file with mode: 0644]
e2ap/lib/BluetoothMeasurementConfiguration.c [new file with mode: 0644]
e2ap/lib/BluetoothName.c [new file with mode: 0644]
e2ap/lib/BroadcastPLMNs-Item.c [new file with mode: 0644]
e2ap/lib/CNTypeRestrictions.c [new file with mode: 0644]
e2ap/lib/CNTypeRestrictionsItem.c [new file with mode: 0644]
e2ap/lib/COUNTValueExtended.c [new file with mode: 0644]
e2ap/lib/COUNTvalue.c [new file with mode: 0644]
e2ap/lib/COUNTvaluePDCP-SNlength18.c [new file with mode: 0644]
e2ap/lib/CRNTI.c [new file with mode: 0644]
e2ap/lib/CSG-Id.c [new file with mode: 0644]
e2ap/lib/CSGMembershipStatus.c [new file with mode: 0644]
e2ap/lib/CSIReportList.c [new file with mode: 0644]
e2ap/lib/CSIReportPerCSIProcess.c [new file with mode: 0644]
e2ap/lib/CSIReportPerCSIProcessItem.c [new file with mode: 0644]
e2ap/lib/CallProcess-ID.c [new file with mode: 0644]
e2ap/lib/CapacityValue.c [new file with mode: 0644]
e2ap/lib/Cause.c [new file with mode: 0644]
e2ap/lib/CauseMisc.c [new file with mode: 0644]
e2ap/lib/CauseProtocol.c [new file with mode: 0644]
e2ap/lib/CauseRIC.c [new file with mode: 0644]
e2ap/lib/CauseRadioNetwork.c [new file with mode: 0644]
e2ap/lib/CauseTransport.c [new file with mode: 0644]
e2ap/lib/Cell-Size.c [new file with mode: 0644]
e2ap/lib/CellActivationFailure.c [new file with mode: 0644]
e2ap/lib/CellActivationRequest.c [new file with mode: 0644]
e2ap/lib/CellActivationResponse.c [new file with mode: 0644]
e2ap/lib/CellAssistanceInformation.c [new file with mode: 0644]
e2ap/lib/CellBasedMDT.c [new file with mode: 0644]
e2ap/lib/CellBasedQMC.c [new file with mode: 0644]
e2ap/lib/CellCapacityClassValue.c [new file with mode: 0644]
e2ap/lib/CellDeploymentStatusIndicator.c [new file with mode: 0644]
e2ap/lib/CellIdListforMDT.c [new file with mode: 0644]
e2ap/lib/CellIdListforQMC.c [new file with mode: 0644]
e2ap/lib/CellInformation-Item.c [new file with mode: 0644]
e2ap/lib/CellInformation-List.c [new file with mode: 0644]
e2ap/lib/CellMeasurementResult-Item.c [new file with mode: 0644]
e2ap/lib/CellMeasurementResult-List.c [new file with mode: 0644]
e2ap/lib/CellReplacingInfo.c [new file with mode: 0644]
e2ap/lib/CellReportingIndicator.c [new file with mode: 0644]
e2ap/lib/CellToReport-Item.c [new file with mode: 0644]
e2ap/lib/CellToReport-List.c [new file with mode: 0644]
e2ap/lib/CellType.c [new file with mode: 0644]
e2ap/lib/CoMPHypothesisSet.c [new file with mode: 0644]
e2ap/lib/CoMPHypothesisSetItem.c [new file with mode: 0644]
e2ap/lib/CoMPInformation.c [new file with mode: 0644]
e2ap/lib/CoMPInformationItem.c [new file with mode: 0644]
e2ap/lib/CoMPInformationStartTime.c [new file with mode: 0644]
e2ap/lib/CompleteFailureCauseInformation-Item.c [new file with mode: 0644]
e2ap/lib/CompleteFailureCauseInformation-List.c [new file with mode: 0644]
e2ap/lib/CompositeAvailableCapacity.c [new file with mode: 0644]
e2ap/lib/CompositeAvailableCapacityGroup.c [new file with mode: 0644]
e2ap/lib/Correlation-ID.c [new file with mode: 0644]
e2ap/lib/CoverageModification-Item.c [new file with mode: 0644]
e2ap/lib/CoverageModificationList.c [new file with mode: 0644]
e2ap/lib/Criticality.c [new file with mode: 0644]
e2ap/lib/CriticalityDiagnostics-IE-List.c [new file with mode: 0644]
e2ap/lib/CriticalityDiagnostics.c [new file with mode: 0644]
e2ap/lib/CyclicPrefixDL.c [new file with mode: 0644]
e2ap/lib/CyclicPrefixUL.c [new file with mode: 0644]
e2ap/lib/DL-ABS-status.c [new file with mode: 0644]
e2ap/lib/DL-Forwarding.c [new file with mode: 0644]
e2ap/lib/DL-GBR-PRB-usage.c [new file with mode: 0644]
e2ap/lib/DL-Total-PRB-usage.c [new file with mode: 0644]
e2ap/lib/DL-non-GBR-PRB-usage.c [new file with mode: 0644]
e2ap/lib/DL-scheduling-PDCCH-CCE-usage.c [new file with mode: 0644]
e2ap/lib/DLResourceBitmapULandDLSharing.c [new file with mode: 0644]
e2ap/lib/DLResourcesULandDLSharing.c [new file with mode: 0644]
e2ap/lib/DRB-ID.c [new file with mode: 0644]
e2ap/lib/DataForwardingAddressIndication.c [new file with mode: 0644]
e2ap/lib/DataTrafficResourceIndication.c [new file with mode: 0644]
e2ap/lib/DataTrafficResources.c [new file with mode: 0644]
e2ap/lib/DeactivationIndication.c [new file with mode: 0644]
e2ap/lib/DeliveryStatus.c [new file with mode: 0644]
e2ap/lib/DuplicationActivation.c [new file with mode: 0644]
e2ap/lib/DynamicDLTransmissionInformation.c [new file with mode: 0644]
e2ap/lib/DynamicNAICSInformation.c [new file with mode: 0644]
e2ap/lib/E-RAB-ID.c [new file with mode: 0644]
e2ap/lib/E-RAB-Item.c [new file with mode: 0644]
e2ap/lib/E-RAB-Level-QoS-Parameters.c [new file with mode: 0644]
e2ap/lib/E-RAB-List.c [new file with mode: 0644]
e2ap/lib/E-RABUsageReport-Item.c [new file with mode: 0644]
e2ap/lib/E-RABUsageReportList.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-List.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeAdded-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeAdded-List.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeAdded-ModAckItem.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeAdded-ModAckList.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBModAckList.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeModified-ModAckItem.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeModified-ModAckList.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeModified-SgNBModAckList.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeReleased-ModAckList.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeReleased-SgNBModAckList.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToReleased-ModAckItem.c [new file with mode: 0644]
e2ap/lib/E-RABs-Admitted-ToReleased-SgNBModAck-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-AdmittedToBeModified-SgNBModConf-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-AdmittedToBeModified-SgNBModConfList.c [new file with mode: 0644]
e2ap/lib/E-RABs-DataForwardingAddress-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-DataForwardingAddress-List.c [new file with mode: 0644]
e2ap/lib/E-RABs-SubjectToCounterCheck-List.c [new file with mode: 0644]
e2ap/lib/E-RABs-SubjectToCounterCheckItem.c [new file with mode: 0644]
e2ap/lib/E-RABs-SubjectToSgNBCounterCheck-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-SubjectToSgNBCounterCheck-List.c [new file with mode: 0644]
e2ap/lib/E-RABs-SubjectToStatusTransfer-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-SubjectToStatusTransfer-List.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeAdded-Item-SCG-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeAdded-Item-Split-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeAdded-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeAdded-List-ModReq.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeAdded-List.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeAdded-ModReqItem.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeAdded-SgNBAddReq-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeAdded-SgNBAddReqList.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeAdded-SgNBModReq-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeAdded-SgNBModReq-List.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeModified-List-ModReq.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeModified-ModReqItem-Split-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeModified-ModReqItem.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeModified-SgNBModReq-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeModified-SgNBModReq-List.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeModified-SgNBModReqd-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeModified-SgNBModReqdList.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-List-ModReq.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-List-RelConf.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-List-RelReq.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-ModReqItem.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-ModReqd.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-ModReqdItem.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-RelConfItem.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-RelReqItem.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBChaConf-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBChaConfList.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBModReq-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBModReq-List.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBModReqd-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBModReqdList.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBRelConf-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBRelConfList.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBRelReq-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBRelReqList.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBRelReqd-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeReleased-SgNBRelReqdList.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeSetup-Item.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeSetup-List.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeSetup-ListRetrieve.c [new file with mode: 0644]
e2ap/lib/E-RABs-ToBeSetupRetrieve-Item.c [new file with mode: 0644]
e2ap/lib/E2AP-PDU.c [new file with mode: 0644]
e2ap/lib/E2SM-gNB-X2-actionDefinition.c [new file with mode: 0644]
e2ap/lib/E2SM-gNB-X2-callProcessID.c [new file with mode: 0644]
e2ap/lib/E2SM-gNB-X2-controlHeader.c [new file with mode: 0644]
e2ap/lib/E2SM-gNB-X2-controlMessage.c [new file with mode: 0644]
e2ap/lib/E2SM-gNB-X2-eventTriggerDefinition.c [new file with mode: 0644]
e2ap/lib/E2SM-gNB-X2-indicationHeader.c [new file with mode: 0644]
e2ap/lib/E2SM-gNB-X2-indicationMessage.c [new file with mode: 0644]
e2ap/lib/EARFCN.c [new file with mode: 0644]
e2ap/lib/EARFCNExtension.c [new file with mode: 0644]
e2ap/lib/ECGI.c [new file with mode: 0644]
e2ap/lib/EN-DC-ResourceConfiguration.c [new file with mode: 0644]
e2ap/lib/ENB-ID.c [new file with mode: 0644]
e2ap/lib/ENBConfigurationUpdate.c [new file with mode: 0644]
e2ap/lib/ENBConfigurationUpdateAcknowledge.c [new file with mode: 0644]
e2ap/lib/ENBConfigurationUpdateFailure.c [new file with mode: 0644]
e2ap/lib/ENDCCellActivationFailure.c [new file with mode: 0644]
e2ap/lib/ENDCCellActivationRequest.c [new file with mode: 0644]
e2ap/lib/ENDCCellActivationResponse.c [new file with mode: 0644]
e2ap/lib/ENDCConfigurationUpdate.c [new file with mode: 0644]
e2ap/lib/ENDCConfigurationUpdateAcknowledge.c [new file with mode: 0644]
e2ap/lib/ENDCConfigurationUpdateFailure.c [new file with mode: 0644]
e2ap/lib/ENDCPartialResetConfirm.c [new file with mode: 0644]
e2ap/lib/ENDCPartialResetRequired.c [new file with mode: 0644]
e2ap/lib/ENDCX2RemovalFailure.c [new file with mode: 0644]
e2ap/lib/ENDCX2RemovalRequest.c [new file with mode: 0644]
e2ap/lib/ENDCX2RemovalResponse.c [new file with mode: 0644]
e2ap/lib/ENDCX2SetupFailure.c [new file with mode: 0644]
e2ap/lib/ENDCX2SetupRequest.c [new file with mode: 0644]
e2ap/lib/ENDCX2SetupResponse.c [new file with mode: 0644]
e2ap/lib/EPLMNs.c [new file with mode: 0644]
e2ap/lib/ERABActivityNotifyItem.c [new file with mode: 0644]
e2ap/lib/ERABActivityNotifyItemList.c [new file with mode: 0644]
e2ap/lib/EUTRA-Mode-Info.c [new file with mode: 0644]
e2ap/lib/EUTRANCellIdentifier.c [new file with mode: 0644]
e2ap/lib/EUTRANRCellResourceCoordinationRequest.c [new file with mode: 0644]
e2ap/lib/EUTRANRCellResourceCoordinationResponse.c [new file with mode: 0644]
e2ap/lib/EUTRANTraceID.c [new file with mode: 0644]
e2ap/lib/EncryptionAlgorithms.c [new file with mode: 0644]
e2ap/lib/EnhancedRNTP.c [new file with mode: 0644]
e2ap/lib/EnhancedRNTPStartTime.c [new file with mode: 0644]
e2ap/lib/ErrorIndication.c [new file with mode: 0644]
e2ap/lib/EventType.c [new file with mode: 0644]
e2ap/lib/ExpectedActivityPeriod.c [new file with mode: 0644]
e2ap/lib/ExpectedHOInterval.c [new file with mode: 0644]
e2ap/lib/ExpectedIdlePeriod.c [new file with mode: 0644]
e2ap/lib/ExpectedUEActivityBehaviour.c [new file with mode: 0644]
e2ap/lib/ExpectedUEBehaviour.c [new file with mode: 0644]
e2ap/lib/ExtendedBitRate.c [new file with mode: 0644]
e2ap/lib/ExtendedULInterferenceOverloadInfo.c [new file with mode: 0644]
e2ap/lib/FDD-Info.c [new file with mode: 0644]
e2ap/lib/FDD-InfoNeighbourServedNRCell-Information.c [new file with mode: 0644]
e2ap/lib/FDD-InfoServedNRCell-Information.c [new file with mode: 0644]
e2ap/lib/FiveGS-TAC.c [new file with mode: 0644]
e2ap/lib/ForbiddenInterRATs.c [new file with mode: 0644]
e2ap/lib/ForbiddenLACs.c [new file with mode: 0644]
e2ap/lib/ForbiddenLAs-Item.c [new file with mode: 0644]
e2ap/lib/ForbiddenLAs.c [new file with mode: 0644]
e2ap/lib/ForbiddenTACs.c [new file with mode: 0644]
e2ap/lib/ForbiddenTAs-Item.c [new file with mode: 0644]
e2ap/lib/ForbiddenTAs.c [new file with mode: 0644]
e2ap/lib/Fourframes.c [new file with mode: 0644]
e2ap/lib/FreqBandIndicator.c [new file with mode: 0644]
e2ap/lib/FreqBandIndicatorPriority.c [new file with mode: 0644]
e2ap/lib/FreqBandNrItem.c [new file with mode: 0644]
e2ap/lib/GBR-QosInformation.c [new file with mode: 0644]
e2ap/lib/GNB-ID.c [new file with mode: 0644]
e2ap/lib/GNBOverloadInformation.c [new file with mode: 0644]
e2ap/lib/GNBStatusIndication.c [new file with mode: 0644]
e2ap/lib/GTP-TEI.c [new file with mode: 0644]
e2ap/lib/GTPtunnelEndpoint.c [new file with mode: 0644]
e2ap/lib/GU-Group-ID.c [new file with mode: 0644]
e2ap/lib/GUGroupIDList.c [new file with mode: 0644]
e2ap/lib/GUMMEI.c [new file with mode: 0644]
e2ap/lib/GlobalENB-ID.c [new file with mode: 0644]
e2ap/lib/GlobalGNB-ID.c [new file with mode: 0644]
e2ap/lib/HFN.c [new file with mode: 0644]
e2ap/lib/HFNModified.c [new file with mode: 0644]
e2ap/lib/HFNforPDCP-SNlength18.c [new file with mode: 0644]
e2ap/lib/HWLoadIndicator.c [new file with mode: 0644]
e2ap/lib/HandoverCancel.c [new file with mode: 0644]
e2ap/lib/HandoverPreparationFailure.c [new file with mode: 0644]
e2ap/lib/HandoverReport.c [new file with mode: 0644]
e2ap/lib/HandoverReportType.c [new file with mode: 0644]
e2ap/lib/HandoverRequest.c [new file with mode: 0644]
e2ap/lib/HandoverRequestAcknowledge.c [new file with mode: 0644]
e2ap/lib/HandoverRestrictionList.c [new file with mode: 0644]
e2ap/lib/INTEGER.c [new file with mode: 0644]
e2ap/lib/INTEGER_oer.c [new file with mode: 0644]
e2ap/lib/InitiatingMessage.c [new file with mode: 0644]
e2ap/lib/InitiatingMessageE2.c [new file with mode: 0644]
e2ap/lib/InitiatingNodeType-EndcConfigUpdate.c [new file with mode: 0644]
e2ap/lib/InitiatingNodeType-EndcX2Removal.c [new file with mode: 0644]
e2ap/lib/InitiatingNodeType-EndcX2Setup.c [new file with mode: 0644]
e2ap/lib/InitiatingNodeType-EutranrCellResourceCoordination.c [new file with mode: 0644]
e2ap/lib/IntegrityProtectionAlgorithms.c [new file with mode: 0644]
e2ap/lib/Interface-ID.c [new file with mode: 0644]
e2ap/lib/InterfaceDirection.c [new file with mode: 0644]
e2ap/lib/InterfaceMessage.c [new file with mode: 0644]
e2ap/lib/InterfaceMessageType.c [new file with mode: 0644]
e2ap/lib/InterfaceProtocolIE-ID.c [new file with mode: 0644]
e2ap/lib/InterfaceProtocolIE-Item.c [new file with mode: 0644]
e2ap/lib/InterfaceProtocolIE-Test.c [new file with mode: 0644]
e2ap/lib/InterfaceProtocolIE-Value.c [new file with mode: 0644]
e2ap/lib/InterfacesToTrace.c [new file with mode: 0644]
e2ap/lib/InvokeIndication.c [new file with mode: 0644]
e2ap/lib/Key-eNodeB-Star.c [new file with mode: 0644]
e2ap/lib/LAC.c [new file with mode: 0644]
e2ap/lib/LCID.c [new file with mode: 0644]
e2ap/lib/LHN-ID.c [new file with mode: 0644]
e2ap/lib/LastVisitedCell-Item.c [new file with mode: 0644]
e2ap/lib/LastVisitedEUTRANCellInformation.c [new file with mode: 0644]
e2ap/lib/LastVisitedGERANCellInformation.c [new file with mode: 0644]
e2ap/lib/LastVisitedNGRANCellInformation.c [new file with mode: 0644]
e2ap/lib/LastVisitedUTRANCellInformation.c [new file with mode: 0644]
e2ap/lib/Limited-list.c [new file with mode: 0644]
e2ap/lib/Links-to-log.c [new file with mode: 0644]
e2ap/lib/ListofEUTRACellsinEUTRACoordinationReq.c [new file with mode: 0644]
e2ap/lib/ListofEUTRACellsinEUTRACoordinationResp.c [new file with mode: 0644]
e2ap/lib/ListofEUTRACellsinNRCoordinationReq.c [new file with mode: 0644]
e2ap/lib/ListofNRCellsinNRCoordinationReq.c [new file with mode: 0644]
e2ap/lib/ListofNRCellsinNRCoordinationResp.c [new file with mode: 0644]
e2ap/lib/LoadIndicator.c [new file with mode: 0644]
e2ap/lib/LoadInformation.c [new file with mode: 0644]
e2ap/lib/LocationReportingInformation.c [new file with mode: 0644]
e2ap/lib/M1PeriodicReporting.c [new file with mode: 0644]
e2ap/lib/M1ReportingTrigger.c [new file with mode: 0644]
e2ap/lib/M1ThresholdEventA2.c [new file with mode: 0644]
e2ap/lib/M3Configuration.c [new file with mode: 0644]
e2ap/lib/M3period.c [new file with mode: 0644]
e2ap/lib/M4Configuration.c [new file with mode: 0644]
e2ap/lib/M4period.c [new file with mode: 0644]
e2ap/lib/M5Configuration.c [new file with mode: 0644]
e2ap/lib/M5period.c [new file with mode: 0644]
e2ap/lib/M6Configuration.c [new file with mode: 0644]
e2ap/lib/M6delay-threshold.c [new file with mode: 0644]
e2ap/lib/M6report-interval.c [new file with mode: 0644]
e2ap/lib/M7Configuration.c [new file with mode: 0644]
e2ap/lib/M7period.c [new file with mode: 0644]
e2ap/lib/MBMS-Service-Area-Identity-List.c [new file with mode: 0644]
e2ap/lib/MBMS-Service-Area-Identity.c [new file with mode: 0644]
e2ap/lib/MBSFN-Subframe-Info.c [new file with mode: 0644]
e2ap/lib/MBSFN-Subframe-Infolist.c [new file with mode: 0644]
e2ap/lib/MDT-Activation.c [new file with mode: 0644]
e2ap/lib/MDT-Configuration.c [new file with mode: 0644]
e2ap/lib/MDT-Location-Info.c [new file with mode: 0644]
e2ap/lib/MDTPLMNList.c [new file with mode: 0644]
e2ap/lib/MME-Code.c [new file with mode: 0644]
e2ap/lib/MME-Group-ID.c [new file with mode: 0644]
e2ap/lib/MakeBeforeBreakIndicator.c [new file with mode: 0644]
e2ap/lib/ManagementBasedMDTallowed.c [new file with mode: 0644]
e2ap/lib/Masked-IMEISV.c [new file with mode: 0644]
e2ap/lib/MeNBCoordinationAssistanceInformation.c [new file with mode: 0644]
e2ap/lib/MeNBResourceCoordinationInformation.c [new file with mode: 0644]
e2ap/lib/MeNBtoSeNBContainer.c [new file with mode: 0644]
e2ap/lib/MeNBtoSgNBContainer.c [new file with mode: 0644]
e2ap/lib/Measurement-ID.c [new file with mode: 0644]
e2ap/lib/MeasurementFailureCause-Item.c [new file with mode: 0644]
e2ap/lib/MeasurementFailureCause-List.c [new file with mode: 0644]
e2ap/lib/MeasurementInitiationResult-Item.c [new file with mode: 0644]
e2ap/lib/MeasurementInitiationResult-List.c [new file with mode: 0644]
e2ap/lib/MeasurementThresholdA2.c [new file with mode: 0644]
e2ap/lib/MeasurementsToActivate.c [new file with mode: 0644]
e2ap/lib/MobilityChangeAcknowledge.c [new file with mode: 0644]
e2ap/lib/MobilityChangeFailure.c [new file with mode: 0644]
e2ap/lib/MobilityChangeRequest.c [new file with mode: 0644]
e2ap/lib/MobilityInformation.c [new file with mode: 0644]
e2ap/lib/MobilityParametersInformation.c [new file with mode: 0644]
e2ap/lib/MobilityParametersModificationRange.c [new file with mode: 0644]
e2ap/lib/MultibandInfoList.c [new file with mode: 0644]
e2ap/lib/NR-TxBW.c [new file with mode: 0644]
e2ap/lib/NRCGI.c [new file with mode: 0644]
e2ap/lib/NRCellIdentifier.c [new file with mode: 0644]
e2ap/lib/NRFreqInfo.c [new file with mode: 0644]
e2ap/lib/NRNRB.c [new file with mode: 0644]
e2ap/lib/NRNeighbour-Information.c [new file with mode: 0644]
e2ap/lib/NRPCI.c [new file with mode: 0644]
e2ap/lib/NRS-NSSS-PowerOffset.c [new file with mode: 0644]
e2ap/lib/NRSCS.c [new file with mode: 0644]
e2ap/lib/NRUESecurityCapabilities.c [new file with mode: 0644]
e2ap/lib/NRencryptionAlgorithms.c [new file with mode: 0644]
e2ap/lib/NRintegrityProtectionAlgorithms.c [new file with mode: 0644]
e2ap/lib/NRrestrictionin5GS.c [new file with mode: 0644]
e2ap/lib/NRrestrictioninEPSasSecondaryRAT.c [new file with mode: 0644]
e2ap/lib/NSSS-NumOccasionDifferentPrecoder.c [new file with mode: 0644]
e2ap/lib/NULL.c [new file with mode: 0644]
e2ap/lib/NativeEnumerated.c [new file with mode: 0644]
e2ap/lib/NativeEnumerated_oer.c [new file with mode: 0644]
e2ap/lib/NativeInteger.c [new file with mode: 0644]
e2ap/lib/NativeInteger_oer.c [new file with mode: 0644]
e2ap/lib/Neighbour-Information.c [new file with mode: 0644]
e2ap/lib/NewDRBIDrequest.c [new file with mode: 0644]
e2ap/lib/NextHopChainingCount.c [new file with mode: 0644]
e2ap/lib/Number-of-Antennaports.c [new file with mode: 0644]
e2ap/lib/OBJECT_IDENTIFIER.c [new file with mode: 0644]
e2ap/lib/OCTET_STRING.c [new file with mode: 0644]
e2ap/lib/OCTET_STRING_oer.c [new file with mode: 0644]
e2ap/lib/OPEN_TYPE.c [new file with mode: 0644]
e2ap/lib/OPEN_TYPE_oer.c [new file with mode: 0644]
e2ap/lib/OffsetOfNbiotChannelNumberToEARFCN.c [new file with mode: 0644]
e2ap/lib/Old-ECGIs.c [new file with mode: 0644]
e2ap/lib/Oneframe.c [new file with mode: 0644]
e2ap/lib/PA-Values.c [new file with mode: 0644]
e2ap/lib/PCI.c [new file with mode: 0644]
e2ap/lib/PDCP-SN.c [new file with mode: 0644]
e2ap/lib/PDCP-SNExtended.c [new file with mode: 0644]
e2ap/lib/PDCP-SNlength18.c [new file with mode: 0644]
e2ap/lib/PDCPChangeIndication.c [new file with mode: 0644]
e2ap/lib/PDCPSnLength.c [new file with mode: 0644]
e2ap/lib/PLMN-Identity.c [new file with mode: 0644]
e2ap/lib/PLMNAreaBasedQMC.c [new file with mode: 0644]
e2ap/lib/PLMNListforQMC.c [new file with mode: 0644]
e2ap/lib/PRACH-Configuration.c [new file with mode: 0644]
e2ap/lib/Packet-LossRate.c [new file with mode: 0644]
e2ap/lib/PartialSuccessIndicator.c [new file with mode: 0644]
e2ap/lib/PedestrianUE.c [new file with mode: 0644]
e2ap/lib/Port-Number.c [new file with mode: 0644]
e2ap/lib/Pre-emptionCapability.c [new file with mode: 0644]
e2ap/lib/Pre-emptionVulnerability.c [new file with mode: 0644]
e2ap/lib/Presence.c [new file with mode: 0644]
e2ap/lib/PrintableString.c [new file with mode: 0644]
e2ap/lib/PriorityLevel.c [new file with mode: 0644]
e2ap/lib/PrivateIE-Container.c [new file with mode: 0644]
e2ap/lib/PrivateIE-Field.c [new file with mode: 0644]
e2ap/lib/PrivateIE-ID.c [new file with mode: 0644]
e2ap/lib/PrivateMessage.c [new file with mode: 0644]
e2ap/lib/ProSeAuthorized.c [new file with mode: 0644]
e2ap/lib/ProSeDirectCommunication.c [new file with mode: 0644]
e2ap/lib/ProSeDirectDiscovery.c [new file with mode: 0644]
e2ap/lib/ProSeUEtoNetworkRelaying.c [new file with mode: 0644]
e2ap/lib/ProcedureCode.c [new file with mode: 0644]
e2ap/lib/ProtectedEUTRAResourceIndication.c [new file with mode: 0644]
e2ap/lib/ProtectedFootprintTimePattern.c [new file with mode: 0644]
e2ap/lib/ProtectedResourceList-Item.c [new file with mode: 0644]
e2ap/lib/ProtectedResourceList.c [new file with mode: 0644]
e2ap/lib/ProtocolExtensionContainer.c [new file with mode: 0644]
e2ap/lib/ProtocolExtensionField.c [new file with mode: 0644]
e2ap/lib/ProtocolIE-Container.c [new file with mode: 0644]
e2ap/lib/ProtocolIE-ContainerList.c [new file with mode: 0644]
e2ap/lib/ProtocolIE-ContainerPair.c [new file with mode: 0644]
e2ap/lib/ProtocolIE-ContainerPairList.c [new file with mode: 0644]
e2ap/lib/ProtocolIE-Field.c [new file with mode: 0644]
e2ap/lib/ProtocolIE-FieldPair.c [new file with mode: 0644]
e2ap/lib/ProtocolIE-ID.c [new file with mode: 0644]
e2ap/lib/ProtocolIE-Single-Container.c [new file with mode: 0644]
e2ap/lib/QCI.c [new file with mode: 0644]
e2ap/lib/RANfunction-Item.c [new file with mode: 0644]
e2ap/lib/RANfunctionDefinition.c [new file with mode: 0644]
e2ap/lib/RANfunctionID-Item.c [new file with mode: 0644]
e2ap/lib/RANfunctionID.c [new file with mode: 0644]
e2ap/lib/RANfunctionIDcause-Item.c [new file with mode: 0644]
e2ap/lib/RANfunctions-List.c [new file with mode: 0644]
e2ap/lib/RANfunctionsID-List.c [new file with mode: 0644]
e2ap/lib/RANfunctionsIDcause-List.c [new file with mode: 0644]
e2ap/lib/RICaction-Admitted-Item.c [new file with mode: 0644]
e2ap/lib/RICaction-Admitted-List.c [new file with mode: 0644]
e2ap/lib/RICaction-NotAdmitted-Item.c [new file with mode: 0644]
e2ap/lib/RICaction-NotAdmitted-List.c [new file with mode: 0644]
e2ap/lib/RICaction-ToBeSetup-Item.c [new file with mode: 0644]
e2ap/lib/RICactionDefinition.c [new file with mode: 0644]
e2ap/lib/RICactionID.c [new file with mode: 0644]
e2ap/lib/RICactionType.c [new file with mode: 0644]
e2ap/lib/RICactions-ToBeSetup-List.c [new file with mode: 0644]
e2ap/lib/RICcallProcessID.c [new file with mode: 0644]
e2ap/lib/RICcause.c [new file with mode: 0644]
e2ap/lib/RICcontrolAckRequest.c [new file with mode: 0644]
e2ap/lib/RICcontrolAcknowledge.c [new file with mode: 0644]
e2ap/lib/RICcontrolFailure.c [new file with mode: 0644]
e2ap/lib/RICcontrolHeader.c [new file with mode: 0644]
e2ap/lib/RICcontrolMessage.c [new file with mode: 0644]
e2ap/lib/RICcontrolRequest.c [new file with mode: 0644]
e2ap/lib/RICcontrolStatus.c [new file with mode: 0644]
e2ap/lib/RICeventTriggerDefinition.c [new file with mode: 0644]
e2ap/lib/RICindication.c [new file with mode: 0644]
e2ap/lib/RICindicationHeader.c [new file with mode: 0644]
e2ap/lib/RICindicationMessage.c [new file with mode: 0644]
e2ap/lib/RICindicationSN.c [new file with mode: 0644]
e2ap/lib/RICindicationType.c [new file with mode: 0644]
e2ap/lib/RICrequestID.c [new file with mode: 0644]
e2ap/lib/RICserviceQuery.c [new file with mode: 0644]
e2ap/lib/RICserviceUpdate.c [new file with mode: 0644]
e2ap/lib/RICserviceUpdateAcknowledge.c [new file with mode: 0644]
e2ap/lib/RICserviceUpdateFailure.c [new file with mode: 0644]
e2ap/lib/RICsubscription.c [new file with mode: 0644]
e2ap/lib/RICsubscriptionDeleteFailure.c [new file with mode: 0644]
e2ap/lib/RICsubscriptionDeleteRequest.c [new file with mode: 0644]
e2ap/lib/RICsubscriptionDeleteResponse.c [new file with mode: 0644]
e2ap/lib/RICsubscriptionFailure.c [new file with mode: 0644]
e2ap/lib/RICsubscriptionRequest.c [new file with mode: 0644]
e2ap/lib/RICsubscriptionResponse.c [new file with mode: 0644]
e2ap/lib/RICsubsequentAction.c [new file with mode: 0644]
e2ap/lib/RICsubsequentActionType.c [new file with mode: 0644]
e2ap/lib/RICtimeToWait.c [new file with mode: 0644]
e2ap/lib/RLC-Status.c [new file with mode: 0644]
e2ap/lib/RLCMode.c [new file with mode: 0644]
e2ap/lib/RLFIndication.c [new file with mode: 0644]
e2ap/lib/RNL-Header.c [new file with mode: 0644]
e2ap/lib/RNTP-Threshold.c [new file with mode: 0644]
e2ap/lib/RRC-Config-Ind.c [new file with mode: 0644]
e2ap/lib/RRC-Context.c [new file with mode: 0644]
e2ap/lib/RRCConnReestabIndicator.c [new file with mode: 0644]
e2ap/lib/RRCConnSetupIndicator.c [new file with mode: 0644]
e2ap/lib/RRCContainer.c [new file with mode: 0644]
e2ap/lib/RRCTransfer.c [new file with mode: 0644]
e2ap/lib/RSRPMRList.c [new file with mode: 0644]
e2ap/lib/RSRPMeasurementResult.c [new file with mode: 0644]
e2ap/lib/RadioResourceStatus.c [new file with mode: 0644]
e2ap/lib/RadioframeAllocationOffset.c [new file with mode: 0644]
e2ap/lib/RadioframeAllocationPeriod.c [new file with mode: 0644]
e2ap/lib/ReceiveStatusOfULPDCPSDUsExtended.c [new file with mode: 0644]
e2ap/lib/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c [new file with mode: 0644]
e2ap/lib/ReceiveStatusofULPDCPSDUs.c [new file with mode: 0644]
e2ap/lib/Reestablishment-Indication.c [new file with mode: 0644]
e2ap/lib/Registration-Request.c [new file with mode: 0644]
e2ap/lib/RelativeNarrowbandTxPower.c [new file with mode: 0644]
e2ap/lib/ReplacingCellsList-Item.c [new file with mode: 0644]
e2ap/lib/ReplacingCellsList.c [new file with mode: 0644]
e2ap/lib/ReportAmountMDT.c [new file with mode: 0644]
e2ap/lib/ReportArea.c [new file with mode: 0644]
e2ap/lib/ReportCharacteristics.c [new file with mode: 0644]
e2ap/lib/ReportIntervalMDT.c [new file with mode: 0644]
e2ap/lib/ReportingPeriodicity.c [new file with mode: 0644]
e2ap/lib/ReportingPeriodicityCSIR.c [new file with mode: 0644]
e2ap/lib/ReportingPeriodicityRSRPMR.c [new file with mode: 0644]
e2ap/lib/ReservedSubframePattern.c [new file with mode: 0644]
e2ap/lib/ResetRequest.c [new file with mode: 0644]
e2ap/lib/ResetResponse.c [new file with mode: 0644]
e2ap/lib/ResourceStatusFailure.c [new file with mode: 0644]
e2ap/lib/ResourceStatusRequest.c [new file with mode: 0644]
e2ap/lib/ResourceStatusResponse.c [new file with mode: 0644]
e2ap/lib/ResourceStatusUpdate.c [new file with mode: 0644]
e2ap/lib/ResourceType.c [new file with mode: 0644]
e2ap/lib/RespondingNodeType-EndcConfigUpdate.c [new file with mode: 0644]
e2ap/lib/RespondingNodeType-EndcX2Removal.c [new file with mode: 0644]
e2ap/lib/RespondingNodeType-EndcX2Setup.c [new file with mode: 0644]
e2ap/lib/RespondingNodeType-EutranrCellResourceCoordination.c [new file with mode: 0644]
e2ap/lib/ResponseInformationSeNBReconfComp-RejectByMeNBItem.c [new file with mode: 0644]
e2ap/lib/ResponseInformationSeNBReconfComp-SuccessItem.c [new file with mode: 0644]
e2ap/lib/ResponseInformationSeNBReconfComp.c [new file with mode: 0644]
e2ap/lib/ResponseInformationSgNBReconfComp-RejectByMeNBItem.c [new file with mode: 0644]
e2ap/lib/ResponseInformationSgNBReconfComp-SuccessItem.c [new file with mode: 0644]
e2ap/lib/ResponseInformationSgNBReconfComp.c [new file with mode: 0644]
e2ap/lib/ResumeID.c [new file with mode: 0644]
e2ap/lib/RetrieveUEContextFailure.c [new file with mode: 0644]
e2ap/lib/RetrieveUEContextRequest.c [new file with mode: 0644]
e2ap/lib/RetrieveUEContextResponse.c [new file with mode: 0644]
e2ap/lib/S1TNLLoadIndicator.c [new file with mode: 0644]
e2ap/lib/SCGChangeIndication.c [new file with mode: 0644]
e2ap/lib/SCGConfigurationQuery.c [new file with mode: 0644]
e2ap/lib/SGNB-Addition-Trigger-Ind.c [new file with mode: 0644]
e2ap/lib/SIPTOBearerDeactivationIndication.c [new file with mode: 0644]
e2ap/lib/SNStatusTransfer.c [new file with mode: 0644]
e2ap/lib/SRBType.c [new file with mode: 0644]
e2ap/lib/SRVCCOperationPossible.c [new file with mode: 0644]
e2ap/lib/SULInformation.c [new file with mode: 0644]
e2ap/lib/ScheduledCommunicationTime.c [new file with mode: 0644]
e2ap/lib/SeNBAdditionRequest.c [new file with mode: 0644]
e2ap/lib/SeNBAdditionRequestAcknowledge.c [new file with mode: 0644]
e2ap/lib/SeNBAdditionRequestReject.c [new file with mode: 0644]
e2ap/lib/SeNBCounterCheckRequest.c [new file with mode: 0644]
e2ap/lib/SeNBModificationConfirm.c [new file with mode: 0644]
e2ap/lib/SeNBModificationRefuse.c [new file with mode: 0644]
e2ap/lib/SeNBModificationRequest.c [new file with mode: 0644]
e2ap/lib/SeNBModificationRequestAcknowledge.c [new file with mode: 0644]
e2ap/lib/SeNBModificationRequestReject.c [new file with mode: 0644]
e2ap/lib/SeNBModificationRequired.c [new file with mode: 0644]
e2ap/lib/SeNBReconfigurationComplete.c [new file with mode: 0644]
e2ap/lib/SeNBReleaseConfirm.c [new file with mode: 0644]
e2ap/lib/SeNBReleaseRequest.c [new file with mode: 0644]
e2ap/lib/SeNBReleaseRequired.c [new file with mode: 0644]
e2ap/lib/SeNBSecurityKey.c [new file with mode: 0644]
e2ap/lib/SeNBtoMeNBContainer.c [new file with mode: 0644]
e2ap/lib/SecondaryRATDataUsageReport.c [new file with mode: 0644]
e2ap/lib/SecondaryRATUsageReport-Item.c [new file with mode: 0644]
e2ap/lib/SecondaryRATUsageReportList.c [new file with mode: 0644]
e2ap/lib/ServedCell-Information.c [new file with mode: 0644]
e2ap/lib/ServedCells.c [new file with mode: 0644]
e2ap/lib/ServedCellsToActivate-Item.c [new file with mode: 0644]
e2ap/lib/ServedCellsToActivate.c [new file with mode: 0644]
e2ap/lib/ServedCellsToModify-Item.c [new file with mode: 0644]
e2ap/lib/ServedCellsToModify.c [new file with mode: 0644]
e2ap/lib/ServedEUTRAcellsENDCX2ManagementList.c [new file with mode: 0644]
e2ap/lib/ServedEUTRAcellsToDeleteListENDCConfUpd.c [new file with mode: 0644]
e2ap/lib/ServedEUTRAcellsToModifyListENDCConfUpd.c [new file with mode: 0644]
e2ap/lib/ServedNRCell-Information.c [new file with mode: 0644]
e2ap/lib/ServedNRCellsToActivate-Item.c [new file with mode: 0644]
e2ap/lib/ServedNRCellsToActivate.c [new file with mode: 0644]
e2ap/lib/ServedNRCellsToModify-Item.c [new file with mode: 0644]
e2ap/lib/ServedNRcellsENDCX2ManagementList.c [new file with mode: 0644]
e2ap/lib/ServedNRcellsToDeleteENDCConfUpdList.c [new file with mode: 0644]
e2ap/lib/ServedNRcellsToModifyENDCConfUpdList.c [new file with mode: 0644]
e2ap/lib/ServiceType.c [new file with mode: 0644]
e2ap/lib/SgNB-UE-X2AP-ID.c [new file with mode: 0644]
e2ap/lib/SgNBActivityNotification.c [new file with mode: 0644]
e2ap/lib/SgNBAdditionRequest.c [new file with mode: 0644]
e2ap/lib/SgNBAdditionRequestAcknowledge.c [new file with mode: 0644]
e2ap/lib/SgNBAdditionRequestReject.c [new file with mode: 0644]
e2ap/lib/SgNBChangeConfirm.c [new file with mode: 0644]
e2ap/lib/SgNBChangeRefuse.c [new file with mode: 0644]
e2ap/lib/SgNBChangeRequired.c [new file with mode: 0644]
e2ap/lib/SgNBCoordinationAssistanceInformation.c [new file with mode: 0644]
e2ap/lib/SgNBCounterCheckRequest.c [new file with mode: 0644]
e2ap/lib/SgNBModificationConfirm.c [new file with mode: 0644]
e2ap/lib/SgNBModificationRefuse.c [new file with mode: 0644]
e2ap/lib/SgNBModificationRequest.c [new file with mode: 0644]
e2ap/lib/SgNBModificationRequestAcknowledge.c [new file with mode: 0644]
e2ap/lib/SgNBModificationRequestReject.c [new file with mode: 0644]
e2ap/lib/SgNBModificationRequired.c [new file with mode: 0644]
e2ap/lib/SgNBReconfigurationComplete.c [new file with mode: 0644]
e2ap/lib/SgNBReleaseConfirm.c [new file with mode: 0644]
e2ap/lib/SgNBReleaseRequest.c [new file with mode: 0644]
e2ap/lib/SgNBReleaseRequestAcknowledge.c [new file with mode: 0644]
e2ap/lib/SgNBReleaseRequestReject.c [new file with mode: 0644]
e2ap/lib/SgNBReleaseRequired.c [new file with mode: 0644]
e2ap/lib/SgNBResourceCoordinationInformation.c [new file with mode: 0644]
e2ap/lib/SgNBSecurityKey.c [new file with mode: 0644]
e2ap/lib/SgNBtoMeNBContainer.c [new file with mode: 0644]
e2ap/lib/SharedResourceType.c [new file with mode: 0644]
e2ap/lib/ShortMAC-I.c [new file with mode: 0644]
e2ap/lib/SourceOfUEActivityBehaviourInformation.c [new file with mode: 0644]
e2ap/lib/SpecialSubframe-Info.c [new file with mode: 0644]
e2ap/lib/SpecialSubframePatterns.c [new file with mode: 0644]
e2ap/lib/SpectrumSharingGroupID.c [new file with mode: 0644]
e2ap/lib/SplitSRB.c [new file with mode: 0644]
e2ap/lib/SplitSRBs.c [new file with mode: 0644]
e2ap/lib/Style-ID.c [new file with mode: 0644]
e2ap/lib/SubbandCQI.c [new file with mode: 0644]
e2ap/lib/SubbandCQICodeword0.c [new file with mode: 0644]
e2ap/lib/SubbandCQICodeword1.c [new file with mode: 0644]
e2ap/lib/SubbandCQIItem.c [new file with mode: 0644]
e2ap/lib/SubbandCQIList.c [new file with mode: 0644]
e2ap/lib/SubbandSize.c [new file with mode: 0644]
e2ap/lib/SubframeAllocation.c [new file with mode: 0644]
e2ap/lib/SubframeAssignment.c [new file with mode: 0644]
e2ap/lib/SubframeType.c [new file with mode: 0644]
e2ap/lib/SubscriberProfileIDforRFP.c [new file with mode: 0644]
e2ap/lib/Subscription-Based-UE-DifferentiationInfo.c [new file with mode: 0644]
e2ap/lib/SuccessfulOutcome.c [new file with mode: 0644]
e2ap/lib/SuccessfulOutcomeE2.c [new file with mode: 0644]
e2ap/lib/SupportedSULFreqBandItem.c [new file with mode: 0644]
e2ap/lib/TABasedMDT.c [new file with mode: 0644]
e2ap/lib/TABasedQMC.c [new file with mode: 0644]
e2ap/lib/TAC.c [new file with mode: 0644]
e2ap/lib/TAI-Item.c [new file with mode: 0644]
e2ap/lib/TAIBasedMDT.c [new file with mode: 0644]
e2ap/lib/TAIBasedQMC.c [new file with mode: 0644]
e2ap/lib/TAIListforMDT.c [new file with mode: 0644]
e2ap/lib/TAIListforQMC.c [new file with mode: 0644]
e2ap/lib/TAListforMDT.c [new file with mode: 0644]
e2ap/lib/TAListforQMC.c [new file with mode: 0644]
e2ap/lib/TDD-Info.c [new file with mode: 0644]
e2ap/lib/TDD-InfoNeighbourServedNRCell-Information.c [new file with mode: 0644]
e2ap/lib/TDD-InfoServedNRCell-Information.c [new file with mode: 0644]
e2ap/lib/TargetCellInUTRAN.c [new file with mode: 0644]
e2ap/lib/TargeteNBtoSource-eNBTransparentContainer.c [new file with mode: 0644]
e2ap/lib/Threshold-RSRP.c [new file with mode: 0644]
e2ap/lib/Threshold-RSRQ.c [new file with mode: 0644]
e2ap/lib/Time-UE-StayedInCell-EnhancedGranularity.c [new file with mode: 0644]
e2ap/lib/Time-UE-StayedInCell.c [new file with mode: 0644]
e2ap/lib/TimeStamp.c [new file with mode: 0644]
e2ap/lib/TimeToWait.c [new file with mode: 0644]
e2ap/lib/TraceActivation.c [new file with mode: 0644]
e2ap/lib/TraceCollectionEntityIPAddress.c [new file with mode: 0644]
e2ap/lib/TraceDepth.c [new file with mode: 0644]
e2ap/lib/Transmission-Bandwidth.c [new file with mode: 0644]
e2ap/lib/TransportLayerAddress.c [new file with mode: 0644]
e2ap/lib/TriggeringMessage.c [new file with mode: 0644]
e2ap/lib/TunnelInformation.c [new file with mode: 0644]
e2ap/lib/TypeOfError.c [new file with mode: 0644]
e2ap/lib/TypeOfMessage.c [new file with mode: 0644]
e2ap/lib/UE-ContextInformation-SgNBModReq.c [new file with mode: 0644]
e2ap/lib/UE-ContextInformation.c [new file with mode: 0644]
e2ap/lib/UE-ContextInformationRetrieve.c [new file with mode: 0644]
e2ap/lib/UE-ContextInformationSeNBModReq.c [new file with mode: 0644]
e2ap/lib/UE-ContextKeptIndicator.c [new file with mode: 0644]
e2ap/lib/UE-ContextReferenceAtSeNB.c [new file with mode: 0644]
e2ap/lib/UE-ContextReferenceAtSgNB.c [new file with mode: 0644]
e2ap/lib/UE-ContextReferenceAtWT.c [new file with mode: 0644]
e2ap/lib/UE-HistoryInformation.c [new file with mode: 0644]
e2ap/lib/UE-HistoryInformationFromTheUE.c [new file with mode: 0644]
e2ap/lib/UE-RLF-Report-Container-for-extended-bands.c [new file with mode: 0644]
e2ap/lib/UE-RLF-Report-Container.c [new file with mode: 0644]
e2ap/lib/UE-S1AP-ID.c [new file with mode: 0644]
e2ap/lib/UE-X2AP-ID-Extension.c [new file with mode: 0644]
e2ap/lib/UE-X2AP-ID.c [new file with mode: 0644]
e2ap/lib/UEAggregateMaximumBitRate.c [new file with mode: 0644]
e2ap/lib/UEAppLayerMeasConfig.c [new file with mode: 0644]
e2ap/lib/UEContextRelease.c [new file with mode: 0644]
e2ap/lib/UEID.c [new file with mode: 0644]
e2ap/lib/UENRMeasurement.c [new file with mode: 0644]
e2ap/lib/UESecurityCapabilities.c [new file with mode: 0644]
e2ap/lib/UESidelinkAggregateMaximumBitRate.c [new file with mode: 0644]
e2ap/lib/UEsToBeResetList-Item.c [new file with mode: 0644]
e2ap/lib/UEsToBeResetList.c [new file with mode: 0644]
e2ap/lib/UL-GBR-PRB-usage.c [new file with mode: 0644]
e2ap/lib/UL-HighInterferenceIndication.c [new file with mode: 0644]
e2ap/lib/UL-HighInterferenceIndicationInfo-Item.c [new file with mode: 0644]
e2ap/lib/UL-HighInterferenceIndicationInfo.c [new file with mode: 0644]
e2ap/lib/UL-InterferenceOverloadIndication-Item.c [new file with mode: 0644]
e2ap/lib/UL-InterferenceOverloadIndication.c [new file with mode: 0644]
e2ap/lib/UL-Total-PRB-usage.c [new file with mode: 0644]
e2ap/lib/UL-UE-Configuration.c [new file with mode: 0644]
e2ap/lib/UL-non-GBR-PRB-usage.c [new file with mode: 0644]
e2ap/lib/UL-scheduling-PDCCH-CCE-usage.c [new file with mode: 0644]
e2ap/lib/ULConfiguration.c [new file with mode: 0644]
e2ap/lib/ULOnlySharing.c [new file with mode: 0644]
e2ap/lib/ULResourceBitmapULandDLSharing.c [new file with mode: 0644]
e2ap/lib/ULResourcesULandDLSharing.c [new file with mode: 0644]
e2ap/lib/ULandDLSharing.c [new file with mode: 0644]
e2ap/lib/UnsuccessfulOutcome.c [new file with mode: 0644]
e2ap/lib/UnsuccessfulOutcomeE2.c [new file with mode: 0644]
e2ap/lib/UsableABSInformation.c [new file with mode: 0644]
e2ap/lib/UsableABSInformationFDD.c [new file with mode: 0644]
e2ap/lib/UsableABSInformationTDD.c [new file with mode: 0644]
e2ap/lib/UserPlaneTrafficActivityReport.c [new file with mode: 0644]
e2ap/lib/V2XServicesAuthorized.c [new file with mode: 0644]
e2ap/lib/VehicleUE.c [new file with mode: 0644]
e2ap/lib/WLANMeasConfig.c [new file with mode: 0644]
e2ap/lib/WLANMeasConfigNameList.c [new file with mode: 0644]
e2ap/lib/WLANMeasurementConfiguration.c [new file with mode: 0644]
e2ap/lib/WLANName.c [new file with mode: 0644]
e2ap/lib/WT-UE-XwAP-ID.c [new file with mode: 0644]
e2ap/lib/WTID-Long-Type2.c [new file with mode: 0644]
e2ap/lib/WTID-Type1.c [new file with mode: 0644]
e2ap/lib/WTID.c [new file with mode: 0644]
e2ap/lib/WidebandCQI.c [new file with mode: 0644]
e2ap/lib/WidebandCQICodeword1.c [new file with mode: 0644]
e2ap/lib/X2AP-Message.c [new file with mode: 0644]
e2ap/lib/X2AP-PDU.c [new file with mode: 0644]
e2ap/lib/X2APMessageTransfer.c [new file with mode: 0644]
e2ap/lib/X2BenefitValue.c [new file with mode: 0644]
e2ap/lib/X2Release.c [new file with mode: 0644]
e2ap/lib/X2RemovalFailure.c [new file with mode: 0644]
e2ap/lib/X2RemovalRequest.c [new file with mode: 0644]
e2ap/lib/X2RemovalResponse.c [new file with mode: 0644]
e2ap/lib/X2SetupFailure.c [new file with mode: 0644]
e2ap/lib/X2SetupRequest.c [new file with mode: 0644]
e2ap/lib/X2SetupResponse.c [new file with mode: 0644]
e2ap/lib/asn_SEQUENCE_OF.c [new file with mode: 0644]
e2ap/lib/asn_SET_OF.c [new file with mode: 0644]
e2ap/lib/asn_application.c [new file with mode: 0644]
e2ap/lib/asn_bit_data.c [new file with mode: 0644]
e2ap/lib/asn_codecs_prim.c [new file with mode: 0644]
e2ap/lib/asn_internal.c [new file with mode: 0644]
e2ap/lib/asn_random_fill.c [new file with mode: 0644]
e2ap/lib/ber_decoder.c [new file with mode: 0644]
e2ap/lib/ber_tlv_length.c [new file with mode: 0644]
e2ap/lib/ber_tlv_tag.c [new file with mode: 0644]
e2ap/lib/constr_CHOICE.c [new file with mode: 0644]
e2ap/lib/constr_CHOICE_oer.c [new file with mode: 0644]
e2ap/lib/constr_SEQUENCE.c [new file with mode: 0644]
e2ap/lib/constr_SEQUENCE_OF.c [new file with mode: 0644]
e2ap/lib/constr_SEQUENCE_oer.c [new file with mode: 0644]
e2ap/lib/constr_SET_OF.c [new file with mode: 0644]
e2ap/lib/constr_SET_OF_oer.c [new file with mode: 0644]
e2ap/lib/constr_TYPE.c [new file with mode: 0644]
e2ap/lib/constraints.c [new file with mode: 0644]
e2ap/lib/der_encoder.c [new file with mode: 0644]
e2ap/lib/oer_decoder.c [new file with mode: 0644]
e2ap/lib/oer_encoder.c [new file with mode: 0644]
e2ap/lib/oer_support.c [new file with mode: 0644]
e2ap/lib/pdu_collection.c [new file with mode: 0644]
e2ap/lib/per_decoder.c [new file with mode: 0644]
e2ap/lib/per_encoder.c [new file with mode: 0644]
e2ap/lib/per_opentype.c [new file with mode: 0644]
e2ap/lib/per_support.c [new file with mode: 0644]
e2ap/lib/xer_decoder.c [new file with mode: 0644]
e2ap/lib/xer_encoder.c [new file with mode: 0644]
e2ap/lib/xer_support.c [new file with mode: 0644]
e2ap/wrapper.c [new file with mode: 0644]
e2ap/wrapper.h [new file with mode: 0644]
go.mod
manifests/submgr/submgr-dep.yaml
pkg/control/control.go
pkg/control/e2ap.go
pkg/control/registry.go
pkg/control/types.go
test/dbaas/README.md
test/e2t/README.md
test/e2t/container/Dockerfile
test/e2t/e2t.go
test/e2t/e2t.yaml
test/e2t/manifests/e2t-dep.yaml [moved from test/e2t/manifests/e2t_dep.yaml with 95% similarity]
test/e2t/manifests/e2t-svc.yaml [moved from test/e2t/manifests/e2t_svc.yaml with 100% similarity]
test/rco/README.md
test/rco/container/Dockerfile
test/rco/manifests/rco-dep.yaml
test/rco/rco.go
test/rco/rco.yaml

index 0cfc320..76e8c5c 100644 (file)
@@ -33,6 +33,14 @@ RUN wget --content-disposition https://packagecloud.io/o-ran-sc/master/packages/
 RUN git clone "https://gerrit.o-ran-sc.org/r/com/log" /opt/log && cd /opt/log && \
  ./autogen.sh && ./configure && make install && ldconfig
 
+# "COMPILING E2AP Wrapper"
+RUN cd /opt/submgr/e2ap && \
+ gcc -c -fPIC -Iheaders/ lib/*.c wrapper.c && \
+ gcc *.o -shared -o libwrapper.so && \
+ cp libwrapper.so /usr/local/lib/ && \
+ cp wrapper.h headers/*.h /usr/local/include/ && \
+ ldconfig
+
 # "COMPILING Subscription manager"
 RUN mkdir -p /opt/bin && cd /opt/submgr && \
  /usr/local/go/bin/go get && \
index fa66227..5c265ea 100644 (file)
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 * [Installation guide](#installation-guide)
   * [Compiling code](#compiling-code)
   * [Building docker container](#building-docker-container)
-  * [Installing Routing Manager](#installing-routing-manager)
+  * [Installing Subscription Manager](#installing-routing-manager)
   * [Testing and Troubleshoting](#testing-and-troubleshoting)
 * [Upcoming changes](#upcoming-changes)
 * [License](#license)
@@ -18,12 +18,15 @@ __Subscription Manager__ is a basic platform service of RIC. It is responsible t
 
 Submgr acts as an anchor point for subscription related internal messaging, i.e. every xApp sends its subscription related messages to Submgr. Submgr invokes Routing Manager (Rtmgr) to create or tear down the subscription related routes, and the appropriate E2 Termination to signal the subscription related event also towards the RAN.
 
-The solution base on the [xapp-frame](https://gerrit.o-ran-sc.org/r/admin/repos/ric-plt/xapp-frame) project which provides common HttpREST, RMR and SDL interfaces.
+The solution base on the [xapp-frame](https://gerrit.o-ran-sc.org/r/admin/repos/ric-plt/xapp-frame) project which provides the common HttpREST, RMR and SDL interfaces.
 
 Current implementation provides the following functionalities:
-* Handling RIC_SUB_REQ and RIC_SUB_RESP type RMR messages 
-* Generating New subscription ID and forwarding subscription request to E2 termination
-* Receiving Subscription response and sendig it back to the subscriber
+* Handles RIC_SUB_REQ and RIC_SUB_RESP type RMR messages
+* Utilizes E2AP encoder/decoder generated by ASN1-C
+* Generates New subscription ID and forwards subscription request to E2 termination
+* Keeps maintaining the status of subscriptions
+* Receives Subscription response and sends it back to the subscriber
+* Uses SUBMGR_SEED_SN environment variable to initialize subscription ID counter
   
 ## Release notes
 Check the separated `RELNOTES` file.
@@ -33,17 +36,16 @@ Check the separated `RELNOTES` file.
 * Access to the common docker registry
 
 ## Project folder structure
-* /build: contains build tools (scripts, Dockerfiles, etc.)
-* /manifest: contains deployment files (Kubernetes manifests, Helm chart)
+* /manifest: contains deployment files (Kubernetes manifests)
 * /cmd: contains go project's main file
-* /pkg: contains go project's internal packages
+* /pkg: contains go project's packages
 * /config: contains default configuration file for the service
-* /test: contains CI/CD testing files (scripts, mocks, manifests)
+* /test: contains CI/CD testing files (scripts, stubs, mocks, manifests)
 
 ## Installation guide
 
 ### Compiling code
-Enter the project root and execute ` docker build -t submgr:tag .`.
+Enter the project root and execute `docker build -t submgr:tag .`.
 The Dockerfile has two main phases. First is the code compilation, where it creates an intermediate container for downloading all dependencies then compiles the code. In the second phase it builds the production ready container.
 
 **NOTE:** If you are behind proxy, see this guide: https://docs.docker.com/network/proxy/#configure-the-docker-client
@@ -51,16 +53,16 @@ The Dockerfile has two main phases. First is the code compilation, where it crea
 ### Installing Subscription Manager
 #### Preparing environment
 Tag the `submgr` container according to the project release and push it to a registry accessible from all minions of the Kubernetes cluster.
-Edit the container image section of `submgr-dep.yaml` file according to the `submgr` image tag.
+Edit the container image section of `submgr-dep.yaml` file and set the `submgr` image tag accordingly.
 
-#### Deploying Subscription Manager 
+#### Deploying Subscription Manager
 Issue the `kubectl create -f {manifest.yaml}` command in the following order
   1. `manifests/namespace.yaml`: creates the `example` namespace for routing-manager resources
   2. `manifests/submgr/submgr-dep.yaml`: instantiates the `submgr` deployment in the `example` namespace
   3. `manifests/submgr/submgr-svc.yaml`: creates the `submgr` service in `example` namespace
 
 ### Testing and Troubleshoting
-Subscription Manager's behaviour can be tested using the stub xApp (called RCO) and the stub E2 Termination (called E2T) on the following way.
+Subscription Manager's behaviour can be tested using the provided stub xApp (called RCO) and the stub E2 Termination (called E2T) on the following way.
 
   1. [Compile](#compiling-code) and [Installing subscription manager](#installing-subscription-manager)
   2  Enter `./test/dbaas` folder and issue `kubectl apply -f ./manifests`
@@ -68,19 +70,50 @@ Subscription Manager's behaviour can be tested using the stub xApp (called RCO)
   4. Enter `./test/rco/` folder and run `build.sh`. After docker image successfully built, issue `kubectl apply -f ./manifests`
   5. Configure RMR routes accordingly
 
-Test scenario:
-  1. RCO alternately sends Subscription Request (12010) and other (10000) type of messages towards SUBMGR. (non ASN1 code/decode)
-  2. SUBMGR receives RCO's subscription request and generates a new ID for the given request and puts it in the header of RMR messages to be forwareded to E2T
-  3. E2T receives the Subscription Request message and sends a Subscription Response to SUBMGR
-  4. SUBMGR accepts the Subscirption Response and forwards it to RCO
+Sunny Day testing scenario:
+  1. RCO (stub) sends valid Subscription Requests (12010) to SUBMGR.
+  2. SUBMGR receives RCO's subscription request and generates and puts a new ID in the given request and forwards it to E2T (stub)
+  3. E2T (stub) receives the Subscription Request message and sends a valid Subscription Response (12011) to SUBMGR
+  4. SUBMGR accepts the Subscirption Response and forwards it to RCO (stub)
+
+Rainy Day testing scenarios:
+
+* Wrong/Malformed Request
+  1. RCO (stub) sends non-subsciption type (10000) message to SUBMGR.
+  2. SUBMGR discards the non-subscription related tye message and emmits an error log entry on it's standard output
+  3. RCO (stub) sends Subscription Request type (12010) messages to SUBMGR but with malformed payload
+  4. SUBMGR accepts the Suubscription Requets but fails to decode so emmits an error log entry on it's standard output
+
+* Wrong/Malformed Response
+  1. E2T (stub) sends Subsciption Response type (12011) message to SUBMGR but with wrong Subscription Sequence Number
+  2. SUBMGR accepts the Suubscription Response but it emmits an error log entry on it's standard output since the given Sequence Number is invalid
+  3. E2T (stub) sends Subscription Response type (12011) messages but with malformed payload to SUBMGR
+  4. SUBMGR accepts the Subscription Response but fails to decode so emmits an error log entry on it's standard output
+
+NOTES:
+* Both stub component use pre coded E2 message as a skeleton to set or get the `ricRequestSequenceNumber` in it and pass it between the components. The message presented as a hex dump which is inprinted in the code. Use the `RCO_RAWDATA` and `E2T_RAWDATA` environment variables in the pod manifest to override the default skeleton messages.
+* RCO (stub) sends Subscription Requests with ID=12345 by default. Use the `RCO_SEED_SN` environment variable in the pod manifest to override this number.
 
 
 ## Configuration and Troubleshooting
 Basic configuration file provided in `./config/` folder. Consult xapp-frame project documentation for custom configuration settings.
+`SUBMGR_SEED_SN` environment variable is defined in the pod manifest and used to control the initial value of the Subscription Sequence Number. If this environment variable is undefied, SUBMGR choses a random number from the range of 0-65535
 
 ## Upcoming changes
-[] ASN1 support
+[] Unit tests
+
+[] Full RTMGR integration
+
+[] Jaeger tracing support
+
+
+[] Generate ASN1-C code in build time 
+
+[] Full RTMGR integration
+
+[] Jaeger tracing support
+
+[] Rainy Day scenarios
 
 ## License
 This project is licensed under the Apache License, Version 2.0 - see the [LICENSE](LICENSE)
-
index f9df805..36f8eac 100644 (file)
--- a/RELNOTES
+++ b/RELNOTES
@@ -1,6 +1,22 @@
+### v0.5.0
+* Introduces ASN1-C generated E2AP encode/decode
+* Introduces RCO_RAWDATA and E2T_RAWDATA env variables on order to inject initial encoded messge in hex format into stub component for testing purposes
+* Receives and validates Subscription Response type messages
+* Improved request and response error handling (invalid or malformed messages in sunny day cases)
+* Introduces RCO_SEED_SN env variable
+
+### v0.4.0
+
+### v0.3.0
+* Introduces SUBMGR_SEED_SN env variable to initialize the sequence
+* Stores Subscription ID as uint16
+
+### v0.2.0
+
 ### v0.1.1
 * Dockerfile updates
-### v0.1.0i
+
+### v0.1.0
 * Receives and Forwards RMR Subscription Requests
 * Introduces RCO (Stub xApp) and E2T (Stub Platform Component) for testing purposes
 * Builder and Deployer scripts and manifests 
index 3af1069..ea0cde3 100644 (file)
@@ -23,7 +23,7 @@ import (
        "gerrit.o-ran-sc.org/r/ric-plt/submgr/pkg/control"
 )
 
-func main(){
+func main() {
        c := control.NewControl()
        c.Run()
 }
index e91fbdf..0060727 100644 (file)
@@ -16,7 +16,7 @@
 "local":
   "host": ":8080"
 "logger":
-  "level": 4
+  "level": 3
 "rmr":
   "protPort": "tcp:4560"
   "maxSize": 2072
index 13e64f5..70ff3e3 100644 (file)
@@ -2,4 +2,4 @@
 # By default this file is in the docker build directory,
 # but the location can configured in the JJB template.
 ---
-tag: 0.1.1
+tag: 0.5.0
diff --git a/e2ap/headers/ABS-Status.h b/e2ap/headers/ABS-Status.h
new file mode 100644 (file)
index 0000000..a0dfd6d
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ABS_Status_H_
+#define        _ABS_Status_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "DL-ABS-status.h"
+#include "UsableABSInformation.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ABS-Status */
+typedef struct ABS_Status {
+       DL_ABS_status_t  dL_ABS_status;
+       UsableABSInformation_t   usableABSInformation;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ABS_Status_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ABS_Status;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ABS_Status_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ABSInformation.h b/e2ap/headers/ABSInformation.h
new file mode 100644 (file)
index 0000000..9705f87
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ABSInformation_H_
+#define        _ABSInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NULL.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ABSInformation_PR {
+       ABSInformation_PR_NOTHING,      /* No components present */
+       ABSInformation_PR_fdd,
+       ABSInformation_PR_tdd,
+       ABSInformation_PR_abs_inactive
+       /* Extensions may appear below */
+       
+} ABSInformation_PR;
+
+/* Forward declarations */
+struct ABSInformationFDD;
+struct ABSInformationTDD;
+
+/* ABSInformation */
+typedef struct ABSInformation {
+       ABSInformation_PR present;
+       union ABSInformation_u {
+               struct ABSInformationFDD        *fdd;
+               struct ABSInformationTDD        *tdd;
+               NULL_t   abs_inactive;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ABSInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ABSInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ABSInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ABSInformationFDD.h b/e2ap/headers/ABSInformationFDD.h
new file mode 100644 (file)
index 0000000..b2f1d72
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ABSInformationFDD_H_
+#define        _ABSInformationFDD_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include <NativeEnumerated.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ABSInformationFDD__numberOfCellSpecificAntennaPorts {
+       ABSInformationFDD__numberOfCellSpecificAntennaPorts_one = 0,
+       ABSInformationFDD__numberOfCellSpecificAntennaPorts_two = 1,
+       ABSInformationFDD__numberOfCellSpecificAntennaPorts_four        = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_ABSInformationFDD__numberOfCellSpecificAntennaPorts;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ABSInformationFDD */
+typedef struct ABSInformationFDD {
+       BIT_STRING_t     abs_pattern_info;
+       long     numberOfCellSpecificAntennaPorts;
+       BIT_STRING_t     measurement_subset;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ABSInformationFDD_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_numberOfCellSpecificAntennaPorts_3;    // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_ABSInformationFDD;
+extern asn_SEQUENCE_specifics_t asn_SPC_ABSInformationFDD_specs_1;
+extern asn_TYPE_member_t asn_MBR_ABSInformationFDD_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ABSInformationFDD_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ABSInformationTDD.h b/e2ap/headers/ABSInformationTDD.h
new file mode 100644 (file)
index 0000000..7644c0c
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ABSInformationTDD_H_
+#define        _ABSInformationTDD_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include <NativeEnumerated.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ABSInformationTDD__numberOfCellSpecificAntennaPorts {
+       ABSInformationTDD__numberOfCellSpecificAntennaPorts_one = 0,
+       ABSInformationTDD__numberOfCellSpecificAntennaPorts_two = 1,
+       ABSInformationTDD__numberOfCellSpecificAntennaPorts_four        = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_ABSInformationTDD__numberOfCellSpecificAntennaPorts;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ABSInformationTDD */
+typedef struct ABSInformationTDD {
+       BIT_STRING_t     abs_pattern_info;
+       long     numberOfCellSpecificAntennaPorts;
+       BIT_STRING_t     measurement_subset;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ABSInformationTDD_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_numberOfCellSpecificAntennaPorts_3;    // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_ABSInformationTDD;
+extern asn_SEQUENCE_specifics_t asn_SPC_ABSInformationTDD_specs_1;
+extern asn_TYPE_member_t asn_MBR_ABSInformationTDD_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ABSInformationTDD_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ANY.h b/e2ap/headers/ANY.h
new file mode 100644 (file)
index 0000000..b30381f
--- /dev/null
@@ -0,0 +1,65 @@
+/*-
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN_TYPE_ANY_H
+#define ASN_TYPE_ANY_H
+
+#include <OCTET_STRING.h>      /* Implemented via OCTET STRING type */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct ANY {
+       uint8_t *buf;   /* BER-encoded ANY contents */
+       int size;       /* Size of the above buffer */
+
+       asn_struct_ctx_t _asn_ctx;      /* Parsing across buffer boundaries */
+} ANY_t;
+
+extern asn_TYPE_descriptor_t asn_DEF_ANY;
+extern asn_TYPE_operation_t asn_OP_ANY;
+extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs;
+
+asn_struct_free_f ANY_free;
+asn_struct_print_f ANY_print;
+ber_type_decoder_f ANY_decode_ber;
+der_type_encoder_f ANY_encode_der;
+xer_type_encoder_f ANY_encode_xer;
+per_type_decoder_f ANY_decode_uper;
+per_type_encoder_f ANY_encode_uper;
+per_type_decoder_f ANY_decode_aper;
+per_type_encoder_f ANY_encode_aper;
+
+#define ANY_free         OCTET_STRING_free
+#define ANY_print        OCTET_STRING_print
+#define ANY_compare      OCTET_STRING_compare
+#define ANY_constraint   asn_generic_no_constraint
+#define ANY_decode_ber   OCTET_STRING_decode_ber
+#define ANY_encode_der   OCTET_STRING_encode_der
+#define ANY_decode_xer   OCTET_STRING_decode_xer_hex
+
+/******************************
+ * Handy conversion routines. *
+ ******************************/
+
+/* Convert another ASN.1 type into the ANY. This implies DER encoding. */
+int ANY_fromType(ANY_t *, asn_TYPE_descriptor_t *td, void *struct_ptr);
+int ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr);
+ANY_t *ANY_new_fromType(asn_TYPE_descriptor_t *td, void *struct_ptr);
+ANY_t *ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr);
+
+/* Convert the contents of the ANY type into the specified type. */
+int ANY_to_type(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr);
+int ANY_to_type_aper(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr);
+
+#define        ANY_fromBuf(s, buf, size)       OCTET_STRING_fromBuf((s), (buf), (size))
+#define        ANY_new_fromBuf(buf, size)      OCTET_STRING_new_fromBuf(       \
+                                               &asn_DEF_ANY, (buf), (size))
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ASN_TYPE_ANY_H */
diff --git a/e2ap/headers/AS-SecurityInformation.h b/e2ap/headers/AS-SecurityInformation.h
new file mode 100644 (file)
index 0000000..ed607ce
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _AS_SecurityInformation_H_
+#define        _AS_SecurityInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Key-eNodeB-Star.h"
+#include "NextHopChainingCount.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* AS-SecurityInformation */
+typedef struct AS_SecurityInformation {
+       Key_eNodeB_Star_t        key_eNodeB_star;
+       NextHopChainingCount_t   nextHopChainingCount;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} AS_SecurityInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AS_SecurityInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_AS_SecurityInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_AS_SecurityInformation_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AS_SecurityInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ActionParameter-ID.h b/e2ap/headers/ActionParameter-ID.h
new file mode 100644 (file)
index 0000000..d8716d5
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ActionParameter_ID_H_
+#define        _ActionParameter_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ActionParameter-ID */
+typedef long    ActionParameter_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ActionParameter_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ActionParameter_ID;
+asn_struct_free_f ActionParameter_ID_free;
+asn_struct_print_f ActionParameter_ID_print;
+asn_constr_check_f ActionParameter_ID_constraint;
+ber_type_decoder_f ActionParameter_ID_decode_ber;
+der_type_encoder_f ActionParameter_ID_encode_der;
+xer_type_decoder_f ActionParameter_ID_decode_xer;
+xer_type_encoder_f ActionParameter_ID_encode_xer;
+oer_type_decoder_f ActionParameter_ID_decode_oer;
+oer_type_encoder_f ActionParameter_ID_encode_oer;
+per_type_decoder_f ActionParameter_ID_decode_uper;
+per_type_encoder_f ActionParameter_ID_encode_uper;
+per_type_decoder_f ActionParameter_ID_decode_aper;
+per_type_encoder_f ActionParameter_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ActionParameter_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ActionParameter-Item.h b/e2ap/headers/ActionParameter-Item.h
new file mode 100644 (file)
index 0000000..a47b853
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ActionParameter_Item_H_
+#define        _ActionParameter_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ActionParameter-ID.h"
+#include "ActionParameter-Value.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ActionParameter-Item */
+typedef struct ActionParameter_Item {
+       ActionParameter_ID_t     actionParameter_ID;
+       ActionParameter_Value_t  actionParameter_Value;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ActionParameter_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ActionParameter_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_ActionParameter_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_ActionParameter_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ActionParameter_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ActionParameter-Value.h b/e2ap/headers/ActionParameter-Value.h
new file mode 100644 (file)
index 0000000..5c1e3b8
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ActionParameter_Value_H_
+#define        _ActionParameter_Value_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <BOOLEAN.h>
+#include <BIT_STRING.h>
+#include <OCTET_STRING.h>
+#include <PrintableString.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ActionParameter_Value_PR {
+       ActionParameter_Value_PR_NOTHING,       /* No components present */
+       ActionParameter_Value_PR_valueInt,
+       ActionParameter_Value_PR_valueEnum,
+       ActionParameter_Value_PR_valueBool,
+       ActionParameter_Value_PR_valueBitS,
+       ActionParameter_Value_PR_valueOctS,
+       ActionParameter_Value_PR_valuePrtS
+       /* Extensions may appear below */
+       
+} ActionParameter_Value_PR;
+
+/* ActionParameter-Value */
+typedef struct ActionParameter_Value {
+       ActionParameter_Value_PR present;
+       union ActionParameter_Value_u {
+               long     valueInt;
+               long     valueEnum;
+               BOOLEAN_t        valueBool;
+               BIT_STRING_t     valueBitS;
+               OCTET_STRING_t   valueOctS;
+               PrintableString_t        valuePrtS;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ActionParameter_Value_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ActionParameter_Value;
+extern asn_CHOICE_specifics_t asn_SPC_ActionParameter_Value_specs_1;
+extern asn_TYPE_member_t asn_MBR_ActionParameter_Value_1[6];
+extern asn_per_constraints_t asn_PER_type_ActionParameter_Value_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ActionParameter_Value_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ActivatedCellList-Item.h b/e2ap/headers/ActivatedCellList-Item.h
new file mode 100644 (file)
index 0000000..51fc1ee
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ActivatedCellList_Item_H_
+#define        _ActivatedCellList_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ECGI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ActivatedCellList-Item */
+typedef struct ActivatedCellList_Item {
+       ECGI_t   ecgi;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ActivatedCellList_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ActivatedCellList_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_ActivatedCellList_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_ActivatedCellList_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ActivatedCellList_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ActivatedCellList.h b/e2ap/headers/ActivatedCellList.h
new file mode 100644 (file)
index 0000000..50b95ac
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ActivatedCellList_H_
+#define        _ActivatedCellList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ActivatedCellList_Item;
+
+/* ActivatedCellList */
+typedef struct ActivatedCellList {
+       A_SEQUENCE_OF(struct ActivatedCellList_Item) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ActivatedCellList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ActivatedCellList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ActivatedCellList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ActivatedNRCellList-Item.h b/e2ap/headers/ActivatedNRCellList-Item.h
new file mode 100644 (file)
index 0000000..d8e6678
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ActivatedNRCellList_Item_H_
+#define        _ActivatedNRCellList_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NRCGI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ActivatedNRCellList-Item */
+typedef struct ActivatedNRCellList_Item {
+       NRCGI_t  nrCellID;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ActivatedNRCellList_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ActivatedNRCellList_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_ActivatedNRCellList_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_ActivatedNRCellList_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ActivatedNRCellList_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ActivatedNRCellList.h b/e2ap/headers/ActivatedNRCellList.h
new file mode 100644 (file)
index 0000000..7973a2a
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ActivatedNRCellList_H_
+#define        _ActivatedNRCellList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ActivatedNRCellList_Item;
+
+/* ActivatedNRCellList */
+typedef struct ActivatedNRCellList {
+       A_SEQUENCE_OF(struct ActivatedNRCellList_Item) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ActivatedNRCellList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ActivatedNRCellList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ActivatedNRCellList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ActivationID.h b/e2ap/headers/ActivationID.h
new file mode 100644 (file)
index 0000000..2cfaa90
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ActivationID_H_
+#define        _ActivationID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ActivationID */
+typedef long    ActivationID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ActivationID;
+asn_struct_free_f ActivationID_free;
+asn_struct_print_f ActivationID_print;
+asn_constr_check_f ActivationID_constraint;
+ber_type_decoder_f ActivationID_decode_ber;
+der_type_encoder_f ActivationID_encode_der;
+xer_type_decoder_f ActivationID_decode_xer;
+xer_type_encoder_f ActivationID_encode_xer;
+oer_type_decoder_f ActivationID_decode_oer;
+oer_type_encoder_f ActivationID_encode_oer;
+per_type_decoder_f ActivationID_decode_uper;
+per_type_encoder_f ActivationID_encode_uper;
+per_type_decoder_f ActivationID_decode_aper;
+per_type_encoder_f ActivationID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ActivationID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/AdditionalSpecialSubframe-Info.h b/e2ap/headers/AdditionalSpecialSubframe-Info.h
new file mode 100644 (file)
index 0000000..b20136a
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _AdditionalSpecialSubframe_Info_H_
+#define        _AdditionalSpecialSubframe_Info_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "AdditionalSpecialSubframePatterns.h"
+#include "CyclicPrefixDL.h"
+#include "CyclicPrefixUL.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* AdditionalSpecialSubframe-Info */
+typedef struct AdditionalSpecialSubframe_Info {
+       AdditionalSpecialSubframePatterns_t      additionalspecialSubframePatterns;
+       CyclicPrefixDL_t         cyclicPrefixDL;
+       CyclicPrefixUL_t         cyclicPrefixUL;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} AdditionalSpecialSubframe_Info_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframe_Info;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AdditionalSpecialSubframe_Info_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/AdditionalSpecialSubframeExtension-Info.h b/e2ap/headers/AdditionalSpecialSubframeExtension-Info.h
new file mode 100644 (file)
index 0000000..bcbca90
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _AdditionalSpecialSubframeExtension_Info_H_
+#define        _AdditionalSpecialSubframeExtension_Info_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "AdditionalSpecialSubframePatternsExtension.h"
+#include "CyclicPrefixDL.h"
+#include "CyclicPrefixUL.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* AdditionalSpecialSubframeExtension-Info */
+typedef struct AdditionalSpecialSubframeExtension_Info {
+       AdditionalSpecialSubframePatternsExtension_t     additionalspecialSubframePatternsExtension;
+       CyclicPrefixDL_t         cyclicPrefixDL;
+       CyclicPrefixUL_t         cyclicPrefixUL;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} AdditionalSpecialSubframeExtension_Info_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframeExtension_Info;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AdditionalSpecialSubframeExtension_Info_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/AdditionalSpecialSubframePatterns.h b/e2ap/headers/AdditionalSpecialSubframePatterns.h
new file mode 100644 (file)
index 0000000..f49bb93
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _AdditionalSpecialSubframePatterns_H_
+#define        _AdditionalSpecialSubframePatterns_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum AdditionalSpecialSubframePatterns {
+       AdditionalSpecialSubframePatterns_ssp0  = 0,
+       AdditionalSpecialSubframePatterns_ssp1  = 1,
+       AdditionalSpecialSubframePatterns_ssp2  = 2,
+       AdditionalSpecialSubframePatterns_ssp3  = 3,
+       AdditionalSpecialSubframePatterns_ssp4  = 4,
+       AdditionalSpecialSubframePatterns_ssp5  = 5,
+       AdditionalSpecialSubframePatterns_ssp6  = 6,
+       AdditionalSpecialSubframePatterns_ssp7  = 7,
+       AdditionalSpecialSubframePatterns_ssp8  = 8,
+       AdditionalSpecialSubframePatterns_ssp9  = 9
+       /*
+        * Enumeration is extensible
+        */
+} e_AdditionalSpecialSubframePatterns;
+
+/* AdditionalSpecialSubframePatterns */
+typedef long    AdditionalSpecialSubframePatterns_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_AdditionalSpecialSubframePatterns_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframePatterns;
+extern const asn_INTEGER_specifics_t asn_SPC_AdditionalSpecialSubframePatterns_specs_1;
+asn_struct_free_f AdditionalSpecialSubframePatterns_free;
+asn_struct_print_f AdditionalSpecialSubframePatterns_print;
+asn_constr_check_f AdditionalSpecialSubframePatterns_constraint;
+ber_type_decoder_f AdditionalSpecialSubframePatterns_decode_ber;
+der_type_encoder_f AdditionalSpecialSubframePatterns_encode_der;
+xer_type_decoder_f AdditionalSpecialSubframePatterns_decode_xer;
+xer_type_encoder_f AdditionalSpecialSubframePatterns_encode_xer;
+oer_type_decoder_f AdditionalSpecialSubframePatterns_decode_oer;
+oer_type_encoder_f AdditionalSpecialSubframePatterns_encode_oer;
+per_type_decoder_f AdditionalSpecialSubframePatterns_decode_uper;
+per_type_encoder_f AdditionalSpecialSubframePatterns_encode_uper;
+per_type_decoder_f AdditionalSpecialSubframePatterns_decode_aper;
+per_type_encoder_f AdditionalSpecialSubframePatterns_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AdditionalSpecialSubframePatterns_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/AdditionalSpecialSubframePatternsExtension.h b/e2ap/headers/AdditionalSpecialSubframePatternsExtension.h
new file mode 100644 (file)
index 0000000..3a15690
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _AdditionalSpecialSubframePatternsExtension_H_
+#define        _AdditionalSpecialSubframePatternsExtension_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum AdditionalSpecialSubframePatternsExtension {
+       AdditionalSpecialSubframePatternsExtension_ssp10        = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_AdditionalSpecialSubframePatternsExtension;
+
+/* AdditionalSpecialSubframePatternsExtension */
+typedef long    AdditionalSpecialSubframePatternsExtension_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_AdditionalSpecialSubframePatternsExtension_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframePatternsExtension;
+extern const asn_INTEGER_specifics_t asn_SPC_AdditionalSpecialSubframePatternsExtension_specs_1;
+asn_struct_free_f AdditionalSpecialSubframePatternsExtension_free;
+asn_struct_print_f AdditionalSpecialSubframePatternsExtension_print;
+asn_constr_check_f AdditionalSpecialSubframePatternsExtension_constraint;
+ber_type_decoder_f AdditionalSpecialSubframePatternsExtension_decode_ber;
+der_type_encoder_f AdditionalSpecialSubframePatternsExtension_encode_der;
+xer_type_decoder_f AdditionalSpecialSubframePatternsExtension_decode_xer;
+xer_type_encoder_f AdditionalSpecialSubframePatternsExtension_encode_xer;
+oer_type_decoder_f AdditionalSpecialSubframePatternsExtension_decode_oer;
+oer_type_encoder_f AdditionalSpecialSubframePatternsExtension_encode_oer;
+per_type_decoder_f AdditionalSpecialSubframePatternsExtension_decode_uper;
+per_type_encoder_f AdditionalSpecialSubframePatternsExtension_encode_uper;
+per_type_decoder_f AdditionalSpecialSubframePatternsExtension_decode_aper;
+per_type_encoder_f AdditionalSpecialSubframePatternsExtension_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AdditionalSpecialSubframePatternsExtension_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/AerialUEsubscriptionInformation.h b/e2ap/headers/AerialUEsubscriptionInformation.h
new file mode 100644 (file)
index 0000000..5131075
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _AerialUEsubscriptionInformation_H_
+#define        _AerialUEsubscriptionInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum AerialUEsubscriptionInformation {
+       AerialUEsubscriptionInformation_allowed = 0,
+       AerialUEsubscriptionInformation_not_allowed     = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_AerialUEsubscriptionInformation;
+
+/* AerialUEsubscriptionInformation */
+typedef long    AerialUEsubscriptionInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AerialUEsubscriptionInformation;
+asn_struct_free_f AerialUEsubscriptionInformation_free;
+asn_struct_print_f AerialUEsubscriptionInformation_print;
+asn_constr_check_f AerialUEsubscriptionInformation_constraint;
+ber_type_decoder_f AerialUEsubscriptionInformation_decode_ber;
+der_type_encoder_f AerialUEsubscriptionInformation_encode_der;
+xer_type_decoder_f AerialUEsubscriptionInformation_decode_xer;
+xer_type_encoder_f AerialUEsubscriptionInformation_encode_xer;
+oer_type_decoder_f AerialUEsubscriptionInformation_decode_oer;
+oer_type_encoder_f AerialUEsubscriptionInformation_encode_oer;
+per_type_decoder_f AerialUEsubscriptionInformation_decode_uper;
+per_type_encoder_f AerialUEsubscriptionInformation_encode_uper;
+per_type_decoder_f AerialUEsubscriptionInformation_decode_aper;
+per_type_encoder_f AerialUEsubscriptionInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AerialUEsubscriptionInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/AllocationAndRetentionPriority.h b/e2ap/headers/AllocationAndRetentionPriority.h
new file mode 100644 (file)
index 0000000..19cb698
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _AllocationAndRetentionPriority_H_
+#define        _AllocationAndRetentionPriority_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PriorityLevel.h"
+#include "Pre-emptionCapability.h"
+#include "Pre-emptionVulnerability.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* AllocationAndRetentionPriority */
+typedef struct AllocationAndRetentionPriority {
+       PriorityLevel_t  priorityLevel;
+       Pre_emptionCapability_t  pre_emptionCapability;
+       Pre_emptionVulnerability_t       pre_emptionVulnerability;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} AllocationAndRetentionPriority_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AllocationAndRetentionPriority;
+extern asn_SEQUENCE_specifics_t asn_SPC_AllocationAndRetentionPriority_specs_1;
+extern asn_TYPE_member_t asn_MBR_AllocationAndRetentionPriority_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AllocationAndRetentionPriority_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/AreaScopeOfMDT.h b/e2ap/headers/AreaScopeOfMDT.h
new file mode 100644 (file)
index 0000000..b4be1ef
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _AreaScopeOfMDT_H_
+#define        _AreaScopeOfMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NULL.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum AreaScopeOfMDT_PR {
+       AreaScopeOfMDT_PR_NOTHING,      /* No components present */
+       AreaScopeOfMDT_PR_cellBased,
+       AreaScopeOfMDT_PR_tABased,
+       AreaScopeOfMDT_PR_pLMNWide,
+       /* Extensions may appear below */
+       AreaScopeOfMDT_PR_tAIBased
+} AreaScopeOfMDT_PR;
+
+/* Forward declarations */
+struct CellBasedMDT;
+struct TABasedMDT;
+struct TAIBasedMDT;
+
+/* AreaScopeOfMDT */
+typedef struct AreaScopeOfMDT {
+       AreaScopeOfMDT_PR present;
+       union AreaScopeOfMDT_u {
+               struct CellBasedMDT     *cellBased;
+               struct TABasedMDT       *tABased;
+               NULL_t   pLMNWide;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+               struct TAIBasedMDT      *tAIBased;
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} AreaScopeOfMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AreaScopeOfMDT;
+extern asn_CHOICE_specifics_t asn_SPC_AreaScopeOfMDT_specs_1;
+extern asn_TYPE_member_t asn_MBR_AreaScopeOfMDT_1[4];
+extern asn_per_constraints_t asn_PER_type_AreaScopeOfMDT_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AreaScopeOfMDT_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/AreaScopeOfQMC.h b/e2ap/headers/AreaScopeOfQMC.h
new file mode 100644 (file)
index 0000000..3c4f81a
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _AreaScopeOfQMC_H_
+#define        _AreaScopeOfQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum AreaScopeOfQMC_PR {
+       AreaScopeOfQMC_PR_NOTHING,      /* No components present */
+       AreaScopeOfQMC_PR_cellBased,
+       AreaScopeOfQMC_PR_tABased,
+       AreaScopeOfQMC_PR_tAIBased,
+       AreaScopeOfQMC_PR_pLMNAreaBased
+       /* Extensions may appear below */
+       
+} AreaScopeOfQMC_PR;
+
+/* Forward declarations */
+struct CellBasedQMC;
+struct TABasedQMC;
+struct TAIBasedQMC;
+struct PLMNAreaBasedQMC;
+
+/* AreaScopeOfQMC */
+typedef struct AreaScopeOfQMC {
+       AreaScopeOfQMC_PR present;
+       union AreaScopeOfQMC_u {
+               struct CellBasedQMC     *cellBased;
+               struct TABasedQMC       *tABased;
+               struct TAIBasedQMC      *tAIBased;
+               struct PLMNAreaBasedQMC *pLMNAreaBased;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} AreaScopeOfQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AreaScopeOfQMC;
+extern asn_CHOICE_specifics_t asn_SPC_AreaScopeOfQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_AreaScopeOfQMC_1[4];
+extern asn_per_constraints_t asn_PER_type_AreaScopeOfQMC_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AreaScopeOfQMC_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/BIT_STRING.h b/e2ap/headers/BIT_STRING.h
new file mode 100644 (file)
index 0000000..c1bdbbc
--- /dev/null
@@ -0,0 +1,48 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _BIT_STRING_H_
+#define        _BIT_STRING_H_
+
+#include <OCTET_STRING.h>      /* Some help from OCTET STRING */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct BIT_STRING_s {
+       uint8_t *buf;   /* BIT STRING body */
+       size_t size;    /* Size of the above buffer */
+
+       int bits_unused;/* Unused trailing bits in the last octet (0..7) */
+
+       asn_struct_ctx_t _asn_ctx;      /* Parsing across buffer boundaries */
+} BIT_STRING_t;
+
+extern asn_TYPE_descriptor_t asn_DEF_BIT_STRING;
+extern asn_TYPE_operation_t asn_OP_BIT_STRING;
+extern asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs;
+
+asn_struct_print_f BIT_STRING_print;   /* Human-readable output */
+asn_struct_compare_f BIT_STRING_compare;
+asn_constr_check_f BIT_STRING_constraint;
+xer_type_encoder_f BIT_STRING_encode_xer;
+oer_type_decoder_f BIT_STRING_decode_oer;
+oer_type_encoder_f BIT_STRING_encode_oer;
+per_type_decoder_f BIT_STRING_decode_uper;
+per_type_encoder_f BIT_STRING_encode_uper;
+asn_random_fill_f  BIT_STRING_random_fill;
+
+#define BIT_STRING_free              OCTET_STRING_free
+#define BIT_STRING_decode_ber        OCTET_STRING_decode_ber
+#define BIT_STRING_encode_der        OCTET_STRING_encode_der
+#define BIT_STRING_decode_xer        OCTET_STRING_decode_xer_binary
+#define BIT_STRING_decode_aper       OCTET_STRING_decode_aper
+#define BIT_STRING_encode_aper       OCTET_STRING_encode_aper
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BIT_STRING_H_ */
diff --git a/e2ap/headers/BOOLEAN.h b/e2ap/headers/BOOLEAN.h
new file mode 100644 (file)
index 0000000..620acf7
--- /dev/null
@@ -0,0 +1,45 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _BOOLEAN_H_
+#define        _BOOLEAN_H_
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The underlying integer may contain various values, but everything
+ * non-zero is capped to 0xff by the DER encoder. The BER decoder may
+ * yield non-zero values different from 1, beware.
+ */
+typedef int BOOLEAN_t;
+
+extern asn_TYPE_descriptor_t asn_DEF_BOOLEAN;
+extern asn_TYPE_operation_t asn_OP_BOOLEAN;
+
+asn_struct_free_f BOOLEAN_free;
+asn_struct_print_f BOOLEAN_print;
+asn_struct_compare_f BOOLEAN_compare;
+ber_type_decoder_f BOOLEAN_decode_ber;
+der_type_encoder_f BOOLEAN_encode_der;
+oer_type_decoder_f BOOLEAN_decode_oer;
+oer_type_encoder_f BOOLEAN_encode_oer;
+per_type_decoder_f BOOLEAN_decode_uper;
+per_type_encoder_f BOOLEAN_encode_uper;
+per_type_decoder_f BOOLEAN_decode_aper;
+per_type_encoder_f BOOLEAN_encode_aper;
+xer_type_decoder_f BOOLEAN_decode_xer;
+xer_type_encoder_f BOOLEAN_encode_xer;
+asn_random_fill_f  BOOLEAN_random_fill;
+
+#define BOOLEAN_constraint     asn_generic_no_constraint
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BOOLEAN_H_ */
diff --git a/e2ap/headers/BandInfo.h b/e2ap/headers/BandInfo.h
new file mode 100644 (file)
index 0000000..4db1a00
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _BandInfo_H_
+#define        _BandInfo_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "FreqBandIndicator.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* BandInfo */
+typedef struct BandInfo {
+       FreqBandIndicator_t      freqBandIndicator;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} BandInfo_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_BandInfo;
+extern asn_SEQUENCE_specifics_t asn_SPC_BandInfo_specs_1;
+extern asn_TYPE_member_t asn_MBR_BandInfo_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BandInfo_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/BandwidthReducedSI.h b/e2ap/headers/BandwidthReducedSI.h
new file mode 100644 (file)
index 0000000..cf54a17
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _BandwidthReducedSI_H_
+#define        _BandwidthReducedSI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum BandwidthReducedSI {
+       BandwidthReducedSI_scheduled    = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_BandwidthReducedSI;
+
+/* BandwidthReducedSI */
+typedef long    BandwidthReducedSI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_BandwidthReducedSI;
+asn_struct_free_f BandwidthReducedSI_free;
+asn_struct_print_f BandwidthReducedSI_print;
+asn_constr_check_f BandwidthReducedSI_constraint;
+ber_type_decoder_f BandwidthReducedSI_decode_ber;
+der_type_encoder_f BandwidthReducedSI_encode_der;
+xer_type_decoder_f BandwidthReducedSI_decode_xer;
+xer_type_encoder_f BandwidthReducedSI_encode_xer;
+oer_type_decoder_f BandwidthReducedSI_decode_oer;
+oer_type_encoder_f BandwidthReducedSI_encode_oer;
+per_type_decoder_f BandwidthReducedSI_decode_uper;
+per_type_encoder_f BandwidthReducedSI_encode_uper;
+per_type_decoder_f BandwidthReducedSI_decode_aper;
+per_type_encoder_f BandwidthReducedSI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BandwidthReducedSI_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/BearerType.h b/e2ap/headers/BearerType.h
new file mode 100644 (file)
index 0000000..cc0ee92
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _BearerType_H_
+#define        _BearerType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum BearerType {
+       BearerType_non_IP       = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_BearerType;
+
+/* BearerType */
+typedef long    BearerType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_BearerType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_BearerType;
+extern const asn_INTEGER_specifics_t asn_SPC_BearerType_specs_1;
+asn_struct_free_f BearerType_free;
+asn_struct_print_f BearerType_print;
+asn_constr_check_f BearerType_constraint;
+ber_type_decoder_f BearerType_decode_ber;
+der_type_encoder_f BearerType_encode_der;
+xer_type_decoder_f BearerType_decode_xer;
+xer_type_encoder_f BearerType_encode_xer;
+oer_type_decoder_f BearerType_decode_oer;
+oer_type_encoder_f BearerType_encode_oer;
+per_type_decoder_f BearerType_decode_uper;
+per_type_encoder_f BearerType_encode_uper;
+per_type_decoder_f BearerType_decode_aper;
+per_type_encoder_f BearerType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BearerType_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/BenefitMetric.h b/e2ap/headers/BenefitMetric.h
new file mode 100644 (file)
index 0000000..3746af6
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _BenefitMetric_H_
+#define        _BenefitMetric_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* BenefitMetric */
+typedef long    BenefitMetric_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_BenefitMetric_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_BenefitMetric;
+asn_struct_free_f BenefitMetric_free;
+asn_struct_print_f BenefitMetric_print;
+asn_constr_check_f BenefitMetric_constraint;
+ber_type_decoder_f BenefitMetric_decode_ber;
+der_type_encoder_f BenefitMetric_encode_der;
+xer_type_decoder_f BenefitMetric_decode_xer;
+xer_type_encoder_f BenefitMetric_encode_xer;
+oer_type_decoder_f BenefitMetric_decode_oer;
+oer_type_encoder_f BenefitMetric_encode_oer;
+per_type_decoder_f BenefitMetric_decode_uper;
+per_type_encoder_f BenefitMetric_encode_uper;
+per_type_decoder_f BenefitMetric_decode_aper;
+per_type_encoder_f BenefitMetric_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BenefitMetric_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/BitRate.h b/e2ap/headers/BitRate.h
new file mode 100644 (file)
index 0000000..a67e144
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _BitRate_H_
+#define        _BitRate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <INTEGER.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* BitRate */
+typedef INTEGER_t       BitRate_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_BitRate_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_BitRate;
+asn_struct_free_f BitRate_free;
+asn_struct_print_f BitRate_print;
+asn_constr_check_f BitRate_constraint;
+ber_type_decoder_f BitRate_decode_ber;
+der_type_encoder_f BitRate_encode_der;
+xer_type_decoder_f BitRate_decode_xer;
+xer_type_encoder_f BitRate_encode_xer;
+oer_type_decoder_f BitRate_decode_oer;
+oer_type_encoder_f BitRate_encode_oer;
+per_type_decoder_f BitRate_decode_uper;
+per_type_encoder_f BitRate_encode_uper;
+per_type_decoder_f BitRate_decode_aper;
+per_type_encoder_f BitRate_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BitRate_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/BluetoothMeasConfig.h b/e2ap/headers/BluetoothMeasConfig.h
new file mode 100644 (file)
index 0000000..298e438
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _BluetoothMeasConfig_H_
+#define        _BluetoothMeasConfig_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum BluetoothMeasConfig {
+       BluetoothMeasConfig_setup       = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_BluetoothMeasConfig;
+
+/* BluetoothMeasConfig */
+typedef long    BluetoothMeasConfig_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_BluetoothMeasConfig_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_BluetoothMeasConfig;
+extern const asn_INTEGER_specifics_t asn_SPC_BluetoothMeasConfig_specs_1;
+asn_struct_free_f BluetoothMeasConfig_free;
+asn_struct_print_f BluetoothMeasConfig_print;
+asn_constr_check_f BluetoothMeasConfig_constraint;
+ber_type_decoder_f BluetoothMeasConfig_decode_ber;
+der_type_encoder_f BluetoothMeasConfig_encode_der;
+xer_type_decoder_f BluetoothMeasConfig_decode_xer;
+xer_type_encoder_f BluetoothMeasConfig_encode_xer;
+oer_type_decoder_f BluetoothMeasConfig_decode_oer;
+oer_type_encoder_f BluetoothMeasConfig_encode_oer;
+per_type_decoder_f BluetoothMeasConfig_decode_uper;
+per_type_encoder_f BluetoothMeasConfig_encode_uper;
+per_type_decoder_f BluetoothMeasConfig_decode_aper;
+per_type_encoder_f BluetoothMeasConfig_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BluetoothMeasConfig_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/BluetoothMeasConfigNameList.h b/e2ap/headers/BluetoothMeasConfigNameList.h
new file mode 100644 (file)
index 0000000..9021904
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _BluetoothMeasConfigNameList_H_
+#define        _BluetoothMeasConfigNameList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "BluetoothName.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* BluetoothMeasConfigNameList */
+typedef struct BluetoothMeasConfigNameList {
+       A_SEQUENCE_OF(BluetoothName_t) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} BluetoothMeasConfigNameList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_BluetoothMeasConfigNameList;
+extern asn_SET_OF_specifics_t asn_SPC_BluetoothMeasConfigNameList_specs_1;
+extern asn_TYPE_member_t asn_MBR_BluetoothMeasConfigNameList_1[1];
+extern asn_per_constraints_t asn_PER_type_BluetoothMeasConfigNameList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BluetoothMeasConfigNameList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/BluetoothMeasurementConfiguration.h b/e2ap/headers/BluetoothMeasurementConfiguration.h
new file mode 100644 (file)
index 0000000..e1cb624
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _BluetoothMeasurementConfiguration_H_
+#define        _BluetoothMeasurementConfiguration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "BluetoothMeasConfig.h"
+#include <NativeEnumerated.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum BluetoothMeasurementConfiguration__bt_rssi {
+       BluetoothMeasurementConfiguration__bt_rssi_true = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_BluetoothMeasurementConfiguration__bt_rssi;
+
+/* Forward declarations */
+struct BluetoothMeasConfigNameList;
+struct ProtocolExtensionContainer;
+
+/* BluetoothMeasurementConfiguration */
+typedef struct BluetoothMeasurementConfiguration {
+       BluetoothMeasConfig_t    bluetoothMeasConfig;
+       struct BluetoothMeasConfigNameList      *bluetoothMeasConfigNameList;   /* OPTIONAL */
+       long    *bt_rssi;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} BluetoothMeasurementConfiguration_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_bt_rssi_4;     // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_BluetoothMeasurementConfiguration;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BluetoothMeasurementConfiguration_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/BluetoothName.h b/e2ap/headers/BluetoothName.h
new file mode 100644 (file)
index 0000000..aa1a8b9
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _BluetoothName_H_
+#define        _BluetoothName_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* BluetoothName */
+typedef OCTET_STRING_t  BluetoothName_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_BluetoothName_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_BluetoothName;
+asn_struct_free_f BluetoothName_free;
+asn_struct_print_f BluetoothName_print;
+asn_constr_check_f BluetoothName_constraint;
+ber_type_decoder_f BluetoothName_decode_ber;
+der_type_encoder_f BluetoothName_encode_der;
+xer_type_decoder_f BluetoothName_decode_xer;
+xer_type_encoder_f BluetoothName_encode_xer;
+oer_type_decoder_f BluetoothName_decode_oer;
+oer_type_encoder_f BluetoothName_encode_oer;
+per_type_decoder_f BluetoothName_decode_uper;
+per_type_encoder_f BluetoothName_encode_uper;
+per_type_decoder_f BluetoothName_decode_aper;
+per_type_encoder_f BluetoothName_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BluetoothName_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/BroadcastPLMNs-Item.h b/e2ap/headers/BroadcastPLMNs-Item.h
new file mode 100644 (file)
index 0000000..34f0e76
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _BroadcastPLMNs_Item_H_
+#define        _BroadcastPLMNs_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMN-Identity.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* BroadcastPLMNs-Item */
+typedef struct BroadcastPLMNs_Item {
+       A_SEQUENCE_OF(PLMN_Identity_t) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} BroadcastPLMNs_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_BroadcastPLMNs_Item;
+extern asn_SET_OF_specifics_t asn_SPC_BroadcastPLMNs_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_BroadcastPLMNs_Item_1[1];
+extern asn_per_constraints_t asn_PER_type_BroadcastPLMNs_Item_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BroadcastPLMNs_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CNTypeRestrictions.h b/e2ap/headers/CNTypeRestrictions.h
new file mode 100644 (file)
index 0000000..df9d80f
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CNTypeRestrictions_H_
+#define        _CNTypeRestrictions_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct CNTypeRestrictionsItem;
+
+/* CNTypeRestrictions */
+typedef struct CNTypeRestrictions {
+       A_SEQUENCE_OF(struct CNTypeRestrictionsItem) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CNTypeRestrictions_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CNTypeRestrictions;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CNTypeRestrictions_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CNTypeRestrictionsItem.h b/e2ap/headers/CNTypeRestrictionsItem.h
new file mode 100644 (file)
index 0000000..50fd26f
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CNTypeRestrictionsItem_H_
+#define        _CNTypeRestrictionsItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMN-Identity.h"
+#include <NativeEnumerated.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CNTypeRestrictionsItem__cn_type {
+       CNTypeRestrictionsItem__cn_type_fiveGC_forbidden        = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_CNTypeRestrictionsItem__cn_type;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CNTypeRestrictionsItem */
+typedef struct CNTypeRestrictionsItem {
+       PLMN_Identity_t  plmn_Id;
+       long     cn_type;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CNTypeRestrictionsItem_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_cn_type_3;     // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_CNTypeRestrictionsItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_CNTypeRestrictionsItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_CNTypeRestrictionsItem_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CNTypeRestrictionsItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/COUNTValueExtended.h b/e2ap/headers/COUNTValueExtended.h
new file mode 100644 (file)
index 0000000..1fc54dc
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _COUNTValueExtended_H_
+#define        _COUNTValueExtended_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PDCP-SNExtended.h"
+#include "HFNModified.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* COUNTValueExtended */
+typedef struct COUNTValueExtended {
+       PDCP_SNExtended_t        pDCP_SNExtended;
+       HFNModified_t    hFNModified;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} COUNTValueExtended_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_COUNTValueExtended;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _COUNTValueExtended_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/COUNTvalue.h b/e2ap/headers/COUNTvalue.h
new file mode 100644 (file)
index 0000000..2eeaf3e
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _COUNTvalue_H_
+#define        _COUNTvalue_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PDCP-SN.h"
+#include "HFN.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* COUNTvalue */
+typedef struct COUNTvalue {
+       PDCP_SN_t        pDCP_SN;
+       HFN_t    hFN;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} COUNTvalue_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_COUNTvalue;
+extern asn_SEQUENCE_specifics_t asn_SPC_COUNTvalue_specs_1;
+extern asn_TYPE_member_t asn_MBR_COUNTvalue_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _COUNTvalue_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/COUNTvaluePDCP-SNlength18.h b/e2ap/headers/COUNTvaluePDCP-SNlength18.h
new file mode 100644 (file)
index 0000000..0998cd5
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _COUNTvaluePDCP_SNlength18_H_
+#define        _COUNTvaluePDCP_SNlength18_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PDCP-SNlength18.h"
+#include "HFNforPDCP-SNlength18.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* COUNTvaluePDCP-SNlength18 */
+typedef struct COUNTvaluePDCP_SNlength18 {
+       PDCP_SNlength18_t        pDCP_SNlength18;
+       HFNforPDCP_SNlength18_t  hFNforPDCP_SNlength18;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} COUNTvaluePDCP_SNlength18_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_COUNTvaluePDCP_SNlength18;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _COUNTvaluePDCP_SNlength18_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CRNTI.h b/e2ap/headers/CRNTI.h
new file mode 100644 (file)
index 0000000..52f0969
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CRNTI_H_
+#define        _CRNTI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CRNTI */
+typedef BIT_STRING_t    CRNTI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CRNTI;
+asn_struct_free_f CRNTI_free;
+asn_struct_print_f CRNTI_print;
+asn_constr_check_f CRNTI_constraint;
+ber_type_decoder_f CRNTI_decode_ber;
+der_type_encoder_f CRNTI_encode_der;
+xer_type_decoder_f CRNTI_decode_xer;
+xer_type_encoder_f CRNTI_encode_xer;
+oer_type_decoder_f CRNTI_decode_oer;
+oer_type_encoder_f CRNTI_encode_oer;
+per_type_decoder_f CRNTI_decode_uper;
+per_type_encoder_f CRNTI_encode_uper;
+per_type_decoder_f CRNTI_decode_aper;
+per_type_encoder_f CRNTI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CRNTI_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CSG-Id.h b/e2ap/headers/CSG-Id.h
new file mode 100644 (file)
index 0000000..cf3e3fb
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CSG_Id_H_
+#define        _CSG_Id_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CSG-Id */
+typedef BIT_STRING_t    CSG_Id_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CSG_Id;
+asn_struct_free_f CSG_Id_free;
+asn_struct_print_f CSG_Id_print;
+asn_constr_check_f CSG_Id_constraint;
+ber_type_decoder_f CSG_Id_decode_ber;
+der_type_encoder_f CSG_Id_encode_der;
+xer_type_decoder_f CSG_Id_decode_xer;
+xer_type_encoder_f CSG_Id_encode_xer;
+oer_type_decoder_f CSG_Id_decode_oer;
+oer_type_encoder_f CSG_Id_encode_oer;
+per_type_decoder_f CSG_Id_decode_uper;
+per_type_encoder_f CSG_Id_encode_uper;
+per_type_decoder_f CSG_Id_decode_aper;
+per_type_encoder_f CSG_Id_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CSG_Id_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CSGMembershipStatus.h b/e2ap/headers/CSGMembershipStatus.h
new file mode 100644 (file)
index 0000000..92e326a
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CSGMembershipStatus_H_
+#define        _CSGMembershipStatus_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CSGMembershipStatus {
+       CSGMembershipStatus_member      = 0,
+       CSGMembershipStatus_not_member  = 1
+} e_CSGMembershipStatus;
+
+/* CSGMembershipStatus */
+typedef long    CSGMembershipStatus_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CSGMembershipStatus;
+asn_struct_free_f CSGMembershipStatus_free;
+asn_struct_print_f CSGMembershipStatus_print;
+asn_constr_check_f CSGMembershipStatus_constraint;
+ber_type_decoder_f CSGMembershipStatus_decode_ber;
+der_type_encoder_f CSGMembershipStatus_encode_der;
+xer_type_decoder_f CSGMembershipStatus_decode_xer;
+xer_type_encoder_f CSGMembershipStatus_encode_xer;
+oer_type_decoder_f CSGMembershipStatus_decode_oer;
+oer_type_encoder_f CSGMembershipStatus_encode_oer;
+per_type_decoder_f CSGMembershipStatus_decode_uper;
+per_type_encoder_f CSGMembershipStatus_encode_uper;
+per_type_decoder_f CSGMembershipStatus_decode_aper;
+per_type_encoder_f CSGMembershipStatus_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CSGMembershipStatus_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CSIReportList.h b/e2ap/headers/CSIReportList.h
new file mode 100644 (file)
index 0000000..38057ec
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CSIReportList_H_
+#define        _CSIReportList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "UEID.h"
+#include "CSIReportPerCSIProcess.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* Forward definitions */
+typedef struct CSIReportList__Member {
+       UEID_t   uEID;
+       CSIReportPerCSIProcess_t         cSIReportPerCSIProcess;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CSIReportList__Member;
+
+/* CSIReportList */
+typedef struct CSIReportList {
+       A_SEQUENCE_OF(CSIReportList__Member) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CSIReportList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CSIReportList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CSIReportList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CSIReportPerCSIProcess.h b/e2ap/headers/CSIReportPerCSIProcess.h
new file mode 100644 (file)
index 0000000..40ca140
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CSIReportPerCSIProcess_H_
+#define        _CSIReportPerCSIProcess_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <NativeInteger.h>
+#include "CSIReportPerCSIProcessItem.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* Forward definitions */
+typedef struct CSIReportPerCSIProcess__Member {
+       long     cSIProcessConfigurationIndex;
+       CSIReportPerCSIProcessItem_t     cSIReportPerCSIProcessItem;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CSIReportPerCSIProcess__Member;
+
+/* CSIReportPerCSIProcess */
+typedef struct CSIReportPerCSIProcess {
+       A_SEQUENCE_OF(CSIReportPerCSIProcess__Member) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CSIReportPerCSIProcess_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CSIReportPerCSIProcess;
+extern asn_SET_OF_specifics_t asn_SPC_CSIReportPerCSIProcess_specs_1;
+extern asn_TYPE_member_t asn_MBR_CSIReportPerCSIProcess_1[1];
+extern asn_per_constraints_t asn_PER_type_CSIReportPerCSIProcess_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CSIReportPerCSIProcess_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CSIReportPerCSIProcessItem.h b/e2ap/headers/CSIReportPerCSIProcessItem.h
new file mode 100644 (file)
index 0000000..4cd9361
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CSIReportPerCSIProcessItem_H_
+#define        _CSIReportPerCSIProcessItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <NativeInteger.h>
+#include "WidebandCQI.h"
+#include "SubbandSize.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct SubbandCQIList;
+struct ProtocolExtensionContainer;
+
+/* Forward definitions */
+typedef struct CSIReportPerCSIProcessItem__Member {
+       long     rI;
+       WidebandCQI_t    widebandCQI;
+       SubbandSize_t    subbandSize;
+       struct SubbandCQIList   *subbandCQIList;        /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CSIReportPerCSIProcessItem__Member;
+
+/* CSIReportPerCSIProcessItem */
+typedef struct CSIReportPerCSIProcessItem {
+       A_SEQUENCE_OF(CSIReportPerCSIProcessItem__Member) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CSIReportPerCSIProcessItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CSIReportPerCSIProcessItem;
+extern asn_SET_OF_specifics_t asn_SPC_CSIReportPerCSIProcessItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_CSIReportPerCSIProcessItem_1[1];
+extern asn_per_constraints_t asn_PER_type_CSIReportPerCSIProcessItem_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CSIReportPerCSIProcessItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CallProcess-ID.h b/e2ap/headers/CallProcess-ID.h
new file mode 100644 (file)
index 0000000..d7d3aa6
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CallProcess_ID_H_
+#define        _CallProcess_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CallProcess-ID */
+typedef long    CallProcess_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CallProcess_ID;
+asn_struct_free_f CallProcess_ID_free;
+asn_struct_print_f CallProcess_ID_print;
+asn_constr_check_f CallProcess_ID_constraint;
+ber_type_decoder_f CallProcess_ID_decode_ber;
+der_type_encoder_f CallProcess_ID_encode_der;
+xer_type_decoder_f CallProcess_ID_decode_xer;
+xer_type_encoder_f CallProcess_ID_encode_xer;
+oer_type_decoder_f CallProcess_ID_decode_oer;
+oer_type_encoder_f CallProcess_ID_encode_oer;
+per_type_decoder_f CallProcess_ID_decode_uper;
+per_type_encoder_f CallProcess_ID_encode_uper;
+per_type_decoder_f CallProcess_ID_decode_aper;
+per_type_encoder_f CallProcess_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CallProcess_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CapacityValue.h b/e2ap/headers/CapacityValue.h
new file mode 100644 (file)
index 0000000..5c9f5d5
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CapacityValue_H_
+#define        _CapacityValue_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CapacityValue */
+typedef long    CapacityValue_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CapacityValue_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CapacityValue;
+asn_struct_free_f CapacityValue_free;
+asn_struct_print_f CapacityValue_print;
+asn_constr_check_f CapacityValue_constraint;
+ber_type_decoder_f CapacityValue_decode_ber;
+der_type_encoder_f CapacityValue_encode_der;
+xer_type_decoder_f CapacityValue_decode_xer;
+xer_type_encoder_f CapacityValue_encode_xer;
+oer_type_decoder_f CapacityValue_decode_oer;
+oer_type_encoder_f CapacityValue_encode_oer;
+per_type_decoder_f CapacityValue_decode_uper;
+per_type_encoder_f CapacityValue_encode_uper;
+per_type_decoder_f CapacityValue_decode_aper;
+per_type_encoder_f CapacityValue_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CapacityValue_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Cause.h b/e2ap/headers/Cause.h
new file mode 100644 (file)
index 0000000..987fb5b
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Cause_H_
+#define        _Cause_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "CauseRadioNetwork.h"
+#include "CauseTransport.h"
+#include "CauseProtocol.h"
+#include "CauseMisc.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Cause_PR {
+       Cause_PR_NOTHING,       /* No components present */
+       Cause_PR_radioNetwork,
+       Cause_PR_transport,
+       Cause_PR_protocol,
+       Cause_PR_misc
+       /* Extensions may appear below */
+       
+} Cause_PR;
+
+/* Cause */
+typedef struct Cause {
+       Cause_PR present;
+       union Cause_u {
+               CauseRadioNetwork_t      radioNetwork;
+               CauseTransport_t         transport;
+               CauseProtocol_t  protocol;
+               CauseMisc_t      misc;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} Cause_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Cause;
+extern asn_CHOICE_specifics_t asn_SPC_Cause_specs_1;
+extern asn_TYPE_member_t asn_MBR_Cause_1[4];
+extern asn_per_constraints_t asn_PER_type_Cause_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Cause_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CauseMisc.h b/e2ap/headers/CauseMisc.h
new file mode 100644 (file)
index 0000000..621305d
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CauseMisc_H_
+#define        _CauseMisc_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CauseMisc {
+       CauseMisc_control_processing_overload   = 0,
+       CauseMisc_hardware_failure      = 1,
+       CauseMisc_om_intervention       = 2,
+       CauseMisc_not_enough_user_plane_processing_resources    = 3,
+       CauseMisc_unspecified   = 4
+       /*
+        * Enumeration is extensible
+        */
+} e_CauseMisc;
+
+/* CauseMisc */
+typedef long    CauseMisc_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CauseMisc_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CauseMisc;
+extern const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1;
+asn_struct_free_f CauseMisc_free;
+asn_struct_print_f CauseMisc_print;
+asn_constr_check_f CauseMisc_constraint;
+ber_type_decoder_f CauseMisc_decode_ber;
+der_type_encoder_f CauseMisc_encode_der;
+xer_type_decoder_f CauseMisc_decode_xer;
+xer_type_encoder_f CauseMisc_encode_xer;
+oer_type_decoder_f CauseMisc_decode_oer;
+oer_type_encoder_f CauseMisc_encode_oer;
+per_type_decoder_f CauseMisc_decode_uper;
+per_type_encoder_f CauseMisc_encode_uper;
+per_type_decoder_f CauseMisc_decode_aper;
+per_type_encoder_f CauseMisc_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CauseMisc_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CauseProtocol.h b/e2ap/headers/CauseProtocol.h
new file mode 100644 (file)
index 0000000..82036c3
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CauseProtocol_H_
+#define        _CauseProtocol_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CauseProtocol {
+       CauseProtocol_transfer_syntax_error     = 0,
+       CauseProtocol_abstract_syntax_error_reject      = 1,
+       CauseProtocol_abstract_syntax_error_ignore_and_notify   = 2,
+       CauseProtocol_message_not_compatible_with_receiver_state        = 3,
+       CauseProtocol_semantic_error    = 4,
+       CauseProtocol_unspecified       = 5,
+       CauseProtocol_abstract_syntax_error_falsely_constructed_message = 6
+       /*
+        * Enumeration is extensible
+        */
+} e_CauseProtocol;
+
+/* CauseProtocol */
+typedef long    CauseProtocol_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CauseProtocol;
+extern const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1;
+asn_struct_free_f CauseProtocol_free;
+asn_struct_print_f CauseProtocol_print;
+asn_constr_check_f CauseProtocol_constraint;
+ber_type_decoder_f CauseProtocol_decode_ber;
+der_type_encoder_f CauseProtocol_encode_der;
+xer_type_decoder_f CauseProtocol_decode_xer;
+xer_type_encoder_f CauseProtocol_encode_xer;
+oer_type_decoder_f CauseProtocol_decode_oer;
+oer_type_encoder_f CauseProtocol_encode_oer;
+per_type_decoder_f CauseProtocol_decode_uper;
+per_type_encoder_f CauseProtocol_encode_uper;
+per_type_decoder_f CauseProtocol_decode_aper;
+per_type_encoder_f CauseProtocol_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CauseProtocol_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CauseRIC.h b/e2ap/headers/CauseRIC.h
new file mode 100644 (file)
index 0000000..b3d52f1
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CauseRIC_H_
+#define        _CauseRIC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CauseRIC {
+       CauseRIC_function_id_Invalid    = 0,
+       CauseRIC_action_not_supported   = 1,
+       CauseRIC_excessive_actions      = 2,
+       CauseRIC_duplicate_action       = 3,
+       CauseRIC_duplicate_event        = 4,
+       CauseRIC_function_resource_limit        = 5,
+       CauseRIC_request_id_unknown     = 6,
+       CauseRIC_inconsistent_action_subsequent_action_sequence = 7,
+       CauseRIC_control_message_invalid        = 8,
+       CauseRIC_call_process_id_invalid        = 9,
+       CauseRIC_function_not_required  = 10,
+       CauseRIC_excessive_functions    = 11,
+       CauseRIC_ric_resource_limit     = 12
+       /*
+        * Enumeration is extensible
+        */
+} e_CauseRIC;
+
+/* CauseRIC */
+typedef long    CauseRIC_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CauseRIC_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CauseRIC;
+extern const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1;
+asn_struct_free_f CauseRIC_free;
+asn_struct_print_f CauseRIC_print;
+asn_constr_check_f CauseRIC_constraint;
+ber_type_decoder_f CauseRIC_decode_ber;
+der_type_encoder_f CauseRIC_encode_der;
+xer_type_decoder_f CauseRIC_decode_xer;
+xer_type_encoder_f CauseRIC_encode_xer;
+oer_type_decoder_f CauseRIC_decode_oer;
+oer_type_encoder_f CauseRIC_encode_oer;
+per_type_decoder_f CauseRIC_decode_uper;
+per_type_encoder_f CauseRIC_encode_uper;
+per_type_decoder_f CauseRIC_decode_aper;
+per_type_encoder_f CauseRIC_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CauseRIC_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CauseRadioNetwork.h b/e2ap/headers/CauseRadioNetwork.h
new file mode 100644 (file)
index 0000000..ca9a16b
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CauseRadioNetwork_H_
+#define        _CauseRadioNetwork_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CauseRadioNetwork {
+       CauseRadioNetwork_handover_desirable_for_radio_reasons  = 0,
+       CauseRadioNetwork_time_critical_handover        = 1,
+       CauseRadioNetwork_resource_optimisation_handover        = 2,
+       CauseRadioNetwork_reduce_load_in_serving_cell   = 3,
+       CauseRadioNetwork_partial_handover      = 4,
+       CauseRadioNetwork_unknown_new_eNB_UE_X2AP_ID    = 5,
+       CauseRadioNetwork_unknown_old_eNB_UE_X2AP_ID    = 6,
+       CauseRadioNetwork_unknown_pair_of_UE_X2AP_ID    = 7,
+       CauseRadioNetwork_ho_target_not_allowed = 8,
+       CauseRadioNetwork_tx2relocoverall_expiry        = 9,
+       CauseRadioNetwork_trelocprep_expiry     = 10,
+       CauseRadioNetwork_cell_not_available    = 11,
+       CauseRadioNetwork_no_radio_resources_available_in_target_cell   = 12,
+       CauseRadioNetwork_invalid_MME_GroupID   = 13,
+       CauseRadioNetwork_unknown_MME_Code      = 14,
+       CauseRadioNetwork_encryption_and_or_integrity_protection_algorithms_not_supported       = 15,
+       CauseRadioNetwork_reportCharacteristicsEmpty    = 16,
+       CauseRadioNetwork_noReportPeriodicity   = 17,
+       CauseRadioNetwork_existingMeasurementID = 18,
+       CauseRadioNetwork_unknown_eNB_Measurement_ID    = 19,
+       CauseRadioNetwork_measurement_temporarily_not_available = 20,
+       CauseRadioNetwork_unspecified   = 21,
+       /*
+        * Enumeration is extensible
+        */
+       CauseRadioNetwork_load_balancing        = 22,
+       CauseRadioNetwork_handover_optimisation = 23,
+       CauseRadioNetwork_value_out_of_allowed_range    = 24,
+       CauseRadioNetwork_multiple_E_RAB_ID_instances   = 25,
+       CauseRadioNetwork_switch_off_ongoing    = 26,
+       CauseRadioNetwork_not_supported_QCI_value       = 27,
+       CauseRadioNetwork_measurement_not_supported_for_the_object      = 28,
+       CauseRadioNetwork_tDCoverall_expiry     = 29,
+       CauseRadioNetwork_tDCprep_expiry        = 30,
+       CauseRadioNetwork_action_desirable_for_radio_reasons    = 31,
+       CauseRadioNetwork_reduce_load   = 32,
+       CauseRadioNetwork_resource_optimisation = 33,
+       CauseRadioNetwork_time_critical_action  = 34,
+       CauseRadioNetwork_target_not_allowed    = 35,
+       CauseRadioNetwork_no_radio_resources_available  = 36,
+       CauseRadioNetwork_invalid_QoS_combination       = 37,
+       CauseRadioNetwork_encryption_algorithms_not_aupported   = 38,
+       CauseRadioNetwork_procedure_cancelled   = 39,
+       CauseRadioNetwork_rRM_purpose   = 40,
+       CauseRadioNetwork_improve_user_bit_rate = 41,
+       CauseRadioNetwork_user_inactivity       = 42,
+       CauseRadioNetwork_radio_connection_with_UE_lost = 43,
+       CauseRadioNetwork_failure_in_the_radio_interface_procedure      = 44,
+       CauseRadioNetwork_bearer_option_not_supported   = 45,
+       CauseRadioNetwork_mCG_Mobility  = 46,
+       CauseRadioNetwork_sCG_Mobility  = 47,
+       CauseRadioNetwork_count_reaches_max_value       = 48,
+       CauseRadioNetwork_unknown_old_en_gNB_UE_X2AP_ID = 49,
+       CauseRadioNetwork_pDCP_Overload = 50
+} e_CauseRadioNetwork;
+
+/* CauseRadioNetwork */
+typedef long    CauseRadioNetwork_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CauseRadioNetwork_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CauseRadioNetwork;
+extern const asn_INTEGER_specifics_t asn_SPC_CauseRadioNetwork_specs_1;
+asn_struct_free_f CauseRadioNetwork_free;
+asn_struct_print_f CauseRadioNetwork_print;
+asn_constr_check_f CauseRadioNetwork_constraint;
+ber_type_decoder_f CauseRadioNetwork_decode_ber;
+der_type_encoder_f CauseRadioNetwork_encode_der;
+xer_type_decoder_f CauseRadioNetwork_decode_xer;
+xer_type_encoder_f CauseRadioNetwork_encode_xer;
+oer_type_decoder_f CauseRadioNetwork_decode_oer;
+oer_type_encoder_f CauseRadioNetwork_encode_oer;
+per_type_decoder_f CauseRadioNetwork_decode_uper;
+per_type_encoder_f CauseRadioNetwork_encode_uper;
+per_type_decoder_f CauseRadioNetwork_decode_aper;
+per_type_encoder_f CauseRadioNetwork_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CauseRadioNetwork_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CauseTransport.h b/e2ap/headers/CauseTransport.h
new file mode 100644 (file)
index 0000000..9fbe210
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CauseTransport_H_
+#define        _CauseTransport_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CauseTransport {
+       CauseTransport_transport_resource_unavailable   = 0,
+       CauseTransport_unspecified      = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_CauseTransport;
+
+/* CauseTransport */
+typedef long    CauseTransport_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CauseTransport_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CauseTransport;
+extern const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1;
+asn_struct_free_f CauseTransport_free;
+asn_struct_print_f CauseTransport_print;
+asn_constr_check_f CauseTransport_constraint;
+ber_type_decoder_f CauseTransport_decode_ber;
+der_type_encoder_f CauseTransport_encode_der;
+xer_type_decoder_f CauseTransport_decode_xer;
+xer_type_encoder_f CauseTransport_encode_xer;
+oer_type_decoder_f CauseTransport_decode_oer;
+oer_type_encoder_f CauseTransport_encode_oer;
+per_type_decoder_f CauseTransport_decode_uper;
+per_type_encoder_f CauseTransport_encode_uper;
+per_type_decoder_f CauseTransport_decode_aper;
+per_type_encoder_f CauseTransport_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CauseTransport_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Cell-Size.h b/e2ap/headers/Cell-Size.h
new file mode 100644 (file)
index 0000000..00a967a
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Cell_Size_H_
+#define        _Cell_Size_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Cell_Size {
+       Cell_Size_verysmall     = 0,
+       Cell_Size_small = 1,
+       Cell_Size_medium        = 2,
+       Cell_Size_large = 3
+       /*
+        * Enumeration is extensible
+        */
+} e_Cell_Size;
+
+/* Cell-Size */
+typedef long    Cell_Size_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Cell_Size_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Cell_Size;
+extern const asn_INTEGER_specifics_t asn_SPC_Cell_Size_specs_1;
+asn_struct_free_f Cell_Size_free;
+asn_struct_print_f Cell_Size_print;
+asn_constr_check_f Cell_Size_constraint;
+ber_type_decoder_f Cell_Size_decode_ber;
+der_type_encoder_f Cell_Size_encode_der;
+xer_type_decoder_f Cell_Size_decode_xer;
+xer_type_encoder_f Cell_Size_encode_xer;
+oer_type_decoder_f Cell_Size_decode_oer;
+oer_type_encoder_f Cell_Size_encode_oer;
+per_type_decoder_f Cell_Size_decode_uper;
+per_type_encoder_f Cell_Size_encode_uper;
+per_type_decoder_f Cell_Size_decode_aper;
+per_type_encoder_f Cell_Size_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Cell_Size_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellActivationFailure.h b/e2ap/headers/CellActivationFailure.h
new file mode 100644 (file)
index 0000000..9e10194
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellActivationFailure_H_
+#define        _CellActivationFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CellActivationFailure */
+typedef struct CellActivationFailure {
+       ProtocolIE_Container_9515P41_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellActivationFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellActivationFailure;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellActivationFailure_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellActivationFailure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellActivationFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellActivationRequest.h b/e2ap/headers/CellActivationRequest.h
new file mode 100644 (file)
index 0000000..4fcb075
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellActivationRequest_H_
+#define        _CellActivationRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CellActivationRequest */
+typedef struct CellActivationRequest {
+       ProtocolIE_Container_9515P39_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellActivationRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellActivationRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellActivationRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellActivationRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellActivationRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellActivationResponse.h b/e2ap/headers/CellActivationResponse.h
new file mode 100644 (file)
index 0000000..dd02eff
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellActivationResponse_H_
+#define        _CellActivationResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CellActivationResponse */
+typedef struct CellActivationResponse {
+       ProtocolIE_Container_9515P40_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellActivationResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellActivationResponse;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellActivationResponse_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellActivationResponse_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellActivationResponse_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellAssistanceInformation.h b/e2ap/headers/CellAssistanceInformation.h
new file mode 100644 (file)
index 0000000..d290963
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellAssistanceInformation_H_
+#define        _CellAssistanceInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CellAssistanceInformation_PR {
+       CellAssistanceInformation_PR_NOTHING,   /* No components present */
+       CellAssistanceInformation_PR_limited_list,
+       CellAssistanceInformation_PR_full_list
+       /* Extensions may appear below */
+       
+} CellAssistanceInformation_PR;
+typedef enum CellAssistanceInformation__full_list {
+       CellAssistanceInformation__full_list_allServedNRcells   = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_CellAssistanceInformation__full_list;
+
+/* Forward declarations */
+struct Limited_list;
+
+/* CellAssistanceInformation */
+typedef struct CellAssistanceInformation {
+       CellAssistanceInformation_PR present;
+       union CellAssistanceInformation_u {
+               struct Limited_list     *limited_list;
+               long     full_list;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellAssistanceInformation_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_full_list_3;   // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_CellAssistanceInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellAssistanceInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellBasedMDT.h b/e2ap/headers/CellBasedMDT.h
new file mode 100644 (file)
index 0000000..873c335
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellBasedMDT_H_
+#define        _CellBasedMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "CellIdListforMDT.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CellBasedMDT */
+typedef struct CellBasedMDT {
+       CellIdListforMDT_t       cellIdListforMDT;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellBasedMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellBasedMDT;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellBasedMDT_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellBasedMDT_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellBasedMDT_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellBasedQMC.h b/e2ap/headers/CellBasedQMC.h
new file mode 100644 (file)
index 0000000..3a4aace
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellBasedQMC_H_
+#define        _CellBasedQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "CellIdListforQMC.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CellBasedQMC */
+typedef struct CellBasedQMC {
+       CellIdListforQMC_t       cellIdListforQMC;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellBasedQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellBasedQMC;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellBasedQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellBasedQMC_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellBasedQMC_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellCapacityClassValue.h b/e2ap/headers/CellCapacityClassValue.h
new file mode 100644 (file)
index 0000000..ea6036c
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellCapacityClassValue_H_
+#define        _CellCapacityClassValue_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CellCapacityClassValue */
+typedef long    CellCapacityClassValue_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CellCapacityClassValue_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CellCapacityClassValue;
+asn_struct_free_f CellCapacityClassValue_free;
+asn_struct_print_f CellCapacityClassValue_print;
+asn_constr_check_f CellCapacityClassValue_constraint;
+ber_type_decoder_f CellCapacityClassValue_decode_ber;
+der_type_encoder_f CellCapacityClassValue_encode_der;
+xer_type_decoder_f CellCapacityClassValue_decode_xer;
+xer_type_encoder_f CellCapacityClassValue_encode_xer;
+oer_type_decoder_f CellCapacityClassValue_decode_oer;
+oer_type_encoder_f CellCapacityClassValue_encode_oer;
+per_type_decoder_f CellCapacityClassValue_decode_uper;
+per_type_encoder_f CellCapacityClassValue_encode_uper;
+per_type_decoder_f CellCapacityClassValue_decode_aper;
+per_type_encoder_f CellCapacityClassValue_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellCapacityClassValue_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellDeploymentStatusIndicator.h b/e2ap/headers/CellDeploymentStatusIndicator.h
new file mode 100644 (file)
index 0000000..bc83eb0
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellDeploymentStatusIndicator_H_
+#define        _CellDeploymentStatusIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CellDeploymentStatusIndicator {
+       CellDeploymentStatusIndicator_pre_change_notification   = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_CellDeploymentStatusIndicator;
+
+/* CellDeploymentStatusIndicator */
+typedef long    CellDeploymentStatusIndicator_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CellDeploymentStatusIndicator_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CellDeploymentStatusIndicator;
+extern const asn_INTEGER_specifics_t asn_SPC_CellDeploymentStatusIndicator_specs_1;
+asn_struct_free_f CellDeploymentStatusIndicator_free;
+asn_struct_print_f CellDeploymentStatusIndicator_print;
+asn_constr_check_f CellDeploymentStatusIndicator_constraint;
+ber_type_decoder_f CellDeploymentStatusIndicator_decode_ber;
+der_type_encoder_f CellDeploymentStatusIndicator_encode_der;
+xer_type_decoder_f CellDeploymentStatusIndicator_decode_xer;
+xer_type_encoder_f CellDeploymentStatusIndicator_encode_xer;
+oer_type_decoder_f CellDeploymentStatusIndicator_decode_oer;
+oer_type_encoder_f CellDeploymentStatusIndicator_encode_oer;
+per_type_decoder_f CellDeploymentStatusIndicator_decode_uper;
+per_type_encoder_f CellDeploymentStatusIndicator_encode_uper;
+per_type_decoder_f CellDeploymentStatusIndicator_decode_aper;
+per_type_encoder_f CellDeploymentStatusIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellDeploymentStatusIndicator_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellIdListforMDT.h b/e2ap/headers/CellIdListforMDT.h
new file mode 100644 (file)
index 0000000..1e9723a
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellIdListforMDT_H_
+#define        _CellIdListforMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ECGI;
+
+/* CellIdListforMDT */
+typedef struct CellIdListforMDT {
+       A_SEQUENCE_OF(struct ECGI) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellIdListforMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellIdListforMDT;
+extern asn_SET_OF_specifics_t asn_SPC_CellIdListforMDT_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellIdListforMDT_1[1];
+extern asn_per_constraints_t asn_PER_type_CellIdListforMDT_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellIdListforMDT_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellIdListforQMC.h b/e2ap/headers/CellIdListforQMC.h
new file mode 100644 (file)
index 0000000..af9b8e0
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellIdListforQMC_H_
+#define        _CellIdListforQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ECGI;
+
+/* CellIdListforQMC */
+typedef struct CellIdListforQMC {
+       A_SEQUENCE_OF(struct ECGI) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellIdListforQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellIdListforQMC;
+extern asn_SET_OF_specifics_t asn_SPC_CellIdListforQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellIdListforQMC_1[1];
+extern asn_per_constraints_t asn_PER_type_CellIdListforQMC_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellIdListforQMC_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellInformation-Item.h b/e2ap/headers/CellInformation-Item.h
new file mode 100644 (file)
index 0000000..f52c2f0
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellInformation_Item_H_
+#define        _CellInformation_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ECGI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct UL_InterferenceOverloadIndication;
+struct UL_HighInterferenceIndicationInfo;
+struct RelativeNarrowbandTxPower;
+struct ProtocolExtensionContainer;
+
+/* CellInformation-Item */
+typedef struct CellInformation_Item {
+       ECGI_t   cell_ID;
+       struct UL_InterferenceOverloadIndication        *ul_InterferenceOverloadIndication;     /* OPTIONAL */
+       struct UL_HighInterferenceIndicationInfo        *ul_HighInterferenceIndicationInfo;     /* OPTIONAL */
+       struct RelativeNarrowbandTxPower        *relativeNarrowbandTxPower;     /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellInformation_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellInformation_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellInformation_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellInformation-List.h b/e2ap/headers/CellInformation-List.h
new file mode 100644 (file)
index 0000000..4e6f264
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellInformation_List_H_
+#define        _CellInformation_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* CellInformation-List */
+typedef struct CellInformation_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellInformation_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellInformation_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellInformation_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellMeasurementResult-Item.h b/e2ap/headers/CellMeasurementResult-Item.h
new file mode 100644 (file)
index 0000000..e4fc272
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellMeasurementResult_Item_H_
+#define        _CellMeasurementResult_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ECGI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct HWLoadIndicator;
+struct S1TNLLoadIndicator;
+struct RadioResourceStatus;
+struct ProtocolExtensionContainer;
+
+/* CellMeasurementResult-Item */
+typedef struct CellMeasurementResult_Item {
+       ECGI_t   cell_ID;
+       struct HWLoadIndicator  *hWLoadIndicator;       /* OPTIONAL */
+       struct S1TNLLoadIndicator       *s1TNLLoadIndicator;    /* OPTIONAL */
+       struct RadioResourceStatus      *radioResourceStatus;   /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellMeasurementResult_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellMeasurementResult_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellMeasurementResult_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellMeasurementResult-List.h b/e2ap/headers/CellMeasurementResult-List.h
new file mode 100644 (file)
index 0000000..62d7b3f
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellMeasurementResult_List_H_
+#define        _CellMeasurementResult_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* CellMeasurementResult-List */
+typedef struct CellMeasurementResult_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellMeasurementResult_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellMeasurementResult_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellMeasurementResult_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellReplacingInfo.h b/e2ap/headers/CellReplacingInfo.h
new file mode 100644 (file)
index 0000000..322534a
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellReplacingInfo_H_
+#define        _CellReplacingInfo_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ReplacingCellsList.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CellReplacingInfo */
+typedef struct CellReplacingInfo {
+       ReplacingCellsList_t     replacingCellsList;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellReplacingInfo_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellReplacingInfo;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellReplacingInfo_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellReplacingInfo_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellReplacingInfo_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellReportingIndicator.h b/e2ap/headers/CellReportingIndicator.h
new file mode 100644 (file)
index 0000000..46f0c15
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellReportingIndicator_H_
+#define        _CellReportingIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CellReportingIndicator {
+       CellReportingIndicator_stop_request     = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_CellReportingIndicator;
+
+/* CellReportingIndicator */
+typedef long    CellReportingIndicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellReportingIndicator;
+asn_struct_free_f CellReportingIndicator_free;
+asn_struct_print_f CellReportingIndicator_print;
+asn_constr_check_f CellReportingIndicator_constraint;
+ber_type_decoder_f CellReportingIndicator_decode_ber;
+der_type_encoder_f CellReportingIndicator_encode_der;
+xer_type_decoder_f CellReportingIndicator_decode_xer;
+xer_type_encoder_f CellReportingIndicator_encode_xer;
+oer_type_decoder_f CellReportingIndicator_decode_oer;
+oer_type_encoder_f CellReportingIndicator_encode_oer;
+per_type_decoder_f CellReportingIndicator_decode_uper;
+per_type_encoder_f CellReportingIndicator_encode_uper;
+per_type_decoder_f CellReportingIndicator_decode_aper;
+per_type_encoder_f CellReportingIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellReportingIndicator_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellToReport-Item.h b/e2ap/headers/CellToReport-Item.h
new file mode 100644 (file)
index 0000000..5f211d4
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellToReport_Item_H_
+#define        _CellToReport_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ECGI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CellToReport-Item */
+typedef struct CellToReport_Item {
+       ECGI_t   cell_ID;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellToReport_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellToReport_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellToReport_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellToReport-List.h b/e2ap/headers/CellToReport-List.h
new file mode 100644 (file)
index 0000000..110f9f0
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellToReport_List_H_
+#define        _CellToReport_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* CellToReport-List */
+typedef struct CellToReport_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellToReport_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellToReport_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellToReport_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CellType.h b/e2ap/headers/CellType.h
new file mode 100644 (file)
index 0000000..f770dfe
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CellType_H_
+#define        _CellType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Cell-Size.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CellType */
+typedef struct CellType {
+       Cell_Size_t      cell_Size;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellType;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellType_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellType_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellType_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CoMPHypothesisSet.h b/e2ap/headers/CoMPHypothesisSet.h
new file mode 100644 (file)
index 0000000..f153528
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CoMPHypothesisSet_H_
+#define        _CoMPHypothesisSet_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct CoMPHypothesisSetItem;
+
+/* CoMPHypothesisSet */
+typedef struct CoMPHypothesisSet {
+       A_SEQUENCE_OF(struct CoMPHypothesisSetItem) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CoMPHypothesisSet_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CoMPHypothesisSet;
+extern asn_SET_OF_specifics_t asn_SPC_CoMPHypothesisSet_specs_1;
+extern asn_TYPE_member_t asn_MBR_CoMPHypothesisSet_1[1];
+extern asn_per_constraints_t asn_PER_type_CoMPHypothesisSet_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CoMPHypothesisSet_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CoMPHypothesisSetItem.h b/e2ap/headers/CoMPHypothesisSetItem.h
new file mode 100644 (file)
index 0000000..011054a
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CoMPHypothesisSetItem_H_
+#define        _CoMPHypothesisSetItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ECGI.h"
+#include <BIT_STRING.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CoMPHypothesisSetItem */
+typedef struct CoMPHypothesisSetItem {
+       ECGI_t   coMPCellID;
+       BIT_STRING_t     coMPHypothesis;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CoMPHypothesisSetItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CoMPHypothesisSetItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_CoMPHypothesisSetItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_CoMPHypothesisSetItem_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CoMPHypothesisSetItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CoMPInformation.h b/e2ap/headers/CoMPInformation.h
new file mode 100644 (file)
index 0000000..df2a878
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CoMPInformation_H_
+#define        _CoMPInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "CoMPInformationItem.h"
+#include "CoMPInformationStartTime.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CoMPInformation */
+typedef struct CoMPInformation {
+       CoMPInformationItem_t    coMPInformationItem;
+       CoMPInformationStartTime_t       coMPInformationStartTime;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CoMPInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CoMPInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CoMPInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CoMPInformationItem.h b/e2ap/headers/CoMPInformationItem.h
new file mode 100644 (file)
index 0000000..89cfe15
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CoMPInformationItem_H_
+#define        _CoMPInformationItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "CoMPHypothesisSet.h"
+#include "BenefitMetric.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* Forward definitions */
+typedef struct CoMPInformationItem__Member {
+       CoMPHypothesisSet_t      coMPHypothesisSet;
+       BenefitMetric_t  benefitMetric;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CoMPInformationItem__Member;
+
+/* CoMPInformationItem */
+typedef struct CoMPInformationItem {
+       A_SEQUENCE_OF(CoMPInformationItem__Member) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CoMPInformationItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CoMPInformationItem;
+extern asn_SET_OF_specifics_t asn_SPC_CoMPInformationItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_CoMPInformationItem_1[1];
+extern asn_per_constraints_t asn_PER_type_CoMPInformationItem_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CoMPInformationItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CoMPInformationStartTime.h b/e2ap/headers/CoMPInformationStartTime.h
new file mode 100644 (file)
index 0000000..665daf2
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CoMPInformationStartTime_H_
+#define        _CoMPInformationStartTime_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* Forward definitions */
+typedef struct CoMPInformationStartTime__Member {
+       long     startSFN;
+       long     startSubframeNumber;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CoMPInformationStartTime__Member;
+
+/* CoMPInformationStartTime */
+typedef struct CoMPInformationStartTime {
+       A_SEQUENCE_OF(CoMPInformationStartTime__Member) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CoMPInformationStartTime_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CoMPInformationStartTime;
+extern asn_SET_OF_specifics_t asn_SPC_CoMPInformationStartTime_specs_1;
+extern asn_TYPE_member_t asn_MBR_CoMPInformationStartTime_1[1];
+extern asn_per_constraints_t asn_PER_type_CoMPInformationStartTime_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CoMPInformationStartTime_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CompleteFailureCauseInformation-Item.h b/e2ap/headers/CompleteFailureCauseInformation-Item.h
new file mode 100644 (file)
index 0000000..ecbce58
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CompleteFailureCauseInformation_Item_H_
+#define        _CompleteFailureCauseInformation_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ECGI.h"
+#include "MeasurementFailureCause-List.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CompleteFailureCauseInformation-Item */
+typedef struct CompleteFailureCauseInformation_Item {
+       ECGI_t   cell_ID;
+       MeasurementFailureCause_List_t   measurementFailureCause_List;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CompleteFailureCauseInformation_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CompleteFailureCauseInformation_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CompleteFailureCauseInformation_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CompleteFailureCauseInformation-List.h b/e2ap/headers/CompleteFailureCauseInformation-List.h
new file mode 100644 (file)
index 0000000..0a071ba
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CompleteFailureCauseInformation_List_H_
+#define        _CompleteFailureCauseInformation_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* CompleteFailureCauseInformation-List */
+typedef struct CompleteFailureCauseInformation_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CompleteFailureCauseInformation_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CompleteFailureCauseInformation_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CompleteFailureCauseInformation_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CompositeAvailableCapacity.h b/e2ap/headers/CompositeAvailableCapacity.h
new file mode 100644 (file)
index 0000000..3e5e31e
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CompositeAvailableCapacity_H_
+#define        _CompositeAvailableCapacity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "CellCapacityClassValue.h"
+#include "CapacityValue.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CompositeAvailableCapacity */
+typedef struct CompositeAvailableCapacity {
+       CellCapacityClassValue_t        *cellCapacityClassValue;        /* OPTIONAL */
+       CapacityValue_t  capacityValue;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CompositeAvailableCapacity_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CompositeAvailableCapacity;
+extern asn_SEQUENCE_specifics_t asn_SPC_CompositeAvailableCapacity_specs_1;
+extern asn_TYPE_member_t asn_MBR_CompositeAvailableCapacity_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CompositeAvailableCapacity_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CompositeAvailableCapacityGroup.h b/e2ap/headers/CompositeAvailableCapacityGroup.h
new file mode 100644 (file)
index 0000000..e6173b4
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CompositeAvailableCapacityGroup_H_
+#define        _CompositeAvailableCapacityGroup_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "CompositeAvailableCapacity.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CompositeAvailableCapacityGroup */
+typedef struct CompositeAvailableCapacityGroup {
+       CompositeAvailableCapacity_t     dL_CompositeAvailableCapacity;
+       CompositeAvailableCapacity_t     uL_CompositeAvailableCapacity;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CompositeAvailableCapacityGroup_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CompositeAvailableCapacityGroup;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CompositeAvailableCapacityGroup_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Correlation-ID.h b/e2ap/headers/Correlation-ID.h
new file mode 100644 (file)
index 0000000..1c84e25
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Correlation_ID_H_
+#define        _Correlation_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Correlation-ID */
+typedef OCTET_STRING_t  Correlation_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Correlation_ID;
+asn_struct_free_f Correlation_ID_free;
+asn_struct_print_f Correlation_ID_print;
+asn_constr_check_f Correlation_ID_constraint;
+ber_type_decoder_f Correlation_ID_decode_ber;
+der_type_encoder_f Correlation_ID_encode_der;
+xer_type_decoder_f Correlation_ID_decode_xer;
+xer_type_encoder_f Correlation_ID_encode_xer;
+oer_type_decoder_f Correlation_ID_decode_oer;
+oer_type_encoder_f Correlation_ID_encode_oer;
+per_type_decoder_f Correlation_ID_decode_uper;
+per_type_encoder_f Correlation_ID_encode_uper;
+per_type_decoder_f Correlation_ID_decode_aper;
+per_type_encoder_f Correlation_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Correlation_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CoverageModification-Item.h b/e2ap/headers/CoverageModification-Item.h
new file mode 100644 (file)
index 0000000..2be1f53
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CoverageModification_Item_H_
+#define        _CoverageModification_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ECGI.h"
+#include <NativeInteger.h>
+#include "CellDeploymentStatusIndicator.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct CellReplacingInfo;
+
+/* CoverageModification-Item */
+typedef struct CoverageModification_Item {
+       ECGI_t   eCGI;
+       long     coverageState;
+       CellDeploymentStatusIndicator_t *cellDeploymentStatusIndicator; /* OPTIONAL */
+       struct CellReplacingInfo        *cellReplacingInfo;     /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CoverageModification_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CoverageModification_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_CoverageModification_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_CoverageModification_Item_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CoverageModification_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CoverageModificationList.h b/e2ap/headers/CoverageModificationList.h
new file mode 100644 (file)
index 0000000..57961d7
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CoverageModificationList_H_
+#define        _CoverageModificationList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct CoverageModification_Item;
+
+/* CoverageModificationList */
+typedef struct CoverageModificationList {
+       A_SEQUENCE_OF(struct CoverageModification_Item) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CoverageModificationList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CoverageModificationList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CoverageModificationList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Criticality.h b/e2ap/headers/Criticality.h
new file mode 100644 (file)
index 0000000..b94b2b3
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-CommonDataTypes"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Criticality_H_
+#define        _Criticality_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Criticality {
+       Criticality_reject      = 0,
+       Criticality_ignore      = 1,
+       Criticality_notify      = 2
+} e_Criticality;
+
+/* Criticality */
+typedef long    Criticality_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Criticality_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Criticality;
+extern const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1;
+asn_struct_free_f Criticality_free;
+asn_struct_print_f Criticality_print;
+asn_constr_check_f Criticality_constraint;
+ber_type_decoder_f Criticality_decode_ber;
+der_type_encoder_f Criticality_encode_der;
+xer_type_decoder_f Criticality_decode_xer;
+xer_type_encoder_f Criticality_encode_xer;
+oer_type_decoder_f Criticality_decode_oer;
+oer_type_encoder_f Criticality_encode_oer;
+per_type_decoder_f Criticality_decode_uper;
+per_type_encoder_f Criticality_encode_uper;
+per_type_decoder_f Criticality_decode_aper;
+per_type_encoder_f Criticality_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Criticality_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CriticalityDiagnostics-IE-List.h b/e2ap/headers/CriticalityDiagnostics-IE-List.h
new file mode 100644 (file)
index 0000000..f51fd06
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CriticalityDiagnostics_IE_List_H_
+#define        _CriticalityDiagnostics_IE_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "Criticality.h"
+#include "ProtocolIE-ID.h"
+#include "TypeOfError.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* Forward definitions */
+typedef struct CriticalityDiagnostics_IE_List__Member {
+       Criticality_t    iECriticality;
+       ProtocolIE_ID_t  iE_ID;
+       TypeOfError_t    typeOfError;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CriticalityDiagnostics_IE_List__Member;
+
+/* CriticalityDiagnostics-IE-List */
+typedef struct CriticalityDiagnostics_IE_List {
+       A_SEQUENCE_OF(CriticalityDiagnostics_IE_List__Member) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CriticalityDiagnostics_IE_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List;
+extern asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[1];
+extern asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CriticalityDiagnostics_IE_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CriticalityDiagnostics.h b/e2ap/headers/CriticalityDiagnostics.h
new file mode 100644 (file)
index 0000000..2f08f46
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CriticalityDiagnostics_H_
+#define        _CriticalityDiagnostics_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProcedureCode.h"
+#include "TriggeringMessage.h"
+#include "Criticality.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct CriticalityDiagnostics_IE_List;
+struct ProtocolExtensionContainer;
+
+/* CriticalityDiagnostics */
+typedef struct CriticalityDiagnostics {
+       ProcedureCode_t *procedureCode; /* OPTIONAL */
+       TriggeringMessage_t     *triggeringMessage;     /* OPTIONAL */
+       Criticality_t   *procedureCriticality;  /* OPTIONAL */
+       struct CriticalityDiagnostics_IE_List   *iEsCriticalityDiagnostics;     /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CriticalityDiagnostics_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CriticalityDiagnostics_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CyclicPrefixDL.h b/e2ap/headers/CyclicPrefixDL.h
new file mode 100644 (file)
index 0000000..d6c4745
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CyclicPrefixDL_H_
+#define        _CyclicPrefixDL_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CyclicPrefixDL {
+       CyclicPrefixDL_normal   = 0,
+       CyclicPrefixDL_extended = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_CyclicPrefixDL;
+
+/* CyclicPrefixDL */
+typedef long    CyclicPrefixDL_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CyclicPrefixDL_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CyclicPrefixDL;
+extern const asn_INTEGER_specifics_t asn_SPC_CyclicPrefixDL_specs_1;
+asn_struct_free_f CyclicPrefixDL_free;
+asn_struct_print_f CyclicPrefixDL_print;
+asn_constr_check_f CyclicPrefixDL_constraint;
+ber_type_decoder_f CyclicPrefixDL_decode_ber;
+der_type_encoder_f CyclicPrefixDL_encode_der;
+xer_type_decoder_f CyclicPrefixDL_decode_xer;
+xer_type_encoder_f CyclicPrefixDL_encode_xer;
+oer_type_decoder_f CyclicPrefixDL_decode_oer;
+oer_type_encoder_f CyclicPrefixDL_encode_oer;
+per_type_decoder_f CyclicPrefixDL_decode_uper;
+per_type_encoder_f CyclicPrefixDL_encode_uper;
+per_type_decoder_f CyclicPrefixDL_decode_aper;
+per_type_encoder_f CyclicPrefixDL_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CyclicPrefixDL_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CyclicPrefixUL.h b/e2ap/headers/CyclicPrefixUL.h
new file mode 100644 (file)
index 0000000..7b78a01
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _CyclicPrefixUL_H_
+#define        _CyclicPrefixUL_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CyclicPrefixUL {
+       CyclicPrefixUL_normal   = 0,
+       CyclicPrefixUL_extended = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_CyclicPrefixUL;
+
+/* CyclicPrefixUL */
+typedef long    CyclicPrefixUL_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CyclicPrefixUL_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CyclicPrefixUL;
+extern const asn_INTEGER_specifics_t asn_SPC_CyclicPrefixUL_specs_1;
+asn_struct_free_f CyclicPrefixUL_free;
+asn_struct_print_f CyclicPrefixUL_print;
+asn_constr_check_f CyclicPrefixUL_constraint;
+ber_type_decoder_f CyclicPrefixUL_decode_ber;
+der_type_encoder_f CyclicPrefixUL_encode_der;
+xer_type_decoder_f CyclicPrefixUL_decode_xer;
+xer_type_encoder_f CyclicPrefixUL_encode_xer;
+oer_type_decoder_f CyclicPrefixUL_decode_oer;
+oer_type_encoder_f CyclicPrefixUL_encode_oer;
+per_type_decoder_f CyclicPrefixUL_decode_uper;
+per_type_encoder_f CyclicPrefixUL_encode_uper;
+per_type_decoder_f CyclicPrefixUL_decode_aper;
+per_type_encoder_f CyclicPrefixUL_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CyclicPrefixUL_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/DL-ABS-status.h b/e2ap/headers/DL-ABS-status.h
new file mode 100644 (file)
index 0000000..b27868e
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _DL_ABS_status_H_
+#define        _DL_ABS_status_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DL-ABS-status */
+typedef long    DL_ABS_status_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_DL_ABS_status_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_DL_ABS_status;
+asn_struct_free_f DL_ABS_status_free;
+asn_struct_print_f DL_ABS_status_print;
+asn_constr_check_f DL_ABS_status_constraint;
+ber_type_decoder_f DL_ABS_status_decode_ber;
+der_type_encoder_f DL_ABS_status_encode_der;
+xer_type_decoder_f DL_ABS_status_decode_xer;
+xer_type_encoder_f DL_ABS_status_encode_xer;
+oer_type_decoder_f DL_ABS_status_decode_oer;
+oer_type_encoder_f DL_ABS_status_encode_oer;
+per_type_decoder_f DL_ABS_status_decode_uper;
+per_type_encoder_f DL_ABS_status_encode_uper;
+per_type_decoder_f DL_ABS_status_decode_aper;
+per_type_encoder_f DL_ABS_status_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DL_ABS_status_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/DL-Forwarding.h b/e2ap/headers/DL-Forwarding.h
new file mode 100644 (file)
index 0000000..9e212aa
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _DL_Forwarding_H_
+#define        _DL_Forwarding_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum DL_Forwarding {
+       DL_Forwarding_dL_forwardingProposed     = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_DL_Forwarding;
+
+/* DL-Forwarding */
+typedef long    DL_Forwarding_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_DL_Forwarding_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_DL_Forwarding;
+extern const asn_INTEGER_specifics_t asn_SPC_DL_Forwarding_specs_1;
+asn_struct_free_f DL_Forwarding_free;
+asn_struct_print_f DL_Forwarding_print;
+asn_constr_check_f DL_Forwarding_constraint;
+ber_type_decoder_f DL_Forwarding_decode_ber;
+der_type_encoder_f DL_Forwarding_encode_der;
+xer_type_decoder_f DL_Forwarding_decode_xer;
+xer_type_encoder_f DL_Forwarding_encode_xer;
+oer_type_decoder_f DL_Forwarding_decode_oer;
+oer_type_encoder_f DL_Forwarding_encode_oer;
+per_type_decoder_f DL_Forwarding_decode_uper;
+per_type_encoder_f DL_Forwarding_encode_uper;
+per_type_decoder_f DL_Forwarding_decode_aper;
+per_type_encoder_f DL_Forwarding_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DL_Forwarding_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/DL-GBR-PRB-usage.h b/e2ap/headers/DL-GBR-PRB-usage.h
new file mode 100644 (file)
index 0000000..a3e83e2
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _DL_GBR_PRB_usage_H_
+#define        _DL_GBR_PRB_usage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DL-GBR-PRB-usage */
+typedef long    DL_GBR_PRB_usage_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_DL_GBR_PRB_usage_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_DL_GBR_PRB_usage;
+asn_struct_free_f DL_GBR_PRB_usage_free;
+asn_struct_print_f DL_GBR_PRB_usage_print;
+asn_constr_check_f DL_GBR_PRB_usage_constraint;
+ber_type_decoder_f DL_GBR_PRB_usage_decode_ber;
+der_type_encoder_f DL_GBR_PRB_usage_encode_der;
+xer_type_decoder_f DL_GBR_PRB_usage_decode_xer;
+xer_type_encoder_f DL_GBR_PRB_usage_encode_xer;
+oer_type_decoder_f DL_GBR_PRB_usage_decode_oer;
+oer_type_encoder_f DL_GBR_PRB_usage_encode_oer;
+per_type_decoder_f DL_GBR_PRB_usage_decode_uper;
+per_type_encoder_f DL_GBR_PRB_usage_encode_uper;
+per_type_decoder_f DL_GBR_PRB_usage_decode_aper;
+per_type_encoder_f DL_GBR_PRB_usage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DL_GBR_PRB_usage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/DL-Total-PRB-usage.h b/e2ap/headers/DL-Total-PRB-usage.h
new file mode 100644 (file)
index 0000000..be33c16
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _DL_Total_PRB_usage_H_
+#define        _DL_Total_PRB_usage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DL-Total-PRB-usage */
+typedef long    DL_Total_PRB_usage_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_DL_Total_PRB_usage_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_DL_Total_PRB_usage;
+asn_struct_free_f DL_Total_PRB_usage_free;
+asn_struct_print_f DL_Total_PRB_usage_print;
+asn_constr_check_f DL_Total_PRB_usage_constraint;
+ber_type_decoder_f DL_Total_PRB_usage_decode_ber;
+der_type_encoder_f DL_Total_PRB_usage_encode_der;
+xer_type_decoder_f DL_Total_PRB_usage_decode_xer;
+xer_type_encoder_f DL_Total_PRB_usage_encode_xer;
+oer_type_decoder_f DL_Total_PRB_usage_decode_oer;
+oer_type_encoder_f DL_Total_PRB_usage_encode_oer;
+per_type_decoder_f DL_Total_PRB_usage_decode_uper;
+per_type_encoder_f DL_Total_PRB_usage_encode_uper;
+per_type_decoder_f DL_Total_PRB_usage_decode_aper;
+per_type_encoder_f DL_Total_PRB_usage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DL_Total_PRB_usage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/DL-non-GBR-PRB-usage.h b/e2ap/headers/DL-non-GBR-PRB-usage.h
new file mode 100644 (file)
index 0000000..a234a6f
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _DL_non_GBR_PRB_usage_H_
+#define        _DL_non_GBR_PRB_usage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DL-non-GBR-PRB-usage */
+typedef long    DL_non_GBR_PRB_usage_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_DL_non_GBR_PRB_usage_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_DL_non_GBR_PRB_usage;
+asn_struct_free_f DL_non_GBR_PRB_usage_free;
+asn_struct_print_f DL_non_GBR_PRB_usage_print;
+asn_constr_check_f DL_non_GBR_PRB_usage_constraint;
+ber_type_decoder_f DL_non_GBR_PRB_usage_decode_ber;
+der_type_encoder_f DL_non_GBR_PRB_usage_encode_der;
+xer_type_decoder_f DL_non_GBR_PRB_usage_decode_xer;
+xer_type_encoder_f DL_non_GBR_PRB_usage_encode_xer;
+oer_type_decoder_f DL_non_GBR_PRB_usage_decode_oer;
+oer_type_encoder_f DL_non_GBR_PRB_usage_encode_oer;
+per_type_decoder_f DL_non_GBR_PRB_usage_decode_uper;
+per_type_encoder_f DL_non_GBR_PRB_usage_encode_uper;
+per_type_decoder_f DL_non_GBR_PRB_usage_decode_aper;
+per_type_encoder_f DL_non_GBR_PRB_usage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DL_non_GBR_PRB_usage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/DL-scheduling-PDCCH-CCE-usage.h b/e2ap/headers/DL-scheduling-PDCCH-CCE-usage.h
new file mode 100644 (file)
index 0000000..960e88b
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _DL_scheduling_PDCCH_CCE_usage_H_
+#define        _DL_scheduling_PDCCH_CCE_usage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DL-scheduling-PDCCH-CCE-usage */
+typedef long    DL_scheduling_PDCCH_CCE_usage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_DL_scheduling_PDCCH_CCE_usage;
+asn_struct_free_f DL_scheduling_PDCCH_CCE_usage_free;
+asn_struct_print_f DL_scheduling_PDCCH_CCE_usage_print;
+asn_constr_check_f DL_scheduling_PDCCH_CCE_usage_constraint;
+ber_type_decoder_f DL_scheduling_PDCCH_CCE_usage_decode_ber;
+der_type_encoder_f DL_scheduling_PDCCH_CCE_usage_encode_der;
+xer_type_decoder_f DL_scheduling_PDCCH_CCE_usage_decode_xer;
+xer_type_encoder_f DL_scheduling_PDCCH_CCE_usage_encode_xer;
+oer_type_decoder_f DL_scheduling_PDCCH_CCE_usage_decode_oer;
+oer_type_encoder_f DL_scheduling_PDCCH_CCE_usage_encode_oer;
+per_type_decoder_f DL_scheduling_PDCCH_CCE_usage_decode_uper;
+per_type_encoder_f DL_scheduling_PDCCH_CCE_usage_encode_uper;
+per_type_decoder_f DL_scheduling_PDCCH_CCE_usage_decode_aper;
+per_type_encoder_f DL_scheduling_PDCCH_CCE_usage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DL_scheduling_PDCCH_CCE_usage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/DLResourceBitmapULandDLSharing.h b/e2ap/headers/DLResourceBitmapULandDLSharing.h
new file mode 100644 (file)
index 0000000..0fe1d91
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _DLResourceBitmapULandDLSharing_H_
+#define        _DLResourceBitmapULandDLSharing_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "DataTrafficResources.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DLResourceBitmapULandDLSharing */
+typedef DataTrafficResources_t  DLResourceBitmapULandDLSharing_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_DLResourceBitmapULandDLSharing_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_DLResourceBitmapULandDLSharing;
+asn_struct_free_f DLResourceBitmapULandDLSharing_free;
+asn_struct_print_f DLResourceBitmapULandDLSharing_print;
+asn_constr_check_f DLResourceBitmapULandDLSharing_constraint;
+ber_type_decoder_f DLResourceBitmapULandDLSharing_decode_ber;
+der_type_encoder_f DLResourceBitmapULandDLSharing_encode_der;
+xer_type_decoder_f DLResourceBitmapULandDLSharing_decode_xer;
+xer_type_encoder_f DLResourceBitmapULandDLSharing_encode_xer;
+oer_type_decoder_f DLResourceBitmapULandDLSharing_decode_oer;
+oer_type_encoder_f DLResourceBitmapULandDLSharing_encode_oer;
+per_type_decoder_f DLResourceBitmapULandDLSharing_decode_uper;
+per_type_encoder_f DLResourceBitmapULandDLSharing_encode_uper;
+per_type_decoder_f DLResourceBitmapULandDLSharing_decode_aper;
+per_type_encoder_f DLResourceBitmapULandDLSharing_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DLResourceBitmapULandDLSharing_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/DLResourcesULandDLSharing.h b/e2ap/headers/DLResourcesULandDLSharing.h
new file mode 100644 (file)
index 0000000..28c203d
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _DLResourcesULandDLSharing_H_
+#define        _DLResourcesULandDLSharing_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NULL.h>
+#include "DLResourceBitmapULandDLSharing.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum DLResourcesULandDLSharing_PR {
+       DLResourcesULandDLSharing_PR_NOTHING,   /* No components present */
+       DLResourcesULandDLSharing_PR_unchanged,
+       DLResourcesULandDLSharing_PR_changed
+       /* Extensions may appear below */
+       
+} DLResourcesULandDLSharing_PR;
+
+/* DLResourcesULandDLSharing */
+typedef struct DLResourcesULandDLSharing {
+       DLResourcesULandDLSharing_PR present;
+       union DLResourcesULandDLSharing_u {
+               NULL_t   unchanged;
+               DLResourceBitmapULandDLSharing_t         changed;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} DLResourcesULandDLSharing_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_DLResourcesULandDLSharing;
+extern asn_CHOICE_specifics_t asn_SPC_DLResourcesULandDLSharing_specs_1;
+extern asn_TYPE_member_t asn_MBR_DLResourcesULandDLSharing_1[2];
+extern asn_per_constraints_t asn_PER_type_DLResourcesULandDLSharing_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DLResourcesULandDLSharing_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/DRB-ID.h b/e2ap/headers/DRB-ID.h
new file mode 100644 (file)
index 0000000..ec5cad5
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _DRB_ID_H_
+#define        _DRB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DRB-ID */
+typedef long    DRB_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_DRB_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_DRB_ID;
+asn_struct_free_f DRB_ID_free;
+asn_struct_print_f DRB_ID_print;
+asn_constr_check_f DRB_ID_constraint;
+ber_type_decoder_f DRB_ID_decode_ber;
+der_type_encoder_f DRB_ID_encode_der;
+xer_type_decoder_f DRB_ID_decode_xer;
+xer_type_encoder_f DRB_ID_encode_xer;
+oer_type_decoder_f DRB_ID_decode_oer;
+oer_type_encoder_f DRB_ID_encode_oer;
+per_type_decoder_f DRB_ID_decode_uper;
+per_type_encoder_f DRB_ID_encode_uper;
+per_type_decoder_f DRB_ID_decode_aper;
+per_type_encoder_f DRB_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DRB_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/DataForwardingAddressIndication.h b/e2ap/headers/DataForwardingAddressIndication.h
new file mode 100644 (file)
index 0000000..12086fc
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _DataForwardingAddressIndication_H_
+#define        _DataForwardingAddressIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DataForwardingAddressIndication */
+typedef struct DataForwardingAddressIndication {
+       ProtocolIE_Container_9515P118_t  protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} DataForwardingAddressIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_DataForwardingAddressIndication;
+extern asn_SEQUENCE_specifics_t asn_SPC_DataForwardingAddressIndication_specs_1;
+extern asn_TYPE_member_t asn_MBR_DataForwardingAddressIndication_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DataForwardingAddressIndication_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/DataTrafficResourceIndication.h b/e2ap/headers/DataTrafficResourceIndication.h
new file mode 100644 (file)
index 0000000..b67d80d
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _DataTrafficResourceIndication_H_
+#define        _DataTrafficResourceIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include "SharedResourceType.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ReservedSubframePattern;
+struct ProtocolExtensionContainer;
+
+/* DataTrafficResourceIndication */
+typedef struct DataTrafficResourceIndication {
+       long     activationSFN;
+       SharedResourceType_t     sharedResourceType;
+       struct ReservedSubframePattern  *reservedSubframePattern;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} DataTrafficResourceIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_DataTrafficResourceIndication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DataTrafficResourceIndication_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/DataTrafficResources.h b/e2ap/headers/DataTrafficResources.h
new file mode 100644 (file)
index 0000000..408f4cf
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _DataTrafficResources_H_
+#define        _DataTrafficResources_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DataTrafficResources */
+typedef BIT_STRING_t    DataTrafficResources_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_DataTrafficResources_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_DataTrafficResources;
+asn_struct_free_f DataTrafficResources_free;
+asn_struct_print_f DataTrafficResources_print;
+asn_constr_check_f DataTrafficResources_constraint;
+ber_type_decoder_f DataTrafficResources_decode_ber;
+der_type_encoder_f DataTrafficResources_encode_der;
+xer_type_decoder_f DataTrafficResources_decode_xer;
+xer_type_encoder_f DataTrafficResources_encode_xer;
+oer_type_decoder_f DataTrafficResources_decode_oer;
+oer_type_encoder_f DataTrafficResources_encode_oer;
+per_type_decoder_f DataTrafficResources_decode_uper;
+per_type_encoder_f DataTrafficResources_encode_uper;
+per_type_decoder_f DataTrafficResources_decode_aper;
+per_type_encoder_f DataTrafficResources_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DataTrafficResources_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/DeactivationIndication.h b/e2ap/headers/DeactivationIndication.h
new file mode 100644 (file)
index 0000000..babff1b
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _DeactivationIndication_H_
+#define        _DeactivationIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum DeactivationIndication {
+       DeactivationIndication_deactivated      = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_DeactivationIndication;
+
+/* DeactivationIndication */
+typedef long    DeactivationIndication_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_DeactivationIndication_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_DeactivationIndication;
+extern const asn_INTEGER_specifics_t asn_SPC_DeactivationIndication_specs_1;
+asn_struct_free_f DeactivationIndication_free;
+asn_struct_print_f DeactivationIndication_print;
+asn_constr_check_f DeactivationIndication_constraint;
+ber_type_decoder_f DeactivationIndication_decode_ber;
+der_type_encoder_f DeactivationIndication_encode_der;
+xer_type_decoder_f DeactivationIndication_decode_xer;
+xer_type_encoder_f DeactivationIndication_encode_xer;
+oer_type_decoder_f DeactivationIndication_decode_oer;
+oer_type_encoder_f DeactivationIndication_encode_oer;
+per_type_decoder_f DeactivationIndication_decode_uper;
+per_type_encoder_f DeactivationIndication_encode_uper;
+per_type_decoder_f DeactivationIndication_decode_aper;
+per_type_encoder_f DeactivationIndication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DeactivationIndication_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/DeliveryStatus.h b/e2ap/headers/DeliveryStatus.h
new file mode 100644 (file)
index 0000000..669e261
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _DeliveryStatus_H_
+#define        _DeliveryStatus_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* DeliveryStatus */
+typedef struct DeliveryStatus {
+       long     highestSuccessDeliveredPDCPSN;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} DeliveryStatus_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_DeliveryStatus;
+extern asn_SEQUENCE_specifics_t asn_SPC_DeliveryStatus_specs_1;
+extern asn_TYPE_member_t asn_MBR_DeliveryStatus_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DeliveryStatus_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/DuplicationActivation.h b/e2ap/headers/DuplicationActivation.h
new file mode 100644 (file)
index 0000000..a496c7e
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _DuplicationActivation_H_
+#define        _DuplicationActivation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum DuplicationActivation {
+       DuplicationActivation_active    = 0,
+       DuplicationActivation_inactive  = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_DuplicationActivation;
+
+/* DuplicationActivation */
+typedef long    DuplicationActivation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_DuplicationActivation;
+asn_struct_free_f DuplicationActivation_free;
+asn_struct_print_f DuplicationActivation_print;
+asn_constr_check_f DuplicationActivation_constraint;
+ber_type_decoder_f DuplicationActivation_decode_ber;
+der_type_encoder_f DuplicationActivation_encode_der;
+xer_type_decoder_f DuplicationActivation_decode_xer;
+xer_type_encoder_f DuplicationActivation_encode_xer;
+oer_type_decoder_f DuplicationActivation_decode_oer;
+oer_type_encoder_f DuplicationActivation_encode_oer;
+per_type_decoder_f DuplicationActivation_decode_uper;
+per_type_encoder_f DuplicationActivation_encode_uper;
+per_type_decoder_f DuplicationActivation_decode_aper;
+per_type_encoder_f DuplicationActivation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DuplicationActivation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/DynamicDLTransmissionInformation.h b/e2ap/headers/DynamicDLTransmissionInformation.h
new file mode 100644 (file)
index 0000000..9602df8
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _DynamicDLTransmissionInformation_H_
+#define        _DynamicDLTransmissionInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NULL.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum DynamicDLTransmissionInformation_PR {
+       DynamicDLTransmissionInformation_PR_NOTHING,    /* No components present */
+       DynamicDLTransmissionInformation_PR_naics_active,
+       DynamicDLTransmissionInformation_PR_naics_inactive
+       /* Extensions may appear below */
+       
+} DynamicDLTransmissionInformation_PR;
+
+/* Forward declarations */
+struct DynamicNAICSInformation;
+
+/* DynamicDLTransmissionInformation */
+typedef struct DynamicDLTransmissionInformation {
+       DynamicDLTransmissionInformation_PR present;
+       union DynamicDLTransmissionInformation_u {
+               struct DynamicNAICSInformation  *naics_active;
+               NULL_t   naics_inactive;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} DynamicDLTransmissionInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_DynamicDLTransmissionInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DynamicDLTransmissionInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/DynamicNAICSInformation.h b/e2ap/headers/DynamicNAICSInformation.h
new file mode 100644 (file)
index 0000000..52dbef0
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _DynamicNAICSInformation_H_
+#define        _DynamicNAICSInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include <NativeInteger.h>
+#include "PA-Values.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* DynamicNAICSInformation */
+typedef struct DynamicNAICSInformation {
+       BIT_STRING_t    *transmissionModes;     /* OPTIONAL */
+       long    *pB_information;        /* OPTIONAL */
+       struct DynamicNAICSInformation__pA_list {
+               A_SEQUENCE_OF(PA_Values_t) list;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } pA_list;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} DynamicNAICSInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_DynamicNAICSInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_DynamicNAICSInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_DynamicNAICSInformation_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DynamicNAICSInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RAB-ID.h b/e2ap/headers/E-RAB-ID.h
new file mode 100644 (file)
index 0000000..d0f1ee5
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RAB_ID_H_
+#define        _E_RAB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RAB-ID */
+typedef long    E_RAB_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E_RAB_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_ID;
+asn_struct_free_f E_RAB_ID_free;
+asn_struct_print_f E_RAB_ID_print;
+asn_constr_check_f E_RAB_ID_constraint;
+ber_type_decoder_f E_RAB_ID_decode_ber;
+der_type_encoder_f E_RAB_ID_encode_der;
+xer_type_decoder_f E_RAB_ID_decode_xer;
+xer_type_encoder_f E_RAB_ID_encode_xer;
+oer_type_decoder_f E_RAB_ID_decode_oer;
+oer_type_encoder_f E_RAB_ID_encode_oer;
+per_type_decoder_f E_RAB_ID_decode_uper;
+per_type_encoder_f E_RAB_ID_encode_uper;
+per_type_decoder_f E_RAB_ID_decode_aper;
+per_type_encoder_f E_RAB_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RAB_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RAB-Item.h b/e2ap/headers/E-RAB-Item.h
new file mode 100644 (file)
index 0000000..c7b4459
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RAB_Item_H_
+#define        _E_RAB_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "Cause.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RAB-Item */
+typedef struct E_RAB_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       Cause_t  cause;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RAB_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RAB_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RAB-Level-QoS-Parameters.h b/e2ap/headers/E-RAB-Level-QoS-Parameters.h
new file mode 100644 (file)
index 0000000..0662f6d
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RAB_Level_QoS_Parameters_H_
+#define        _E_RAB_Level_QoS_Parameters_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "QCI.h"
+#include "AllocationAndRetentionPriority.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GBR_QosInformation;
+struct ProtocolExtensionContainer;
+
+/* E-RAB-Level-QoS-Parameters */
+typedef struct E_RAB_Level_QoS_Parameters {
+       QCI_t    qCI;
+       AllocationAndRetentionPriority_t         allocationAndRetentionPriority;
+       struct GBR_QosInformation       *gbrQosInformation;     /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RAB_Level_QoS_Parameters_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_Level_QoS_Parameters;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RAB_Level_QoS_Parameters_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RAB_Level_QoS_Parameters_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RAB_Level_QoS_Parameters_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RAB-List.h b/e2ap/headers/E-RAB-List.h
new file mode 100644 (file)
index 0000000..4ebd66d
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RAB_List_H_
+#define        _E_RAB_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RAB-List */
+typedef struct E_RAB_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RAB_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RAB_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABUsageReport-Item.h b/e2ap/headers/E-RABUsageReport-Item.h
new file mode 100644 (file)
index 0000000..cd9c183
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABUsageReport_Item_H_
+#define        _E_RABUsageReport_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+#include <INTEGER.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABUsageReport-Item */
+typedef struct E_RABUsageReport_Item {
+       OCTET_STRING_t   startTimeStamp;
+       OCTET_STRING_t   endTimeStamp;
+       INTEGER_t        usageCountUL;
+       INTEGER_t        usageCountDL;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABUsageReport_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABUsageReport_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABUsageReport_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABUsageReportList.h b/e2ap/headers/E-RABUsageReportList.h
new file mode 100644 (file)
index 0000000..5cdf9a6
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABUsageReportList_H_
+#define        _E_RABUsageReportList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABUsageReportList */
+typedef struct E_RABUsageReportList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABUsageReportList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABUsageReportList;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABUsageReportList_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABUsageReportList_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABUsageReportList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABUsageReportList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-Item.h b/e2ap/headers/E-RABs-Admitted-Item.h
new file mode 100644 (file)
index 0000000..40a6a43
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_Item_H_
+#define        _E_RABs_Admitted_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-Item */
+typedef struct E_RABs_Admitted_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       struct GTPtunnelEndpoint        *uL_GTP_TunnelEndpoint; /* OPTIONAL */
+       struct GTPtunnelEndpoint        *dL_GTP_TunnelEndpoint; /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-List.h b/e2ap/headers/E-RABs-Admitted-List.h
new file mode 100644 (file)
index 0000000..80bfc4b
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_List_H_
+#define        _E_RABs_Admitted_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-Admitted-List */
+typedef struct E_RABs_Admitted_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h b/e2ap/headers/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h
new file mode 100644 (file)
index 0000000..50d849d
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_H_
+#define        _E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "GTPtunnelEndpoint.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer */
+typedef struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       GTPtunnelEndpoint_t      s1_DL_GTPtunnelEndpoint;
+       struct GTPtunnelEndpoint        *dL_Forwarding_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct GTPtunnelEndpoint        *uL_Forwarding_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h b/e2ap/headers/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h
new file mode 100644 (file)
index 0000000..ec9f432
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_H_
+#define        _E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "GTPtunnelEndpoint.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-ToBeAdded-Item-Split-Bearer */
+typedef struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       GTPtunnelEndpoint_t      seNB_GTPtunnelEndpoint;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeAdded-Item.h b/e2ap/headers/E-RABs-Admitted-ToBeAdded-Item.h
new file mode 100644 (file)
index 0000000..3e1f51e
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeAdded_Item_H_
+#define        _E_RABs_Admitted_ToBeAdded_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_Admitted_ToBeAdded_Item_PR {
+       E_RABs_Admitted_ToBeAdded_Item_PR_NOTHING,      /* No components present */
+       E_RABs_Admitted_ToBeAdded_Item_PR_sCG_Bearer,
+       E_RABs_Admitted_ToBeAdded_Item_PR_split_Bearer
+       /* Extensions may appear below */
+       
+} E_RABs_Admitted_ToBeAdded_Item_PR;
+
+/* Forward declarations */
+struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer;
+struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer;
+
+/* E-RABs-Admitted-ToBeAdded-Item */
+typedef struct E_RABs_Admitted_ToBeAdded_Item {
+       E_RABs_Admitted_ToBeAdded_Item_PR present;
+       union E_RABs_Admitted_ToBeAdded_Item_u {
+               struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer        *sCG_Bearer;
+               struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer      *split_Bearer;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeAdded_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeAdded-List.h b/e2ap/headers/E-RABs-Admitted-ToBeAdded-List.h
new file mode 100644 (file)
index 0000000..ed85e8c
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeAdded_List_H_
+#define        _E_RABs_Admitted_ToBeAdded_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-Admitted-ToBeAdded-List */
+typedef struct E_RABs_Admitted_ToBeAdded_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeAdded_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h b/e2ap/headers/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h
new file mode 100644 (file)
index 0000000..6fa5d33
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_H_
+#define        _E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "GTPtunnelEndpoint.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer */
+typedef struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       GTPtunnelEndpoint_t      s1_DL_GTPtunnelEndpoint;
+       struct GTPtunnelEndpoint        *dL_Forwarding_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct GTPtunnelEndpoint        *uL_Forwarding_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h b/e2ap/headers/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h
new file mode 100644 (file)
index 0000000..2f1d8cc
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_H_
+#define        _E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "GTPtunnelEndpoint.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer */
+typedef struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       GTPtunnelEndpoint_t      seNB_GTPtunnelEndpoint;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeAdded-ModAckItem.h b/e2ap/headers/E-RABs-Admitted-ToBeAdded-ModAckItem.h
new file mode 100644 (file)
index 0000000..dd6eae1
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeAdded_ModAckItem_H_
+#define        _E_RABs_Admitted_ToBeAdded_ModAckItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_Admitted_ToBeAdded_ModAckItem_PR {
+       E_RABs_Admitted_ToBeAdded_ModAckItem_PR_NOTHING,        /* No components present */
+       E_RABs_Admitted_ToBeAdded_ModAckItem_PR_sCG_Bearer,
+       E_RABs_Admitted_ToBeAdded_ModAckItem_PR_split_Bearer
+       /* Extensions may appear below */
+       
+} E_RABs_Admitted_ToBeAdded_ModAckItem_PR;
+
+/* Forward declarations */
+struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer;
+struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer;
+
+/* E-RABs-Admitted-ToBeAdded-ModAckItem */
+typedef struct E_RABs_Admitted_ToBeAdded_ModAckItem {
+       E_RABs_Admitted_ToBeAdded_ModAckItem_PR present;
+       union E_RABs_Admitted_ToBeAdded_ModAckItem_u {
+               struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer  *sCG_Bearer;
+               struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer        *split_Bearer;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_ModAckItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeAdded_ModAckItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeAdded-ModAckList.h b/e2ap/headers/E-RABs-Admitted-ToBeAdded-ModAckList.h
new file mode 100644 (file)
index 0000000..a210757
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeAdded_ModAckList_H_
+#define        _E_RABs_Admitted_ToBeAdded_ModAckList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-Admitted-ToBeAdded-ModAckList */
+typedef struct E_RABs_Admitted_ToBeAdded_ModAckList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_ModAckList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeAdded_ModAckList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h b/e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h
new file mode 100644 (file)
index 0000000..64fa3bd
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_H_
+#define        _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GTPtunnelEndpoint.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent */
+typedef struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent {
+       GTPtunnelEndpoint_t      sgNB_DL_GTP_TEIDatSCG;
+       struct GTPtunnelEndpoint        *secondary_sgNB_DL_GTP_TEIDatSCG;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h b/e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h
new file mode 100644 (file)
index 0000000..b7aa082
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_H_
+#define        _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GTPtunnelEndpoint.h"
+#include "RLCMode.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct E_RAB_Level_QoS_Parameters;
+struct ULConfiguration;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent */
+typedef struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent {
+       GTPtunnelEndpoint_t      s1_DL_GTPtunnelEndpoint;
+       struct GTPtunnelEndpoint        *sgNB_UL_GTP_TEIDatPDCP;        /* OPTIONAL */
+       RLCMode_t       *rlc_Mode;      /* OPTIONAL */
+       struct GTPtunnelEndpoint        *dL_Forwarding_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct GTPtunnelEndpoint        *uL_Forwarding_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct E_RAB_Level_QoS_Parameters       *mCG_E_RAB_Level_QoS_Parameters;        /* OPTIONAL */
+       struct ULConfiguration  *uL_Configuration;      /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_1[8];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h b/e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h
new file mode 100644 (file)
index 0000000..ef2655e
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_H_
+#define        _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "EN-DC-ResourceConfiguration.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_PR {
+       E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_PR_NOTHING,        /* No components present */
+       E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_PR_sgNBPDCPpresent,
+       E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_PR_sgNBPDCPnotpresent
+       /* Extensions may appear below */
+       
+} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_PR;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent;
+struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent;
+
+/* E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item */
+typedef struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       EN_DC_ResourceConfiguration_t    en_DC_ResourceConfiguration;
+       struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration {
+               E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_PR present;
+               union E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_u {
+                       struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent     *sgNBPDCPpresent;
+                       struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent  *sgNBPDCPnotpresent;
+                       /*
+                        * This type is extensible,
+                        * possible extensions are below.
+                        */
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } resource_configuration;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h b/e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h
new file mode 100644 (file)
index 0000000..01d35cc
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_H_
+#define        _E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList */
+typedef struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h b/e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h
new file mode 100644 (file)
index 0000000..a12cc55
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_H_
+#define        _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GTPtunnelEndpoint.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent */
+typedef struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent {
+       GTPtunnelEndpoint_t      sgNB_DL_GTP_TEIDatSCG;
+       struct GTPtunnelEndpoint        *secondary_sgNB_DL_GTP_TEIDatSCG;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h b/e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h
new file mode 100644 (file)
index 0000000..1b5727e
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_H_
+#define        _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GTPtunnelEndpoint.h"
+#include "RLCMode.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct E_RAB_Level_QoS_Parameters;
+struct ULConfiguration;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent */
+typedef struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent {
+       GTPtunnelEndpoint_t      s1_DL_GTPtunnelEndpoint;
+       struct GTPtunnelEndpoint        *sgNB_UL_GTP_TEIDatPDCP;        /* OPTIONAL */
+       RLCMode_t       *rlc_Mode;      /* OPTIONAL */
+       struct GTPtunnelEndpoint        *dL_Forwarding_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct GTPtunnelEndpoint        *uL_Forwarding_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct E_RAB_Level_QoS_Parameters       *mCG_E_RAB_Level_QoS_Parameters;        /* OPTIONAL */
+       struct ULConfiguration  *uL_Configuration;      /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_1[8];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h b/e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h
new file mode 100644 (file)
index 0000000..24f1d5e
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_H_
+#define        _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "EN-DC-ResourceConfiguration.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration_PR {
+       E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration_PR_NOTHING,   /* No components present */
+       E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration_PR_sgNBPDCPpresent,
+       E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration_PR_sgNBPDCPnotpresent
+       /* Extensions may appear below */
+       
+} E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration_PR;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent;
+struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent;
+
+/* E-RABs-Admitted-ToBeAdded-SgNBModAck-Item */
+typedef struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       EN_DC_ResourceConfiguration_t    en_DC_ResourceConfiguration;
+       struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration {
+               E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration_PR present;
+               union E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration_u {
+                       struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent        *sgNBPDCPpresent;
+                       struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent     *sgNBPDCPnotpresent;
+                       /*
+                        * This type is extensible,
+                        * possible extensions are below.
+                        */
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } resource_configuration;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBModAckList.h b/e2ap/headers/E-RABs-Admitted-ToBeAdded-SgNBModAckList.h
new file mode 100644 (file)
index 0000000..f3de823
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeAdded_SgNBModAckList_H_
+#define        _E_RABs_Admitted_ToBeAdded_SgNBModAckList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-Admitted-ToBeAdded-SgNBModAckList */
+typedef struct E_RABs_Admitted_ToBeAdded_SgNBModAckList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_SgNBModAckList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeAdded_SgNBModAckList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h b/e2ap/headers/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h
new file mode 100644 (file)
index 0000000..8177f53
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_H_
+#define        _E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer */
+typedef struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       struct GTPtunnelEndpoint        *s1_DL_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.h b/e2ap/headers/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.h
new file mode 100644 (file)
index 0000000..3e1bcad
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_H_
+#define        _E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer */
+typedef struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       struct GTPtunnelEndpoint        *seNB_GTPtunnelEndpoint;        /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeModified-ModAckItem.h b/e2ap/headers/E-RABs-Admitted-ToBeModified-ModAckItem.h
new file mode 100644 (file)
index 0000000..a162026
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeModified_ModAckItem_H_
+#define        _E_RABs_Admitted_ToBeModified_ModAckItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_Admitted_ToBeModified_ModAckItem_PR {
+       E_RABs_Admitted_ToBeModified_ModAckItem_PR_NOTHING,     /* No components present */
+       E_RABs_Admitted_ToBeModified_ModAckItem_PR_sCG_Bearer,
+       E_RABs_Admitted_ToBeModified_ModAckItem_PR_split_Bearer
+       /* Extensions may appear below */
+       
+} E_RABs_Admitted_ToBeModified_ModAckItem_PR;
+
+/* Forward declarations */
+struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer;
+struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer;
+
+/* E-RABs-Admitted-ToBeModified-ModAckItem */
+typedef struct E_RABs_Admitted_ToBeModified_ModAckItem {
+       E_RABs_Admitted_ToBeModified_ModAckItem_PR present;
+       union E_RABs_Admitted_ToBeModified_ModAckItem_u {
+               struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer       *sCG_Bearer;
+               struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer     *split_Bearer;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeModified_ModAckItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeModified_ModAckItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeModified-ModAckList.h b/e2ap/headers/E-RABs-Admitted-ToBeModified-ModAckList.h
new file mode 100644 (file)
index 0000000..4f11afa
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeModified_ModAckList_H_
+#define        _E_RABs_Admitted_ToBeModified_ModAckList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-Admitted-ToBeModified-ModAckList */
+typedef struct E_RABs_Admitted_ToBeModified_ModAckList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeModified_ModAckList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeModified_ModAckList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h b/e2ap/headers/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h
new file mode 100644 (file)
index 0000000..2ba8fcf
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_H_
+#define        _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent */
+typedef struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent {
+       struct GTPtunnelEndpoint        *sgNB_DL_GTP_TEIDatSCG; /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h b/e2ap/headers/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h
new file mode 100644 (file)
index 0000000..13d2281
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_H_
+#define        _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct E_RAB_Level_QoS_Parameters;
+struct ULConfiguration;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent */
+typedef struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent {
+       struct GTPtunnelEndpoint        *s1_DL_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct GTPtunnelEndpoint        *sgNB_UL_GTP_TEIDatPDCP;        /* OPTIONAL */
+       struct E_RAB_Level_QoS_Parameters       *mCG_E_RAB_Level_QoS_Parameters;        /* OPTIONAL */
+       struct ULConfiguration  *uL_Configuration;      /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h b/e2ap/headers/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h
new file mode 100644 (file)
index 0000000..9471a03
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_H_
+#define        _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "EN-DC-ResourceConfiguration.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration_PR {
+       E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration_PR_NOTHING,        /* No components present */
+       E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration_PR_sgNBPDCPpresent,
+       E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration_PR_sgNBPDCPnotpresent
+       /* Extensions may appear below */
+       
+} E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration_PR;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent;
+struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent;
+
+/* E-RABs-Admitted-ToBeModified-SgNBModAck-Item */
+typedef struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       EN_DC_ResourceConfiguration_t    en_DC_ResourceConfiguration;
+       struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration {
+               E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration_PR present;
+               union E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration_u {
+                       struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent     *sgNBPDCPpresent;
+                       struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent  *sgNBPDCPnotpresent;
+                       /*
+                        * This type is extensible,
+                        * possible extensions are below.
+                        */
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } resource_configuration;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeModified_SgNBModAck_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeModified-SgNBModAckList.h b/e2ap/headers/E-RABs-Admitted-ToBeModified-SgNBModAckList.h
new file mode 100644 (file)
index 0000000..fde2eb4
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeModified_SgNBModAckList_H_
+#define        _E_RABs_Admitted_ToBeModified_SgNBModAckList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-Admitted-ToBeModified-SgNBModAckList */
+typedef struct E_RABs_Admitted_ToBeModified_SgNBModAckList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeModified_SgNBModAckList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeModified_SgNBModAckList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h b/e2ap/headers/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h
new file mode 100644 (file)
index 0000000..8feee87
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_H_
+#define        _E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer */
+typedef struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.h b/e2ap/headers/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.h
new file mode 100644 (file)
index 0000000..beb1b4d
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_H_
+#define        _E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer */
+typedef struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeReleased-ModAckList.h b/e2ap/headers/E-RABs-Admitted-ToBeReleased-ModAckList.h
new file mode 100644 (file)
index 0000000..b470e0d
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeReleased_ModAckList_H_
+#define        _E_RABs_Admitted_ToBeReleased_ModAckList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-Admitted-ToBeReleased-ModAckList */
+typedef struct E_RABs_Admitted_ToBeReleased_ModAckList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeReleased_ModAckList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeReleased_ModAckList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h b/e2ap/headers/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h
new file mode 100644 (file)
index 0000000..f4f1ce7
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_H_
+#define        _E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent */
+typedef struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent {
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h b/e2ap/headers/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h
new file mode 100644 (file)
index 0000000..6c8d375
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_H_
+#define        _E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent */
+typedef struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent {
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeReleased-SgNBModAckList.h b/e2ap/headers/E-RABs-Admitted-ToBeReleased-SgNBModAckList.h
new file mode 100644 (file)
index 0000000..a46bc29
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeReleased_SgNBModAckList_H_
+#define        _E_RABs_Admitted_ToBeReleased_SgNBModAckList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-Admitted-ToBeReleased-SgNBModAckList */
+typedef struct E_RABs_Admitted_ToBeReleased_SgNBModAckList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeReleased_SgNBModAckList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeReleased_SgNBModAckList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h b/e2ap/headers/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h
new file mode 100644 (file)
index 0000000..bb0b300
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_H_
+#define        _E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "RLCMode.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item */
+typedef struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       RLCMode_t        rlc_Mode_transferred;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h b/e2ap/headers/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h
new file mode 100644 (file)
index 0000000..57f79d7
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_H_
+#define        _E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList */
+typedef struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToReleased-ModAckItem.h b/e2ap/headers/E-RABs-Admitted-ToReleased-ModAckItem.h
new file mode 100644 (file)
index 0000000..c57d4d2
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToReleased_ModAckItem_H_
+#define        _E_RABs_Admitted_ToReleased_ModAckItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_Admitted_ToReleased_ModAckItem_PR {
+       E_RABs_Admitted_ToReleased_ModAckItem_PR_NOTHING,       /* No components present */
+       E_RABs_Admitted_ToReleased_ModAckItem_PR_sCG_Bearer,
+       E_RABs_Admitted_ToReleased_ModAckItem_PR_split_Bearer
+       /* Extensions may appear below */
+       
+} E_RABs_Admitted_ToReleased_ModAckItem_PR;
+
+/* Forward declarations */
+struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer;
+struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer;
+
+/* E-RABs-Admitted-ToReleased-ModAckItem */
+typedef struct E_RABs_Admitted_ToReleased_ModAckItem {
+       E_RABs_Admitted_ToReleased_ModAckItem_PR present;
+       union E_RABs_Admitted_ToReleased_ModAckItem_u {
+               struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer       *sCG_Bearer;
+               struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer     *split_Bearer;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToReleased_ModAckItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToReleased_ModAckItem;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToReleased_ModAckItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-Admitted-ToReleased-SgNBModAck-Item.h b/e2ap/headers/E-RABs-Admitted-ToReleased-SgNBModAck-Item.h
new file mode 100644 (file)
index 0000000..4604940
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_Admitted_ToReleased_SgNBModAck_Item_H_
+#define        _E_RABs_Admitted_ToReleased_SgNBModAck_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "EN-DC-ResourceConfiguration.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration_PR {
+       E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration_PR_NOTHING,  /* No components present */
+       E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration_PR_sgNBPDCPpresent,
+       E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration_PR_sgNBPDCPnotpresent
+       /* Extensions may appear below */
+       
+} E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration_PR;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent;
+struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent;
+
+/* E-RABs-Admitted-ToReleased-SgNBModAck-Item */
+typedef struct E_RABs_Admitted_ToReleased_SgNBModAck_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       EN_DC_ResourceConfiguration_t    en_DC_ResourceConfiguration;
+       struct E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration {
+               E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration_PR present;
+               union E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration_u {
+                       struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent     *sgNBPDCPpresent;
+                       struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent  *sgNBPDCPnotpresent;
+                       /*
+                        * This type is extensible,
+                        * possible extensions are below.
+                        */
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } resource_configuration;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToReleased_SgNBModAck_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_Admitted_ToReleased_SgNBModAck_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.h b/e2ap/headers/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.h
new file mode 100644 (file)
index 0000000..aa3510b
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_H_
+#define        _E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent */
+typedef struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent {
+       struct GTPtunnelEndpoint        *secondary_meNB_UL_GTP_TEIDatPDCP;      /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h b/e2ap/headers/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h
new file mode 100644 (file)
index 0000000..f8d6e29
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_H_
+#define        _E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent */
+typedef struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent {
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-AdmittedToBeModified-SgNBModConf-Item.h b/e2ap/headers/E-RABs-AdmittedToBeModified-SgNBModConf-Item.h
new file mode 100644 (file)
index 0000000..b560826
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_AdmittedToBeModified_SgNBModConf_Item_H_
+#define        _E_RABs_AdmittedToBeModified_SgNBModConf_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "EN-DC-ResourceConfiguration.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration_PR {
+       E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration_PR_NOTHING,        /* No components present */
+       E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration_PR_sgNBPDCPpresent,
+       E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration_PR_sgNBPDCPnotpresent
+       /* Extensions may appear below */
+       
+} E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration_PR;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent;
+struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent;
+
+/* E-RABs-AdmittedToBeModified-SgNBModConf-Item */
+typedef struct E_RABs_AdmittedToBeModified_SgNBModConf_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       EN_DC_ResourceConfiguration_t    en_DC_ResourceConfiguration;
+       struct E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration {
+               E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration_PR present;
+               union E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration_u {
+                       struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent     *sgNBPDCPpresent;
+                       struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent  *sgNBPDCPnotpresent;
+                       /*
+                        * This type is extensible,
+                        * possible extensions are below.
+                        */
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } resource_configuration;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_AdmittedToBeModified_SgNBModConf_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_AdmittedToBeModified_SgNBModConf_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-AdmittedToBeModified-SgNBModConfList.h b/e2ap/headers/E-RABs-AdmittedToBeModified-SgNBModConfList.h
new file mode 100644 (file)
index 0000000..55daa51
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_AdmittedToBeModified_SgNBModConfList_H_
+#define        _E_RABs_AdmittedToBeModified_SgNBModConfList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-AdmittedToBeModified-SgNBModConfList */
+typedef struct E_RABs_AdmittedToBeModified_SgNBModConfList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_AdmittedToBeModified_SgNBModConfList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_AdmittedToBeModified_SgNBModConfList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-DataForwardingAddress-Item.h b/e2ap/headers/E-RABs-DataForwardingAddress-Item.h
new file mode 100644 (file)
index 0000000..9524761
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_DataForwardingAddress_Item_H_
+#define        _E_RABs_DataForwardingAddress_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "GTPtunnelEndpoint.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-DataForwardingAddress-Item */
+typedef struct E_RABs_DataForwardingAddress_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       GTPtunnelEndpoint_t      dl_GTPtunnelEndpoint;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_DataForwardingAddress_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_DataForwardingAddress_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_DataForwardingAddress_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-DataForwardingAddress-List.h b/e2ap/headers/E-RABs-DataForwardingAddress-List.h
new file mode 100644 (file)
index 0000000..f52e3d7
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_DataForwardingAddress_List_H_
+#define        _E_RABs_DataForwardingAddress_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-DataForwardingAddress-List */
+typedef struct E_RABs_DataForwardingAddress_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_DataForwardingAddress_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_DataForwardingAddress_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_DataForwardingAddress_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-SubjectToCounterCheck-List.h b/e2ap/headers/E-RABs-SubjectToCounterCheck-List.h
new file mode 100644 (file)
index 0000000..27f3b47
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_SubjectToCounterCheck_List_H_
+#define        _E_RABs_SubjectToCounterCheck_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-SubjectToCounterCheck-List */
+typedef struct E_RABs_SubjectToCounterCheck_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_SubjectToCounterCheck_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToCounterCheck_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_SubjectToCounterCheck_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-SubjectToCounterCheckItem.h b/e2ap/headers/E-RABs-SubjectToCounterCheckItem.h
new file mode 100644 (file)
index 0000000..034c9f9
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_SubjectToCounterCheckItem_H_
+#define        _E_RABs_SubjectToCounterCheckItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-SubjectToCounterCheckItem */
+typedef struct E_RABs_SubjectToCounterCheckItem {
+       E_RAB_ID_t       e_RAB_ID;
+       unsigned long    uL_Count;
+       unsigned long    dL_Count;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_SubjectToCounterCheckItem_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_uL_Count_3;    // (Use -fall-defs-global to expose) */
+/* extern asn_TYPE_descriptor_t asn_DEF_dL_Count_4;    // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToCounterCheckItem;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_SubjectToCounterCheckItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-SubjectToSgNBCounterCheck-Item.h b/e2ap/headers/E-RABs-SubjectToSgNBCounterCheck-Item.h
new file mode 100644 (file)
index 0000000..7061966
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_SubjectToSgNBCounterCheck_Item_H_
+#define        _E_RABs_SubjectToSgNBCounterCheck_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-SubjectToSgNBCounterCheck-Item */
+typedef struct E_RABs_SubjectToSgNBCounterCheck_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       unsigned long    uL_Count;
+       unsigned long    dL_Count;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_SubjectToSgNBCounterCheck_Item_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_uL_Count_3;    // (Use -fall-defs-global to expose) */
+/* extern asn_TYPE_descriptor_t asn_DEF_dL_Count_4;    // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_SubjectToSgNBCounterCheck_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-SubjectToSgNBCounterCheck-List.h b/e2ap/headers/E-RABs-SubjectToSgNBCounterCheck-List.h
new file mode 100644 (file)
index 0000000..4a6241a
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_SubjectToSgNBCounterCheck_List_H_
+#define        _E_RABs_SubjectToSgNBCounterCheck_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-SubjectToSgNBCounterCheck-List */
+typedef struct E_RABs_SubjectToSgNBCounterCheck_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_SubjectToSgNBCounterCheck_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_SubjectToSgNBCounterCheck_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-SubjectToStatusTransfer-Item.h b/e2ap/headers/E-RABs-SubjectToStatusTransfer-Item.h
new file mode 100644 (file)
index 0000000..d3e0cf0
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_SubjectToStatusTransfer_Item_H_
+#define        _E_RABs_SubjectToStatusTransfer_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "ReceiveStatusofULPDCPSDUs.h"
+#include "COUNTvalue.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-SubjectToStatusTransfer-Item */
+typedef struct E_RABs_SubjectToStatusTransfer_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       ReceiveStatusofULPDCPSDUs_t     *receiveStatusofULPDCPSDUs;     /* OPTIONAL */
+       COUNTvalue_t     uL_COUNTvalue;
+       COUNTvalue_t     dL_COUNTvalue;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_SubjectToStatusTransfer_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToStatusTransfer_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_SubjectToStatusTransfer_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-SubjectToStatusTransfer-List.h b/e2ap/headers/E-RABs-SubjectToStatusTransfer-List.h
new file mode 100644 (file)
index 0000000..4302a7d
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_SubjectToStatusTransfer_List_H_
+#define        _E_RABs_SubjectToStatusTransfer_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-SubjectToStatusTransfer-List */
+typedef struct E_RABs_SubjectToStatusTransfer_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_SubjectToStatusTransfer_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToStatusTransfer_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_SubjectToStatusTransfer_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeAdded-Item-SCG-Bearer.h b/e2ap/headers/E-RABs-ToBeAdded-Item-SCG-Bearer.h
new file mode 100644 (file)
index 0000000..2aa4053
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeAdded_Item_SCG_Bearer_H_
+#define        _E_RABs_ToBeAdded_Item_SCG_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "DL-Forwarding.h"
+#include "GTPtunnelEndpoint.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeAdded-Item-SCG-Bearer */
+typedef struct E_RABs_ToBeAdded_Item_SCG_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       E_RAB_Level_QoS_Parameters_t     e_RAB_Level_QoS_Parameters;
+       DL_Forwarding_t *dL_Forwarding; /* OPTIONAL */
+       GTPtunnelEndpoint_t      s1_UL_GTPtunnelEndpoint;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_Item_SCG_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_SCG_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_SCG_Bearer_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeAdded_Item_SCG_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeAdded-Item-Split-Bearer.h b/e2ap/headers/E-RABs-ToBeAdded-Item-Split-Bearer.h
new file mode 100644 (file)
index 0000000..d8e6453
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeAdded_Item_Split_Bearer_H_
+#define        _E_RABs_ToBeAdded_Item_Split_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "GTPtunnelEndpoint.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeAdded-Item-Split-Bearer */
+typedef struct E_RABs_ToBeAdded_Item_Split_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       E_RAB_Level_QoS_Parameters_t     e_RAB_Level_QoS_Parameters;
+       GTPtunnelEndpoint_t      meNB_GTPtunnelEndpoint;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_Item_Split_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_Split_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_Split_Bearer_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeAdded_Item_Split_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeAdded-Item.h b/e2ap/headers/E-RABs-ToBeAdded-Item.h
new file mode 100644 (file)
index 0000000..42e735c
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeAdded_Item_H_
+#define        _E_RABs_ToBeAdded_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_ToBeAdded_Item_PR {
+       E_RABs_ToBeAdded_Item_PR_NOTHING,       /* No components present */
+       E_RABs_ToBeAdded_Item_PR_sCG_Bearer,
+       E_RABs_ToBeAdded_Item_PR_split_Bearer
+       /* Extensions may appear below */
+       
+} E_RABs_ToBeAdded_Item_PR;
+
+/* Forward declarations */
+struct E_RABs_ToBeAdded_Item_SCG_Bearer;
+struct E_RABs_ToBeAdded_Item_Split_Bearer;
+
+/* E-RABs-ToBeAdded-Item */
+typedef struct E_RABs_ToBeAdded_Item {
+       E_RABs_ToBeAdded_Item_PR present;
+       union E_RABs_ToBeAdded_Item_u {
+               struct E_RABs_ToBeAdded_Item_SCG_Bearer *sCG_Bearer;
+               struct E_RABs_ToBeAdded_Item_Split_Bearer       *split_Bearer;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeAdded_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeAdded-List-ModReq.h b/e2ap/headers/E-RABs-ToBeAdded-List-ModReq.h
new file mode 100644 (file)
index 0000000..bed7444
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeAdded_List_ModReq_H_
+#define        _E_RABs_ToBeAdded_List_ModReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeAdded-List-ModReq */
+typedef struct E_RABs_ToBeAdded_List_ModReq {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_List_ModReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_List_ModReq;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeAdded_List_ModReq_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_List_ModReq_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABs_ToBeAdded_List_ModReq_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeAdded_List_ModReq_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeAdded-List.h b/e2ap/headers/E-RABs-ToBeAdded-List.h
new file mode 100644 (file)
index 0000000..3337c5c
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeAdded_List_H_
+#define        _E_RABs_ToBeAdded_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeAdded-List */
+typedef struct E_RABs_ToBeAdded_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeAdded_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h b/e2ap/headers/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h
new file mode 100644 (file)
index 0000000..8e36947
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_H_
+#define        _E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "DL-Forwarding.h"
+#include "GTPtunnelEndpoint.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeAdded-ModReqItem-SCG-Bearer */
+typedef struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       E_RAB_Level_QoS_Parameters_t     e_RAB_Level_QoS_Parameters;
+       DL_Forwarding_t *dL_Forwarding; /* OPTIONAL */
+       GTPtunnelEndpoint_t      s1_UL_GTPtunnelEndpoint;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h b/e2ap/headers/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h
new file mode 100644 (file)
index 0000000..59a8b6e
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeAdded_ModReqItem_Split_Bearer_H_
+#define        _E_RABs_ToBeAdded_ModReqItem_Split_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "GTPtunnelEndpoint.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeAdded-ModReqItem-Split-Bearer */
+typedef struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       E_RAB_Level_QoS_Parameters_t     e_RAB_Level_QoS_Parameters;
+       GTPtunnelEndpoint_t      meNB_GTPtunnelEndpoint;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_ModReqItem_Split_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeAdded_ModReqItem_Split_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeAdded-ModReqItem.h b/e2ap/headers/E-RABs-ToBeAdded-ModReqItem.h
new file mode 100644 (file)
index 0000000..54cc518
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeAdded_ModReqItem_H_
+#define        _E_RABs_ToBeAdded_ModReqItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_ToBeAdded_ModReqItem_PR {
+       E_RABs_ToBeAdded_ModReqItem_PR_NOTHING, /* No components present */
+       E_RABs_ToBeAdded_ModReqItem_PR_sCG_Bearer,
+       E_RABs_ToBeAdded_ModReqItem_PR_split_Bearer
+       /* Extensions may appear below */
+       
+} E_RABs_ToBeAdded_ModReqItem_PR;
+
+/* Forward declarations */
+struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer;
+struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer;
+
+/* E-RABs-ToBeAdded-ModReqItem */
+typedef struct E_RABs_ToBeAdded_ModReqItem {
+       E_RABs_ToBeAdded_ModReqItem_PR present;
+       union E_RABs_ToBeAdded_ModReqItem_u {
+               struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer   *sCG_Bearer;
+               struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer *split_Bearer;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_ModReqItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeAdded_ModReqItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h b/e2ap/headers/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h
new file mode 100644 (file)
index 0000000..7afcf3f
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_H_
+#define        _E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "GTPtunnelEndpoint.h"
+#include "RLCMode.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ULConfiguration;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent */
+typedef struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent {
+       E_RAB_Level_QoS_Parameters_t     requested_SCG_E_RAB_Level_QoS_Parameters;
+       GTPtunnelEndpoint_t      meNB_UL_GTP_TEIDatPDCP;
+       struct GTPtunnelEndpoint        *secondary_meNB_UL_GTP_TEIDatPDCP;      /* OPTIONAL */
+       RLCMode_t        rlc_Mode;
+       struct ULConfiguration  *uL_Configuration;      /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_1[6];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h b/e2ap/headers/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h
new file mode 100644 (file)
index 0000000..99773a6
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_H_
+#define        _E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "DL-Forwarding.h"
+#include "GTPtunnelEndpoint.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GBR_QosInformation;
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent */
+typedef struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent {
+       E_RAB_Level_QoS_Parameters_t     full_E_RAB_Level_QoS_Parameters;
+       struct GBR_QosInformation       *max_MCG_admit_E_RAB_Level_QoS_Parameters;      /* OPTIONAL */
+       DL_Forwarding_t *dL_Forwarding; /* OPTIONAL */
+       struct GTPtunnelEndpoint        *meNB_DL_GTP_TEIDatMCG; /* OPTIONAL */
+       GTPtunnelEndpoint_t      s1_UL_GTPtunnelEndpoint;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_1[6];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeAdded-SgNBAddReq-Item.h b/e2ap/headers/E-RABs-ToBeAdded-SgNBAddReq-Item.h
new file mode 100644 (file)
index 0000000..8024bda
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeAdded_SgNBAddReq_Item_H_
+#define        _E_RABs_ToBeAdded_SgNBAddReq_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "DRB-ID.h"
+#include "EN-DC-ResourceConfiguration.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR {
+       E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR_NOTHING,    /* No components present */
+       E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR_sgNBPDCPpresent,
+       E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR_sgNBPDCPnotpresent
+       /* Extensions may appear below */
+       
+} E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent;
+struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent;
+
+/* E-RABs-ToBeAdded-SgNBAddReq-Item */
+typedef struct E_RABs_ToBeAdded_SgNBAddReq_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       DRB_ID_t         drb_ID;
+       EN_DC_ResourceConfiguration_t    en_DC_ResourceConfiguration;
+       struct E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration {
+               E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR present;
+               union E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_u {
+                       struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent *sgNBPDCPpresent;
+                       struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent      *sgNBPDCPnotpresent;
+                       /*
+                        * This type is extensible,
+                        * possible extensions are below.
+                        */
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } resource_configuration;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBAddReq_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeAdded_SgNBAddReq_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeAdded-SgNBAddReqList.h b/e2ap/headers/E-RABs-ToBeAdded-SgNBAddReqList.h
new file mode 100644 (file)
index 0000000..d5d66cc
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeAdded_SgNBAddReqList_H_
+#define        _E_RABs_ToBeAdded_SgNBAddReqList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeAdded-SgNBAddReqList */
+typedef struct E_RABs_ToBeAdded_SgNBAddReqList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBAddReqList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeAdded_SgNBAddReqList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h b/e2ap/headers/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h
new file mode 100644 (file)
index 0000000..e3e4a42
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_H_
+#define        _E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "GTPtunnelEndpoint.h"
+#include "RLCMode.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ULConfiguration;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent */
+typedef struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent {
+       E_RAB_Level_QoS_Parameters_t     requested_SCG_E_RAB_Level_QoS_Parameters;
+       GTPtunnelEndpoint_t      meNB_UL_GTP_TEIDatPDCP;
+       struct GTPtunnelEndpoint        *secondary_meNB_UL_GTP_TEIDatPDCP;      /* OPTIONAL */
+       RLCMode_t        rlc_Mode;
+       struct ULConfiguration  *uL_Configuration;      /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_1[6];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h b/e2ap/headers/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h
new file mode 100644 (file)
index 0000000..d30421a
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_H_
+#define        _E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "DL-Forwarding.h"
+#include "GTPtunnelEndpoint.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GBR_QosInformation;
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent */
+typedef struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent {
+       E_RAB_Level_QoS_Parameters_t     full_E_RAB_Level_QoS_Parameters;
+       struct GBR_QosInformation       *max_MN_admit_E_RAB_Level_QoS_Parameters;       /* OPTIONAL */
+       DL_Forwarding_t *dL_Forwarding; /* OPTIONAL */
+       struct GTPtunnelEndpoint        *meNB_DL_GTP_TEIDatMCG; /* OPTIONAL */
+       GTPtunnelEndpoint_t      s1_UL_GTPtunnelEndpoint;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_1[6];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeAdded-SgNBModReq-Item.h b/e2ap/headers/E-RABs-ToBeAdded-SgNBModReq-Item.h
new file mode 100644 (file)
index 0000000..e7bbf5b
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeAdded_SgNBModReq_Item_H_
+#define        _E_RABs_ToBeAdded_SgNBModReq_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "DRB-ID.h"
+#include "EN-DC-ResourceConfiguration.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration_PR {
+       E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration_PR_NOTHING,    /* No components present */
+       E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration_PR_sgNBPDCPpresent,
+       E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration_PR_sgNBPDCPnotpresent
+       /* Extensions may appear below */
+       
+} E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration_PR;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent;
+struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent;
+
+/* E-RABs-ToBeAdded-SgNBModReq-Item */
+typedef struct E_RABs_ToBeAdded_SgNBModReq_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       DRB_ID_t         drb_ID;
+       EN_DC_ResourceConfiguration_t    en_DC_ResourceConfiguration;
+       struct E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration {
+               E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration_PR present;
+               union E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration_u {
+                       struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent *sgNBPDCPpresent;
+                       struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent      *sgNBPDCPnotpresent;
+                       /*
+                        * This type is extensible,
+                        * possible extensions are below.
+                        */
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } resource_configuration;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBModReq_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeAdded_SgNBModReq_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeAdded-SgNBModReq-List.h b/e2ap/headers/E-RABs-ToBeAdded-SgNBModReq-List.h
new file mode 100644 (file)
index 0000000..8352a45
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeAdded_SgNBModReq_List_H_
+#define        _E_RABs_ToBeAdded_SgNBModReq_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeAdded-SgNBModReq-List */
+typedef struct E_RABs_ToBeAdded_SgNBModReq_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBModReq_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_List_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABs_ToBeAdded_SgNBModReq_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeAdded_SgNBModReq_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeModified-List-ModReq.h b/e2ap/headers/E-RABs-ToBeModified-List-ModReq.h
new file mode 100644 (file)
index 0000000..3214556
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeModified_List_ModReq_H_
+#define        _E_RABs_ToBeModified_List_ModReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeModified-List-ModReq */
+typedef struct E_RABs_ToBeModified_List_ModReq {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_List_ModReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_List_ModReq;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeModified_List_ModReq_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_List_ModReq_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABs_ToBeModified_List_ModReq_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeModified_List_ModReq_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h b/e2ap/headers/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h
new file mode 100644 (file)
index 0000000..0131f30
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeModified_ModReqItem_SCG_Bearer_H_
+#define        _E_RABs_ToBeModified_ModReqItem_SCG_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct E_RAB_Level_QoS_Parameters;
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeModified-ModReqItem-SCG-Bearer */
+typedef struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       struct E_RAB_Level_QoS_Parameters       *e_RAB_Level_QoS_Parameters;    /* OPTIONAL */
+       struct GTPtunnelEndpoint        *s1_UL_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_ModReqItem_SCG_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeModified_ModReqItem_SCG_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeModified-ModReqItem-Split-Bearer.h b/e2ap/headers/E-RABs-ToBeModified-ModReqItem-Split-Bearer.h
new file mode 100644 (file)
index 0000000..4da3c8f
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeModified_ModReqItem_Split_Bearer_H_
+#define        _E_RABs_ToBeModified_ModReqItem_Split_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct E_RAB_Level_QoS_Parameters;
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeModified-ModReqItem-Split-Bearer */
+typedef struct E_RABs_ToBeModified_ModReqItem_Split_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       struct E_RAB_Level_QoS_Parameters       *e_RAB_Level_QoS_Parameters;    /* OPTIONAL */
+       struct GTPtunnelEndpoint        *meNB_GTPtunnelEndpoint;        /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_ModReqItem_Split_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_Split_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_Split_Bearer_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeModified_ModReqItem_Split_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeModified-ModReqItem.h b/e2ap/headers/E-RABs-ToBeModified-ModReqItem.h
new file mode 100644 (file)
index 0000000..1c31ab2
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeModified_ModReqItem_H_
+#define        _E_RABs_ToBeModified_ModReqItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_ToBeModified_ModReqItem_PR {
+       E_RABs_ToBeModified_ModReqItem_PR_NOTHING,      /* No components present */
+       E_RABs_ToBeModified_ModReqItem_PR_sCG_Bearer,
+       E_RABs_ToBeModified_ModReqItem_PR_split_Bearer
+       /* Extensions may appear below */
+       
+} E_RABs_ToBeModified_ModReqItem_PR;
+
+/* Forward declarations */
+struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer;
+struct E_RABs_ToBeModified_ModReqItem_Split_Bearer;
+
+/* E-RABs-ToBeModified-ModReqItem */
+typedef struct E_RABs_ToBeModified_ModReqItem {
+       E_RABs_ToBeModified_ModReqItem_PR present;
+       union E_RABs_ToBeModified_ModReqItem_u {
+               struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer        *sCG_Bearer;
+               struct E_RABs_ToBeModified_ModReqItem_Split_Bearer      *split_Bearer;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_ModReqItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeModified_ModReqItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h b/e2ap/headers/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h
new file mode 100644 (file)
index 0000000..2693480
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_H_
+#define        _E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct E_RAB_Level_QoS_Parameters;
+struct GTPtunnelEndpoint;
+struct ULConfiguration;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent */
+typedef struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent {
+       struct E_RAB_Level_QoS_Parameters       *requested_SCG_E_RAB_Level_QoS_Parameters;      /* OPTIONAL */
+       struct GTPtunnelEndpoint        *meNB_UL_GTP_TEIDatPDCP;        /* OPTIONAL */
+       struct ULConfiguration  *uL_Configuration;      /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h b/e2ap/headers/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h
new file mode 100644 (file)
index 0000000..2542825
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_H_
+#define        _E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct E_RAB_Level_QoS_Parameters;
+struct GBR_QosInformation;
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent */
+typedef struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent {
+       struct E_RAB_Level_QoS_Parameters       *full_E_RAB_Level_QoS_Parameters;       /* OPTIONAL */
+       struct GBR_QosInformation       *max_MN_admit_E_RAB_Level_QoS_Parameters;       /* OPTIONAL */
+       struct GTPtunnelEndpoint        *meNB_DL_GTP_TEIDatMCG; /* OPTIONAL */
+       struct GTPtunnelEndpoint        *s1_UL_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeModified-SgNBModReq-Item.h b/e2ap/headers/E-RABs-ToBeModified-SgNBModReq-Item.h
new file mode 100644 (file)
index 0000000..d4163aa
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeModified_SgNBModReq_Item_H_
+#define        _E_RABs_ToBeModified_SgNBModReq_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "EN-DC-ResourceConfiguration.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration_PR {
+       E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration_PR_NOTHING, /* No components present */
+       E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration_PR_sgNBPDCPpresent,
+       E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration_PR_sgNBPDCPnotpresent
+       /* Extensions may appear below */
+       
+} E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration_PR;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent;
+struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent;
+
+/* E-RABs-ToBeModified-SgNBModReq-Item */
+typedef struct E_RABs_ToBeModified_SgNBModReq_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       EN_DC_ResourceConfiguration_t    en_DC_ResourceConfiguration;
+       struct E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration {
+               E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration_PR present;
+               union E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration_u {
+                       struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent      *sgNBPDCPpresent;
+                       struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent   *sgNBPDCPnotpresent;
+                       /*
+                        * This type is extensible,
+                        * possible extensions are below.
+                        */
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } resource_configuration;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_SgNBModReq_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeModified_SgNBModReq_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeModified-SgNBModReq-List.h b/e2ap/headers/E-RABs-ToBeModified-SgNBModReq-List.h
new file mode 100644 (file)
index 0000000..2a213b9
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeModified_SgNBModReq_List_H_
+#define        _E_RABs_ToBeModified_SgNBModReq_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeModified-SgNBModReq-List */
+typedef struct E_RABs_ToBeModified_SgNBModReq_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_SgNBModReq_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_List;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_List_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABs_ToBeModified_SgNBModReq_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeModified_SgNBModReq_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h b/e2ap/headers/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h
new file mode 100644 (file)
index 0000000..0d37074
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_H_
+#define        _E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent */
+typedef struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent {
+       struct GTPtunnelEndpoint        *sgNB_DL_GTP_TEIDatSCG; /* OPTIONAL */
+       struct GTPtunnelEndpoint        *secondary_sgNB_DL_GTP_TEIDatSCG;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h b/e2ap/headers/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h
new file mode 100644 (file)
index 0000000..f0a3ffa
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_H_
+#define        _E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct E_RAB_Level_QoS_Parameters;
+struct ULConfiguration;
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent */
+typedef struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent {
+       struct E_RAB_Level_QoS_Parameters       *requested_MCG_E_RAB_Level_QoS_Parameters;      /* OPTIONAL */
+       struct ULConfiguration  *uL_Configuration;      /* OPTIONAL */
+       struct GTPtunnelEndpoint        *sgNB_UL_GTP_TEIDatPDCP;        /* OPTIONAL */
+       struct GTPtunnelEndpoint        *s1_DL_GTP_TEIDatSgNB;  /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeModified-SgNBModReqd-Item.h b/e2ap/headers/E-RABs-ToBeModified-SgNBModReqd-Item.h
new file mode 100644 (file)
index 0000000..05abb3b
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeModified_SgNBModReqd_Item_H_
+#define        _E_RABs_ToBeModified_SgNBModReqd_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "EN-DC-ResourceConfiguration.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration_PR {
+       E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration_PR_NOTHING,        /* No components present */
+       E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration_PR_sgNBPDCPpresent,
+       E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration_PR_sgNBPDCPnotpresent
+       /* Extensions may appear below */
+       
+} E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration_PR;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent;
+struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent;
+
+/* E-RABs-ToBeModified-SgNBModReqd-Item */
+typedef struct E_RABs_ToBeModified_SgNBModReqd_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       EN_DC_ResourceConfiguration_t    en_DC_ResourceConfiguration;
+       struct E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration {
+               E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration_PR present;
+               union E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration_u {
+                       struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent     *sgNBPDCPpresent;
+                       struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent  *sgNBPDCPnotpresent;
+                       /*
+                        * This type is extensible,
+                        * possible extensions are below.
+                        */
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } resource_configuration;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_SgNBModReqd_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeModified_SgNBModReqd_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeModified-SgNBModReqdList.h b/e2ap/headers/E-RABs-ToBeModified-SgNBModReqdList.h
new file mode 100644 (file)
index 0000000..e20c66e
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeModified_SgNBModReqdList_H_
+#define        _E_RABs_ToBeModified_SgNBModReqdList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeModified-SgNBModReqdList */
+typedef struct E_RABs_ToBeModified_SgNBModReqdList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_SgNBModReqdList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqdList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeModified_SgNBModReqdList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-List-ModReq.h b/e2ap/headers/E-RABs-ToBeReleased-List-ModReq.h
new file mode 100644 (file)
index 0000000..1448300
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_List_ModReq_H_
+#define        _E_RABs_ToBeReleased_List_ModReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeReleased-List-ModReq */
+typedef struct E_RABs_ToBeReleased_List_ModReq {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_List_ModReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_List_ModReq;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_List_ModReq_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_List_ModReq_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_List_ModReq_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_List_ModReq_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-List-RelConf.h b/e2ap/headers/E-RABs-ToBeReleased-List-RelConf.h
new file mode 100644 (file)
index 0000000..a5cc439
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_List_RelConf_H_
+#define        _E_RABs_ToBeReleased_List_RelConf_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeReleased-List-RelConf */
+typedef struct E_RABs_ToBeReleased_List_RelConf {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_List_RelConf_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_List_RelConf;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_List_RelConf_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-List-RelReq.h b/e2ap/headers/E-RABs-ToBeReleased-List-RelReq.h
new file mode 100644 (file)
index 0000000..99e314c
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_List_RelReq_H_
+#define        _E_RABs_ToBeReleased_List_RelReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeReleased-List-RelReq */
+typedef struct E_RABs_ToBeReleased_List_RelReq {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_List_RelReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_List_RelReq;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_List_RelReq_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h b/e2ap/headers/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h
new file mode 100644 (file)
index 0000000..0987c89
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_H_
+#define        _E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeReleased-ModReqItem-SCG-Bearer */
+typedef struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       struct GTPtunnelEndpoint        *dL_Forwarding_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct GTPtunnelEndpoint        *uL_Forwarding_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h b/e2ap/headers/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h
new file mode 100644 (file)
index 0000000..cd4b046
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_ModReqItem_Split_Bearer_H_
+#define        _E_RABs_ToBeReleased_ModReqItem_Split_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeReleased-ModReqItem-Split-Bearer */
+typedef struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       struct GTPtunnelEndpoint        *dL_Forwarding_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_ModReqItem_Split_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_ModReqItem_Split_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-ModReqItem.h b/e2ap/headers/E-RABs-ToBeReleased-ModReqItem.h
new file mode 100644 (file)
index 0000000..957738b
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_ModReqItem_H_
+#define        _E_RABs_ToBeReleased_ModReqItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_ToBeReleased_ModReqItem_PR {
+       E_RABs_ToBeReleased_ModReqItem_PR_NOTHING,      /* No components present */
+       E_RABs_ToBeReleased_ModReqItem_PR_sCG_Bearer,
+       E_RABs_ToBeReleased_ModReqItem_PR_split_Bearer
+       /* Extensions may appear below */
+       
+} E_RABs_ToBeReleased_ModReqItem_PR;
+
+/* Forward declarations */
+struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer;
+struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer;
+
+/* E-RABs-ToBeReleased-ModReqItem */
+typedef struct E_RABs_ToBeReleased_ModReqItem {
+       E_RABs_ToBeReleased_ModReqItem_PR present;
+       union E_RABs_ToBeReleased_ModReqItem_u {
+               struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer        *sCG_Bearer;
+               struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer      *split_Bearer;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_ModReqItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_ModReqItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-ModReqd.h b/e2ap/headers/E-RABs-ToBeReleased-ModReqd.h
new file mode 100644 (file)
index 0000000..b6bc5b0
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_ModReqd_H_
+#define        _E_RABs_ToBeReleased_ModReqd_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeReleased-ModReqd */
+typedef struct E_RABs_ToBeReleased_ModReqd {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_ModReqd_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqd;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_ModReqd_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-ModReqdItem.h b/e2ap/headers/E-RABs-ToBeReleased-ModReqdItem.h
new file mode 100644 (file)
index 0000000..89b680e
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_ModReqdItem_H_
+#define        _E_RABs_ToBeReleased_ModReqdItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "Cause.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeReleased-ModReqdItem */
+typedef struct E_RABs_ToBeReleased_ModReqdItem {
+       E_RAB_ID_t       e_RAB_ID;
+       Cause_t  cause;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_ModReqdItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqdItem;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_ModReqdItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h b/e2ap/headers/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h
new file mode 100644 (file)
index 0000000..687e098
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_H_
+#define        _E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeReleased-RelConfItem-SCG-Bearer */
+typedef struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       struct GTPtunnelEndpoint        *uL_Forwarding_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct GTPtunnelEndpoint        *dL_Forwarding_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h b/e2ap/headers/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h
new file mode 100644 (file)
index 0000000..6e3e1a6
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_RelConfItem_Split_Bearer_H_
+#define        _E_RABs_ToBeReleased_RelConfItem_Split_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeReleased-RelConfItem-Split-Bearer */
+typedef struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       struct GTPtunnelEndpoint        *dL_Forwarding_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_RelConfItem_Split_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_RelConfItem_Split_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-RelConfItem.h b/e2ap/headers/E-RABs-ToBeReleased-RelConfItem.h
new file mode 100644 (file)
index 0000000..75bc94c
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_RelConfItem_H_
+#define        _E_RABs_ToBeReleased_RelConfItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_ToBeReleased_RelConfItem_PR {
+       E_RABs_ToBeReleased_RelConfItem_PR_NOTHING,     /* No components present */
+       E_RABs_ToBeReleased_RelConfItem_PR_sCG_Bearer,
+       E_RABs_ToBeReleased_RelConfItem_PR_split_Bearer
+       /* Extensions may appear below */
+       
+} E_RABs_ToBeReleased_RelConfItem_PR;
+
+/* Forward declarations */
+struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer;
+struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer;
+
+/* E-RABs-ToBeReleased-RelConfItem */
+typedef struct E_RABs_ToBeReleased_RelConfItem {
+       E_RABs_ToBeReleased_RelConfItem_PR present;
+       union E_RABs_ToBeReleased_RelConfItem_u {
+               struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer       *sCG_Bearer;
+               struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer     *split_Bearer;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_RelConfItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_RelConfItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h b/e2ap/headers/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h
new file mode 100644 (file)
index 0000000..018057b
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_H_
+#define        _E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeReleased-RelReqItem-SCG-Bearer */
+typedef struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       struct GTPtunnelEndpoint        *uL_Forwarding_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct GTPtunnelEndpoint        *dL_Forwarding_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h b/e2ap/headers/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h
new file mode 100644 (file)
index 0000000..d5d1b61
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_RelReqItem_Split_Bearer_H_
+#define        _E_RABs_ToBeReleased_RelReqItem_Split_Bearer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeReleased-RelReqItem-Split-Bearer */
+typedef struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer {
+       E_RAB_ID_t       e_RAB_ID;
+       struct GTPtunnelEndpoint        *dL_Forwarding_GTPtunnelEndpoint;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_RelReqItem_Split_Bearer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_RelReqItem_Split_Bearer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-RelReqItem.h b/e2ap/headers/E-RABs-ToBeReleased-RelReqItem.h
new file mode 100644 (file)
index 0000000..aee09a6
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_RelReqItem_H_
+#define        _E_RABs_ToBeReleased_RelReqItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_ToBeReleased_RelReqItem_PR {
+       E_RABs_ToBeReleased_RelReqItem_PR_NOTHING,      /* No components present */
+       E_RABs_ToBeReleased_RelReqItem_PR_sCG_Bearer,
+       E_RABs_ToBeReleased_RelReqItem_PR_split_Bearer
+       /* Extensions may appear below */
+       
+} E_RABs_ToBeReleased_RelReqItem_PR;
+
+/* Forward declarations */
+struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer;
+struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer;
+
+/* E-RABs-ToBeReleased-RelReqItem */
+typedef struct E_RABs_ToBeReleased_RelReqItem {
+       E_RABs_ToBeReleased_RelReqItem_PR present;
+       union E_RABs_ToBeReleased_RelReqItem_u {
+               struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer        *sCG_Bearer;
+               struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer      *split_Bearer;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_RelReqItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_RelReqItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h
new file mode 100644 (file)
index 0000000..bcb5b60
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_H_
+#define        _E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent */
+typedef struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent {
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h
new file mode 100644 (file)
index 0000000..2491333
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_H_
+#define        _E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent */
+typedef struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent {
+       struct GTPtunnelEndpoint        *uL_GTPtunnelEndpoint;  /* OPTIONAL */
+       struct GTPtunnelEndpoint        *dL_GTPtunnelEndpoint;  /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBChaConf-Item.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBChaConf-Item.h
new file mode 100644 (file)
index 0000000..fd2cb5b
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBChaConf_Item_H_
+#define        _E_RABs_ToBeReleased_SgNBChaConf_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "EN-DC-ResourceConfiguration.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration_PR {
+       E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration_PR_NOTHING,        /* No components present */
+       E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration_PR_sgNBPDCPpresent,
+       E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration_PR_sgNBPDCPnotpresent
+       /* Extensions may appear below */
+       
+} E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration_PR;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent;
+struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent;
+
+/* E-RABs-ToBeReleased-SgNBChaConf-Item */
+typedef struct E_RABs_ToBeReleased_SgNBChaConf_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       EN_DC_ResourceConfiguration_t    en_DC_ResourceConfiguration;
+       struct E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration {
+               E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration_PR present;
+               union E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration_u {
+                       struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent     *sgNBPDCPpresent;
+                       struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent  *sgNBPDCPnotpresent;
+                       /*
+                        * This type is extensible,
+                        * possible extensions are below.
+                        */
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } resource_configuration;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBChaConf_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBChaConf_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBChaConfList.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBChaConfList.h
new file mode 100644 (file)
index 0000000..8b5668b
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBChaConfList_H_
+#define        _E_RABs_ToBeReleased_SgNBChaConfList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeReleased-SgNBChaConfList */
+typedef struct E_RABs_ToBeReleased_SgNBChaConfList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBChaConfList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBChaConfList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h
new file mode 100644 (file)
index 0000000..98ce004
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_H_
+#define        _E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent */
+typedef struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent {
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h
new file mode 100644 (file)
index 0000000..b2ae3db
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_H_
+#define        _E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent */
+typedef struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent {
+       struct GTPtunnelEndpoint        *dL_GTPtunnelEndpoint;  /* OPTIONAL */
+       struct GTPtunnelEndpoint        *uL_GTPtunnelEndpoint;  /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBModReq-Item.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBModReq-Item.h
new file mode 100644 (file)
index 0000000..ec328c5
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBModReq_Item_H_
+#define        _E_RABs_ToBeReleased_SgNBModReq_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "EN-DC-ResourceConfiguration.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration_PR {
+       E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration_PR_NOTHING, /* No components present */
+       E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration_PR_sgNBPDCPpresent,
+       E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration_PR_sgNBPDCPnotpresent
+       /* Extensions may appear below */
+       
+} E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration_PR;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent;
+struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent;
+
+/* E-RABs-ToBeReleased-SgNBModReq-Item */
+typedef struct E_RABs_ToBeReleased_SgNBModReq_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       EN_DC_ResourceConfiguration_t    en_DC_ResourceConfiguration;
+       struct E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration {
+               E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration_PR present;
+               union E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration_u {
+                       struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent      *sgNBPDCPpresent;
+                       struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent   *sgNBPDCPnotpresent;
+                       /*
+                        * This type is extensible,
+                        * possible extensions are below.
+                        */
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } resource_configuration;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBModReq_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBModReq_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBModReq-List.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBModReq-List.h
new file mode 100644 (file)
index 0000000..16cd229
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBModReq_List_H_
+#define        _E_RABs_ToBeReleased_SgNBModReq_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeReleased-SgNBModReq-List */
+typedef struct E_RABs_ToBeReleased_SgNBModReq_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBModReq_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_List_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_SgNBModReq_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBModReq_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBModReqd-Item.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBModReqd-Item.h
new file mode 100644 (file)
index 0000000..28be136
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBModReqd_Item_H_
+#define        _E_RABs_ToBeReleased_SgNBModReqd_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "Cause.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeReleased-SgNBModReqd-Item */
+typedef struct E_RABs_ToBeReleased_SgNBModReqd_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       Cause_t  cause;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBModReqd_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBModReqd_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBModReqdList.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBModReqdList.h
new file mode 100644 (file)
index 0000000..e621e13
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBModReqdList_H_
+#define        _E_RABs_ToBeReleased_SgNBModReqdList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeReleased-SgNBModReqdList */
+typedef struct E_RABs_ToBeReleased_SgNBModReqdList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBModReqdList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBModReqdList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h
new file mode 100644 (file)
index 0000000..4919e22
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_H_
+#define        _E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent */
+typedef struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent {
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h
new file mode 100644 (file)
index 0000000..d28a30d
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_H_
+#define        _E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent */
+typedef struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent {
+       struct GTPtunnelEndpoint        *uL_GTPtunnelEndpoint;  /* OPTIONAL */
+       struct GTPtunnelEndpoint        *dL_GTPtunnelEndpoint;  /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBRelConf-Item.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBRelConf-Item.h
new file mode 100644 (file)
index 0000000..bd7f59c
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBRelConf_Item_H_
+#define        _E_RABs_ToBeReleased_SgNBRelConf_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "EN-DC-ResourceConfiguration.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration_PR {
+       E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration_PR_NOTHING,        /* No components present */
+       E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration_PR_sgNBPDCPpresent,
+       E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration_PR_sgNBPDCPnotpresent
+       /* Extensions may appear below */
+       
+} E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration_PR;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent;
+struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent;
+
+/* E-RABs-ToBeReleased-SgNBRelConf-Item */
+typedef struct E_RABs_ToBeReleased_SgNBRelConf_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       EN_DC_ResourceConfiguration_t    en_DC_ResourceConfiguration;
+       struct E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration {
+               E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration_PR present;
+               union E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration_u {
+                       struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent     *sgNBPDCPpresent;
+                       struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent  *sgNBPDCPnotpresent;
+                       /*
+                        * This type is extensible,
+                        * possible extensions are below.
+                        */
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } resource_configuration;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelConf_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBRelConf_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBRelConfList.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBRelConfList.h
new file mode 100644 (file)
index 0000000..dcc0977
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBRelConfList_H_
+#define        _E_RABs_ToBeReleased_SgNBRelConfList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeReleased-SgNBRelConfList */
+typedef struct E_RABs_ToBeReleased_SgNBRelConfList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelConfList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBRelConfList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h
new file mode 100644 (file)
index 0000000..286cd8c
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_H_
+#define        _E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent */
+typedef struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent {
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h
new file mode 100644 (file)
index 0000000..4c3e1f2
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_H_
+#define        _E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GTPtunnelEndpoint;
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent */
+typedef struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent {
+       struct GTPtunnelEndpoint        *uL_GTPtunnelEndpoint;  /* OPTIONAL */
+       struct GTPtunnelEndpoint        *dL_GTPtunnelEndpoint;  /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBRelReq-Item.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBRelReq-Item.h
new file mode 100644 (file)
index 0000000..97ff69f
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBRelReq_Item_H_
+#define        _E_RABs_ToBeReleased_SgNBRelReq_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "EN-DC-ResourceConfiguration.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration_PR {
+       E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration_PR_NOTHING, /* No components present */
+       E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration_PR_sgNBPDCPpresent,
+       E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration_PR_sgNBPDCPnotpresent
+       /* Extensions may appear below */
+       
+} E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration_PR;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent;
+struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent;
+
+/* E-RABs-ToBeReleased-SgNBRelReq-Item */
+typedef struct E_RABs_ToBeReleased_SgNBRelReq_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       EN_DC_ResourceConfiguration_t    en_DC_ResourceConfiguration;
+       struct E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration {
+               E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration_PR present;
+               union E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration_u {
+                       struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent      *sgNBPDCPpresent;
+                       struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent   *sgNBPDCPnotpresent;
+                       /*
+                        * This type is extensible,
+                        * possible extensions are below.
+                        */
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } resource_configuration;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelReq_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBRelReq_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBRelReqList.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBRelReqList.h
new file mode 100644 (file)
index 0000000..a5cacb4
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBRelReqList_H_
+#define        _E_RABs_ToBeReleased_SgNBRelReqList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeReleased-SgNBRelReqList */
+typedef struct E_RABs_ToBeReleased_SgNBRelReqList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelReqList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBRelReqList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBRelReqd-Item.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBRelReqd-Item.h
new file mode 100644 (file)
index 0000000..5099f1a
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBRelReqd_Item_H_
+#define        _E_RABs_ToBeReleased_SgNBRelReqd_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "RLCMode.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeReleased-SgNBRelReqd-Item */
+typedef struct E_RABs_ToBeReleased_SgNBRelReqd_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       RLCMode_t        rlc_Mode_transferred;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelReqd_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBRelReqd_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeReleased-SgNBRelReqdList.h b/e2ap/headers/E-RABs-ToBeReleased-SgNBRelReqdList.h
new file mode 100644 (file)
index 0000000..d987d80
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeReleased_SgNBRelReqdList_H_
+#define        _E_RABs_ToBeReleased_SgNBRelReqdList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeReleased-SgNBRelReqdList */
+typedef struct E_RABs_ToBeReleased_SgNBRelReqdList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelReqdList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeReleased_SgNBRelReqdList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeSetup-Item.h b/e2ap/headers/E-RABs-ToBeSetup-Item.h
new file mode 100644 (file)
index 0000000..ef1ceb1
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeSetup_Item_H_
+#define        _E_RABs_ToBeSetup_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "DL-Forwarding.h"
+#include "GTPtunnelEndpoint.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeSetup-Item */
+typedef struct E_RABs_ToBeSetup_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       E_RAB_Level_QoS_Parameters_t     e_RAB_Level_QoS_Parameters;
+       DL_Forwarding_t *dL_Forwarding; /* OPTIONAL */
+       GTPtunnelEndpoint_t      uL_GTPtunnelEndpoint;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeSetup_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeSetup_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeSetup-List.h b/e2ap/headers/E-RABs-ToBeSetup-List.h
new file mode 100644 (file)
index 0000000..0f0bcfb
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeSetup_List_H_
+#define        _E_RABs_ToBeSetup_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeSetup-List */
+typedef struct E_RABs_ToBeSetup_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeSetup_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_List;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeSetup_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_List_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABs_ToBeSetup_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeSetup_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeSetup-ListRetrieve.h b/e2ap/headers/E-RABs-ToBeSetup-ListRetrieve.h
new file mode 100644 (file)
index 0000000..f3519df
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeSetup_ListRetrieve_H_
+#define        _E_RABs_ToBeSetup_ListRetrieve_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* E-RABs-ToBeSetup-ListRetrieve */
+typedef struct E_RABs_ToBeSetup_ListRetrieve {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeSetup_ListRetrieve_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_ListRetrieve;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeSetup_ListRetrieve_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_ListRetrieve_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABs_ToBeSetup_ListRetrieve_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeSetup_ListRetrieve_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E-RABs-ToBeSetupRetrieve-Item.h b/e2ap/headers/E-RABs-ToBeSetupRetrieve-Item.h
new file mode 100644 (file)
index 0000000..bcaded8
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E_RABs_ToBeSetupRetrieve_Item_H_
+#define        _E_RABs_ToBeSetupRetrieve_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "BearerType.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABs-ToBeSetupRetrieve-Item */
+typedef struct E_RABs_ToBeSetupRetrieve_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       E_RAB_Level_QoS_Parameters_t     e_RAB_Level_QoS_Parameters;
+       BearerType_t    *bearerType;    /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeSetupRetrieve_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetupRetrieve_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABs_ToBeSetupRetrieve_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2AP-PDU.h b/e2ap/headers/E2AP-PDU.h
new file mode 100644 (file)
index 0000000..f00d482
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Descriptions"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E2AP_PDU_H_
+#define        _E2AP_PDU_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E2AP_PDU_PR {
+       E2AP_PDU_PR_NOTHING,    /* No components present */
+       E2AP_PDU_PR_initiatingMessage,
+       E2AP_PDU_PR_successfulOutcome,
+       E2AP_PDU_PR_unsuccessfulOutcome
+       /* Extensions may appear below */
+       
+} E2AP_PDU_PR;
+
+/* Forward declarations */
+struct InitiatingMessageE2;
+struct SuccessfulOutcomeE2;
+struct UnsuccessfulOutcomeE2;
+
+/* E2AP-PDU */
+typedef struct E2AP_PDU {
+       E2AP_PDU_PR present;
+       union E2AP_PDU_u {
+               struct InitiatingMessageE2      *initiatingMessage;
+               struct SuccessfulOutcomeE2      *successfulOutcome;
+               struct UnsuccessfulOutcomeE2    *unsuccessfulOutcome;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E2AP_PDU_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2AP_PDU;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E2AP_PDU_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2SM-gNB-X2-actionDefinition.h b/e2ap/headers/E2SM-gNB-X2-actionDefinition.h
new file mode 100644 (file)
index 0000000..d104615
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E2SM_gNB_X2_actionDefinition_H_
+#define        _E2SM_gNB_X2_actionDefinition_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Style-ID.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ActionParameter_Item;
+
+/* E2SM-gNB-X2-actionDefinition */
+typedef struct E2SM_gNB_X2_actionDefinition {
+       Style_ID_t       style_ID;
+       struct E2SM_gNB_X2_actionDefinition__actionParameter_List {
+               A_SEQUENCE_OF(struct ActionParameter_Item) list;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } *actionParameter_List;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E2SM_gNB_X2_actionDefinition_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_actionDefinition;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E2SM_gNB_X2_actionDefinition_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2SM-gNB-X2-callProcessID.h b/e2ap/headers/E2SM-gNB-X2-callProcessID.h
new file mode 100644 (file)
index 0000000..a2c3023
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E2SM_gNB_X2_callProcessID_H_
+#define        _E2SM_gNB_X2_callProcessID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "CallProcess-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2SM-gNB-X2-callProcessID */
+typedef struct E2SM_gNB_X2_callProcessID {
+       CallProcess_ID_t         callProcess_ID;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E2SM_gNB_X2_callProcessID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_callProcessID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E2SM_gNB_X2_callProcessID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2SM-gNB-X2-controlHeader.h b/e2ap/headers/E2SM-gNB-X2-controlHeader.h
new file mode 100644 (file)
index 0000000..3c6a90c
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E2SM_gNB_X2_controlHeader_H_
+#define        _E2SM_gNB_X2_controlHeader_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Interface-ID.h"
+#include "InterfaceDirection.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2SM-gNB-X2-controlHeader */
+typedef struct E2SM_gNB_X2_controlHeader {
+       Interface_ID_t   interface_ID;
+       InterfaceDirection_t     interfaceDirection;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E2SM_gNB_X2_controlHeader_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_controlHeader;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E2SM_gNB_X2_controlHeader_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2SM-gNB-X2-controlMessage.h b/e2ap/headers/E2SM-gNB-X2-controlMessage.h
new file mode 100644 (file)
index 0000000..4bf88dc
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E2SM_gNB_X2_controlMessage_H_
+#define        _E2SM_gNB_X2_controlMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "InterfaceMessage.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2SM-gNB-X2-controlMessage */
+typedef struct E2SM_gNB_X2_controlMessage {
+       InterfaceMessage_t       interfaceMessage;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E2SM_gNB_X2_controlMessage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_controlMessage;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E2SM_gNB_X2_controlMessage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2SM-gNB-X2-eventTriggerDefinition.h b/e2ap/headers/E2SM-gNB-X2-eventTriggerDefinition.h
new file mode 100644 (file)
index 0000000..790f110
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E2SM_gNB_X2_eventTriggerDefinition_H_
+#define        _E2SM_gNB_X2_eventTriggerDefinition_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Interface-ID.h"
+#include "InterfaceDirection.h"
+#include "InterfaceMessageType.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct InterfaceProtocolIE_Item;
+
+/* E2SM-gNB-X2-eventTriggerDefinition */
+typedef struct E2SM_gNB_X2_eventTriggerDefinition {
+       Interface_ID_t   interface_ID;
+       InterfaceDirection_t     interfaceDirection;
+       InterfaceMessageType_t   interfaceMessageType;
+       struct E2SM_gNB_X2_eventTriggerDefinition__interfaceProtocolIE_List {
+               A_SEQUENCE_OF(struct InterfaceProtocolIE_Item) list;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } *interfaceProtocolIE_List;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E2SM_gNB_X2_eventTriggerDefinition_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_eventTriggerDefinition;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E2SM_gNB_X2_eventTriggerDefinition_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2SM-gNB-X2-indicationHeader.h b/e2ap/headers/E2SM-gNB-X2-indicationHeader.h
new file mode 100644 (file)
index 0000000..6f228de
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E2SM_gNB_X2_indicationHeader_H_
+#define        _E2SM_gNB_X2_indicationHeader_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Interface-ID.h"
+#include "InterfaceDirection.h"
+#include "TimeStamp.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2SM-gNB-X2-indicationHeader */
+typedef struct E2SM_gNB_X2_indicationHeader {
+       Interface_ID_t   interface_ID;
+       InterfaceDirection_t     interfaceDirection;
+       TimeStamp_t     *timestamp;     /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E2SM_gNB_X2_indicationHeader_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_indicationHeader;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E2SM_gNB_X2_indicationHeader_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2SM-gNB-X2-indicationMessage.h b/e2ap/headers/E2SM-gNB-X2-indicationMessage.h
new file mode 100644 (file)
index 0000000..df2cc4a
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _E2SM_gNB_X2_indicationMessage_H_
+#define        _E2SM_gNB_X2_indicationMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "InterfaceMessage.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2SM-gNB-X2-indicationMessage */
+typedef struct E2SM_gNB_X2_indicationMessage {
+       InterfaceMessage_t       interfaceMessage;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E2SM_gNB_X2_indicationMessage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_indicationMessage;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E2SM_gNB_X2_indicationMessage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/EARFCN.h b/e2ap/headers/EARFCN.h
new file mode 100644 (file)
index 0000000..4852bdf
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _EARFCN_H_
+#define        _EARFCN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EARFCN */
+typedef long    EARFCN_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_EARFCN_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_EARFCN;
+asn_struct_free_f EARFCN_free;
+asn_struct_print_f EARFCN_print;
+asn_constr_check_f EARFCN_constraint;
+ber_type_decoder_f EARFCN_decode_ber;
+der_type_encoder_f EARFCN_encode_der;
+xer_type_decoder_f EARFCN_decode_xer;
+xer_type_encoder_f EARFCN_encode_xer;
+oer_type_decoder_f EARFCN_decode_oer;
+oer_type_encoder_f EARFCN_encode_oer;
+per_type_decoder_f EARFCN_decode_uper;
+per_type_encoder_f EARFCN_encode_uper;
+per_type_decoder_f EARFCN_decode_aper;
+per_type_encoder_f EARFCN_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EARFCN_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/EARFCNExtension.h b/e2ap/headers/EARFCNExtension.h
new file mode 100644 (file)
index 0000000..17beb46
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _EARFCNExtension_H_
+#define        _EARFCNExtension_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EARFCNExtension */
+typedef long    EARFCNExtension_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EARFCNExtension;
+asn_struct_free_f EARFCNExtension_free;
+asn_struct_print_f EARFCNExtension_print;
+asn_constr_check_f EARFCNExtension_constraint;
+ber_type_decoder_f EARFCNExtension_decode_ber;
+der_type_encoder_f EARFCNExtension_encode_der;
+xer_type_decoder_f EARFCNExtension_decode_xer;
+xer_type_encoder_f EARFCNExtension_encode_xer;
+oer_type_decoder_f EARFCNExtension_decode_oer;
+oer_type_encoder_f EARFCNExtension_encode_oer;
+per_type_decoder_f EARFCNExtension_decode_uper;
+per_type_encoder_f EARFCNExtension_encode_uper;
+per_type_decoder_f EARFCNExtension_decode_aper;
+per_type_encoder_f EARFCNExtension_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EARFCNExtension_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ECGI.h b/e2ap/headers/ECGI.h
new file mode 100644 (file)
index 0000000..af4473f
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ECGI_H_
+#define        _ECGI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMN-Identity.h"
+#include "EUTRANCellIdentifier.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ECGI */
+typedef struct ECGI {
+       PLMN_Identity_t  pLMN_Identity;
+       EUTRANCellIdentifier_t   eUTRANcellIdentifier;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ECGI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ECGI;
+extern asn_SEQUENCE_specifics_t asn_SPC_ECGI_specs_1;
+extern asn_TYPE_member_t asn_MBR_ECGI_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ECGI_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/EN-DC-ResourceConfiguration.h b/e2ap/headers/EN-DC-ResourceConfiguration.h
new file mode 100644 (file)
index 0000000..17c26fb
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _EN_DC_ResourceConfiguration_H_
+#define        _EN_DC_ResourceConfiguration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum EN_DC_ResourceConfiguration__pDCPatSgNB {
+       EN_DC_ResourceConfiguration__pDCPatSgNB_present = 0,
+       EN_DC_ResourceConfiguration__pDCPatSgNB_not_present     = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_EN_DC_ResourceConfiguration__pDCPatSgNB;
+typedef enum EN_DC_ResourceConfiguration__mCGresources {
+       EN_DC_ResourceConfiguration__mCGresources_present       = 0,
+       EN_DC_ResourceConfiguration__mCGresources_not_present   = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_EN_DC_ResourceConfiguration__mCGresources;
+typedef enum EN_DC_ResourceConfiguration__sCGresources {
+       EN_DC_ResourceConfiguration__sCGresources_present       = 0,
+       EN_DC_ResourceConfiguration__sCGresources_not_present   = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_EN_DC_ResourceConfiguration__sCGresources;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* EN-DC-ResourceConfiguration */
+typedef struct EN_DC_ResourceConfiguration {
+       long     pDCPatSgNB;
+       long     mCGresources;
+       long     sCGresources;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} EN_DC_ResourceConfiguration_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_pDCPatSgNB_2;  // (Use -fall-defs-global to expose) */
+/* extern asn_TYPE_descriptor_t asn_DEF_mCGresources_6;        // (Use -fall-defs-global to expose) */
+/* extern asn_TYPE_descriptor_t asn_DEF_sCGresources_10;       // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_EN_DC_ResourceConfiguration;
+extern asn_SEQUENCE_specifics_t asn_SPC_EN_DC_ResourceConfiguration_specs_1;
+extern asn_TYPE_member_t asn_MBR_EN_DC_ResourceConfiguration_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EN_DC_ResourceConfiguration_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENB-ID.h b/e2ap/headers/ENB-ID.h
new file mode 100644 (file)
index 0000000..02a2413
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENB_ID_H_
+#define        _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 ENB_ID_PR {
+       ENB_ID_PR_NOTHING,      /* No components present */
+       ENB_ID_PR_macro_eNB_ID,
+       ENB_ID_PR_home_eNB_ID,
+       /* Extensions may appear below */
+       ENB_ID_PR_short_Macro_eNB_ID,
+       ENB_ID_PR_long_Macro_eNB_ID
+} ENB_ID_PR;
+
+/* ENB-ID */
+typedef struct ENB_ID {
+       ENB_ID_PR present;
+       union ENB_ID_u {
+               BIT_STRING_t     macro_eNB_ID;
+               BIT_STRING_t     home_eNB_ID;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+               BIT_STRING_t     short_Macro_eNB_ID;
+               BIT_STRING_t     long_Macro_eNB_ID;
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENB_ID;
+extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENB_ID_1[4];
+extern asn_per_constraints_t asn_PER_type_ENB_ID_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENB_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENBConfigurationUpdate.h b/e2ap/headers/ENBConfigurationUpdate.h
new file mode 100644 (file)
index 0000000..9217a98
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENBConfigurationUpdate_H_
+#define        _ENBConfigurationUpdate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENBConfigurationUpdate */
+typedef struct ENBConfigurationUpdate {
+       ProtocolIE_Container_9515P28_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENBConfigurationUpdate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdate;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdate_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdate_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENBConfigurationUpdate_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENBConfigurationUpdateAcknowledge.h b/e2ap/headers/ENBConfigurationUpdateAcknowledge.h
new file mode 100644 (file)
index 0000000..3267f1b
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENBConfigurationUpdateAcknowledge_H_
+#define        _ENBConfigurationUpdateAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENBConfigurationUpdateAcknowledge */
+typedef struct ENBConfigurationUpdateAcknowledge {
+       ProtocolIE_Container_9515P29_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENBConfigurationUpdateAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateAcknowledge;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateAcknowledge_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateAcknowledge_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENBConfigurationUpdateAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENBConfigurationUpdateFailure.h b/e2ap/headers/ENBConfigurationUpdateFailure.h
new file mode 100644 (file)
index 0000000..8edf3c7
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENBConfigurationUpdateFailure_H_
+#define        _ENBConfigurationUpdateFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENBConfigurationUpdateFailure */
+typedef struct ENBConfigurationUpdateFailure {
+       ProtocolIE_Container_9515P30_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENBConfigurationUpdateFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateFailure;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateFailure_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateFailure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENBConfigurationUpdateFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENDCCellActivationFailure.h b/e2ap/headers/ENDCCellActivationFailure.h
new file mode 100644 (file)
index 0000000..275f25f
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENDCCellActivationFailure_H_
+#define        _ENDCCellActivationFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENDCCellActivationFailure */
+typedef struct ENDCCellActivationFailure {
+       ProtocolIE_Container_9515P100_t  protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCCellActivationFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationFailure;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationFailure_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENDCCellActivationFailure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENDCCellActivationFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENDCCellActivationRequest.h b/e2ap/headers/ENDCCellActivationRequest.h
new file mode 100644 (file)
index 0000000..647247a
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENDCCellActivationRequest_H_
+#define        _ENDCCellActivationRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENDCCellActivationRequest */
+typedef struct ENDCCellActivationRequest {
+       ProtocolIE_Container_9515P98_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCCellActivationRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENDCCellActivationRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENDCCellActivationRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENDCCellActivationResponse.h b/e2ap/headers/ENDCCellActivationResponse.h
new file mode 100644 (file)
index 0000000..0d7681f
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENDCCellActivationResponse_H_
+#define        _ENDCCellActivationResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENDCCellActivationResponse */
+typedef struct ENDCCellActivationResponse {
+       ProtocolIE_Container_9515P99_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCCellActivationResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationResponse;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationResponse_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENDCCellActivationResponse_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENDCCellActivationResponse_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENDCConfigurationUpdate.h b/e2ap/headers/ENDCConfigurationUpdate.h
new file mode 100644 (file)
index 0000000..667e73d
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENDCConfigurationUpdate_H_
+#define        _ENDCConfigurationUpdate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENDCConfigurationUpdate */
+typedef struct ENDCConfigurationUpdate {
+       ProtocolIE_Container_9515P91_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCConfigurationUpdate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdate;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdate_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdate_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENDCConfigurationUpdate_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENDCConfigurationUpdateAcknowledge.h b/e2ap/headers/ENDCConfigurationUpdateAcknowledge.h
new file mode 100644 (file)
index 0000000..5d3b033
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENDCConfigurationUpdateAcknowledge_H_
+#define        _ENDCConfigurationUpdateAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENDCConfigurationUpdateAcknowledge */
+typedef struct ENDCConfigurationUpdateAcknowledge {
+       ProtocolIE_Container_9515P94_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCConfigurationUpdateAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateAcknowledge;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateAcknowledge_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateAcknowledge_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENDCConfigurationUpdateAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENDCConfigurationUpdateFailure.h b/e2ap/headers/ENDCConfigurationUpdateFailure.h
new file mode 100644 (file)
index 0000000..8ba93d8
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENDCConfigurationUpdateFailure_H_
+#define        _ENDCConfigurationUpdateFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENDCConfigurationUpdateFailure */
+typedef struct ENDCConfigurationUpdateFailure {
+       ProtocolIE_Container_9515P97_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCConfigurationUpdateFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateFailure;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateFailure_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateFailure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENDCConfigurationUpdateFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENDCPartialResetConfirm.h b/e2ap/headers/ENDCPartialResetConfirm.h
new file mode 100644 (file)
index 0000000..07bf3f6
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENDCPartialResetConfirm_H_
+#define        _ENDCPartialResetConfirm_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENDCPartialResetConfirm */
+typedef struct ENDCPartialResetConfirm {
+       ProtocolIE_Container_9515P104_t  protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCPartialResetConfirm_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetConfirm;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCPartialResetConfirm_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENDCPartialResetConfirm_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENDCPartialResetConfirm_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENDCPartialResetRequired.h b/e2ap/headers/ENDCPartialResetRequired.h
new file mode 100644 (file)
index 0000000..7fc0033
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENDCPartialResetRequired_H_
+#define        _ENDCPartialResetRequired_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENDCPartialResetRequired */
+typedef struct ENDCPartialResetRequired {
+       ProtocolIE_Container_9515P103_t  protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCPartialResetRequired_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetRequired;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCPartialResetRequired_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENDCPartialResetRequired_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENDCPartialResetRequired_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENDCX2RemovalFailure.h b/e2ap/headers/ENDCX2RemovalFailure.h
new file mode 100644 (file)
index 0000000..89b0833
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENDCX2RemovalFailure_H_
+#define        _ENDCX2RemovalFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENDCX2RemovalFailure */
+typedef struct ENDCX2RemovalFailure {
+       ProtocolIE_Container_9515P117_t  protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCX2RemovalFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalFailure;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalFailure_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENDCX2RemovalFailure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENDCX2RemovalFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENDCX2RemovalRequest.h b/e2ap/headers/ENDCX2RemovalRequest.h
new file mode 100644 (file)
index 0000000..56e3422
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENDCX2RemovalRequest_H_
+#define        _ENDCX2RemovalRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENDCX2RemovalRequest */
+typedef struct ENDCX2RemovalRequest {
+       ProtocolIE_Container_9515P111_t  protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCX2RemovalRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENDCX2RemovalRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENDCX2RemovalRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENDCX2RemovalResponse.h b/e2ap/headers/ENDCX2RemovalResponse.h
new file mode 100644 (file)
index 0000000..7ace6e3
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENDCX2RemovalResponse_H_
+#define        _ENDCX2RemovalResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENDCX2RemovalResponse */
+typedef struct ENDCX2RemovalResponse {
+       ProtocolIE_Container_9515P114_t  protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCX2RemovalResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalResponse;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalResponse_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENDCX2RemovalResponse_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENDCX2RemovalResponse_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENDCX2SetupFailure.h b/e2ap/headers/ENDCX2SetupFailure.h
new file mode 100644 (file)
index 0000000..d376d25
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENDCX2SetupFailure_H_
+#define        _ENDCX2SetupFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENDCX2SetupFailure */
+typedef struct ENDCX2SetupFailure {
+       ProtocolIE_Container_9515P90_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCX2SetupFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupFailure;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupFailure_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENDCX2SetupFailure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENDCX2SetupFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENDCX2SetupRequest.h b/e2ap/headers/ENDCX2SetupRequest.h
new file mode 100644 (file)
index 0000000..a40cd47
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENDCX2SetupRequest_H_
+#define        _ENDCX2SetupRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENDCX2SetupRequest */
+typedef struct ENDCX2SetupRequest {
+       ProtocolIE_Container_9515P84_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCX2SetupRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENDCX2SetupRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENDCX2SetupRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ENDCX2SetupResponse.h b/e2ap/headers/ENDCX2SetupResponse.h
new file mode 100644 (file)
index 0000000..71aa701
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ENDCX2SetupResponse_H_
+#define        _ENDCX2SetupResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENDCX2SetupResponse */
+typedef struct ENDCX2SetupResponse {
+       ProtocolIE_Container_9515P87_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCX2SetupResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupResponse;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupResponse_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENDCX2SetupResponse_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENDCX2SetupResponse_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/EPLMNs.h b/e2ap/headers/EPLMNs.h
new file mode 100644 (file)
index 0000000..258606b
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _EPLMNs_H_
+#define        _EPLMNs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMN-Identity.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EPLMNs */
+typedef struct EPLMNs {
+       A_SEQUENCE_OF(PLMN_Identity_t) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} EPLMNs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EPLMNs;
+extern asn_SET_OF_specifics_t asn_SPC_EPLMNs_specs_1;
+extern asn_TYPE_member_t asn_MBR_EPLMNs_1[1];
+extern asn_per_constraints_t asn_PER_type_EPLMNs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EPLMNs_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ERABActivityNotifyItem.h b/e2ap/headers/ERABActivityNotifyItem.h
new file mode 100644 (file)
index 0000000..a9af8c4
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ERABActivityNotifyItem_H_
+#define        _ERABActivityNotifyItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "UserPlaneTrafficActivityReport.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ERABActivityNotifyItem */
+typedef struct ERABActivityNotifyItem {
+       E_RAB_ID_t       e_RAB_ID;
+       UserPlaneTrafficActivityReport_t         activityReport;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ERABActivityNotifyItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ERABActivityNotifyItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_ERABActivityNotifyItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_ERABActivityNotifyItem_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ERABActivityNotifyItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ERABActivityNotifyItemList.h b/e2ap/headers/ERABActivityNotifyItemList.h
new file mode 100644 (file)
index 0000000..ecdd0cd
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ERABActivityNotifyItemList_H_
+#define        _ERABActivityNotifyItemList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ERABActivityNotifyItem;
+
+/* ERABActivityNotifyItemList */
+typedef struct ERABActivityNotifyItemList {
+       A_SEQUENCE_OF(struct ERABActivityNotifyItem) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ERABActivityNotifyItemList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ERABActivityNotifyItemList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ERABActivityNotifyItemList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/EUTRA-Mode-Info.h b/e2ap/headers/EUTRA-Mode-Info.h
new file mode 100644 (file)
index 0000000..2bb657a
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _EUTRA_Mode_Info_H_
+#define        _EUTRA_Mode_Info_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum EUTRA_Mode_Info_PR {
+       EUTRA_Mode_Info_PR_NOTHING,     /* No components present */
+       EUTRA_Mode_Info_PR_fDD,
+       EUTRA_Mode_Info_PR_tDD
+       /* Extensions may appear below */
+       
+} EUTRA_Mode_Info_PR;
+
+/* Forward declarations */
+struct FDD_Info;
+struct TDD_Info;
+
+/* EUTRA-Mode-Info */
+typedef struct EUTRA_Mode_Info {
+       EUTRA_Mode_Info_PR present;
+       union EUTRA_Mode_Info_u {
+               struct FDD_Info *fDD;
+               struct TDD_Info *tDD;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} EUTRA_Mode_Info_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EUTRA_Mode_Info;
+extern asn_CHOICE_specifics_t asn_SPC_EUTRA_Mode_Info_specs_1;
+extern asn_TYPE_member_t asn_MBR_EUTRA_Mode_Info_1[2];
+extern asn_per_constraints_t asn_PER_type_EUTRA_Mode_Info_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EUTRA_Mode_Info_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/EUTRANCellIdentifier.h b/e2ap/headers/EUTRANCellIdentifier.h
new file mode 100644 (file)
index 0000000..4cef3c3
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _EUTRANCellIdentifier_H_
+#define        _EUTRANCellIdentifier_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EUTRANCellIdentifier */
+typedef BIT_STRING_t    EUTRANCellIdentifier_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_EUTRANCellIdentifier_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_EUTRANCellIdentifier;
+asn_struct_free_f EUTRANCellIdentifier_free;
+asn_struct_print_f EUTRANCellIdentifier_print;
+asn_constr_check_f EUTRANCellIdentifier_constraint;
+ber_type_decoder_f EUTRANCellIdentifier_decode_ber;
+der_type_encoder_f EUTRANCellIdentifier_encode_der;
+xer_type_decoder_f EUTRANCellIdentifier_decode_xer;
+xer_type_encoder_f EUTRANCellIdentifier_encode_xer;
+oer_type_decoder_f EUTRANCellIdentifier_decode_oer;
+oer_type_encoder_f EUTRANCellIdentifier_encode_oer;
+per_type_decoder_f EUTRANCellIdentifier_decode_uper;
+per_type_encoder_f EUTRANCellIdentifier_encode_uper;
+per_type_decoder_f EUTRANCellIdentifier_decode_aper;
+per_type_encoder_f EUTRANCellIdentifier_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EUTRANCellIdentifier_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/EUTRANRCellResourceCoordinationRequest.h b/e2ap/headers/EUTRANRCellResourceCoordinationRequest.h
new file mode 100644 (file)
index 0000000..a9125c9
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _EUTRANRCellResourceCoordinationRequest_H_
+#define        _EUTRANRCellResourceCoordinationRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EUTRANRCellResourceCoordinationRequest */
+typedef struct EUTRANRCellResourceCoordinationRequest {
+       ProtocolIE_Container_9515P105_t  protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} EUTRANRCellResourceCoordinationRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_EUTRANRCellResourceCoordinationRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_EUTRANRCellResourceCoordinationRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EUTRANRCellResourceCoordinationRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/EUTRANRCellResourceCoordinationResponse.h b/e2ap/headers/EUTRANRCellResourceCoordinationResponse.h
new file mode 100644 (file)
index 0000000..815fe17
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _EUTRANRCellResourceCoordinationResponse_H_
+#define        _EUTRANRCellResourceCoordinationResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EUTRANRCellResourceCoordinationResponse */
+typedef struct EUTRANRCellResourceCoordinationResponse {
+       ProtocolIE_Container_9515P108_t  protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} EUTRANRCellResourceCoordinationResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationResponse;
+extern asn_SEQUENCE_specifics_t asn_SPC_EUTRANRCellResourceCoordinationResponse_specs_1;
+extern asn_TYPE_member_t asn_MBR_EUTRANRCellResourceCoordinationResponse_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EUTRANRCellResourceCoordinationResponse_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/EUTRANTraceID.h b/e2ap/headers/EUTRANTraceID.h
new file mode 100644 (file)
index 0000000..d732985
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _EUTRANTraceID_H_
+#define        _EUTRANTraceID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EUTRANTraceID */
+typedef OCTET_STRING_t  EUTRANTraceID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_EUTRANTraceID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_EUTRANTraceID;
+asn_struct_free_f EUTRANTraceID_free;
+asn_struct_print_f EUTRANTraceID_print;
+asn_constr_check_f EUTRANTraceID_constraint;
+ber_type_decoder_f EUTRANTraceID_decode_ber;
+der_type_encoder_f EUTRANTraceID_encode_der;
+xer_type_decoder_f EUTRANTraceID_decode_xer;
+xer_type_encoder_f EUTRANTraceID_encode_xer;
+oer_type_decoder_f EUTRANTraceID_decode_oer;
+oer_type_encoder_f EUTRANTraceID_encode_oer;
+per_type_decoder_f EUTRANTraceID_decode_uper;
+per_type_encoder_f EUTRANTraceID_encode_uper;
+per_type_decoder_f EUTRANTraceID_decode_aper;
+per_type_encoder_f EUTRANTraceID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EUTRANTraceID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/EncryptionAlgorithms.h b/e2ap/headers/EncryptionAlgorithms.h
new file mode 100644 (file)
index 0000000..89c6776
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _EncryptionAlgorithms_H_
+#define        _EncryptionAlgorithms_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EncryptionAlgorithms */
+typedef BIT_STRING_t    EncryptionAlgorithms_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_EncryptionAlgorithms_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_EncryptionAlgorithms;
+asn_struct_free_f EncryptionAlgorithms_free;
+asn_struct_print_f EncryptionAlgorithms_print;
+asn_constr_check_f EncryptionAlgorithms_constraint;
+ber_type_decoder_f EncryptionAlgorithms_decode_ber;
+der_type_encoder_f EncryptionAlgorithms_encode_der;
+xer_type_decoder_f EncryptionAlgorithms_decode_xer;
+xer_type_encoder_f EncryptionAlgorithms_encode_xer;
+oer_type_decoder_f EncryptionAlgorithms_decode_oer;
+oer_type_encoder_f EncryptionAlgorithms_encode_oer;
+per_type_decoder_f EncryptionAlgorithms_decode_uper;
+per_type_encoder_f EncryptionAlgorithms_encode_uper;
+per_type_decoder_f EncryptionAlgorithms_decode_aper;
+per_type_encoder_f EncryptionAlgorithms_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EncryptionAlgorithms_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/EnhancedRNTP.h b/e2ap/headers/EnhancedRNTP.h
new file mode 100644 (file)
index 0000000..9d61e1e
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _EnhancedRNTP_H_
+#define        _EnhancedRNTP_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include "RNTP-Threshold.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct EnhancedRNTPStartTime;
+struct ProtocolExtensionContainer;
+
+/* EnhancedRNTP */
+typedef struct EnhancedRNTP {
+       BIT_STRING_t     enhancedRNTPBitmap;
+       RNTP_Threshold_t         rNTP_High_Power_Threshold;
+       struct EnhancedRNTPStartTime    *enhancedRNTPStartTime; /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} EnhancedRNTP_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EnhancedRNTP;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EnhancedRNTP_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/EnhancedRNTPStartTime.h b/e2ap/headers/EnhancedRNTPStartTime.h
new file mode 100644 (file)
index 0000000..88b4982
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _EnhancedRNTPStartTime_H_
+#define        _EnhancedRNTPStartTime_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* EnhancedRNTPStartTime */
+typedef struct EnhancedRNTPStartTime {
+       long     startSFN;
+       long     startSubframeNumber;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} EnhancedRNTPStartTime_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EnhancedRNTPStartTime;
+extern asn_SEQUENCE_specifics_t asn_SPC_EnhancedRNTPStartTime_specs_1;
+extern asn_TYPE_member_t asn_MBR_EnhancedRNTPStartTime_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EnhancedRNTPStartTime_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ErrorIndication.h b/e2ap/headers/ErrorIndication.h
new file mode 100644 (file)
index 0000000..38b46a1
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ErrorIndication_H_
+#define        _ErrorIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ErrorIndication */
+typedef struct ErrorIndication {
+       ProtocolIE_Container_9515P21_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ErrorIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication;
+extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1;
+extern asn_TYPE_member_t asn_MBR_ErrorIndication_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ErrorIndication_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/EventType.h b/e2ap/headers/EventType.h
new file mode 100644 (file)
index 0000000..59db259
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _EventType_H_
+#define        _EventType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum EventType {
+       EventType_change_of_serving_cell        = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_EventType;
+
+/* EventType */
+typedef long    EventType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_EventType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_EventType;
+extern const asn_INTEGER_specifics_t asn_SPC_EventType_specs_1;
+asn_struct_free_f EventType_free;
+asn_struct_print_f EventType_print;
+asn_constr_check_f EventType_constraint;
+ber_type_decoder_f EventType_decode_ber;
+der_type_encoder_f EventType_encode_der;
+xer_type_decoder_f EventType_decode_xer;
+xer_type_encoder_f EventType_encode_xer;
+oer_type_decoder_f EventType_decode_oer;
+oer_type_encoder_f EventType_encode_oer;
+per_type_decoder_f EventType_decode_uper;
+per_type_encoder_f EventType_encode_uper;
+per_type_decoder_f EventType_decode_aper;
+per_type_encoder_f EventType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EventType_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ExpectedActivityPeriod.h b/e2ap/headers/ExpectedActivityPeriod.h
new file mode 100644 (file)
index 0000000..a81edd6
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ExpectedActivityPeriod_H_
+#define        _ExpectedActivityPeriod_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ExpectedActivityPeriod */
+typedef long    ExpectedActivityPeriod_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ExpectedActivityPeriod_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ExpectedActivityPeriod;
+asn_struct_free_f ExpectedActivityPeriod_free;
+asn_struct_print_f ExpectedActivityPeriod_print;
+asn_constr_check_f ExpectedActivityPeriod_constraint;
+ber_type_decoder_f ExpectedActivityPeriod_decode_ber;
+der_type_encoder_f ExpectedActivityPeriod_encode_der;
+xer_type_decoder_f ExpectedActivityPeriod_decode_xer;
+xer_type_encoder_f ExpectedActivityPeriod_encode_xer;
+oer_type_decoder_f ExpectedActivityPeriod_decode_oer;
+oer_type_encoder_f ExpectedActivityPeriod_encode_oer;
+per_type_decoder_f ExpectedActivityPeriod_decode_uper;
+per_type_encoder_f ExpectedActivityPeriod_encode_uper;
+per_type_decoder_f ExpectedActivityPeriod_decode_aper;
+per_type_encoder_f ExpectedActivityPeriod_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExpectedActivityPeriod_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ExpectedHOInterval.h b/e2ap/headers/ExpectedHOInterval.h
new file mode 100644 (file)
index 0000000..02c5c80
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ExpectedHOInterval_H_
+#define        _ExpectedHOInterval_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ExpectedHOInterval {
+       ExpectedHOInterval_sec15        = 0,
+       ExpectedHOInterval_sec30        = 1,
+       ExpectedHOInterval_sec60        = 2,
+       ExpectedHOInterval_sec90        = 3,
+       ExpectedHOInterval_sec120       = 4,
+       ExpectedHOInterval_sec180       = 5,
+       ExpectedHOInterval_long_time    = 6
+       /*
+        * Enumeration is extensible
+        */
+} e_ExpectedHOInterval;
+
+/* ExpectedHOInterval */
+typedef long    ExpectedHOInterval_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ExpectedHOInterval_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ExpectedHOInterval;
+extern const asn_INTEGER_specifics_t asn_SPC_ExpectedHOInterval_specs_1;
+asn_struct_free_f ExpectedHOInterval_free;
+asn_struct_print_f ExpectedHOInterval_print;
+asn_constr_check_f ExpectedHOInterval_constraint;
+ber_type_decoder_f ExpectedHOInterval_decode_ber;
+der_type_encoder_f ExpectedHOInterval_encode_der;
+xer_type_decoder_f ExpectedHOInterval_decode_xer;
+xer_type_encoder_f ExpectedHOInterval_encode_xer;
+oer_type_decoder_f ExpectedHOInterval_decode_oer;
+oer_type_encoder_f ExpectedHOInterval_encode_oer;
+per_type_decoder_f ExpectedHOInterval_decode_uper;
+per_type_encoder_f ExpectedHOInterval_encode_uper;
+per_type_decoder_f ExpectedHOInterval_decode_aper;
+per_type_encoder_f ExpectedHOInterval_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExpectedHOInterval_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ExpectedIdlePeriod.h b/e2ap/headers/ExpectedIdlePeriod.h
new file mode 100644 (file)
index 0000000..4f35c63
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ExpectedIdlePeriod_H_
+#define        _ExpectedIdlePeriod_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ExpectedIdlePeriod */
+typedef long    ExpectedIdlePeriod_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ExpectedIdlePeriod_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ExpectedIdlePeriod;
+asn_struct_free_f ExpectedIdlePeriod_free;
+asn_struct_print_f ExpectedIdlePeriod_print;
+asn_constr_check_f ExpectedIdlePeriod_constraint;
+ber_type_decoder_f ExpectedIdlePeriod_decode_ber;
+der_type_encoder_f ExpectedIdlePeriod_encode_der;
+xer_type_decoder_f ExpectedIdlePeriod_decode_xer;
+xer_type_encoder_f ExpectedIdlePeriod_encode_xer;
+oer_type_decoder_f ExpectedIdlePeriod_decode_oer;
+oer_type_encoder_f ExpectedIdlePeriod_encode_oer;
+per_type_decoder_f ExpectedIdlePeriod_decode_uper;
+per_type_encoder_f ExpectedIdlePeriod_encode_uper;
+per_type_decoder_f ExpectedIdlePeriod_decode_aper;
+per_type_encoder_f ExpectedIdlePeriod_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExpectedIdlePeriod_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ExpectedUEActivityBehaviour.h b/e2ap/headers/ExpectedUEActivityBehaviour.h
new file mode 100644 (file)
index 0000000..0476136
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ExpectedUEActivityBehaviour_H_
+#define        _ExpectedUEActivityBehaviour_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ExpectedActivityPeriod.h"
+#include "ExpectedIdlePeriod.h"
+#include "SourceOfUEActivityBehaviourInformation.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ExpectedUEActivityBehaviour */
+typedef struct ExpectedUEActivityBehaviour {
+       ExpectedActivityPeriod_t        *expectedActivityPeriod;        /* OPTIONAL */
+       ExpectedIdlePeriod_t    *expectedIdlePeriod;    /* OPTIONAL */
+       SourceOfUEActivityBehaviourInformation_t        *sourceofUEActivityBehaviourInformation;        /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ExpectedUEActivityBehaviour_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ExpectedUEActivityBehaviour;
+extern asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEActivityBehaviour_specs_1;
+extern asn_TYPE_member_t asn_MBR_ExpectedUEActivityBehaviour_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExpectedUEActivityBehaviour_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ExpectedUEBehaviour.h b/e2ap/headers/ExpectedUEBehaviour.h
new file mode 100644 (file)
index 0000000..a94aaa7
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ExpectedUEBehaviour_H_
+#define        _ExpectedUEBehaviour_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ExpectedHOInterval.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ExpectedUEActivityBehaviour;
+struct ProtocolExtensionContainer;
+
+/* ExpectedUEBehaviour */
+typedef struct ExpectedUEBehaviour {
+       struct ExpectedUEActivityBehaviour      *expectedActivity;      /* OPTIONAL */
+       ExpectedHOInterval_t    *expectedHOInterval;    /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ExpectedUEBehaviour_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ExpectedUEBehaviour;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExpectedUEBehaviour_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ExtendedBitRate.h b/e2ap/headers/ExtendedBitRate.h
new file mode 100644 (file)
index 0000000..16cd6e1
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ExtendedBitRate_H_
+#define        _ExtendedBitRate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <INTEGER.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ExtendedBitRate */
+typedef INTEGER_t       ExtendedBitRate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ExtendedBitRate;
+asn_struct_free_f ExtendedBitRate_free;
+asn_struct_print_f ExtendedBitRate_print;
+asn_constr_check_f ExtendedBitRate_constraint;
+ber_type_decoder_f ExtendedBitRate_decode_ber;
+der_type_encoder_f ExtendedBitRate_encode_der;
+xer_type_decoder_f ExtendedBitRate_decode_xer;
+xer_type_encoder_f ExtendedBitRate_encode_xer;
+oer_type_decoder_f ExtendedBitRate_decode_oer;
+oer_type_encoder_f ExtendedBitRate_encode_oer;
+per_type_decoder_f ExtendedBitRate_decode_uper;
+per_type_encoder_f ExtendedBitRate_encode_uper;
+per_type_decoder_f ExtendedBitRate_decode_aper;
+per_type_encoder_f ExtendedBitRate_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExtendedBitRate_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ExtendedULInterferenceOverloadInfo.h b/e2ap/headers/ExtendedULInterferenceOverloadInfo.h
new file mode 100644 (file)
index 0000000..bc564cd
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ExtendedULInterferenceOverloadInfo_H_
+#define        _ExtendedULInterferenceOverloadInfo_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include "UL-InterferenceOverloadIndication.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ExtendedULInterferenceOverloadInfo */
+typedef struct ExtendedULInterferenceOverloadInfo {
+       BIT_STRING_t     associatedSubframes;
+       UL_InterferenceOverloadIndication_t      extended_ul_InterferenceOverloadIndication;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ExtendedULInterferenceOverloadInfo_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ExtendedULInterferenceOverloadInfo;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExtendedULInterferenceOverloadInfo_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/FDD-Info.h b/e2ap/headers/FDD-Info.h
new file mode 100644 (file)
index 0000000..db1a1a8
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _FDD_Info_H_
+#define        _FDD_Info_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EARFCN.h"
+#include "Transmission-Bandwidth.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* FDD-Info */
+typedef struct FDD_Info {
+       EARFCN_t         uL_EARFCN;
+       EARFCN_t         dL_EARFCN;
+       Transmission_Bandwidth_t         uL_Transmission_Bandwidth;
+       Transmission_Bandwidth_t         dL_Transmission_Bandwidth;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} FDD_Info_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_FDD_Info;
+extern asn_SEQUENCE_specifics_t asn_SPC_FDD_Info_specs_1;
+extern asn_TYPE_member_t asn_MBR_FDD_Info_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FDD_Info_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/FDD-InfoNeighbourServedNRCell-Information.h b/e2ap/headers/FDD-InfoNeighbourServedNRCell-Information.h
new file mode 100644 (file)
index 0000000..575b61a
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _FDD_InfoNeighbourServedNRCell_Information_H_
+#define        _FDD_InfoNeighbourServedNRCell_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NRFreqInfo.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* FDD-InfoNeighbourServedNRCell-Information */
+typedef struct FDD_InfoNeighbourServedNRCell_Information {
+       NRFreqInfo_t     ul_NRFreqInfo;
+       NRFreqInfo_t     dl_NRFreqInfo;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} FDD_InfoNeighbourServedNRCell_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_FDD_InfoNeighbourServedNRCell_Information;
+extern asn_SEQUENCE_specifics_t asn_SPC_FDD_InfoNeighbourServedNRCell_Information_specs_1;
+extern asn_TYPE_member_t asn_MBR_FDD_InfoNeighbourServedNRCell_Information_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FDD_InfoNeighbourServedNRCell_Information_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/FDD-InfoServedNRCell-Information.h b/e2ap/headers/FDD-InfoServedNRCell-Information.h
new file mode 100644 (file)
index 0000000..acec97c
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _FDD_InfoServedNRCell_Information_H_
+#define        _FDD_InfoServedNRCell_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NRFreqInfo.h"
+#include "NR-TxBW.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* FDD-InfoServedNRCell-Information */
+typedef struct FDD_InfoServedNRCell_Information {
+       NRFreqInfo_t     ul_NRFreqInfo;
+       NRFreqInfo_t     dl_NRFreqInfo;
+       NR_TxBW_t        ul_NR_TxBW;
+       NR_TxBW_t        dl_NR_TxBW;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} FDD_InfoServedNRCell_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_FDD_InfoServedNRCell_Information;
+extern asn_SEQUENCE_specifics_t asn_SPC_FDD_InfoServedNRCell_Information_specs_1;
+extern asn_TYPE_member_t asn_MBR_FDD_InfoServedNRCell_Information_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FDD_InfoServedNRCell_Information_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/FiveGS-TAC.h b/e2ap/headers/FiveGS-TAC.h
new file mode 100644 (file)
index 0000000..9ea94be
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _FiveGS_TAC_H_
+#define        _FiveGS_TAC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* FiveGS-TAC */
+typedef OCTET_STRING_t  FiveGS_TAC_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_FiveGS_TAC_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_FiveGS_TAC;
+asn_struct_free_f FiveGS_TAC_free;
+asn_struct_print_f FiveGS_TAC_print;
+asn_constr_check_f FiveGS_TAC_constraint;
+ber_type_decoder_f FiveGS_TAC_decode_ber;
+der_type_encoder_f FiveGS_TAC_encode_der;
+xer_type_decoder_f FiveGS_TAC_decode_xer;
+xer_type_encoder_f FiveGS_TAC_encode_xer;
+oer_type_decoder_f FiveGS_TAC_decode_oer;
+oer_type_encoder_f FiveGS_TAC_encode_oer;
+per_type_decoder_f FiveGS_TAC_decode_uper;
+per_type_encoder_f FiveGS_TAC_encode_uper;
+per_type_decoder_f FiveGS_TAC_decode_aper;
+per_type_encoder_f FiveGS_TAC_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FiveGS_TAC_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ForbiddenInterRATs.h b/e2ap/headers/ForbiddenInterRATs.h
new file mode 100644 (file)
index 0000000..0102893
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ForbiddenInterRATs_H_
+#define        _ForbiddenInterRATs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ForbiddenInterRATs {
+       ForbiddenInterRATs_all  = 0,
+       ForbiddenInterRATs_geran        = 1,
+       ForbiddenInterRATs_utran        = 2,
+       ForbiddenInterRATs_cdma2000     = 3,
+       /*
+        * Enumeration is extensible
+        */
+       ForbiddenInterRATs_geranandutran        = 4,
+       ForbiddenInterRATs_cdma2000andutran     = 5
+} e_ForbiddenInterRATs;
+
+/* ForbiddenInterRATs */
+typedef long    ForbiddenInterRATs_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ForbiddenInterRATs_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenInterRATs;
+extern const asn_INTEGER_specifics_t asn_SPC_ForbiddenInterRATs_specs_1;
+asn_struct_free_f ForbiddenInterRATs_free;
+asn_struct_print_f ForbiddenInterRATs_print;
+asn_constr_check_f ForbiddenInterRATs_constraint;
+ber_type_decoder_f ForbiddenInterRATs_decode_ber;
+der_type_encoder_f ForbiddenInterRATs_encode_der;
+xer_type_decoder_f ForbiddenInterRATs_decode_xer;
+xer_type_encoder_f ForbiddenInterRATs_encode_xer;
+oer_type_decoder_f ForbiddenInterRATs_decode_oer;
+oer_type_encoder_f ForbiddenInterRATs_encode_oer;
+per_type_decoder_f ForbiddenInterRATs_decode_uper;
+per_type_encoder_f ForbiddenInterRATs_encode_uper;
+per_type_decoder_f ForbiddenInterRATs_decode_aper;
+per_type_encoder_f ForbiddenInterRATs_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ForbiddenInterRATs_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ForbiddenLACs.h b/e2ap/headers/ForbiddenLACs.h
new file mode 100644 (file)
index 0000000..aed35eb
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ForbiddenLACs_H_
+#define        _ForbiddenLACs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "LAC.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ForbiddenLACs */
+typedef struct ForbiddenLACs {
+       A_SEQUENCE_OF(LAC_t) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ForbiddenLACs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenLACs;
+extern asn_SET_OF_specifics_t asn_SPC_ForbiddenLACs_specs_1;
+extern asn_TYPE_member_t asn_MBR_ForbiddenLACs_1[1];
+extern asn_per_constraints_t asn_PER_type_ForbiddenLACs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ForbiddenLACs_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ForbiddenLAs-Item.h b/e2ap/headers/ForbiddenLAs-Item.h
new file mode 100644 (file)
index 0000000..66f1b41
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ForbiddenLAs_Item_H_
+#define        _ForbiddenLAs_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMN-Identity.h"
+#include "ForbiddenLACs.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ForbiddenLAs-Item */
+typedef struct ForbiddenLAs_Item {
+       PLMN_Identity_t  pLMN_Identity;
+       ForbiddenLACs_t  forbiddenLACs;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ForbiddenLAs_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenLAs_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_ForbiddenLAs_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_ForbiddenLAs_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ForbiddenLAs_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ForbiddenLAs.h b/e2ap/headers/ForbiddenLAs.h
new file mode 100644 (file)
index 0000000..5b793ae
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ForbiddenLAs_H_
+#define        _ForbiddenLAs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ForbiddenLAs_Item;
+
+/* ForbiddenLAs */
+typedef struct ForbiddenLAs {
+       A_SEQUENCE_OF(struct ForbiddenLAs_Item) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ForbiddenLAs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenLAs;
+extern asn_SET_OF_specifics_t asn_SPC_ForbiddenLAs_specs_1;
+extern asn_TYPE_member_t asn_MBR_ForbiddenLAs_1[1];
+extern asn_per_constraints_t asn_PER_type_ForbiddenLAs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ForbiddenLAs_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ForbiddenTACs.h b/e2ap/headers/ForbiddenTACs.h
new file mode 100644 (file)
index 0000000..9789ba5
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ForbiddenTACs_H_
+#define        _ForbiddenTACs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAC.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ForbiddenTACs */
+typedef struct ForbiddenTACs {
+       A_SEQUENCE_OF(TAC_t) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ForbiddenTACs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenTACs;
+extern asn_SET_OF_specifics_t asn_SPC_ForbiddenTACs_specs_1;
+extern asn_TYPE_member_t asn_MBR_ForbiddenTACs_1[1];
+extern asn_per_constraints_t asn_PER_type_ForbiddenTACs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ForbiddenTACs_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ForbiddenTAs-Item.h b/e2ap/headers/ForbiddenTAs-Item.h
new file mode 100644 (file)
index 0000000..ebda50f
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ForbiddenTAs_Item_H_
+#define        _ForbiddenTAs_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMN-Identity.h"
+#include "ForbiddenTACs.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ForbiddenTAs-Item */
+typedef struct ForbiddenTAs_Item {
+       PLMN_Identity_t  pLMN_Identity;
+       ForbiddenTACs_t  forbiddenTACs;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ForbiddenTAs_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenTAs_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_ForbiddenTAs_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_ForbiddenTAs_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ForbiddenTAs_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ForbiddenTAs.h b/e2ap/headers/ForbiddenTAs.h
new file mode 100644 (file)
index 0000000..d8114bb
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ForbiddenTAs_H_
+#define        _ForbiddenTAs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ForbiddenTAs_Item;
+
+/* ForbiddenTAs */
+typedef struct ForbiddenTAs {
+       A_SEQUENCE_OF(struct ForbiddenTAs_Item) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ForbiddenTAs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenTAs;
+extern asn_SET_OF_specifics_t asn_SPC_ForbiddenTAs_specs_1;
+extern asn_TYPE_member_t asn_MBR_ForbiddenTAs_1[1];
+extern asn_per_constraints_t asn_PER_type_ForbiddenTAs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ForbiddenTAs_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Fourframes.h b/e2ap/headers/Fourframes.h
new file mode 100644 (file)
index 0000000..0607fe8
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Fourframes_H_
+#define        _Fourframes_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Fourframes */
+typedef BIT_STRING_t    Fourframes_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Fourframes_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Fourframes;
+asn_struct_free_f Fourframes_free;
+asn_struct_print_f Fourframes_print;
+asn_constr_check_f Fourframes_constraint;
+ber_type_decoder_f Fourframes_decode_ber;
+der_type_encoder_f Fourframes_encode_der;
+xer_type_decoder_f Fourframes_decode_xer;
+xer_type_encoder_f Fourframes_encode_xer;
+oer_type_decoder_f Fourframes_decode_oer;
+oer_type_encoder_f Fourframes_encode_oer;
+per_type_decoder_f Fourframes_decode_uper;
+per_type_encoder_f Fourframes_encode_uper;
+per_type_decoder_f Fourframes_decode_aper;
+per_type_encoder_f Fourframes_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Fourframes_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/FreqBandIndicator.h b/e2ap/headers/FreqBandIndicator.h
new file mode 100644 (file)
index 0000000..349dfc4
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _FreqBandIndicator_H_
+#define        _FreqBandIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* FreqBandIndicator */
+typedef long    FreqBandIndicator_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_FreqBandIndicator_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_FreqBandIndicator;
+asn_struct_free_f FreqBandIndicator_free;
+asn_struct_print_f FreqBandIndicator_print;
+asn_constr_check_f FreqBandIndicator_constraint;
+ber_type_decoder_f FreqBandIndicator_decode_ber;
+der_type_encoder_f FreqBandIndicator_encode_der;
+xer_type_decoder_f FreqBandIndicator_decode_xer;
+xer_type_encoder_f FreqBandIndicator_encode_xer;
+oer_type_decoder_f FreqBandIndicator_decode_oer;
+oer_type_encoder_f FreqBandIndicator_encode_oer;
+per_type_decoder_f FreqBandIndicator_decode_uper;
+per_type_encoder_f FreqBandIndicator_encode_uper;
+per_type_decoder_f FreqBandIndicator_decode_aper;
+per_type_encoder_f FreqBandIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FreqBandIndicator_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/FreqBandIndicatorPriority.h b/e2ap/headers/FreqBandIndicatorPriority.h
new file mode 100644 (file)
index 0000000..f564c9f
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _FreqBandIndicatorPriority_H_
+#define        _FreqBandIndicatorPriority_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum FreqBandIndicatorPriority {
+       FreqBandIndicatorPriority_not_broadcasted       = 0,
+       FreqBandIndicatorPriority_broadcasted   = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_FreqBandIndicatorPriority;
+
+/* FreqBandIndicatorPriority */
+typedef long    FreqBandIndicatorPriority_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_FreqBandIndicatorPriority;
+asn_struct_free_f FreqBandIndicatorPriority_free;
+asn_struct_print_f FreqBandIndicatorPriority_print;
+asn_constr_check_f FreqBandIndicatorPriority_constraint;
+ber_type_decoder_f FreqBandIndicatorPriority_decode_ber;
+der_type_encoder_f FreqBandIndicatorPriority_encode_der;
+xer_type_decoder_f FreqBandIndicatorPriority_decode_xer;
+xer_type_encoder_f FreqBandIndicatorPriority_encode_xer;
+oer_type_decoder_f FreqBandIndicatorPriority_decode_oer;
+oer_type_encoder_f FreqBandIndicatorPriority_encode_oer;
+per_type_decoder_f FreqBandIndicatorPriority_decode_uper;
+per_type_encoder_f FreqBandIndicatorPriority_encode_uper;
+per_type_decoder_f FreqBandIndicatorPriority_decode_aper;
+per_type_encoder_f FreqBandIndicatorPriority_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FreqBandIndicatorPriority_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/FreqBandNrItem.h b/e2ap/headers/FreqBandNrItem.h
new file mode 100644 (file)
index 0000000..f5c6b4f
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _FreqBandNrItem_H_
+#define        _FreqBandNrItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+struct SupportedSULFreqBandItem;
+
+/* FreqBandNrItem */
+typedef struct FreqBandNrItem {
+       long     freqBandIndicatorNr;
+       struct FreqBandNrItem__supportedSULBandList {
+               A_SEQUENCE_OF(struct SupportedSULFreqBandItem) list;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } supportedSULBandList;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} FreqBandNrItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_FreqBandNrItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_FreqBandNrItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_FreqBandNrItem_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FreqBandNrItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/GBR-QosInformation.h b/e2ap/headers/GBR-QosInformation.h
new file mode 100644 (file)
index 0000000..1305d77
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _GBR_QosInformation_H_
+#define        _GBR_QosInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "BitRate.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* GBR-QosInformation */
+typedef struct GBR_QosInformation {
+       BitRate_t        e_RAB_MaximumBitrateDL;
+       BitRate_t        e_RAB_MaximumBitrateUL;
+       BitRate_t        e_RAB_GuaranteedBitrateDL;
+       BitRate_t        e_RAB_GuaranteedBitrateUL;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} GBR_QosInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GBR_QosInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_GBR_QosInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_GBR_QosInformation_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GBR_QosInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/GNB-ID.h b/e2ap/headers/GNB-ID.h
new file mode 100644 (file)
index 0000000..9ae125b
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _GNB_ID_H_
+#define        _GNB_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 GNB_ID_PR {
+       GNB_ID_PR_NOTHING,      /* No components present */
+       GNB_ID_PR_gNB_ID
+       /* Extensions may appear below */
+       
+} GNB_ID_PR;
+
+/* GNB-ID */
+typedef struct GNB_ID {
+       GNB_ID_PR present;
+       union GNB_ID_u {
+               BIT_STRING_t     gNB_ID;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} GNB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GNB_ID;
+extern asn_CHOICE_specifics_t asn_SPC_GNB_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_GNB_ID_1[1];
+extern asn_per_constraints_t asn_PER_type_GNB_ID_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GNB_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/GNBOverloadInformation.h b/e2ap/headers/GNBOverloadInformation.h
new file mode 100644 (file)
index 0000000..dc14409
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _GNBOverloadInformation_H_
+#define        _GNBOverloadInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum GNBOverloadInformation {
+       GNBOverloadInformation_overloaded       = 0,
+       GNBOverloadInformation_not_overloaded   = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_GNBOverloadInformation;
+
+/* GNBOverloadInformation */
+typedef long    GNBOverloadInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GNBOverloadInformation;
+asn_struct_free_f GNBOverloadInformation_free;
+asn_struct_print_f GNBOverloadInformation_print;
+asn_constr_check_f GNBOverloadInformation_constraint;
+ber_type_decoder_f GNBOverloadInformation_decode_ber;
+der_type_encoder_f GNBOverloadInformation_encode_der;
+xer_type_decoder_f GNBOverloadInformation_decode_xer;
+xer_type_encoder_f GNBOverloadInformation_encode_xer;
+oer_type_decoder_f GNBOverloadInformation_decode_oer;
+oer_type_encoder_f GNBOverloadInformation_encode_oer;
+per_type_decoder_f GNBOverloadInformation_decode_uper;
+per_type_encoder_f GNBOverloadInformation_encode_uper;
+per_type_decoder_f GNBOverloadInformation_decode_aper;
+per_type_encoder_f GNBOverloadInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GNBOverloadInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/GNBStatusIndication.h b/e2ap/headers/GNBStatusIndication.h
new file mode 100644 (file)
index 0000000..6e02f8d
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _GNBStatusIndication_H_
+#define        _GNBStatusIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GNBStatusIndication */
+typedef struct GNBStatusIndication {
+       ProtocolIE_Container_9515P119_t  protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} GNBStatusIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GNBStatusIndication;
+extern asn_SEQUENCE_specifics_t asn_SPC_GNBStatusIndication_specs_1;
+extern asn_TYPE_member_t asn_MBR_GNBStatusIndication_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GNBStatusIndication_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/GTP-TEI.h b/e2ap/headers/GTP-TEI.h
new file mode 100644 (file)
index 0000000..b8b73fd
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _GTP_TEI_H_
+#define        _GTP_TEI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GTP-TEI */
+typedef OCTET_STRING_t  GTP_TEI_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_GTP_TEI_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_GTP_TEI;
+asn_struct_free_f GTP_TEI_free;
+asn_struct_print_f GTP_TEI_print;
+asn_constr_check_f GTP_TEI_constraint;
+ber_type_decoder_f GTP_TEI_decode_ber;
+der_type_encoder_f GTP_TEI_encode_der;
+xer_type_decoder_f GTP_TEI_decode_xer;
+xer_type_encoder_f GTP_TEI_encode_xer;
+oer_type_decoder_f GTP_TEI_decode_oer;
+oer_type_encoder_f GTP_TEI_encode_oer;
+per_type_decoder_f GTP_TEI_decode_uper;
+per_type_encoder_f GTP_TEI_encode_uper;
+per_type_decoder_f GTP_TEI_decode_aper;
+per_type_encoder_f GTP_TEI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GTP_TEI_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/GTPtunnelEndpoint.h b/e2ap/headers/GTPtunnelEndpoint.h
new file mode 100644 (file)
index 0000000..4704239
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _GTPtunnelEndpoint_H_
+#define        _GTPtunnelEndpoint_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TransportLayerAddress.h"
+#include "GTP-TEI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* GTPtunnelEndpoint */
+typedef struct GTPtunnelEndpoint {
+       TransportLayerAddress_t  transportLayerAddress;
+       GTP_TEI_t        gTP_TEID;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} GTPtunnelEndpoint_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GTPtunnelEndpoint;
+extern asn_SEQUENCE_specifics_t asn_SPC_GTPtunnelEndpoint_specs_1;
+extern asn_TYPE_member_t asn_MBR_GTPtunnelEndpoint_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GTPtunnelEndpoint_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/GU-Group-ID.h b/e2ap/headers/GU-Group-ID.h
new file mode 100644 (file)
index 0000000..3ee77f9
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _GU_Group_ID_H_
+#define        _GU_Group_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMN-Identity.h"
+#include "MME-Group-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* GU-Group-ID */
+typedef struct GU_Group_ID {
+       PLMN_Identity_t  pLMN_Identity;
+       MME_Group_ID_t   mME_Group_ID;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} GU_Group_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GU_Group_ID;
+extern asn_SEQUENCE_specifics_t asn_SPC_GU_Group_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_GU_Group_ID_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GU_Group_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/GUGroupIDList.h b/e2ap/headers/GUGroupIDList.h
new file mode 100644 (file)
index 0000000..be212aa
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _GUGroupIDList_H_
+#define        _GUGroupIDList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GU_Group_ID;
+
+/* GUGroupIDList */
+typedef struct GUGroupIDList {
+       A_SEQUENCE_OF(struct GU_Group_ID) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} GUGroupIDList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GUGroupIDList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GUGroupIDList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/GUMMEI.h b/e2ap/headers/GUMMEI.h
new file mode 100644 (file)
index 0000000..479ed70
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _GUMMEI_H_
+#define        _GUMMEI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GU-Group-ID.h"
+#include "MME-Code.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* GUMMEI */
+typedef struct GUMMEI {
+       GU_Group_ID_t    gU_Group_ID;
+       MME_Code_t       mME_Code;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} GUMMEI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GUMMEI;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GUMMEI_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/GlobalENB-ID.h b/e2ap/headers/GlobalENB-ID.h
new file mode 100644 (file)
index 0000000..8d6bfb6
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _GlobalENB_ID_H_
+#define        _GlobalENB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMN-Identity.h"
+#include "ENB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* GlobalENB-ID */
+typedef struct GlobalENB_ID {
+       PLMN_Identity_t  pLMN_Identity;
+       ENB_ID_t         eNB_ID;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} GlobalENB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID;
+extern asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_GlobalENB_ID_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GlobalENB_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/GlobalGNB-ID.h b/e2ap/headers/GlobalGNB-ID.h
new file mode 100644 (file)
index 0000000..aae84e1
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _GlobalGNB_ID_H_
+#define        _GlobalGNB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMN-Identity.h"
+#include "GNB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* GlobalGNB-ID */
+typedef struct GlobalGNB_ID {
+       PLMN_Identity_t  pLMN_Identity;
+       GNB_ID_t         gNB_ID;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} GlobalGNB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GlobalGNB_ID;
+extern asn_SEQUENCE_specifics_t asn_SPC_GlobalGNB_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_GlobalGNB_ID_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GlobalGNB_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/HFN.h b/e2ap/headers/HFN.h
new file mode 100644 (file)
index 0000000..95d5be1
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _HFN_H_
+#define        _HFN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HFN */
+typedef long    HFN_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_HFN_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_HFN;
+asn_struct_free_f HFN_free;
+asn_struct_print_f HFN_print;
+asn_constr_check_f HFN_constraint;
+ber_type_decoder_f HFN_decode_ber;
+der_type_encoder_f HFN_encode_der;
+xer_type_decoder_f HFN_decode_xer;
+xer_type_encoder_f HFN_encode_xer;
+oer_type_decoder_f HFN_decode_oer;
+oer_type_encoder_f HFN_encode_oer;
+per_type_decoder_f HFN_decode_uper;
+per_type_encoder_f HFN_encode_uper;
+per_type_decoder_f HFN_decode_aper;
+per_type_encoder_f HFN_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HFN_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/HFNModified.h b/e2ap/headers/HFNModified.h
new file mode 100644 (file)
index 0000000..ad3be59
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _HFNModified_H_
+#define        _HFNModified_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HFNModified */
+typedef long    HFNModified_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_HFNModified_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_HFNModified;
+asn_struct_free_f HFNModified_free;
+asn_struct_print_f HFNModified_print;
+asn_constr_check_f HFNModified_constraint;
+ber_type_decoder_f HFNModified_decode_ber;
+der_type_encoder_f HFNModified_encode_der;
+xer_type_decoder_f HFNModified_decode_xer;
+xer_type_encoder_f HFNModified_encode_xer;
+oer_type_decoder_f HFNModified_decode_oer;
+oer_type_encoder_f HFNModified_encode_oer;
+per_type_decoder_f HFNModified_decode_uper;
+per_type_encoder_f HFNModified_encode_uper;
+per_type_decoder_f HFNModified_decode_aper;
+per_type_encoder_f HFNModified_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HFNModified_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/HFNforPDCP-SNlength18.h b/e2ap/headers/HFNforPDCP-SNlength18.h
new file mode 100644 (file)
index 0000000..274ca18
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _HFNforPDCP_SNlength18_H_
+#define        _HFNforPDCP_SNlength18_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HFNforPDCP-SNlength18 */
+typedef long    HFNforPDCP_SNlength18_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_HFNforPDCP_SNlength18_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_HFNforPDCP_SNlength18;
+asn_struct_free_f HFNforPDCP_SNlength18_free;
+asn_struct_print_f HFNforPDCP_SNlength18_print;
+asn_constr_check_f HFNforPDCP_SNlength18_constraint;
+ber_type_decoder_f HFNforPDCP_SNlength18_decode_ber;
+der_type_encoder_f HFNforPDCP_SNlength18_encode_der;
+xer_type_decoder_f HFNforPDCP_SNlength18_decode_xer;
+xer_type_encoder_f HFNforPDCP_SNlength18_encode_xer;
+oer_type_decoder_f HFNforPDCP_SNlength18_decode_oer;
+oer_type_encoder_f HFNforPDCP_SNlength18_encode_oer;
+per_type_decoder_f HFNforPDCP_SNlength18_decode_uper;
+per_type_encoder_f HFNforPDCP_SNlength18_encode_uper;
+per_type_decoder_f HFNforPDCP_SNlength18_decode_aper;
+per_type_encoder_f HFNforPDCP_SNlength18_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HFNforPDCP_SNlength18_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/HWLoadIndicator.h b/e2ap/headers/HWLoadIndicator.h
new file mode 100644 (file)
index 0000000..1803d83
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _HWLoadIndicator_H_
+#define        _HWLoadIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "LoadIndicator.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* HWLoadIndicator */
+typedef struct HWLoadIndicator {
+       LoadIndicator_t  dLHWLoadIndicator;
+       LoadIndicator_t  uLHWLoadIndicator;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} HWLoadIndicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HWLoadIndicator;
+extern asn_SEQUENCE_specifics_t asn_SPC_HWLoadIndicator_specs_1;
+extern asn_TYPE_member_t asn_MBR_HWLoadIndicator_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HWLoadIndicator_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/HandoverCancel.h b/e2ap/headers/HandoverCancel.h
new file mode 100644 (file)
index 0000000..06f813f
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _HandoverCancel_H_
+#define        _HandoverCancel_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HandoverCancel */
+typedef struct HandoverCancel {
+       ProtocolIE_Container_9515P20_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} HandoverCancel_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HandoverCancel;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverCancel_specs_1;
+extern asn_TYPE_member_t asn_MBR_HandoverCancel_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverCancel_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/HandoverPreparationFailure.h b/e2ap/headers/HandoverPreparationFailure.h
new file mode 100644 (file)
index 0000000..4d30742
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _HandoverPreparationFailure_H_
+#define        _HandoverPreparationFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HandoverPreparationFailure */
+typedef struct HandoverPreparationFailure {
+       ProtocolIE_Container_9515P16_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} HandoverPreparationFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HandoverPreparationFailure;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverPreparationFailure_specs_1;
+extern asn_TYPE_member_t asn_MBR_HandoverPreparationFailure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverPreparationFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/HandoverReport.h b/e2ap/headers/HandoverReport.h
new file mode 100644 (file)
index 0000000..04286a8
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _HandoverReport_H_
+#define        _HandoverReport_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HandoverReport */
+typedef struct HandoverReport {
+       ProtocolIE_Container_9515P17_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} HandoverReport_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HandoverReport;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverReport_specs_1;
+extern asn_TYPE_member_t asn_MBR_HandoverReport_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverReport_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/HandoverReportType.h b/e2ap/headers/HandoverReportType.h
new file mode 100644 (file)
index 0000000..957b4d6
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _HandoverReportType_H_
+#define        _HandoverReportType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum HandoverReportType {
+       HandoverReportType_hoTooEarly   = 0,
+       HandoverReportType_hoToWrongCell        = 1,
+       /*
+        * Enumeration is extensible
+        */
+       HandoverReportType_interRATpingpong     = 2
+} e_HandoverReportType;
+
+/* HandoverReportType */
+typedef long    HandoverReportType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HandoverReportType;
+asn_struct_free_f HandoverReportType_free;
+asn_struct_print_f HandoverReportType_print;
+asn_constr_check_f HandoverReportType_constraint;
+ber_type_decoder_f HandoverReportType_decode_ber;
+der_type_encoder_f HandoverReportType_encode_der;
+xer_type_decoder_f HandoverReportType_decode_xer;
+xer_type_encoder_f HandoverReportType_encode_xer;
+oer_type_decoder_f HandoverReportType_decode_oer;
+oer_type_encoder_f HandoverReportType_encode_oer;
+per_type_decoder_f HandoverReportType_decode_uper;
+per_type_encoder_f HandoverReportType_encode_uper;
+per_type_decoder_f HandoverReportType_decode_aper;
+per_type_encoder_f HandoverReportType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverReportType_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/HandoverRequest.h b/e2ap/headers/HandoverRequest.h
new file mode 100644 (file)
index 0000000..0dcc0df
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _HandoverRequest_H_
+#define        _HandoverRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HandoverRequest */
+typedef struct HandoverRequest {
+       ProtocolIE_Container_9515P14_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} HandoverRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HandoverRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_HandoverRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/HandoverRequestAcknowledge.h b/e2ap/headers/HandoverRequestAcknowledge.h
new file mode 100644 (file)
index 0000000..ea4dcbf
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _HandoverRequestAcknowledge_H_
+#define        _HandoverRequestAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HandoverRequestAcknowledge */
+typedef struct HandoverRequestAcknowledge {
+       ProtocolIE_Container_9515P15_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} HandoverRequestAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HandoverRequestAcknowledge;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverRequestAcknowledge_specs_1;
+extern asn_TYPE_member_t asn_MBR_HandoverRequestAcknowledge_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverRequestAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/HandoverRestrictionList.h b/e2ap/headers/HandoverRestrictionList.h
new file mode 100644 (file)
index 0000000..57e4c07
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _HandoverRestrictionList_H_
+#define        _HandoverRestrictionList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMN-Identity.h"
+#include "ForbiddenInterRATs.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct EPLMNs;
+struct ForbiddenTAs;
+struct ForbiddenLAs;
+struct ProtocolExtensionContainer;
+
+/* HandoverRestrictionList */
+typedef struct HandoverRestrictionList {
+       PLMN_Identity_t  servingPLMN;
+       struct EPLMNs   *equivalentPLMNs;       /* OPTIONAL */
+       struct ForbiddenTAs     *forbiddenTAs;  /* OPTIONAL */
+       struct ForbiddenLAs     *forbiddenLAs;  /* OPTIONAL */
+       ForbiddenInterRATs_t    *forbiddenInterRATs;    /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} HandoverRestrictionList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HandoverRestrictionList;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverRestrictionList_specs_1;
+extern asn_TYPE_member_t asn_MBR_HandoverRestrictionList_1[6];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverRestrictionList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/INTEGER.h b/e2ap/headers/INTEGER.h
new file mode 100644 (file)
index 0000000..f776c07
--- /dev/null
@@ -0,0 +1,108 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _INTEGER_H_
+#define        _INTEGER_H_
+
+#include <asn_application.h>
+#include <asn_codecs_prim.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef ASN__PRIMITIVE_TYPE_t INTEGER_t;
+
+extern asn_TYPE_descriptor_t asn_DEF_INTEGER;
+extern asn_TYPE_operation_t asn_OP_INTEGER;
+
+/* Map with <tag> to integer value association */
+typedef struct asn_INTEGER_enum_map_s {
+       long             nat_value;     /* associated native integer value */
+       size_t           enum_len;      /* strlen("tag") */
+       const char      *enum_name;     /* "tag" */
+} asn_INTEGER_enum_map_t;
+
+/* This type describes an enumeration for INTEGER and ENUMERATED types */
+typedef struct asn_INTEGER_specifics_s {
+       const asn_INTEGER_enum_map_t *value2enum;       /* N -> "tag"; sorted by N */
+       const unsigned int *enum2value;         /* "tag" => N; sorted by tag */
+       int map_count;                          /* Elements in either map */
+       int extension;                          /* This map is extensible */
+       int strict_enumeration;                 /* Enumeration set is fixed */
+       int field_width;                        /* Size of native integer */
+       int field_unsigned;                     /* Signed=0, unsigned=1 */
+} asn_INTEGER_specifics_t;
+
+#define INTEGER_free    ASN__PRIMITIVE_TYPE_free
+#define INTEGER_decode_ber     ber_decode_primitive
+#define INTEGER_constraint     asn_generic_no_constraint
+asn_struct_print_f INTEGER_print;
+asn_struct_compare_f INTEGER_compare;
+der_type_encoder_f INTEGER_encode_der;
+xer_type_decoder_f INTEGER_decode_xer;
+xer_type_encoder_f INTEGER_encode_xer;
+oer_type_decoder_f INTEGER_decode_oer;
+oer_type_encoder_f INTEGER_encode_oer;
+per_type_decoder_f INTEGER_decode_uper;
+per_type_encoder_f INTEGER_encode_uper;
+per_type_decoder_f INTEGER_decode_aper;
+per_type_encoder_f INTEGER_encode_aper;
+asn_random_fill_f  INTEGER_random_fill;
+
+/***********************************
+ * Some handy conversion routines. *
+ ***********************************/
+
+/*
+ * Natiwe size-independent conversion of native integers to/from INTEGER.
+ * (l_size) is in bytes.
+ * Returns 0 if it was possible to convert, -1 otherwise.
+ * -1/EINVAL: Mandatory argument missing
+ * -1/ERANGE: Value encoded is out of range for long representation
+ * -1/ENOMEM: Memory allocation failed (in asn_*2INTEGER()).
+ */
+int asn_INTEGER2imax(const INTEGER_t *i, intmax_t *l);
+int asn_INTEGER2umax(const INTEGER_t *i, uintmax_t *l);
+int asn_imax2INTEGER(INTEGER_t *i, intmax_t l);
+int asn_umax2INTEGER(INTEGER_t *i, uintmax_t l);
+
+/*
+ * Size-specific conversion helpers.
+ */
+int asn_INTEGER2long(const INTEGER_t *i, long *l);
+int asn_INTEGER2ulong(const INTEGER_t *i, unsigned long *l);
+int asn_long2INTEGER(INTEGER_t *i, long l);
+int asn_ulong2INTEGER(INTEGER_t *i, unsigned long l);
+int asn_int642INTEGER(INTEGER_t *i, int64_t l);
+int asn_uint642INTEGER(INTEGER_t *i, uint64_t l);
+
+/* A version of strtol/strtoimax(3) with nicer error reporting. */
+enum asn_strtox_result_e {
+    ASN_STRTOX_ERROR_RANGE = -3,  /* Input outside of supported numeric range */
+    ASN_STRTOX_ERROR_INVAL = -2,  /* Invalid data encountered (e.g., "+-") */
+    ASN_STRTOX_EXPECT_MORE = -1,  /* More data expected (e.g. "+") */
+    ASN_STRTOX_OK          =  0,  /* Conversion succeded, number ends at (*end) */
+    ASN_STRTOX_EXTRA_DATA  =  1   /* Conversion succeded, but the string has extra stuff */
+};
+enum asn_strtox_result_e asn_strtol_lim(const char *str, const char **end,
+                                        long *l);
+enum asn_strtox_result_e asn_strtoul_lim(const char *str, const char **end,
+                                         unsigned long *l);
+enum asn_strtox_result_e asn_strtoimax_lim(const char *str, const char **end,
+                                           intmax_t *l);
+enum asn_strtox_result_e asn_strtoumax_lim(const char *str, const char **end,
+                                           uintmax_t *l);
+
+/*
+ * Convert the integer value into the corresponding enumeration map entry.
+ */
+const asn_INTEGER_enum_map_t *INTEGER_map_value2enum(
+    const asn_INTEGER_specifics_t *specs, long value);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _INTEGER_H_ */
diff --git a/e2ap/headers/InitiatingMessage.h b/e2ap/headers/InitiatingMessage.h
new file mode 100644 (file)
index 0000000..65ebb16
--- /dev/null
@@ -0,0 +1,242 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Descriptions"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _InitiatingMessage_H_
+#define        _InitiatingMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProcedureCode.h"
+#include "Criticality.h"
+#include <ANY.h>
+#include <asn_ioc.h>
+#include "HandoverRequest.h"
+#include "HandoverRequestAcknowledge.h"
+#include "HandoverPreparationFailure.h"
+#include "ResetRequest.h"
+#include "ResetResponse.h"
+#include "X2SetupRequest.h"
+#include "X2SetupResponse.h"
+#include "X2SetupFailure.h"
+#include "ResourceStatusRequest.h"
+#include "ResourceStatusResponse.h"
+#include "ResourceStatusFailure.h"
+#include "ENBConfigurationUpdate.h"
+#include "ENBConfigurationUpdateAcknowledge.h"
+#include "ENBConfigurationUpdateFailure.h"
+#include "MobilityChangeRequest.h"
+#include "MobilityChangeAcknowledge.h"
+#include "MobilityChangeFailure.h"
+#include "CellActivationRequest.h"
+#include "CellActivationResponse.h"
+#include "CellActivationFailure.h"
+#include "SeNBAdditionRequest.h"
+#include "SeNBAdditionRequestAcknowledge.h"
+#include "SeNBAdditionRequestReject.h"
+#include "SeNBModificationRequest.h"
+#include "SeNBModificationRequestAcknowledge.h"
+#include "SeNBModificationRequestReject.h"
+#include "SeNBModificationRequired.h"
+#include "SeNBModificationConfirm.h"
+#include "SeNBModificationRefuse.h"
+#include "SeNBReleaseRequired.h"
+#include "SeNBReleaseConfirm.h"
+#include "X2RemovalRequest.h"
+#include "X2RemovalResponse.h"
+#include "X2RemovalFailure.h"
+#include "RetrieveUEContextRequest.h"
+#include "RetrieveUEContextResponse.h"
+#include "RetrieveUEContextFailure.h"
+#include "SgNBAdditionRequest.h"
+#include "SgNBAdditionRequestAcknowledge.h"
+#include "SgNBAdditionRequestReject.h"
+#include "SgNBModificationRequest.h"
+#include "SgNBModificationRequestAcknowledge.h"
+#include "SgNBModificationRequestReject.h"
+#include "SgNBModificationRequired.h"
+#include "SgNBModificationConfirm.h"
+#include "SgNBModificationRefuse.h"
+#include "SgNBReleaseRequest.h"
+#include "SgNBReleaseRequestAcknowledge.h"
+#include "SgNBReleaseRequestReject.h"
+#include "SgNBReleaseRequired.h"
+#include "SgNBReleaseConfirm.h"
+#include "SgNBChangeRequired.h"
+#include "SgNBChangeConfirm.h"
+#include "SgNBChangeRefuse.h"
+#include "ENDCX2SetupRequest.h"
+#include "ENDCX2SetupResponse.h"
+#include "ENDCX2SetupFailure.h"
+#include "ENDCConfigurationUpdate.h"
+#include "ENDCConfigurationUpdateAcknowledge.h"
+#include "ENDCConfigurationUpdateFailure.h"
+#include "ENDCCellActivationRequest.h"
+#include "ENDCCellActivationResponse.h"
+#include "ENDCCellActivationFailure.h"
+#include "ENDCPartialResetRequired.h"
+#include "ENDCPartialResetConfirm.h"
+#include "EUTRANRCellResourceCoordinationRequest.h"
+#include "EUTRANRCellResourceCoordinationResponse.h"
+#include "ENDCX2RemovalRequest.h"
+#include "ENDCX2RemovalResponse.h"
+#include "ENDCX2RemovalFailure.h"
+#include "SNStatusTransfer.h"
+#include "UEContextRelease.h"
+#include "HandoverCancel.h"
+#include "ErrorIndication.h"
+#include "ResourceStatusUpdate.h"
+#include "LoadInformation.h"
+#include "PrivateMessage.h"
+#include "RLFIndication.h"
+#include "HandoverReport.h"
+#include "X2Release.h"
+#include "X2APMessageTransfer.h"
+#include "SeNBReconfigurationComplete.h"
+#include "SeNBReleaseRequest.h"
+#include "SeNBCounterCheckRequest.h"
+#include "SgNBReconfigurationComplete.h"
+#include "SgNBCounterCheckRequest.h"
+#include "RRCTransfer.h"
+#include "SecondaryRATDataUsageReport.h"
+#include "SgNBActivityNotification.h"
+#include "DataForwardingAddressIndication.h"
+#include "GNBStatusIndication.h"
+#include <OPEN_TYPE.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum InitiatingMessage__value_PR {
+       InitiatingMessage__value_PR_NOTHING,    /* No components present */
+       InitiatingMessage__value_PR_HandoverRequest,
+       InitiatingMessage__value_PR_ResetRequest,
+       InitiatingMessage__value_PR_X2SetupRequest,
+       InitiatingMessage__value_PR_ResourceStatusRequest,
+       InitiatingMessage__value_PR_ENBConfigurationUpdate,
+       InitiatingMessage__value_PR_MobilityChangeRequest,
+       InitiatingMessage__value_PR_CellActivationRequest,
+       InitiatingMessage__value_PR_SeNBAdditionRequest,
+       InitiatingMessage__value_PR_SeNBModificationRequest,
+       InitiatingMessage__value_PR_SeNBModificationRequired,
+       InitiatingMessage__value_PR_SeNBReleaseRequired,
+       InitiatingMessage__value_PR_X2RemovalRequest,
+       InitiatingMessage__value_PR_RetrieveUEContextRequest,
+       InitiatingMessage__value_PR_SgNBAdditionRequest,
+       InitiatingMessage__value_PR_SgNBModificationRequest,
+       InitiatingMessage__value_PR_SgNBModificationRequired,
+       InitiatingMessage__value_PR_SgNBReleaseRequest,
+       InitiatingMessage__value_PR_SgNBReleaseRequired,
+       InitiatingMessage__value_PR_SgNBChangeRequired,
+       InitiatingMessage__value_PR_ENDCX2SetupRequest,
+       InitiatingMessage__value_PR_ENDCConfigurationUpdate,
+       InitiatingMessage__value_PR_ENDCCellActivationRequest,
+       InitiatingMessage__value_PR_ENDCPartialResetRequired,
+       InitiatingMessage__value_PR_EUTRANRCellResourceCoordinationRequest,
+       InitiatingMessage__value_PR_ENDCX2RemovalRequest,
+       InitiatingMessage__value_PR_SNStatusTransfer,
+       InitiatingMessage__value_PR_UEContextRelease,
+       InitiatingMessage__value_PR_HandoverCancel,
+       InitiatingMessage__value_PR_ErrorIndication,
+       InitiatingMessage__value_PR_ResourceStatusUpdate,
+       InitiatingMessage__value_PR_LoadInformation,
+       InitiatingMessage__value_PR_PrivateMessage,
+       InitiatingMessage__value_PR_RLFIndication,
+       InitiatingMessage__value_PR_HandoverReport,
+       InitiatingMessage__value_PR_X2Release,
+       InitiatingMessage__value_PR_X2APMessageTransfer,
+       InitiatingMessage__value_PR_SeNBReconfigurationComplete,
+       InitiatingMessage__value_PR_SeNBReleaseRequest,
+       InitiatingMessage__value_PR_SeNBCounterCheckRequest,
+       InitiatingMessage__value_PR_SgNBReconfigurationComplete,
+       InitiatingMessage__value_PR_SgNBCounterCheckRequest,
+       InitiatingMessage__value_PR_RRCTransfer,
+       InitiatingMessage__value_PR_SecondaryRATDataUsageReport,
+       InitiatingMessage__value_PR_SgNBActivityNotification,
+       InitiatingMessage__value_PR_DataForwardingAddressIndication,
+       InitiatingMessage__value_PR_GNBStatusIndication
+} InitiatingMessage__value_PR;
+
+/* InitiatingMessage */
+typedef struct InitiatingMessage {
+       ProcedureCode_t  procedureCode;
+       Criticality_t    criticality;
+       struct InitiatingMessage__value {
+               InitiatingMessage__value_PR present;
+               union InitiatingMessage__value_u {
+                       HandoverRequest_t        HandoverRequest;
+                       ResetRequest_t   ResetRequest;
+                       X2SetupRequest_t         X2SetupRequest;
+                       ResourceStatusRequest_t  ResourceStatusRequest;
+                       ENBConfigurationUpdate_t         ENBConfigurationUpdate;
+                       MobilityChangeRequest_t  MobilityChangeRequest;
+                       CellActivationRequest_t  CellActivationRequest;
+                       SeNBAdditionRequest_t    SeNBAdditionRequest;
+                       SeNBModificationRequest_t        SeNBModificationRequest;
+                       SeNBModificationRequired_t       SeNBModificationRequired;
+                       SeNBReleaseRequired_t    SeNBReleaseRequired;
+                       X2RemovalRequest_t       X2RemovalRequest;
+                       RetrieveUEContextRequest_t       RetrieveUEContextRequest;
+                       SgNBAdditionRequest_t    SgNBAdditionRequest;
+                       SgNBModificationRequest_t        SgNBModificationRequest;
+                       SgNBModificationRequired_t       SgNBModificationRequired;
+                       SgNBReleaseRequest_t     SgNBReleaseRequest;
+                       SgNBReleaseRequired_t    SgNBReleaseRequired;
+                       SgNBChangeRequired_t     SgNBChangeRequired;
+                       ENDCX2SetupRequest_t     ENDCX2SetupRequest;
+                       ENDCConfigurationUpdate_t        ENDCConfigurationUpdate;
+                       ENDCCellActivationRequest_t      ENDCCellActivationRequest;
+                       ENDCPartialResetRequired_t       ENDCPartialResetRequired;
+                       EUTRANRCellResourceCoordinationRequest_t         EUTRANRCellResourceCoordinationRequest;
+                       ENDCX2RemovalRequest_t   ENDCX2RemovalRequest;
+                       SNStatusTransfer_t       SNStatusTransfer;
+                       UEContextRelease_t       UEContextRelease;
+                       HandoverCancel_t         HandoverCancel;
+                       ErrorIndication_t        ErrorIndication;
+                       ResourceStatusUpdate_t   ResourceStatusUpdate;
+                       LoadInformation_t        LoadInformation;
+                       PrivateMessage_t         PrivateMessage;
+                       RLFIndication_t  RLFIndication;
+                       HandoverReport_t         HandoverReport;
+                       X2Release_t      X2Release;
+                       X2APMessageTransfer_t    X2APMessageTransfer;
+                       SeNBReconfigurationComplete_t    SeNBReconfigurationComplete;
+                       SeNBReleaseRequest_t     SeNBReleaseRequest;
+                       SeNBCounterCheckRequest_t        SeNBCounterCheckRequest;
+                       SgNBReconfigurationComplete_t    SgNBReconfigurationComplete;
+                       SgNBCounterCheckRequest_t        SgNBCounterCheckRequest;
+                       RRCTransfer_t    RRCTransfer;
+                       SecondaryRATDataUsageReport_t    SecondaryRATDataUsageReport;
+                       SgNBActivityNotification_t       SgNBActivityNotification;
+                       DataForwardingAddressIndication_t        DataForwardingAddressIndication;
+                       GNBStatusIndication_t    GNBStatusIndication;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} InitiatingMessage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InitiatingMessage;
+extern asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1;
+extern asn_TYPE_member_t asn_MBR_InitiatingMessage_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InitiatingMessage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/InitiatingMessageE2.h b/e2ap/headers/InitiatingMessageE2.h
new file mode 100644 (file)
index 0000000..6558d22
--- /dev/null
@@ -0,0 +1,85 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Descriptions"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _InitiatingMessageE2_H_
+#define        _InitiatingMessageE2_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProcedureCode.h"
+#include "Criticality.h"
+#include <ANY.h>
+#include <asn_ioc.h>
+#include "RICsubscriptionRequest.h"
+#include "RICsubscriptionResponse.h"
+#include "RICsubscriptionFailure.h"
+#include "RICsubscriptionDeleteRequest.h"
+#include "RICsubscriptionDeleteResponse.h"
+#include "RICsubscriptionDeleteFailure.h"
+#include "RICserviceUpdate.h"
+#include "RICserviceUpdateAcknowledge.h"
+#include "RICserviceUpdateFailure.h"
+#include "RICcontrolRequest.h"
+#include "RICcontrolAcknowledge.h"
+#include "RICcontrolFailure.h"
+#include "RICindication.h"
+#include "RICserviceQuery.h"
+#include <OPEN_TYPE.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum InitiatingMessageE2__value_PR {
+       InitiatingMessageE2__value_PR_NOTHING,  /* No components present */
+       InitiatingMessageE2__value_PR_RICsubscriptionRequest,
+       InitiatingMessageE2__value_PR_RICsubscriptionDeleteRequest,
+       InitiatingMessageE2__value_PR_RICserviceUpdate,
+       InitiatingMessageE2__value_PR_RICcontrolRequest,
+       InitiatingMessageE2__value_PR_RICindication,
+       InitiatingMessageE2__value_PR_RICserviceQuery
+} InitiatingMessageE2__value_PR;
+
+/* InitiatingMessageE2 */
+typedef struct InitiatingMessageE2 {
+       ProcedureCode_t  procedureCode;
+       Criticality_t    criticality;
+       struct InitiatingMessageE2__value {
+               InitiatingMessageE2__value_PR present;
+               union InitiatingMessageE2__value_u {
+                       RICsubscriptionRequest_t         RICsubscriptionRequest;
+                       RICsubscriptionDeleteRequest_t   RICsubscriptionDeleteRequest;
+                       RICserviceUpdate_t       RICserviceUpdate;
+                       RICcontrolRequest_t      RICcontrolRequest;
+                       RICindication_t  RICindication;
+                       RICserviceQuery_t        RICserviceQuery;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} InitiatingMessageE2_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InitiatingMessageE2;
+extern asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessageE2_specs_1;
+extern asn_TYPE_member_t asn_MBR_InitiatingMessageE2_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InitiatingMessageE2_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/InitiatingNodeType-EndcConfigUpdate.h b/e2ap/headers/InitiatingNodeType-EndcConfigUpdate.h
new file mode 100644 (file)
index 0000000..d352a40
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _InitiatingNodeType_EndcConfigUpdate_H_
+#define        _InitiatingNodeType_EndcConfigUpdate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum InitiatingNodeType_EndcConfigUpdate_PR {
+       InitiatingNodeType_EndcConfigUpdate_PR_NOTHING, /* No components present */
+       InitiatingNodeType_EndcConfigUpdate_PR_init_eNB,
+       InitiatingNodeType_EndcConfigUpdate_PR_init_en_gNB
+       /* Extensions may appear below */
+       
+} InitiatingNodeType_EndcConfigUpdate_PR;
+
+/* Forward declarations */
+struct ProtocolIE_Container;
+
+/* InitiatingNodeType-EndcConfigUpdate */
+typedef struct InitiatingNodeType_EndcConfigUpdate {
+       InitiatingNodeType_EndcConfigUpdate_PR present;
+       union InitiatingNodeType_EndcConfigUpdate_u {
+               struct ProtocolIE_Container     *init_eNB;
+               struct ProtocolIE_Container     *init_en_gNB;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} InitiatingNodeType_EndcConfigUpdate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InitiatingNodeType_EndcConfigUpdate;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InitiatingNodeType_EndcConfigUpdate_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/InitiatingNodeType-EndcX2Removal.h b/e2ap/headers/InitiatingNodeType-EndcX2Removal.h
new file mode 100644 (file)
index 0000000..3611812
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _InitiatingNodeType_EndcX2Removal_H_
+#define        _InitiatingNodeType_EndcX2Removal_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum InitiatingNodeType_EndcX2Removal_PR {
+       InitiatingNodeType_EndcX2Removal_PR_NOTHING,    /* No components present */
+       InitiatingNodeType_EndcX2Removal_PR_init_eNB,
+       InitiatingNodeType_EndcX2Removal_PR_init_en_gNB
+       /* Extensions may appear below */
+       
+} InitiatingNodeType_EndcX2Removal_PR;
+
+/* Forward declarations */
+struct ProtocolIE_Container;
+
+/* InitiatingNodeType-EndcX2Removal */
+typedef struct InitiatingNodeType_EndcX2Removal {
+       InitiatingNodeType_EndcX2Removal_PR present;
+       union InitiatingNodeType_EndcX2Removal_u {
+               struct ProtocolIE_Container     *init_eNB;
+               struct ProtocolIE_Container     *init_en_gNB;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} InitiatingNodeType_EndcX2Removal_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InitiatingNodeType_EndcX2Removal;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InitiatingNodeType_EndcX2Removal_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/InitiatingNodeType-EndcX2Setup.h b/e2ap/headers/InitiatingNodeType-EndcX2Setup.h
new file mode 100644 (file)
index 0000000..b84bc2c
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _InitiatingNodeType_EndcX2Setup_H_
+#define        _InitiatingNodeType_EndcX2Setup_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum InitiatingNodeType_EndcX2Setup_PR {
+       InitiatingNodeType_EndcX2Setup_PR_NOTHING,      /* No components present */
+       InitiatingNodeType_EndcX2Setup_PR_init_eNB,
+       InitiatingNodeType_EndcX2Setup_PR_init_en_gNB
+       /* Extensions may appear below */
+       
+} InitiatingNodeType_EndcX2Setup_PR;
+
+/* Forward declarations */
+struct ProtocolIE_Container;
+
+/* InitiatingNodeType-EndcX2Setup */
+typedef struct InitiatingNodeType_EndcX2Setup {
+       InitiatingNodeType_EndcX2Setup_PR present;
+       union InitiatingNodeType_EndcX2Setup_u {
+               struct ProtocolIE_Container     *init_eNB;
+               struct ProtocolIE_Container     *init_en_gNB;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} InitiatingNodeType_EndcX2Setup_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InitiatingNodeType_EndcX2Setup;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InitiatingNodeType_EndcX2Setup_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/InitiatingNodeType-EutranrCellResourceCoordination.h b/e2ap/headers/InitiatingNodeType-EutranrCellResourceCoordination.h
new file mode 100644 (file)
index 0000000..40960d6
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _InitiatingNodeType_EutranrCellResourceCoordination_H_
+#define        _InitiatingNodeType_EutranrCellResourceCoordination_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum InitiatingNodeType_EutranrCellResourceCoordination_PR {
+       InitiatingNodeType_EutranrCellResourceCoordination_PR_NOTHING,  /* No components present */
+       InitiatingNodeType_EutranrCellResourceCoordination_PR_initiate_eNB,
+       InitiatingNodeType_EutranrCellResourceCoordination_PR_initiate_en_gNB
+       /* Extensions may appear below */
+       
+} InitiatingNodeType_EutranrCellResourceCoordination_PR;
+
+/* Forward declarations */
+struct ProtocolIE_Container;
+
+/* InitiatingNodeType-EutranrCellResourceCoordination */
+typedef struct InitiatingNodeType_EutranrCellResourceCoordination {
+       InitiatingNodeType_EutranrCellResourceCoordination_PR present;
+       union InitiatingNodeType_EutranrCellResourceCoordination_u {
+               struct ProtocolIE_Container     *initiate_eNB;
+               struct ProtocolIE_Container     *initiate_en_gNB;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} InitiatingNodeType_EutranrCellResourceCoordination_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InitiatingNodeType_EutranrCellResourceCoordination;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InitiatingNodeType_EutranrCellResourceCoordination_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/IntegrityProtectionAlgorithms.h b/e2ap/headers/IntegrityProtectionAlgorithms.h
new file mode 100644 (file)
index 0000000..7b0590a
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _IntegrityProtectionAlgorithms_H_
+#define        _IntegrityProtectionAlgorithms_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* IntegrityProtectionAlgorithms */
+typedef BIT_STRING_t    IntegrityProtectionAlgorithms_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_IntegrityProtectionAlgorithms_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_IntegrityProtectionAlgorithms;
+asn_struct_free_f IntegrityProtectionAlgorithms_free;
+asn_struct_print_f IntegrityProtectionAlgorithms_print;
+asn_constr_check_f IntegrityProtectionAlgorithms_constraint;
+ber_type_decoder_f IntegrityProtectionAlgorithms_decode_ber;
+der_type_encoder_f IntegrityProtectionAlgorithms_encode_der;
+xer_type_decoder_f IntegrityProtectionAlgorithms_decode_xer;
+xer_type_encoder_f IntegrityProtectionAlgorithms_encode_xer;
+oer_type_decoder_f IntegrityProtectionAlgorithms_decode_oer;
+oer_type_encoder_f IntegrityProtectionAlgorithms_encode_oer;
+per_type_decoder_f IntegrityProtectionAlgorithms_decode_uper;
+per_type_encoder_f IntegrityProtectionAlgorithms_encode_uper;
+per_type_decoder_f IntegrityProtectionAlgorithms_decode_aper;
+per_type_encoder_f IntegrityProtectionAlgorithms_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _IntegrityProtectionAlgorithms_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Interface-ID.h b/e2ap/headers/Interface-ID.h
new file mode 100644 (file)
index 0000000..2f40845
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Interface_ID_H_
+#define        _Interface_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Interface_ID_PR {
+       Interface_ID_PR_NOTHING,        /* No components present */
+       Interface_ID_PR_global_eNB_ID,
+       Interface_ID_PR_global_gNB_ID
+       /* Extensions may appear below */
+       
+} Interface_ID_PR;
+
+/* Forward declarations */
+struct GlobalENB_ID;
+struct GlobalGNB_ID;
+
+/* Interface-ID */
+typedef struct Interface_ID {
+       Interface_ID_PR present;
+       union Interface_ID_u {
+               struct GlobalENB_ID     *global_eNB_ID;
+               struct GlobalGNB_ID     *global_gNB_ID;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} Interface_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Interface_ID;
+extern asn_CHOICE_specifics_t asn_SPC_Interface_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_Interface_ID_1[2];
+extern asn_per_constraints_t asn_PER_type_Interface_ID_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Interface_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/InterfaceDirection.h b/e2ap/headers/InterfaceDirection.h
new file mode 100644 (file)
index 0000000..22c84de
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _InterfaceDirection_H_
+#define        _InterfaceDirection_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum InterfaceDirection {
+       InterfaceDirection_incoming     = 0,
+       InterfaceDirection_outgoing     = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_InterfaceDirection;
+
+/* InterfaceDirection */
+typedef long    InterfaceDirection_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_InterfaceDirection_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_InterfaceDirection;
+extern const asn_INTEGER_specifics_t asn_SPC_InterfaceDirection_specs_1;
+asn_struct_free_f InterfaceDirection_free;
+asn_struct_print_f InterfaceDirection_print;
+asn_constr_check_f InterfaceDirection_constraint;
+ber_type_decoder_f InterfaceDirection_decode_ber;
+der_type_encoder_f InterfaceDirection_encode_der;
+xer_type_decoder_f InterfaceDirection_decode_xer;
+xer_type_encoder_f InterfaceDirection_encode_xer;
+oer_type_decoder_f InterfaceDirection_decode_oer;
+oer_type_encoder_f InterfaceDirection_encode_oer;
+per_type_decoder_f InterfaceDirection_decode_uper;
+per_type_encoder_f InterfaceDirection_encode_uper;
+per_type_decoder_f InterfaceDirection_decode_aper;
+per_type_encoder_f InterfaceDirection_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InterfaceDirection_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/InterfaceMessage.h b/e2ap/headers/InterfaceMessage.h
new file mode 100644 (file)
index 0000000..28a0d5f
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _InterfaceMessage_H_
+#define        _InterfaceMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* InterfaceMessage */
+typedef OCTET_STRING_t  InterfaceMessage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InterfaceMessage;
+asn_struct_free_f InterfaceMessage_free;
+asn_struct_print_f InterfaceMessage_print;
+asn_constr_check_f InterfaceMessage_constraint;
+ber_type_decoder_f InterfaceMessage_decode_ber;
+der_type_encoder_f InterfaceMessage_encode_der;
+xer_type_decoder_f InterfaceMessage_decode_xer;
+xer_type_encoder_f InterfaceMessage_encode_xer;
+oer_type_decoder_f InterfaceMessage_decode_oer;
+oer_type_encoder_f InterfaceMessage_encode_oer;
+per_type_decoder_f InterfaceMessage_decode_uper;
+per_type_encoder_f InterfaceMessage_encode_uper;
+per_type_decoder_f InterfaceMessage_decode_aper;
+per_type_encoder_f InterfaceMessage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InterfaceMessage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/InterfaceMessageType.h b/e2ap/headers/InterfaceMessageType.h
new file mode 100644 (file)
index 0000000..da7c88f
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _InterfaceMessageType_H_
+#define        _InterfaceMessageType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProcedureCode.h"
+#include "TypeOfMessage.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* InterfaceMessageType */
+typedef struct InterfaceMessageType {
+       ProcedureCode_t  procedureCode;
+       TypeOfMessage_t  typeOfMessage;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} InterfaceMessageType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InterfaceMessageType;
+extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceMessageType_specs_1;
+extern asn_TYPE_member_t asn_MBR_InterfaceMessageType_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InterfaceMessageType_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/InterfaceProtocolIE-ID.h b/e2ap/headers/InterfaceProtocolIE-ID.h
new file mode 100644 (file)
index 0000000..b7a239d
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _InterfaceProtocolIE_ID_H_
+#define        _InterfaceProtocolIE_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-ID.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* InterfaceProtocolIE-ID */
+typedef ProtocolIE_ID_t         InterfaceProtocolIE_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_InterfaceProtocolIE_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_InterfaceProtocolIE_ID;
+asn_struct_free_f InterfaceProtocolIE_ID_free;
+asn_struct_print_f InterfaceProtocolIE_ID_print;
+asn_constr_check_f InterfaceProtocolIE_ID_constraint;
+ber_type_decoder_f InterfaceProtocolIE_ID_decode_ber;
+der_type_encoder_f InterfaceProtocolIE_ID_encode_der;
+xer_type_decoder_f InterfaceProtocolIE_ID_decode_xer;
+xer_type_encoder_f InterfaceProtocolIE_ID_encode_xer;
+oer_type_decoder_f InterfaceProtocolIE_ID_decode_oer;
+oer_type_encoder_f InterfaceProtocolIE_ID_encode_oer;
+per_type_decoder_f InterfaceProtocolIE_ID_decode_uper;
+per_type_encoder_f InterfaceProtocolIE_ID_encode_uper;
+per_type_decoder_f InterfaceProtocolIE_ID_decode_aper;
+per_type_encoder_f InterfaceProtocolIE_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InterfaceProtocolIE_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/InterfaceProtocolIE-Item.h b/e2ap/headers/InterfaceProtocolIE-Item.h
new file mode 100644 (file)
index 0000000..d3e10a1
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _InterfaceProtocolIE_Item_H_
+#define        _InterfaceProtocolIE_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "InterfaceProtocolIE-ID.h"
+#include "InterfaceProtocolIE-Test.h"
+#include "InterfaceProtocolIE-Value.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* InterfaceProtocolIE-Item */
+typedef struct InterfaceProtocolIE_Item {
+       InterfaceProtocolIE_ID_t         interfaceProtocolIE_ID;
+       InterfaceProtocolIE_Test_t       interfaceProtocolIE_Test;
+       InterfaceProtocolIE_Value_t      interfaceProtocolIE_Value;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} InterfaceProtocolIE_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InterfaceProtocolIE_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceProtocolIE_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_InterfaceProtocolIE_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InterfaceProtocolIE_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/InterfaceProtocolIE-Test.h b/e2ap/headers/InterfaceProtocolIE-Test.h
new file mode 100644 (file)
index 0000000..23b2102
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _InterfaceProtocolIE_Test_H_
+#define        _InterfaceProtocolIE_Test_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum InterfaceProtocolIE_Test {
+       InterfaceProtocolIE_Test_equal  = 0,
+       InterfaceProtocolIE_Test_greaterthan    = 1,
+       InterfaceProtocolIE_Test_lessthan       = 2,
+       InterfaceProtocolIE_Test_contains       = 3,
+       InterfaceProtocolIE_Test_present        = 4
+       /*
+        * Enumeration is extensible
+        */
+} e_InterfaceProtocolIE_Test;
+
+/* InterfaceProtocolIE-Test */
+typedef long    InterfaceProtocolIE_Test_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_InterfaceProtocolIE_Test_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_InterfaceProtocolIE_Test;
+extern const asn_INTEGER_specifics_t asn_SPC_InterfaceProtocolIE_Test_specs_1;
+asn_struct_free_f InterfaceProtocolIE_Test_free;
+asn_struct_print_f InterfaceProtocolIE_Test_print;
+asn_constr_check_f InterfaceProtocolIE_Test_constraint;
+ber_type_decoder_f InterfaceProtocolIE_Test_decode_ber;
+der_type_encoder_f InterfaceProtocolIE_Test_encode_der;
+xer_type_decoder_f InterfaceProtocolIE_Test_decode_xer;
+xer_type_encoder_f InterfaceProtocolIE_Test_encode_xer;
+oer_type_decoder_f InterfaceProtocolIE_Test_decode_oer;
+oer_type_encoder_f InterfaceProtocolIE_Test_encode_oer;
+per_type_decoder_f InterfaceProtocolIE_Test_decode_uper;
+per_type_encoder_f InterfaceProtocolIE_Test_encode_uper;
+per_type_decoder_f InterfaceProtocolIE_Test_decode_aper;
+per_type_encoder_f InterfaceProtocolIE_Test_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InterfaceProtocolIE_Test_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/InterfaceProtocolIE-Value.h b/e2ap/headers/InterfaceProtocolIE-Value.h
new file mode 100644 (file)
index 0000000..27fa830
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _InterfaceProtocolIE_Value_H_
+#define        _InterfaceProtocolIE_Value_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <BOOLEAN.h>
+#include <BIT_STRING.h>
+#include <OCTET_STRING.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum InterfaceProtocolIE_Value_PR {
+       InterfaceProtocolIE_Value_PR_NOTHING,   /* No components present */
+       InterfaceProtocolIE_Value_PR_valueInt,
+       InterfaceProtocolIE_Value_PR_valueEnum,
+       InterfaceProtocolIE_Value_PR_valueBool,
+       InterfaceProtocolIE_Value_PR_valueBitS,
+       InterfaceProtocolIE_Value_PR_valueOctS
+       /* Extensions may appear below */
+       
+} InterfaceProtocolIE_Value_PR;
+
+/* InterfaceProtocolIE-Value */
+typedef struct InterfaceProtocolIE_Value {
+       InterfaceProtocolIE_Value_PR present;
+       union InterfaceProtocolIE_Value_u {
+               long     valueInt;
+               long     valueEnum;
+               BOOLEAN_t        valueBool;
+               BIT_STRING_t     valueBitS;
+               OCTET_STRING_t   valueOctS;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} InterfaceProtocolIE_Value_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InterfaceProtocolIE_Value;
+extern asn_CHOICE_specifics_t asn_SPC_InterfaceProtocolIE_Value_specs_1;
+extern asn_TYPE_member_t asn_MBR_InterfaceProtocolIE_Value_1[5];
+extern asn_per_constraints_t asn_PER_type_InterfaceProtocolIE_Value_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InterfaceProtocolIE_Value_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/InterfacesToTrace.h b/e2ap/headers/InterfacesToTrace.h
new file mode 100644 (file)
index 0000000..0a1cf3a
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _InterfacesToTrace_H_
+#define        _InterfacesToTrace_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* InterfacesToTrace */
+typedef BIT_STRING_t    InterfacesToTrace_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_InterfacesToTrace_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_InterfacesToTrace;
+asn_struct_free_f InterfacesToTrace_free;
+asn_struct_print_f InterfacesToTrace_print;
+asn_constr_check_f InterfacesToTrace_constraint;
+ber_type_decoder_f InterfacesToTrace_decode_ber;
+der_type_encoder_f InterfacesToTrace_encode_der;
+xer_type_decoder_f InterfacesToTrace_decode_xer;
+xer_type_encoder_f InterfacesToTrace_encode_xer;
+oer_type_decoder_f InterfacesToTrace_decode_oer;
+oer_type_encoder_f InterfacesToTrace_encode_oer;
+per_type_decoder_f InterfacesToTrace_decode_uper;
+per_type_encoder_f InterfacesToTrace_encode_uper;
+per_type_decoder_f InterfacesToTrace_decode_aper;
+per_type_encoder_f InterfacesToTrace_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InterfacesToTrace_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/InvokeIndication.h b/e2ap/headers/InvokeIndication.h
new file mode 100644 (file)
index 0000000..2e5fdfd
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _InvokeIndication_H_
+#define        _InvokeIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum InvokeIndication {
+       InvokeIndication_abs_information        = 0,
+       /*
+        * Enumeration is extensible
+        */
+       InvokeIndication_naics_information_start        = 1,
+       InvokeIndication_naics_information_stop = 2
+} e_InvokeIndication;
+
+/* InvokeIndication */
+typedef long    InvokeIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InvokeIndication;
+asn_struct_free_f InvokeIndication_free;
+asn_struct_print_f InvokeIndication_print;
+asn_constr_check_f InvokeIndication_constraint;
+ber_type_decoder_f InvokeIndication_decode_ber;
+der_type_encoder_f InvokeIndication_encode_der;
+xer_type_decoder_f InvokeIndication_decode_xer;
+xer_type_encoder_f InvokeIndication_encode_xer;
+oer_type_decoder_f InvokeIndication_decode_oer;
+oer_type_encoder_f InvokeIndication_encode_oer;
+per_type_decoder_f InvokeIndication_decode_uper;
+per_type_encoder_f InvokeIndication_encode_uper;
+per_type_decoder_f InvokeIndication_decode_aper;
+per_type_encoder_f InvokeIndication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InvokeIndication_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Key-eNodeB-Star.h b/e2ap/headers/Key-eNodeB-Star.h
new file mode 100644 (file)
index 0000000..9d7d762
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Key_eNodeB_Star_H_
+#define        _Key_eNodeB_Star_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Key-eNodeB-Star */
+typedef BIT_STRING_t    Key_eNodeB_Star_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Key_eNodeB_Star_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Key_eNodeB_Star;
+asn_struct_free_f Key_eNodeB_Star_free;
+asn_struct_print_f Key_eNodeB_Star_print;
+asn_constr_check_f Key_eNodeB_Star_constraint;
+ber_type_decoder_f Key_eNodeB_Star_decode_ber;
+der_type_encoder_f Key_eNodeB_Star_encode_der;
+xer_type_decoder_f Key_eNodeB_Star_decode_xer;
+xer_type_encoder_f Key_eNodeB_Star_encode_xer;
+oer_type_decoder_f Key_eNodeB_Star_decode_oer;
+oer_type_encoder_f Key_eNodeB_Star_encode_oer;
+per_type_decoder_f Key_eNodeB_Star_decode_uper;
+per_type_encoder_f Key_eNodeB_Star_encode_uper;
+per_type_decoder_f Key_eNodeB_Star_decode_aper;
+per_type_encoder_f Key_eNodeB_Star_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Key_eNodeB_Star_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/LAC.h b/e2ap/headers/LAC.h
new file mode 100644 (file)
index 0000000..efeb85e
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _LAC_H_
+#define        _LAC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* LAC */
+typedef OCTET_STRING_t  LAC_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_LAC_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_LAC;
+asn_struct_free_f LAC_free;
+asn_struct_print_f LAC_print;
+asn_constr_check_f LAC_constraint;
+ber_type_decoder_f LAC_decode_ber;
+der_type_encoder_f LAC_encode_der;
+xer_type_decoder_f LAC_decode_xer;
+xer_type_encoder_f LAC_encode_xer;
+oer_type_decoder_f LAC_decode_oer;
+oer_type_encoder_f LAC_encode_oer;
+per_type_decoder_f LAC_decode_uper;
+per_type_encoder_f LAC_encode_uper;
+per_type_decoder_f LAC_decode_aper;
+per_type_encoder_f LAC_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LAC_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/LCID.h b/e2ap/headers/LCID.h
new file mode 100644 (file)
index 0000000..342e39e
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _LCID_H_
+#define        _LCID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* LCID */
+typedef long    LCID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LCID;
+asn_struct_free_f LCID_free;
+asn_struct_print_f LCID_print;
+asn_constr_check_f LCID_constraint;
+ber_type_decoder_f LCID_decode_ber;
+der_type_encoder_f LCID_encode_der;
+xer_type_decoder_f LCID_decode_xer;
+xer_type_encoder_f LCID_encode_xer;
+oer_type_decoder_f LCID_decode_oer;
+oer_type_encoder_f LCID_encode_oer;
+per_type_decoder_f LCID_decode_uper;
+per_type_encoder_f LCID_encode_uper;
+per_type_decoder_f LCID_decode_aper;
+per_type_encoder_f LCID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LCID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/LHN-ID.h b/e2ap/headers/LHN-ID.h
new file mode 100644 (file)
index 0000000..02f4ef3
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _LHN_ID_H_
+#define        _LHN_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* LHN-ID */
+typedef OCTET_STRING_t  LHN_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LHN_ID;
+asn_struct_free_f LHN_ID_free;
+asn_struct_print_f LHN_ID_print;
+asn_constr_check_f LHN_ID_constraint;
+ber_type_decoder_f LHN_ID_decode_ber;
+der_type_encoder_f LHN_ID_encode_der;
+xer_type_decoder_f LHN_ID_decode_xer;
+xer_type_encoder_f LHN_ID_encode_xer;
+oer_type_decoder_f LHN_ID_decode_oer;
+oer_type_encoder_f LHN_ID_encode_oer;
+per_type_decoder_f LHN_ID_decode_uper;
+per_type_encoder_f LHN_ID_encode_uper;
+per_type_decoder_f LHN_ID_decode_aper;
+per_type_encoder_f LHN_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LHN_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/LastVisitedCell-Item.h b/e2ap/headers/LastVisitedCell-Item.h
new file mode 100644 (file)
index 0000000..9ab12a8
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _LastVisitedCell_Item_H_
+#define        _LastVisitedCell_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "LastVisitedUTRANCellInformation.h"
+#include "LastVisitedNGRANCellInformation.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum LastVisitedCell_Item_PR {
+       LastVisitedCell_Item_PR_NOTHING,        /* No components present */
+       LastVisitedCell_Item_PR_e_UTRAN_Cell,
+       LastVisitedCell_Item_PR_uTRAN_Cell,
+       LastVisitedCell_Item_PR_gERAN_Cell,
+       /* Extensions may appear below */
+       LastVisitedCell_Item_PR_nG_RAN_Cell
+} LastVisitedCell_Item_PR;
+
+/* Forward declarations */
+struct LastVisitedEUTRANCellInformation;
+struct LastVisitedGERANCellInformation;
+
+/* LastVisitedCell-Item */
+typedef struct LastVisitedCell_Item {
+       LastVisitedCell_Item_PR present;
+       union LastVisitedCell_Item_u {
+               struct LastVisitedEUTRANCellInformation *e_UTRAN_Cell;
+               LastVisitedUTRANCellInformation_t        uTRAN_Cell;
+               struct LastVisitedGERANCellInformation  *gERAN_Cell;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+               LastVisitedNGRANCellInformation_t        nG_RAN_Cell;
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} LastVisitedCell_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LastVisitedCell_Item;
+extern asn_CHOICE_specifics_t asn_SPC_LastVisitedCell_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_LastVisitedCell_Item_1[4];
+extern asn_per_constraints_t asn_PER_type_LastVisitedCell_Item_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LastVisitedCell_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/LastVisitedEUTRANCellInformation.h b/e2ap/headers/LastVisitedEUTRANCellInformation.h
new file mode 100644 (file)
index 0000000..146ca15
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _LastVisitedEUTRANCellInformation_H_
+#define        _LastVisitedEUTRANCellInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ECGI.h"
+#include "CellType.h"
+#include "Time-UE-StayedInCell.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* LastVisitedEUTRANCellInformation */
+typedef struct LastVisitedEUTRANCellInformation {
+       ECGI_t   global_Cell_ID;
+       CellType_t       cellType;
+       Time_UE_StayedInCell_t   time_UE_StayedInCell;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} LastVisitedEUTRANCellInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LastVisitedEUTRANCellInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_LastVisitedEUTRANCellInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_LastVisitedEUTRANCellInformation_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LastVisitedEUTRANCellInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/LastVisitedGERANCellInformation.h b/e2ap/headers/LastVisitedGERANCellInformation.h
new file mode 100644 (file)
index 0000000..316f585
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _LastVisitedGERANCellInformation_H_
+#define        _LastVisitedGERANCellInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NULL.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum LastVisitedGERANCellInformation_PR {
+       LastVisitedGERANCellInformation_PR_NOTHING,     /* No components present */
+       LastVisitedGERANCellInformation_PR_undefined
+       /* Extensions may appear below */
+       
+} LastVisitedGERANCellInformation_PR;
+
+/* LastVisitedGERANCellInformation */
+typedef struct LastVisitedGERANCellInformation {
+       LastVisitedGERANCellInformation_PR present;
+       union LastVisitedGERANCellInformation_u {
+               NULL_t   undefined;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} LastVisitedGERANCellInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LastVisitedGERANCellInformation;
+extern asn_CHOICE_specifics_t asn_SPC_LastVisitedGERANCellInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_LastVisitedGERANCellInformation_1[1];
+extern asn_per_constraints_t asn_PER_type_LastVisitedGERANCellInformation_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LastVisitedGERANCellInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/LastVisitedNGRANCellInformation.h b/e2ap/headers/LastVisitedNGRANCellInformation.h
new file mode 100644 (file)
index 0000000..c2d45fc
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _LastVisitedNGRANCellInformation_H_
+#define        _LastVisitedNGRANCellInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* LastVisitedNGRANCellInformation */
+typedef OCTET_STRING_t  LastVisitedNGRANCellInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LastVisitedNGRANCellInformation;
+asn_struct_free_f LastVisitedNGRANCellInformation_free;
+asn_struct_print_f LastVisitedNGRANCellInformation_print;
+asn_constr_check_f LastVisitedNGRANCellInformation_constraint;
+ber_type_decoder_f LastVisitedNGRANCellInformation_decode_ber;
+der_type_encoder_f LastVisitedNGRANCellInformation_encode_der;
+xer_type_decoder_f LastVisitedNGRANCellInformation_decode_xer;
+xer_type_encoder_f LastVisitedNGRANCellInformation_encode_xer;
+oer_type_decoder_f LastVisitedNGRANCellInformation_decode_oer;
+oer_type_encoder_f LastVisitedNGRANCellInformation_encode_oer;
+per_type_decoder_f LastVisitedNGRANCellInformation_decode_uper;
+per_type_encoder_f LastVisitedNGRANCellInformation_encode_uper;
+per_type_decoder_f LastVisitedNGRANCellInformation_decode_aper;
+per_type_encoder_f LastVisitedNGRANCellInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LastVisitedNGRANCellInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/LastVisitedUTRANCellInformation.h b/e2ap/headers/LastVisitedUTRANCellInformation.h
new file mode 100644 (file)
index 0000000..b38efaf
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _LastVisitedUTRANCellInformation_H_
+#define        _LastVisitedUTRANCellInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* LastVisitedUTRANCellInformation */
+typedef OCTET_STRING_t  LastVisitedUTRANCellInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LastVisitedUTRANCellInformation;
+asn_struct_free_f LastVisitedUTRANCellInformation_free;
+asn_struct_print_f LastVisitedUTRANCellInformation_print;
+asn_constr_check_f LastVisitedUTRANCellInformation_constraint;
+ber_type_decoder_f LastVisitedUTRANCellInformation_decode_ber;
+der_type_encoder_f LastVisitedUTRANCellInformation_encode_der;
+xer_type_decoder_f LastVisitedUTRANCellInformation_decode_xer;
+xer_type_encoder_f LastVisitedUTRANCellInformation_encode_xer;
+oer_type_decoder_f LastVisitedUTRANCellInformation_decode_oer;
+oer_type_encoder_f LastVisitedUTRANCellInformation_encode_oer;
+per_type_decoder_f LastVisitedUTRANCellInformation_decode_uper;
+per_type_encoder_f LastVisitedUTRANCellInformation_encode_uper;
+per_type_decoder_f LastVisitedUTRANCellInformation_decode_aper;
+per_type_encoder_f LastVisitedUTRANCellInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LastVisitedUTRANCellInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Limited-list.h b/e2ap/headers/Limited-list.h
new file mode 100644 (file)
index 0000000..7bd9d09
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Limited_list_H_
+#define        _Limited_list_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "NRCGI.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* Forward definitions */
+typedef struct Limited_list__Member {
+       NRCGI_t  nrCellID;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} Limited_list__Member;
+
+/* Limited-list */
+typedef struct Limited_list {
+       A_SEQUENCE_OF(Limited_list__Member) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} Limited_list_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Limited_list;
+extern asn_SET_OF_specifics_t asn_SPC_Limited_list_specs_1;
+extern asn_TYPE_member_t asn_MBR_Limited_list_1[1];
+extern asn_per_constraints_t asn_PER_type_Limited_list_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Limited_list_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Links-to-log.h b/e2ap/headers/Links-to-log.h
new file mode 100644 (file)
index 0000000..523ead5
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Links_to_log_H_
+#define        _Links_to_log_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Links_to_log {
+       Links_to_log_uplink     = 0,
+       Links_to_log_downlink   = 1,
+       Links_to_log_both_uplink_and_downlink   = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_Links_to_log;
+
+/* Links-to-log */
+typedef long    Links_to_log_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Links_to_log_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Links_to_log;
+extern const asn_INTEGER_specifics_t asn_SPC_Links_to_log_specs_1;
+asn_struct_free_f Links_to_log_free;
+asn_struct_print_f Links_to_log_print;
+asn_constr_check_f Links_to_log_constraint;
+ber_type_decoder_f Links_to_log_decode_ber;
+der_type_encoder_f Links_to_log_encode_der;
+xer_type_decoder_f Links_to_log_decode_xer;
+xer_type_encoder_f Links_to_log_encode_xer;
+oer_type_decoder_f Links_to_log_decode_oer;
+oer_type_encoder_f Links_to_log_encode_oer;
+per_type_decoder_f Links_to_log_decode_uper;
+per_type_encoder_f Links_to_log_encode_uper;
+per_type_decoder_f Links_to_log_decode_aper;
+per_type_encoder_f Links_to_log_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Links_to_log_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ListofEUTRACellsinEUTRACoordinationReq.h b/e2ap/headers/ListofEUTRACellsinEUTRACoordinationReq.h
new file mode 100644 (file)
index 0000000..9761e41
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ListofEUTRACellsinEUTRACoordinationReq_H_
+#define        _ListofEUTRACellsinEUTRACoordinationReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ECGI;
+
+/* ListofEUTRACellsinEUTRACoordinationReq */
+typedef struct ListofEUTRACellsinEUTRACoordinationReq {
+       A_SEQUENCE_OF(struct ECGI) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ListofEUTRACellsinEUTRACoordinationReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ListofEUTRACellsinEUTRACoordinationReq;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ListofEUTRACellsinEUTRACoordinationReq_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ListofEUTRACellsinEUTRACoordinationResp.h b/e2ap/headers/ListofEUTRACellsinEUTRACoordinationResp.h
new file mode 100644 (file)
index 0000000..fd2014d
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ListofEUTRACellsinEUTRACoordinationResp_H_
+#define        _ListofEUTRACellsinEUTRACoordinationResp_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ECGI;
+
+/* ListofEUTRACellsinEUTRACoordinationResp */
+typedef struct ListofEUTRACellsinEUTRACoordinationResp {
+       A_SEQUENCE_OF(struct ECGI) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ListofEUTRACellsinEUTRACoordinationResp_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ListofEUTRACellsinEUTRACoordinationResp;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ListofEUTRACellsinEUTRACoordinationResp_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ListofEUTRACellsinNRCoordinationReq.h b/e2ap/headers/ListofEUTRACellsinNRCoordinationReq.h
new file mode 100644 (file)
index 0000000..b3b52e0
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ListofEUTRACellsinNRCoordinationReq_H_
+#define        _ListofEUTRACellsinNRCoordinationReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ECGI;
+
+/* ListofEUTRACellsinNRCoordinationReq */
+typedef struct ListofEUTRACellsinNRCoordinationReq {
+       A_SEQUENCE_OF(struct ECGI) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ListofEUTRACellsinNRCoordinationReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ListofEUTRACellsinNRCoordinationReq;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ListofEUTRACellsinNRCoordinationReq_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ListofNRCellsinNRCoordinationReq.h b/e2ap/headers/ListofNRCellsinNRCoordinationReq.h
new file mode 100644 (file)
index 0000000..552fb96
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ListofNRCellsinNRCoordinationReq_H_
+#define        _ListofNRCellsinNRCoordinationReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct NRCGI;
+
+/* ListofNRCellsinNRCoordinationReq */
+typedef struct ListofNRCellsinNRCoordinationReq {
+       A_SEQUENCE_OF(struct NRCGI) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ListofNRCellsinNRCoordinationReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ListofNRCellsinNRCoordinationReq;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ListofNRCellsinNRCoordinationReq_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ListofNRCellsinNRCoordinationResp.h b/e2ap/headers/ListofNRCellsinNRCoordinationResp.h
new file mode 100644 (file)
index 0000000..c8ce01d
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ListofNRCellsinNRCoordinationResp_H_
+#define        _ListofNRCellsinNRCoordinationResp_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct NRCGI;
+
+/* ListofNRCellsinNRCoordinationResp */
+typedef struct ListofNRCellsinNRCoordinationResp {
+       A_SEQUENCE_OF(struct NRCGI) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ListofNRCellsinNRCoordinationResp_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ListofNRCellsinNRCoordinationResp;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ListofNRCellsinNRCoordinationResp_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/LoadIndicator.h b/e2ap/headers/LoadIndicator.h
new file mode 100644 (file)
index 0000000..33e18c4
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _LoadIndicator_H_
+#define        _LoadIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum LoadIndicator {
+       LoadIndicator_lowLoad   = 0,
+       LoadIndicator_mediumLoad        = 1,
+       LoadIndicator_highLoad  = 2,
+       LoadIndicator_overLoad  = 3
+       /*
+        * Enumeration is extensible
+        */
+} e_LoadIndicator;
+
+/* LoadIndicator */
+typedef long    LoadIndicator_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_LoadIndicator_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_LoadIndicator;
+extern const asn_INTEGER_specifics_t asn_SPC_LoadIndicator_specs_1;
+asn_struct_free_f LoadIndicator_free;
+asn_struct_print_f LoadIndicator_print;
+asn_constr_check_f LoadIndicator_constraint;
+ber_type_decoder_f LoadIndicator_decode_ber;
+der_type_encoder_f LoadIndicator_encode_der;
+xer_type_decoder_f LoadIndicator_decode_xer;
+xer_type_encoder_f LoadIndicator_encode_xer;
+oer_type_decoder_f LoadIndicator_decode_oer;
+oer_type_encoder_f LoadIndicator_encode_oer;
+per_type_decoder_f LoadIndicator_decode_uper;
+per_type_encoder_f LoadIndicator_encode_uper;
+per_type_decoder_f LoadIndicator_decode_aper;
+per_type_encoder_f LoadIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LoadIndicator_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/LoadInformation.h b/e2ap/headers/LoadInformation.h
new file mode 100644 (file)
index 0000000..ffd05cd
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _LoadInformation_H_
+#define        _LoadInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* LoadInformation */
+typedef struct LoadInformation {
+       ProtocolIE_Container_9515P27_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} LoadInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LoadInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_LoadInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_LoadInformation_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LoadInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/LocationReportingInformation.h b/e2ap/headers/LocationReportingInformation.h
new file mode 100644 (file)
index 0000000..715bb2b
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _LocationReportingInformation_H_
+#define        _LocationReportingInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EventType.h"
+#include "ReportArea.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* LocationReportingInformation */
+typedef struct LocationReportingInformation {
+       EventType_t      eventType;
+       ReportArea_t     reportArea;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} LocationReportingInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LocationReportingInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_LocationReportingInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_LocationReportingInformation_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LocationReportingInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/M1PeriodicReporting.h b/e2ap/headers/M1PeriodicReporting.h
new file mode 100644 (file)
index 0000000..0467afc
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _M1PeriodicReporting_H_
+#define        _M1PeriodicReporting_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ReportIntervalMDT.h"
+#include "ReportAmountMDT.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* M1PeriodicReporting */
+typedef struct M1PeriodicReporting {
+       ReportIntervalMDT_t      reportInterval;
+       ReportAmountMDT_t        reportAmount;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} M1PeriodicReporting_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_M1PeriodicReporting;
+extern asn_SEQUENCE_specifics_t asn_SPC_M1PeriodicReporting_specs_1;
+extern asn_TYPE_member_t asn_MBR_M1PeriodicReporting_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M1PeriodicReporting_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/M1ReportingTrigger.h b/e2ap/headers/M1ReportingTrigger.h
new file mode 100644 (file)
index 0000000..abf14d9
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _M1ReportingTrigger_H_
+#define        _M1ReportingTrigger_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum M1ReportingTrigger {
+       M1ReportingTrigger_periodic     = 0,
+       M1ReportingTrigger_a2eventtriggered     = 1,
+       /*
+        * Enumeration is extensible
+        */
+       M1ReportingTrigger_a2eventtriggered_periodic    = 2
+} e_M1ReportingTrigger;
+
+/* M1ReportingTrigger */
+typedef long    M1ReportingTrigger_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_M1ReportingTrigger_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_M1ReportingTrigger;
+extern const asn_INTEGER_specifics_t asn_SPC_M1ReportingTrigger_specs_1;
+asn_struct_free_f M1ReportingTrigger_free;
+asn_struct_print_f M1ReportingTrigger_print;
+asn_constr_check_f M1ReportingTrigger_constraint;
+ber_type_decoder_f M1ReportingTrigger_decode_ber;
+der_type_encoder_f M1ReportingTrigger_encode_der;
+xer_type_decoder_f M1ReportingTrigger_decode_xer;
+xer_type_encoder_f M1ReportingTrigger_encode_xer;
+oer_type_decoder_f M1ReportingTrigger_decode_oer;
+oer_type_encoder_f M1ReportingTrigger_encode_oer;
+per_type_decoder_f M1ReportingTrigger_decode_uper;
+per_type_encoder_f M1ReportingTrigger_encode_uper;
+per_type_decoder_f M1ReportingTrigger_decode_aper;
+per_type_encoder_f M1ReportingTrigger_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M1ReportingTrigger_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/M1ThresholdEventA2.h b/e2ap/headers/M1ThresholdEventA2.h
new file mode 100644 (file)
index 0000000..4b63366
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _M1ThresholdEventA2_H_
+#define        _M1ThresholdEventA2_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "MeasurementThresholdA2.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* M1ThresholdEventA2 */
+typedef struct M1ThresholdEventA2 {
+       MeasurementThresholdA2_t         measurementThreshold;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} M1ThresholdEventA2_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_M1ThresholdEventA2;
+extern asn_SEQUENCE_specifics_t asn_SPC_M1ThresholdEventA2_specs_1;
+extern asn_TYPE_member_t asn_MBR_M1ThresholdEventA2_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M1ThresholdEventA2_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/M3Configuration.h b/e2ap/headers/M3Configuration.h
new file mode 100644 (file)
index 0000000..985e2ca
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _M3Configuration_H_
+#define        _M3Configuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "M3period.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* M3Configuration */
+typedef struct M3Configuration {
+       M3period_t       m3period;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} M3Configuration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_M3Configuration;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M3Configuration_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/M3period.h b/e2ap/headers/M3period.h
new file mode 100644 (file)
index 0000000..dd60464
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _M3period_H_
+#define        _M3period_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum M3period {
+       M3period_ms100  = 0,
+       M3period_ms1000 = 1,
+       M3period_ms10000        = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_M3period;
+
+/* M3period */
+typedef long    M3period_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_M3period_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_M3period;
+extern const asn_INTEGER_specifics_t asn_SPC_M3period_specs_1;
+asn_struct_free_f M3period_free;
+asn_struct_print_f M3period_print;
+asn_constr_check_f M3period_constraint;
+ber_type_decoder_f M3period_decode_ber;
+der_type_encoder_f M3period_encode_der;
+xer_type_decoder_f M3period_decode_xer;
+xer_type_encoder_f M3period_encode_xer;
+oer_type_decoder_f M3period_decode_oer;
+oer_type_encoder_f M3period_encode_oer;
+per_type_decoder_f M3period_decode_uper;
+per_type_encoder_f M3period_encode_uper;
+per_type_decoder_f M3period_decode_aper;
+per_type_encoder_f M3period_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M3period_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/M4Configuration.h b/e2ap/headers/M4Configuration.h
new file mode 100644 (file)
index 0000000..58f7942
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _M4Configuration_H_
+#define        _M4Configuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "M4period.h"
+#include "Links-to-log.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* M4Configuration */
+typedef struct M4Configuration {
+       M4period_t       m4period;
+       Links_to_log_t   m4_links_to_log;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} M4Configuration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_M4Configuration;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M4Configuration_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/M4period.h b/e2ap/headers/M4period.h
new file mode 100644 (file)
index 0000000..05a602e
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _M4period_H_
+#define        _M4period_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum M4period {
+       M4period_ms1024 = 0,
+       M4period_ms2048 = 1,
+       M4period_ms5120 = 2,
+       M4period_ms10240        = 3,
+       M4period_min1   = 4
+       /*
+        * Enumeration is extensible
+        */
+} e_M4period;
+
+/* M4period */
+typedef long    M4period_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_M4period_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_M4period;
+extern const asn_INTEGER_specifics_t asn_SPC_M4period_specs_1;
+asn_struct_free_f M4period_free;
+asn_struct_print_f M4period_print;
+asn_constr_check_f M4period_constraint;
+ber_type_decoder_f M4period_decode_ber;
+der_type_encoder_f M4period_encode_der;
+xer_type_decoder_f M4period_decode_xer;
+xer_type_encoder_f M4period_encode_xer;
+oer_type_decoder_f M4period_decode_oer;
+oer_type_encoder_f M4period_encode_oer;
+per_type_decoder_f M4period_decode_uper;
+per_type_encoder_f M4period_encode_uper;
+per_type_decoder_f M4period_decode_aper;
+per_type_encoder_f M4period_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M4period_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/M5Configuration.h b/e2ap/headers/M5Configuration.h
new file mode 100644 (file)
index 0000000..9652578
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _M5Configuration_H_
+#define        _M5Configuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "M5period.h"
+#include "Links-to-log.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* M5Configuration */
+typedef struct M5Configuration {
+       M5period_t       m5period;
+       Links_to_log_t   m5_links_to_log;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} M5Configuration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_M5Configuration;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M5Configuration_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/M5period.h b/e2ap/headers/M5period.h
new file mode 100644 (file)
index 0000000..0951afa
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _M5period_H_
+#define        _M5period_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum M5period {
+       M5period_ms1024 = 0,
+       M5period_ms2048 = 1,
+       M5period_ms5120 = 2,
+       M5period_ms10240        = 3,
+       M5period_min1   = 4
+       /*
+        * Enumeration is extensible
+        */
+} e_M5period;
+
+/* M5period */
+typedef long    M5period_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_M5period_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_M5period;
+extern const asn_INTEGER_specifics_t asn_SPC_M5period_specs_1;
+asn_struct_free_f M5period_free;
+asn_struct_print_f M5period_print;
+asn_constr_check_f M5period_constraint;
+ber_type_decoder_f M5period_decode_ber;
+der_type_encoder_f M5period_encode_der;
+xer_type_decoder_f M5period_decode_xer;
+xer_type_encoder_f M5period_encode_xer;
+oer_type_decoder_f M5period_decode_oer;
+oer_type_encoder_f M5period_encode_oer;
+per_type_decoder_f M5period_decode_uper;
+per_type_encoder_f M5period_encode_uper;
+per_type_decoder_f M5period_decode_aper;
+per_type_encoder_f M5period_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M5period_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/M6Configuration.h b/e2ap/headers/M6Configuration.h
new file mode 100644 (file)
index 0000000..637faa9
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _M6Configuration_H_
+#define        _M6Configuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "M6report-interval.h"
+#include "M6delay-threshold.h"
+#include "Links-to-log.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* M6Configuration */
+typedef struct M6Configuration {
+       M6report_interval_t      m6report_interval;
+       M6delay_threshold_t     *m6delay_threshold;     /* OPTIONAL */
+       Links_to_log_t   m6_links_to_log;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} M6Configuration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_M6Configuration;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M6Configuration_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/M6delay-threshold.h b/e2ap/headers/M6delay-threshold.h
new file mode 100644 (file)
index 0000000..5a63be8
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _M6delay_threshold_H_
+#define        _M6delay_threshold_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum M6delay_threshold {
+       M6delay_threshold_ms30  = 0,
+       M6delay_threshold_ms40  = 1,
+       M6delay_threshold_ms50  = 2,
+       M6delay_threshold_ms60  = 3,
+       M6delay_threshold_ms70  = 4,
+       M6delay_threshold_ms80  = 5,
+       M6delay_threshold_ms90  = 6,
+       M6delay_threshold_ms100 = 7,
+       M6delay_threshold_ms150 = 8,
+       M6delay_threshold_ms300 = 9,
+       M6delay_threshold_ms500 = 10,
+       M6delay_threshold_ms750 = 11
+       /*
+        * Enumeration is extensible
+        */
+} e_M6delay_threshold;
+
+/* M6delay-threshold */
+typedef long    M6delay_threshold_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_M6delay_threshold_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_M6delay_threshold;
+extern const asn_INTEGER_specifics_t asn_SPC_M6delay_threshold_specs_1;
+asn_struct_free_f M6delay_threshold_free;
+asn_struct_print_f M6delay_threshold_print;
+asn_constr_check_f M6delay_threshold_constraint;
+ber_type_decoder_f M6delay_threshold_decode_ber;
+der_type_encoder_f M6delay_threshold_encode_der;
+xer_type_decoder_f M6delay_threshold_decode_xer;
+xer_type_encoder_f M6delay_threshold_encode_xer;
+oer_type_decoder_f M6delay_threshold_decode_oer;
+oer_type_encoder_f M6delay_threshold_encode_oer;
+per_type_decoder_f M6delay_threshold_decode_uper;
+per_type_encoder_f M6delay_threshold_encode_uper;
+per_type_decoder_f M6delay_threshold_decode_aper;
+per_type_encoder_f M6delay_threshold_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M6delay_threshold_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/M6report-interval.h b/e2ap/headers/M6report-interval.h
new file mode 100644 (file)
index 0000000..23d0253
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _M6report_interval_H_
+#define        _M6report_interval_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum M6report_interval {
+       M6report_interval_ms1024        = 0,
+       M6report_interval_ms2048        = 1,
+       M6report_interval_ms5120        = 2,
+       M6report_interval_ms10240       = 3
+       /*
+        * Enumeration is extensible
+        */
+} e_M6report_interval;
+
+/* M6report-interval */
+typedef long    M6report_interval_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_M6report_interval_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_M6report_interval;
+extern const asn_INTEGER_specifics_t asn_SPC_M6report_interval_specs_1;
+asn_struct_free_f M6report_interval_free;
+asn_struct_print_f M6report_interval_print;
+asn_constr_check_f M6report_interval_constraint;
+ber_type_decoder_f M6report_interval_decode_ber;
+der_type_encoder_f M6report_interval_encode_der;
+xer_type_decoder_f M6report_interval_decode_xer;
+xer_type_encoder_f M6report_interval_encode_xer;
+oer_type_decoder_f M6report_interval_decode_oer;
+oer_type_encoder_f M6report_interval_encode_oer;
+per_type_decoder_f M6report_interval_decode_uper;
+per_type_encoder_f M6report_interval_encode_uper;
+per_type_decoder_f M6report_interval_decode_aper;
+per_type_encoder_f M6report_interval_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M6report_interval_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/M7Configuration.h b/e2ap/headers/M7Configuration.h
new file mode 100644 (file)
index 0000000..5eeee7a
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _M7Configuration_H_
+#define        _M7Configuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "M7period.h"
+#include "Links-to-log.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* M7Configuration */
+typedef struct M7Configuration {
+       M7period_t       m7period;
+       Links_to_log_t   m7_links_to_log;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} M7Configuration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_M7Configuration;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M7Configuration_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/M7period.h b/e2ap/headers/M7period.h
new file mode 100644 (file)
index 0000000..d1029e0
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _M7period_H_
+#define        _M7period_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* M7period */
+typedef long    M7period_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_M7period_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_M7period;
+asn_struct_free_f M7period_free;
+asn_struct_print_f M7period_print;
+asn_constr_check_f M7period_constraint;
+ber_type_decoder_f M7period_decode_ber;
+der_type_encoder_f M7period_encode_der;
+xer_type_decoder_f M7period_decode_xer;
+xer_type_encoder_f M7period_encode_xer;
+oer_type_decoder_f M7period_decode_oer;
+oer_type_encoder_f M7period_encode_oer;
+per_type_decoder_f M7period_decode_uper;
+per_type_encoder_f M7period_encode_uper;
+per_type_decoder_f M7period_decode_aper;
+per_type_encoder_f M7period_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M7period_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MBMS-Service-Area-Identity-List.h b/e2ap/headers/MBMS-Service-Area-Identity-List.h
new file mode 100644 (file)
index 0000000..dc2c66b
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MBMS_Service_Area_Identity_List_H_
+#define        _MBMS_Service_Area_Identity_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "MBMS-Service-Area-Identity.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MBMS-Service-Area-Identity-List */
+typedef struct MBMS_Service_Area_Identity_List {
+       A_SEQUENCE_OF(MBMS_Service_Area_Identity_t) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MBMS_Service_Area_Identity_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MBMS_Service_Area_Identity_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MBMS_Service_Area_Identity_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MBMS-Service-Area-Identity.h b/e2ap/headers/MBMS-Service-Area-Identity.h
new file mode 100644 (file)
index 0000000..2b42e2e
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MBMS_Service_Area_Identity_H_
+#define        _MBMS_Service_Area_Identity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MBMS-Service-Area-Identity */
+typedef OCTET_STRING_t  MBMS_Service_Area_Identity_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MBMS_Service_Area_Identity_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MBMS_Service_Area_Identity;
+asn_struct_free_f MBMS_Service_Area_Identity_free;
+asn_struct_print_f MBMS_Service_Area_Identity_print;
+asn_constr_check_f MBMS_Service_Area_Identity_constraint;
+ber_type_decoder_f MBMS_Service_Area_Identity_decode_ber;
+der_type_encoder_f MBMS_Service_Area_Identity_encode_der;
+xer_type_decoder_f MBMS_Service_Area_Identity_decode_xer;
+xer_type_encoder_f MBMS_Service_Area_Identity_encode_xer;
+oer_type_decoder_f MBMS_Service_Area_Identity_decode_oer;
+oer_type_encoder_f MBMS_Service_Area_Identity_encode_oer;
+per_type_decoder_f MBMS_Service_Area_Identity_decode_uper;
+per_type_encoder_f MBMS_Service_Area_Identity_encode_uper;
+per_type_decoder_f MBMS_Service_Area_Identity_decode_aper;
+per_type_encoder_f MBMS_Service_Area_Identity_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MBMS_Service_Area_Identity_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MBSFN-Subframe-Info.h b/e2ap/headers/MBSFN-Subframe-Info.h
new file mode 100644 (file)
index 0000000..befcc50
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MBSFN_Subframe_Info_H_
+#define        _MBSFN_Subframe_Info_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RadioframeAllocationPeriod.h"
+#include "RadioframeAllocationOffset.h"
+#include "SubframeAllocation.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* MBSFN-Subframe-Info */
+typedef struct MBSFN_Subframe_Info {
+       RadioframeAllocationPeriod_t     radioframeAllocationPeriod;
+       RadioframeAllocationOffset_t     radioframeAllocationOffset;
+       SubframeAllocation_t     subframeAllocation;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MBSFN_Subframe_Info_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MBSFN_Subframe_Info;
+extern asn_SEQUENCE_specifics_t asn_SPC_MBSFN_Subframe_Info_specs_1;
+extern asn_TYPE_member_t asn_MBR_MBSFN_Subframe_Info_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MBSFN_Subframe_Info_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MBSFN-Subframe-Infolist.h b/e2ap/headers/MBSFN-Subframe-Infolist.h
new file mode 100644 (file)
index 0000000..7d09d0e
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MBSFN_Subframe_Infolist_H_
+#define        _MBSFN_Subframe_Infolist_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct MBSFN_Subframe_Info;
+
+/* MBSFN-Subframe-Infolist */
+typedef struct MBSFN_Subframe_Infolist {
+       A_SEQUENCE_OF(struct MBSFN_Subframe_Info) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MBSFN_Subframe_Infolist_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MBSFN_Subframe_Infolist;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MBSFN_Subframe_Infolist_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MDT-Activation.h b/e2ap/headers/MDT-Activation.h
new file mode 100644 (file)
index 0000000..9dbba43
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MDT_Activation_H_
+#define        _MDT_Activation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum MDT_Activation {
+       MDT_Activation_immediate_MDT_only       = 0,
+       MDT_Activation_immediate_MDT_and_Trace  = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_MDT_Activation;
+
+/* MDT-Activation */
+typedef long    MDT_Activation_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MDT_Activation_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MDT_Activation;
+extern const asn_INTEGER_specifics_t asn_SPC_MDT_Activation_specs_1;
+asn_struct_free_f MDT_Activation_free;
+asn_struct_print_f MDT_Activation_print;
+asn_constr_check_f MDT_Activation_constraint;
+ber_type_decoder_f MDT_Activation_decode_ber;
+der_type_encoder_f MDT_Activation_encode_der;
+xer_type_decoder_f MDT_Activation_decode_xer;
+xer_type_encoder_f MDT_Activation_encode_xer;
+oer_type_decoder_f MDT_Activation_decode_oer;
+oer_type_encoder_f MDT_Activation_encode_oer;
+per_type_decoder_f MDT_Activation_decode_uper;
+per_type_encoder_f MDT_Activation_encode_uper;
+per_type_decoder_f MDT_Activation_decode_aper;
+per_type_encoder_f MDT_Activation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MDT_Activation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MDT-Configuration.h b/e2ap/headers/MDT-Configuration.h
new file mode 100644 (file)
index 0000000..b4a22c2
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MDT_Configuration_H_
+#define        _MDT_Configuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "MDT-Activation.h"
+#include "AreaScopeOfMDT.h"
+#include "MeasurementsToActivate.h"
+#include "M1ReportingTrigger.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct M1ThresholdEventA2;
+struct M1PeriodicReporting;
+struct ProtocolExtensionContainer;
+
+/* MDT-Configuration */
+typedef struct MDT_Configuration {
+       MDT_Activation_t         mdt_Activation;
+       AreaScopeOfMDT_t         areaScopeOfMDT;
+       MeasurementsToActivate_t         measurementsToActivate;
+       M1ReportingTrigger_t     m1reportingTrigger;
+       struct M1ThresholdEventA2       *m1thresholdeventA2;    /* OPTIONAL */
+       struct M1PeriodicReporting      *m1periodicReporting;   /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MDT_Configuration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MDT_Configuration;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MDT_Configuration_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MDT-Location-Info.h b/e2ap/headers/MDT-Location-Info.h
new file mode 100644 (file)
index 0000000..8e8591d
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MDT_Location_Info_H_
+#define        _MDT_Location_Info_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MDT-Location-Info */
+typedef BIT_STRING_t    MDT_Location_Info_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MDT_Location_Info;
+asn_struct_free_f MDT_Location_Info_free;
+asn_struct_print_f MDT_Location_Info_print;
+asn_constr_check_f MDT_Location_Info_constraint;
+ber_type_decoder_f MDT_Location_Info_decode_ber;
+der_type_encoder_f MDT_Location_Info_encode_der;
+xer_type_decoder_f MDT_Location_Info_decode_xer;
+xer_type_encoder_f MDT_Location_Info_encode_xer;
+oer_type_decoder_f MDT_Location_Info_decode_oer;
+oer_type_encoder_f MDT_Location_Info_encode_oer;
+per_type_decoder_f MDT_Location_Info_decode_uper;
+per_type_encoder_f MDT_Location_Info_encode_uper;
+per_type_decoder_f MDT_Location_Info_decode_aper;
+per_type_encoder_f MDT_Location_Info_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MDT_Location_Info_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MDTPLMNList.h b/e2ap/headers/MDTPLMNList.h
new file mode 100644 (file)
index 0000000..55b6944
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MDTPLMNList_H_
+#define        _MDTPLMNList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMN-Identity.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MDTPLMNList */
+typedef struct MDTPLMNList {
+       A_SEQUENCE_OF(PLMN_Identity_t) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MDTPLMNList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MDTPLMNList;
+extern asn_SET_OF_specifics_t asn_SPC_MDTPLMNList_specs_1;
+extern asn_TYPE_member_t asn_MBR_MDTPLMNList_1[1];
+extern asn_per_constraints_t asn_PER_type_MDTPLMNList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MDTPLMNList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MME-Code.h b/e2ap/headers/MME-Code.h
new file mode 100644 (file)
index 0000000..79cd57b
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MME_Code_H_
+#define        _MME_Code_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MME-Code */
+typedef OCTET_STRING_t  MME_Code_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MME_Code_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MME_Code;
+asn_struct_free_f MME_Code_free;
+asn_struct_print_f MME_Code_print;
+asn_constr_check_f MME_Code_constraint;
+ber_type_decoder_f MME_Code_decode_ber;
+der_type_encoder_f MME_Code_encode_der;
+xer_type_decoder_f MME_Code_decode_xer;
+xer_type_encoder_f MME_Code_encode_xer;
+oer_type_decoder_f MME_Code_decode_oer;
+oer_type_encoder_f MME_Code_encode_oer;
+per_type_decoder_f MME_Code_decode_uper;
+per_type_encoder_f MME_Code_encode_uper;
+per_type_decoder_f MME_Code_decode_aper;
+per_type_encoder_f MME_Code_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MME_Code_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MME-Group-ID.h b/e2ap/headers/MME-Group-ID.h
new file mode 100644 (file)
index 0000000..5535a5d
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MME_Group_ID_H_
+#define        _MME_Group_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MME-Group-ID */
+typedef OCTET_STRING_t  MME_Group_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MME_Group_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MME_Group_ID;
+asn_struct_free_f MME_Group_ID_free;
+asn_struct_print_f MME_Group_ID_print;
+asn_constr_check_f MME_Group_ID_constraint;
+ber_type_decoder_f MME_Group_ID_decode_ber;
+der_type_encoder_f MME_Group_ID_encode_der;
+xer_type_decoder_f MME_Group_ID_decode_xer;
+xer_type_encoder_f MME_Group_ID_encode_xer;
+oer_type_decoder_f MME_Group_ID_decode_oer;
+oer_type_encoder_f MME_Group_ID_encode_oer;
+per_type_decoder_f MME_Group_ID_decode_uper;
+per_type_encoder_f MME_Group_ID_encode_uper;
+per_type_decoder_f MME_Group_ID_decode_aper;
+per_type_encoder_f MME_Group_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MME_Group_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MakeBeforeBreakIndicator.h b/e2ap/headers/MakeBeforeBreakIndicator.h
new file mode 100644 (file)
index 0000000..f4b425c
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MakeBeforeBreakIndicator_H_
+#define        _MakeBeforeBreakIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum MakeBeforeBreakIndicator {
+       MakeBeforeBreakIndicator_true   = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_MakeBeforeBreakIndicator;
+
+/* MakeBeforeBreakIndicator */
+typedef long    MakeBeforeBreakIndicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MakeBeforeBreakIndicator;
+asn_struct_free_f MakeBeforeBreakIndicator_free;
+asn_struct_print_f MakeBeforeBreakIndicator_print;
+asn_constr_check_f MakeBeforeBreakIndicator_constraint;
+ber_type_decoder_f MakeBeforeBreakIndicator_decode_ber;
+der_type_encoder_f MakeBeforeBreakIndicator_encode_der;
+xer_type_decoder_f MakeBeforeBreakIndicator_decode_xer;
+xer_type_encoder_f MakeBeforeBreakIndicator_encode_xer;
+oer_type_decoder_f MakeBeforeBreakIndicator_decode_oer;
+oer_type_encoder_f MakeBeforeBreakIndicator_encode_oer;
+per_type_decoder_f MakeBeforeBreakIndicator_decode_uper;
+per_type_encoder_f MakeBeforeBreakIndicator_encode_uper;
+per_type_decoder_f MakeBeforeBreakIndicator_decode_aper;
+per_type_encoder_f MakeBeforeBreakIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MakeBeforeBreakIndicator_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ManagementBasedMDTallowed.h b/e2ap/headers/ManagementBasedMDTallowed.h
new file mode 100644 (file)
index 0000000..63e4543
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ManagementBasedMDTallowed_H_
+#define        _ManagementBasedMDTallowed_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ManagementBasedMDTallowed {
+       ManagementBasedMDTallowed_allowed       = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_ManagementBasedMDTallowed;
+
+/* ManagementBasedMDTallowed */
+typedef long    ManagementBasedMDTallowed_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ManagementBasedMDTallowed_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ManagementBasedMDTallowed;
+extern const asn_INTEGER_specifics_t asn_SPC_ManagementBasedMDTallowed_specs_1;
+asn_struct_free_f ManagementBasedMDTallowed_free;
+asn_struct_print_f ManagementBasedMDTallowed_print;
+asn_constr_check_f ManagementBasedMDTallowed_constraint;
+ber_type_decoder_f ManagementBasedMDTallowed_decode_ber;
+der_type_encoder_f ManagementBasedMDTallowed_encode_der;
+xer_type_decoder_f ManagementBasedMDTallowed_decode_xer;
+xer_type_encoder_f ManagementBasedMDTallowed_encode_xer;
+oer_type_decoder_f ManagementBasedMDTallowed_decode_oer;
+oer_type_encoder_f ManagementBasedMDTallowed_encode_oer;
+per_type_decoder_f ManagementBasedMDTallowed_decode_uper;
+per_type_encoder_f ManagementBasedMDTallowed_encode_uper;
+per_type_decoder_f ManagementBasedMDTallowed_decode_aper;
+per_type_encoder_f ManagementBasedMDTallowed_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ManagementBasedMDTallowed_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Masked-IMEISV.h b/e2ap/headers/Masked-IMEISV.h
new file mode 100644 (file)
index 0000000..0865038
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Masked_IMEISV_H_
+#define        _Masked_IMEISV_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Masked-IMEISV */
+typedef BIT_STRING_t    Masked_IMEISV_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Masked_IMEISV;
+asn_struct_free_f Masked_IMEISV_free;
+asn_struct_print_f Masked_IMEISV_print;
+asn_constr_check_f Masked_IMEISV_constraint;
+ber_type_decoder_f Masked_IMEISV_decode_ber;
+der_type_encoder_f Masked_IMEISV_encode_der;
+xer_type_decoder_f Masked_IMEISV_decode_xer;
+xer_type_encoder_f Masked_IMEISV_encode_xer;
+oer_type_decoder_f Masked_IMEISV_decode_oer;
+oer_type_encoder_f Masked_IMEISV_encode_oer;
+per_type_decoder_f Masked_IMEISV_decode_uper;
+per_type_encoder_f Masked_IMEISV_encode_uper;
+per_type_decoder_f Masked_IMEISV_decode_aper;
+per_type_encoder_f Masked_IMEISV_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Masked_IMEISV_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MeNBCoordinationAssistanceInformation.h b/e2ap/headers/MeNBCoordinationAssistanceInformation.h
new file mode 100644 (file)
index 0000000..e09c4a1
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MeNBCoordinationAssistanceInformation_H_
+#define        _MeNBCoordinationAssistanceInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum MeNBCoordinationAssistanceInformation {
+       MeNBCoordinationAssistanceInformation_coordination_not_required = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_MeNBCoordinationAssistanceInformation;
+
+/* MeNBCoordinationAssistanceInformation */
+typedef long    MeNBCoordinationAssistanceInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MeNBCoordinationAssistanceInformation;
+asn_struct_free_f MeNBCoordinationAssistanceInformation_free;
+asn_struct_print_f MeNBCoordinationAssistanceInformation_print;
+asn_constr_check_f MeNBCoordinationAssistanceInformation_constraint;
+ber_type_decoder_f MeNBCoordinationAssistanceInformation_decode_ber;
+der_type_encoder_f MeNBCoordinationAssistanceInformation_encode_der;
+xer_type_decoder_f MeNBCoordinationAssistanceInformation_decode_xer;
+xer_type_encoder_f MeNBCoordinationAssistanceInformation_encode_xer;
+oer_type_decoder_f MeNBCoordinationAssistanceInformation_decode_oer;
+oer_type_encoder_f MeNBCoordinationAssistanceInformation_encode_oer;
+per_type_decoder_f MeNBCoordinationAssistanceInformation_decode_uper;
+per_type_encoder_f MeNBCoordinationAssistanceInformation_encode_uper;
+per_type_decoder_f MeNBCoordinationAssistanceInformation_decode_aper;
+per_type_encoder_f MeNBCoordinationAssistanceInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MeNBCoordinationAssistanceInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MeNBResourceCoordinationInformation.h b/e2ap/headers/MeNBResourceCoordinationInformation.h
new file mode 100644 (file)
index 0000000..2b54790
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MeNBResourceCoordinationInformation_H_
+#define        _MeNBResourceCoordinationInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ECGI.h"
+#include <BIT_STRING.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* MeNBResourceCoordinationInformation */
+typedef struct MeNBResourceCoordinationInformation {
+       ECGI_t   eUTRA_Cell_ID;
+       BIT_STRING_t     uLCoordinationInformation;
+       BIT_STRING_t    *dLCoordinationInformation;     /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MeNBResourceCoordinationInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MeNBResourceCoordinationInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MeNBResourceCoordinationInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MeNBtoSeNBContainer.h b/e2ap/headers/MeNBtoSeNBContainer.h
new file mode 100644 (file)
index 0000000..e1bd69e
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MeNBtoSeNBContainer_H_
+#define        _MeNBtoSeNBContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MeNBtoSeNBContainer */
+typedef OCTET_STRING_t  MeNBtoSeNBContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MeNBtoSeNBContainer;
+asn_struct_free_f MeNBtoSeNBContainer_free;
+asn_struct_print_f MeNBtoSeNBContainer_print;
+asn_constr_check_f MeNBtoSeNBContainer_constraint;
+ber_type_decoder_f MeNBtoSeNBContainer_decode_ber;
+der_type_encoder_f MeNBtoSeNBContainer_encode_der;
+xer_type_decoder_f MeNBtoSeNBContainer_decode_xer;
+xer_type_encoder_f MeNBtoSeNBContainer_encode_xer;
+oer_type_decoder_f MeNBtoSeNBContainer_decode_oer;
+oer_type_encoder_f MeNBtoSeNBContainer_encode_oer;
+per_type_decoder_f MeNBtoSeNBContainer_decode_uper;
+per_type_encoder_f MeNBtoSeNBContainer_encode_uper;
+per_type_decoder_f MeNBtoSeNBContainer_decode_aper;
+per_type_encoder_f MeNBtoSeNBContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MeNBtoSeNBContainer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MeNBtoSgNBContainer.h b/e2ap/headers/MeNBtoSgNBContainer.h
new file mode 100644 (file)
index 0000000..383378a
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MeNBtoSgNBContainer_H_
+#define        _MeNBtoSgNBContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MeNBtoSgNBContainer */
+typedef OCTET_STRING_t  MeNBtoSgNBContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MeNBtoSgNBContainer;
+asn_struct_free_f MeNBtoSgNBContainer_free;
+asn_struct_print_f MeNBtoSgNBContainer_print;
+asn_constr_check_f MeNBtoSgNBContainer_constraint;
+ber_type_decoder_f MeNBtoSgNBContainer_decode_ber;
+der_type_encoder_f MeNBtoSgNBContainer_encode_der;
+xer_type_decoder_f MeNBtoSgNBContainer_decode_xer;
+xer_type_encoder_f MeNBtoSgNBContainer_encode_xer;
+oer_type_decoder_f MeNBtoSgNBContainer_decode_oer;
+oer_type_encoder_f MeNBtoSgNBContainer_encode_oer;
+per_type_decoder_f MeNBtoSgNBContainer_decode_uper;
+per_type_encoder_f MeNBtoSgNBContainer_encode_uper;
+per_type_decoder_f MeNBtoSgNBContainer_decode_aper;
+per_type_encoder_f MeNBtoSgNBContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MeNBtoSgNBContainer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Measurement-ID.h b/e2ap/headers/Measurement-ID.h
new file mode 100644 (file)
index 0000000..7c677b2
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Measurement_ID_H_
+#define        _Measurement_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Measurement-ID */
+typedef long    Measurement_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Measurement_ID;
+asn_struct_free_f Measurement_ID_free;
+asn_struct_print_f Measurement_ID_print;
+asn_constr_check_f Measurement_ID_constraint;
+ber_type_decoder_f Measurement_ID_decode_ber;
+der_type_encoder_f Measurement_ID_encode_der;
+xer_type_decoder_f Measurement_ID_decode_xer;
+xer_type_encoder_f Measurement_ID_encode_xer;
+oer_type_decoder_f Measurement_ID_decode_oer;
+oer_type_encoder_f Measurement_ID_encode_oer;
+per_type_decoder_f Measurement_ID_decode_uper;
+per_type_encoder_f Measurement_ID_encode_uper;
+per_type_decoder_f Measurement_ID_decode_aper;
+per_type_encoder_f Measurement_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Measurement_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MeasurementFailureCause-Item.h b/e2ap/headers/MeasurementFailureCause-Item.h
new file mode 100644 (file)
index 0000000..76b7fcc
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MeasurementFailureCause_Item_H_
+#define        _MeasurementFailureCause_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ReportCharacteristics.h"
+#include "Cause.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* MeasurementFailureCause-Item */
+typedef struct MeasurementFailureCause_Item {
+       ReportCharacteristics_t  measurementFailedReportCharacteristics;
+       Cause_t  cause;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MeasurementFailureCause_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MeasurementFailureCause_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MeasurementFailureCause_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MeasurementFailureCause-List.h b/e2ap/headers/MeasurementFailureCause-List.h
new file mode 100644 (file)
index 0000000..4c9775c
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MeasurementFailureCause_List_H_
+#define        _MeasurementFailureCause_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* MeasurementFailureCause-List */
+typedef struct MeasurementFailureCause_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MeasurementFailureCause_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MeasurementFailureCause_List;
+extern asn_SET_OF_specifics_t asn_SPC_MeasurementFailureCause_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_MeasurementFailureCause_List_1[1];
+extern asn_per_constraints_t asn_PER_type_MeasurementFailureCause_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MeasurementFailureCause_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MeasurementInitiationResult-Item.h b/e2ap/headers/MeasurementInitiationResult-Item.h
new file mode 100644 (file)
index 0000000..3e2ab3d
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MeasurementInitiationResult_Item_H_
+#define        _MeasurementInitiationResult_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ECGI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct MeasurementFailureCause_List;
+struct ProtocolExtensionContainer;
+
+/* MeasurementInitiationResult-Item */
+typedef struct MeasurementInitiationResult_Item {
+       ECGI_t   cell_ID;
+       struct MeasurementFailureCause_List     *measurementFailureCause_List;  /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MeasurementInitiationResult_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MeasurementInitiationResult_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MeasurementInitiationResult_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MeasurementInitiationResult-List.h b/e2ap/headers/MeasurementInitiationResult-List.h
new file mode 100644 (file)
index 0000000..01878ee
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MeasurementInitiationResult_List_H_
+#define        _MeasurementInitiationResult_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* MeasurementInitiationResult-List */
+typedef struct MeasurementInitiationResult_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MeasurementInitiationResult_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MeasurementInitiationResult_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MeasurementInitiationResult_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MeasurementThresholdA2.h b/e2ap/headers/MeasurementThresholdA2.h
new file mode 100644 (file)
index 0000000..4acad0f
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MeasurementThresholdA2_H_
+#define        _MeasurementThresholdA2_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Threshold-RSRP.h"
+#include "Threshold-RSRQ.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum MeasurementThresholdA2_PR {
+       MeasurementThresholdA2_PR_NOTHING,      /* No components present */
+       MeasurementThresholdA2_PR_threshold_RSRP,
+       MeasurementThresholdA2_PR_threshold_RSRQ
+       /* Extensions may appear below */
+       
+} MeasurementThresholdA2_PR;
+
+/* MeasurementThresholdA2 */
+typedef struct MeasurementThresholdA2 {
+       MeasurementThresholdA2_PR present;
+       union MeasurementThresholdA2_u {
+               Threshold_RSRP_t         threshold_RSRP;
+               Threshold_RSRQ_t         threshold_RSRQ;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MeasurementThresholdA2_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MeasurementThresholdA2;
+extern asn_CHOICE_specifics_t asn_SPC_MeasurementThresholdA2_specs_1;
+extern asn_TYPE_member_t asn_MBR_MeasurementThresholdA2_1[2];
+extern asn_per_constraints_t asn_PER_type_MeasurementThresholdA2_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MeasurementThresholdA2_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MeasurementsToActivate.h b/e2ap/headers/MeasurementsToActivate.h
new file mode 100644 (file)
index 0000000..02a9a8d
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MeasurementsToActivate_H_
+#define        _MeasurementsToActivate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MeasurementsToActivate */
+typedef BIT_STRING_t    MeasurementsToActivate_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MeasurementsToActivate_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MeasurementsToActivate;
+asn_struct_free_f MeasurementsToActivate_free;
+asn_struct_print_f MeasurementsToActivate_print;
+asn_constr_check_f MeasurementsToActivate_constraint;
+ber_type_decoder_f MeasurementsToActivate_decode_ber;
+der_type_encoder_f MeasurementsToActivate_encode_der;
+xer_type_decoder_f MeasurementsToActivate_decode_xer;
+xer_type_encoder_f MeasurementsToActivate_encode_xer;
+oer_type_decoder_f MeasurementsToActivate_decode_oer;
+oer_type_encoder_f MeasurementsToActivate_encode_oer;
+per_type_decoder_f MeasurementsToActivate_decode_uper;
+per_type_encoder_f MeasurementsToActivate_encode_uper;
+per_type_decoder_f MeasurementsToActivate_decode_aper;
+per_type_encoder_f MeasurementsToActivate_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MeasurementsToActivate_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MobilityChangeAcknowledge.h b/e2ap/headers/MobilityChangeAcknowledge.h
new file mode 100644 (file)
index 0000000..b71f36d
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MobilityChangeAcknowledge_H_
+#define        _MobilityChangeAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MobilityChangeAcknowledge */
+typedef struct MobilityChangeAcknowledge {
+       ProtocolIE_Container_9515P36_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MobilityChangeAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MobilityChangeAcknowledge;
+extern asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeAcknowledge_specs_1;
+extern asn_TYPE_member_t asn_MBR_MobilityChangeAcknowledge_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MobilityChangeAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MobilityChangeFailure.h b/e2ap/headers/MobilityChangeFailure.h
new file mode 100644 (file)
index 0000000..80723bb
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MobilityChangeFailure_H_
+#define        _MobilityChangeFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MobilityChangeFailure */
+typedef struct MobilityChangeFailure {
+       ProtocolIE_Container_9515P37_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MobilityChangeFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MobilityChangeFailure;
+extern asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeFailure_specs_1;
+extern asn_TYPE_member_t asn_MBR_MobilityChangeFailure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MobilityChangeFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MobilityChangeRequest.h b/e2ap/headers/MobilityChangeRequest.h
new file mode 100644 (file)
index 0000000..dd416b9
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MobilityChangeRequest_H_
+#define        _MobilityChangeRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MobilityChangeRequest */
+typedef struct MobilityChangeRequest {
+       ProtocolIE_Container_9515P35_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MobilityChangeRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MobilityChangeRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_MobilityChangeRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MobilityChangeRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MobilityInformation.h b/e2ap/headers/MobilityInformation.h
new file mode 100644 (file)
index 0000000..527085c
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MobilityInformation_H_
+#define        _MobilityInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MobilityInformation */
+typedef BIT_STRING_t    MobilityInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MobilityInformation;
+asn_struct_free_f MobilityInformation_free;
+asn_struct_print_f MobilityInformation_print;
+asn_constr_check_f MobilityInformation_constraint;
+ber_type_decoder_f MobilityInformation_decode_ber;
+der_type_encoder_f MobilityInformation_encode_der;
+xer_type_decoder_f MobilityInformation_decode_xer;
+xer_type_encoder_f MobilityInformation_encode_xer;
+oer_type_decoder_f MobilityInformation_decode_oer;
+oer_type_encoder_f MobilityInformation_encode_oer;
+per_type_decoder_f MobilityInformation_decode_uper;
+per_type_encoder_f MobilityInformation_encode_uper;
+per_type_decoder_f MobilityInformation_decode_aper;
+per_type_encoder_f MobilityInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MobilityInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MobilityParametersInformation.h b/e2ap/headers/MobilityParametersInformation.h
new file mode 100644 (file)
index 0000000..034eaae
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MobilityParametersInformation_H_
+#define        _MobilityParametersInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MobilityParametersInformation */
+typedef struct MobilityParametersInformation {
+       long     handoverTriggerChange;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MobilityParametersInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MobilityParametersInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MobilityParametersInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MobilityParametersModificationRange.h b/e2ap/headers/MobilityParametersModificationRange.h
new file mode 100644 (file)
index 0000000..5ddc707
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MobilityParametersModificationRange_H_
+#define        _MobilityParametersModificationRange_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MobilityParametersModificationRange */
+typedef struct MobilityParametersModificationRange {
+       long     handoverTriggerChangeLowerLimit;
+       long     handoverTriggerChangeUpperLimit;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MobilityParametersModificationRange_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MobilityParametersModificationRange;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MobilityParametersModificationRange_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/MultibandInfoList.h b/e2ap/headers/MultibandInfoList.h
new file mode 100644 (file)
index 0000000..9dbcf9b
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _MultibandInfoList_H_
+#define        _MultibandInfoList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct BandInfo;
+
+/* MultibandInfoList */
+typedef struct MultibandInfoList {
+       A_SEQUENCE_OF(struct BandInfo) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MultibandInfoList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MultibandInfoList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MultibandInfoList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NR-TxBW.h b/e2ap/headers/NR-TxBW.h
new file mode 100644 (file)
index 0000000..44f6e78
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _NR_TxBW_H_
+#define        _NR_TxBW_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NRSCS.h"
+#include "NRNRB.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* NR-TxBW */
+typedef struct NR_TxBW {
+       NRSCS_t  nRSCS;
+       NRNRB_t  nRNRB;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} NR_TxBW_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NR_TxBW;
+extern asn_SEQUENCE_specifics_t asn_SPC_NR_TxBW_specs_1;
+extern asn_TYPE_member_t asn_MBR_NR_TxBW_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NR_TxBW_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NRCGI.h b/e2ap/headers/NRCGI.h
new file mode 100644 (file)
index 0000000..47cf794
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _NRCGI_H_
+#define        _NRCGI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMN-Identity.h"
+#include "NRCellIdentifier.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* NRCGI */
+typedef struct NRCGI {
+       PLMN_Identity_t  pLMN_Identity;
+       NRCellIdentifier_t       nRcellIdentifier;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} NRCGI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NRCGI;
+extern asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1;
+extern asn_TYPE_member_t asn_MBR_NRCGI_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRCGI_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NRCellIdentifier.h b/e2ap/headers/NRCellIdentifier.h
new file mode 100644 (file)
index 0000000..e35314d
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _NRCellIdentifier_H_
+#define        _NRCellIdentifier_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NRCellIdentifier */
+typedef BIT_STRING_t    NRCellIdentifier_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NRCellIdentifier_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NRCellIdentifier;
+asn_struct_free_f NRCellIdentifier_free;
+asn_struct_print_f NRCellIdentifier_print;
+asn_constr_check_f NRCellIdentifier_constraint;
+ber_type_decoder_f NRCellIdentifier_decode_ber;
+der_type_encoder_f NRCellIdentifier_encode_der;
+xer_type_decoder_f NRCellIdentifier_decode_xer;
+xer_type_encoder_f NRCellIdentifier_encode_xer;
+oer_type_decoder_f NRCellIdentifier_decode_oer;
+oer_type_encoder_f NRCellIdentifier_encode_oer;
+per_type_decoder_f NRCellIdentifier_decode_uper;
+per_type_encoder_f NRCellIdentifier_encode_uper;
+per_type_decoder_f NRCellIdentifier_decode_aper;
+per_type_encoder_f NRCellIdentifier_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRCellIdentifier_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NRFreqInfo.h b/e2ap/headers/NRFreqInfo.h
new file mode 100644 (file)
index 0000000..14d4ee0
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _NRFreqInfo_H_
+#define        _NRFreqInfo_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct SULInformation;
+struct ProtocolExtensionContainer;
+struct FreqBandNrItem;
+
+/* NRFreqInfo */
+typedef struct NRFreqInfo {
+       long     nRARFCN;
+       struct NRFreqInfo__freqBandListNr {
+               A_SEQUENCE_OF(struct FreqBandNrItem) list;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } freqBandListNr;
+       struct SULInformation   *sULInformation;        /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} NRFreqInfo_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NRFreqInfo;
+extern asn_SEQUENCE_specifics_t asn_SPC_NRFreqInfo_specs_1;
+extern asn_TYPE_member_t asn_MBR_NRFreqInfo_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRFreqInfo_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NRNRB.h b/e2ap/headers/NRNRB.h
new file mode 100644 (file)
index 0000000..1e28990
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _NRNRB_H_
+#define        _NRNRB_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NRNRB {
+       NRNRB_nrb11     = 0,
+       NRNRB_nrb18     = 1,
+       NRNRB_nrb24     = 2,
+       NRNRB_nrb25     = 3,
+       NRNRB_nrb31     = 4,
+       NRNRB_nrb32     = 5,
+       NRNRB_nrb38     = 6,
+       NRNRB_nrb51     = 7,
+       NRNRB_nrb52     = 8,
+       NRNRB_nrb65     = 9,
+       NRNRB_nrb66     = 10,
+       NRNRB_nrb78     = 11,
+       NRNRB_nrb79     = 12,
+       NRNRB_nrb93     = 13,
+       NRNRB_nrb106    = 14,
+       NRNRB_nrb107    = 15,
+       NRNRB_nrb121    = 16,
+       NRNRB_nrb132    = 17,
+       NRNRB_nrb133    = 18,
+       NRNRB_nrb135    = 19,
+       NRNRB_nrb160    = 20,
+       NRNRB_nrb162    = 21,
+       NRNRB_nrb189    = 22,
+       NRNRB_nrb216    = 23,
+       NRNRB_nrb217    = 24,
+       NRNRB_nrb245    = 25,
+       NRNRB_nrb264    = 26,
+       NRNRB_nrb270    = 27,
+       NRNRB_nrb273    = 28
+       /*
+        * Enumeration is extensible
+        */
+} e_NRNRB;
+
+/* NRNRB */
+typedef long    NRNRB_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NRNRB_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NRNRB;
+extern const asn_INTEGER_specifics_t asn_SPC_NRNRB_specs_1;
+asn_struct_free_f NRNRB_free;
+asn_struct_print_f NRNRB_print;
+asn_constr_check_f NRNRB_constraint;
+ber_type_decoder_f NRNRB_decode_ber;
+der_type_encoder_f NRNRB_encode_der;
+xer_type_decoder_f NRNRB_decode_xer;
+xer_type_encoder_f NRNRB_encode_xer;
+oer_type_decoder_f NRNRB_decode_oer;
+oer_type_encoder_f NRNRB_encode_oer;
+per_type_decoder_f NRNRB_decode_uper;
+per_type_encoder_f NRNRB_encode_uper;
+per_type_decoder_f NRNRB_decode_aper;
+per_type_encoder_f NRNRB_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRNRB_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NRNeighbour-Information.h b/e2ap/headers/NRNeighbour-Information.h
new file mode 100644 (file)
index 0000000..cb30213
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _NRNeighbour_Information_H_
+#define        _NRNeighbour_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "NRPCI.h"
+#include "NRCGI.h"
+#include "FiveGS-TAC.h"
+#include "TAC.h"
+#include <OCTET_STRING.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NRNeighbour_Information__Member__nRNeighbourModeInfo_PR {
+       NRNeighbour_Information__Member__nRNeighbourModeInfo_PR_NOTHING,        /* No components present */
+       NRNeighbour_Information__Member__nRNeighbourModeInfo_PR_fdd,
+       NRNeighbour_Information__Member__nRNeighbourModeInfo_PR_tdd
+       /* Extensions may appear below */
+       
+} NRNeighbour_Information__Member__nRNeighbourModeInfo_PR;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+struct FDD_InfoNeighbourServedNRCell_Information;
+struct TDD_InfoNeighbourServedNRCell_Information;
+
+/* Forward definitions */
+typedef struct NRNeighbour_Information__Member {
+       NRPCI_t  nrpCI;
+       NRCGI_t  nrCellID;
+       FiveGS_TAC_t    *fiveGS_TAC;    /* OPTIONAL */
+       TAC_t   *configured_TAC;        /* OPTIONAL */
+       OCTET_STRING_t   measurementTimingConfiguration;
+       struct NRNeighbour_Information__Member__nRNeighbourModeInfo {
+               NRNeighbour_Information__Member__nRNeighbourModeInfo_PR present;
+               union NRNeighbour_Information__Member__nRNeighbourModeInfo_u {
+                       struct FDD_InfoNeighbourServedNRCell_Information        *fdd;
+                       struct TDD_InfoNeighbourServedNRCell_Information        *tdd;
+                       /*
+                        * This type is extensible,
+                        * possible extensions are below.
+                        */
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } nRNeighbourModeInfo;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} NRNeighbour_Information__Member;
+
+/* NRNeighbour-Information */
+typedef struct NRNeighbour_Information {
+       A_SEQUENCE_OF(NRNeighbour_Information__Member) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} NRNeighbour_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NRNeighbour_Information;
+extern asn_SET_OF_specifics_t asn_SPC_NRNeighbour_Information_specs_1;
+extern asn_TYPE_member_t asn_MBR_NRNeighbour_Information_1[1];
+extern asn_per_constraints_t asn_PER_type_NRNeighbour_Information_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRNeighbour_Information_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NRPCI.h b/e2ap/headers/NRPCI.h
new file mode 100644 (file)
index 0000000..7291849
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _NRPCI_H_
+#define        _NRPCI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NRPCI */
+typedef long    NRPCI_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NRPCI_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NRPCI;
+asn_struct_free_f NRPCI_free;
+asn_struct_print_f NRPCI_print;
+asn_constr_check_f NRPCI_constraint;
+ber_type_decoder_f NRPCI_decode_ber;
+der_type_encoder_f NRPCI_encode_der;
+xer_type_decoder_f NRPCI_decode_xer;
+xer_type_encoder_f NRPCI_encode_xer;
+oer_type_decoder_f NRPCI_decode_oer;
+oer_type_encoder_f NRPCI_encode_oer;
+per_type_decoder_f NRPCI_decode_uper;
+per_type_encoder_f NRPCI_encode_uper;
+per_type_decoder_f NRPCI_decode_aper;
+per_type_encoder_f NRPCI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRPCI_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NRS-NSSS-PowerOffset.h b/e2ap/headers/NRS-NSSS-PowerOffset.h
new file mode 100644 (file)
index 0000000..9bc64b0
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _NRS_NSSS_PowerOffset_H_
+#define        _NRS_NSSS_PowerOffset_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NRS_NSSS_PowerOffset {
+       NRS_NSSS_PowerOffset_minusThree = 0,
+       NRS_NSSS_PowerOffset_zero       = 1,
+       NRS_NSSS_PowerOffset_three      = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_NRS_NSSS_PowerOffset;
+
+/* NRS-NSSS-PowerOffset */
+typedef long    NRS_NSSS_PowerOffset_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NRS_NSSS_PowerOffset;
+asn_struct_free_f NRS_NSSS_PowerOffset_free;
+asn_struct_print_f NRS_NSSS_PowerOffset_print;
+asn_constr_check_f NRS_NSSS_PowerOffset_constraint;
+ber_type_decoder_f NRS_NSSS_PowerOffset_decode_ber;
+der_type_encoder_f NRS_NSSS_PowerOffset_encode_der;
+xer_type_decoder_f NRS_NSSS_PowerOffset_decode_xer;
+xer_type_encoder_f NRS_NSSS_PowerOffset_encode_xer;
+oer_type_decoder_f NRS_NSSS_PowerOffset_decode_oer;
+oer_type_encoder_f NRS_NSSS_PowerOffset_encode_oer;
+per_type_decoder_f NRS_NSSS_PowerOffset_decode_uper;
+per_type_encoder_f NRS_NSSS_PowerOffset_encode_uper;
+per_type_decoder_f NRS_NSSS_PowerOffset_decode_aper;
+per_type_encoder_f NRS_NSSS_PowerOffset_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRS_NSSS_PowerOffset_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NRSCS.h b/e2ap/headers/NRSCS.h
new file mode 100644 (file)
index 0000000..a00ab79
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _NRSCS_H_
+#define        _NRSCS_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NRSCS {
+       NRSCS_scs15     = 0,
+       NRSCS_scs30     = 1,
+       NRSCS_scs60     = 2,
+       NRSCS_scs120    = 3
+       /*
+        * Enumeration is extensible
+        */
+} e_NRSCS;
+
+/* NRSCS */
+typedef long    NRSCS_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NRSCS_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NRSCS;
+extern const asn_INTEGER_specifics_t asn_SPC_NRSCS_specs_1;
+asn_struct_free_f NRSCS_free;
+asn_struct_print_f NRSCS_print;
+asn_constr_check_f NRSCS_constraint;
+ber_type_decoder_f NRSCS_decode_ber;
+der_type_encoder_f NRSCS_encode_der;
+xer_type_decoder_f NRSCS_decode_xer;
+xer_type_encoder_f NRSCS_encode_xer;
+oer_type_decoder_f NRSCS_decode_oer;
+oer_type_encoder_f NRSCS_encode_oer;
+per_type_decoder_f NRSCS_decode_uper;
+per_type_encoder_f NRSCS_encode_uper;
+per_type_decoder_f NRSCS_decode_aper;
+per_type_encoder_f NRSCS_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRSCS_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NRUESecurityCapabilities.h b/e2ap/headers/NRUESecurityCapabilities.h
new file mode 100644 (file)
index 0000000..5af0611
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _NRUESecurityCapabilities_H_
+#define        _NRUESecurityCapabilities_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NRencryptionAlgorithms.h"
+#include "NRintegrityProtectionAlgorithms.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* NRUESecurityCapabilities */
+typedef struct NRUESecurityCapabilities {
+       NRencryptionAlgorithms_t         nRencryptionAlgorithms;
+       NRintegrityProtectionAlgorithms_t        nRintegrityProtectionAlgorithms;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} NRUESecurityCapabilities_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NRUESecurityCapabilities;
+extern asn_SEQUENCE_specifics_t asn_SPC_NRUESecurityCapabilities_specs_1;
+extern asn_TYPE_member_t asn_MBR_NRUESecurityCapabilities_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRUESecurityCapabilities_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NRencryptionAlgorithms.h b/e2ap/headers/NRencryptionAlgorithms.h
new file mode 100644 (file)
index 0000000..0409fbd
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _NRencryptionAlgorithms_H_
+#define        _NRencryptionAlgorithms_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NRencryptionAlgorithms */
+typedef BIT_STRING_t    NRencryptionAlgorithms_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NRencryptionAlgorithms_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NRencryptionAlgorithms;
+asn_struct_free_f NRencryptionAlgorithms_free;
+asn_struct_print_f NRencryptionAlgorithms_print;
+asn_constr_check_f NRencryptionAlgorithms_constraint;
+ber_type_decoder_f NRencryptionAlgorithms_decode_ber;
+der_type_encoder_f NRencryptionAlgorithms_encode_der;
+xer_type_decoder_f NRencryptionAlgorithms_decode_xer;
+xer_type_encoder_f NRencryptionAlgorithms_encode_xer;
+oer_type_decoder_f NRencryptionAlgorithms_decode_oer;
+oer_type_encoder_f NRencryptionAlgorithms_encode_oer;
+per_type_decoder_f NRencryptionAlgorithms_decode_uper;
+per_type_encoder_f NRencryptionAlgorithms_encode_uper;
+per_type_decoder_f NRencryptionAlgorithms_decode_aper;
+per_type_encoder_f NRencryptionAlgorithms_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRencryptionAlgorithms_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NRintegrityProtectionAlgorithms.h b/e2ap/headers/NRintegrityProtectionAlgorithms.h
new file mode 100644 (file)
index 0000000..b74e0dd
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _NRintegrityProtectionAlgorithms_H_
+#define        _NRintegrityProtectionAlgorithms_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NRintegrityProtectionAlgorithms */
+typedef BIT_STRING_t    NRintegrityProtectionAlgorithms_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NRintegrityProtectionAlgorithms_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NRintegrityProtectionAlgorithms;
+asn_struct_free_f NRintegrityProtectionAlgorithms_free;
+asn_struct_print_f NRintegrityProtectionAlgorithms_print;
+asn_constr_check_f NRintegrityProtectionAlgorithms_constraint;
+ber_type_decoder_f NRintegrityProtectionAlgorithms_decode_ber;
+der_type_encoder_f NRintegrityProtectionAlgorithms_encode_der;
+xer_type_decoder_f NRintegrityProtectionAlgorithms_decode_xer;
+xer_type_encoder_f NRintegrityProtectionAlgorithms_encode_xer;
+oer_type_decoder_f NRintegrityProtectionAlgorithms_decode_oer;
+oer_type_encoder_f NRintegrityProtectionAlgorithms_encode_oer;
+per_type_decoder_f NRintegrityProtectionAlgorithms_decode_uper;
+per_type_encoder_f NRintegrityProtectionAlgorithms_encode_uper;
+per_type_decoder_f NRintegrityProtectionAlgorithms_decode_aper;
+per_type_encoder_f NRintegrityProtectionAlgorithms_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRintegrityProtectionAlgorithms_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NRrestrictionin5GS.h b/e2ap/headers/NRrestrictionin5GS.h
new file mode 100644 (file)
index 0000000..db19f53
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _NRrestrictionin5GS_H_
+#define        _NRrestrictionin5GS_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NRrestrictionin5GS {
+       NRrestrictionin5GS_nRrestrictedin5GS    = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_NRrestrictionin5GS;
+
+/* NRrestrictionin5GS */
+typedef long    NRrestrictionin5GS_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NRrestrictionin5GS;
+asn_struct_free_f NRrestrictionin5GS_free;
+asn_struct_print_f NRrestrictionin5GS_print;
+asn_constr_check_f NRrestrictionin5GS_constraint;
+ber_type_decoder_f NRrestrictionin5GS_decode_ber;
+der_type_encoder_f NRrestrictionin5GS_encode_der;
+xer_type_decoder_f NRrestrictionin5GS_decode_xer;
+xer_type_encoder_f NRrestrictionin5GS_encode_xer;
+oer_type_decoder_f NRrestrictionin5GS_decode_oer;
+oer_type_encoder_f NRrestrictionin5GS_encode_oer;
+per_type_decoder_f NRrestrictionin5GS_decode_uper;
+per_type_encoder_f NRrestrictionin5GS_encode_uper;
+per_type_decoder_f NRrestrictionin5GS_decode_aper;
+per_type_encoder_f NRrestrictionin5GS_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRrestrictionin5GS_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NRrestrictioninEPSasSecondaryRAT.h b/e2ap/headers/NRrestrictioninEPSasSecondaryRAT.h
new file mode 100644 (file)
index 0000000..16202f6
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _NRrestrictioninEPSasSecondaryRAT_H_
+#define        _NRrestrictioninEPSasSecondaryRAT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NRrestrictioninEPSasSecondaryRAT {
+       NRrestrictioninEPSasSecondaryRAT_nRrestrictedinEPSasSecondaryRAT        = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_NRrestrictioninEPSasSecondaryRAT;
+
+/* NRrestrictioninEPSasSecondaryRAT */
+typedef long    NRrestrictioninEPSasSecondaryRAT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NRrestrictioninEPSasSecondaryRAT;
+asn_struct_free_f NRrestrictioninEPSasSecondaryRAT_free;
+asn_struct_print_f NRrestrictioninEPSasSecondaryRAT_print;
+asn_constr_check_f NRrestrictioninEPSasSecondaryRAT_constraint;
+ber_type_decoder_f NRrestrictioninEPSasSecondaryRAT_decode_ber;
+der_type_encoder_f NRrestrictioninEPSasSecondaryRAT_encode_der;
+xer_type_decoder_f NRrestrictioninEPSasSecondaryRAT_decode_xer;
+xer_type_encoder_f NRrestrictioninEPSasSecondaryRAT_encode_xer;
+oer_type_decoder_f NRrestrictioninEPSasSecondaryRAT_decode_oer;
+oer_type_encoder_f NRrestrictioninEPSasSecondaryRAT_encode_oer;
+per_type_decoder_f NRrestrictioninEPSasSecondaryRAT_decode_uper;
+per_type_encoder_f NRrestrictioninEPSasSecondaryRAT_encode_uper;
+per_type_decoder_f NRrestrictioninEPSasSecondaryRAT_decode_aper;
+per_type_encoder_f NRrestrictioninEPSasSecondaryRAT_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRrestrictioninEPSasSecondaryRAT_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NSSS-NumOccasionDifferentPrecoder.h b/e2ap/headers/NSSS-NumOccasionDifferentPrecoder.h
new file mode 100644 (file)
index 0000000..6977cf7
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _NSSS_NumOccasionDifferentPrecoder_H_
+#define        _NSSS_NumOccasionDifferentPrecoder_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NSSS_NumOccasionDifferentPrecoder {
+       NSSS_NumOccasionDifferentPrecoder_two   = 0,
+       NSSS_NumOccasionDifferentPrecoder_four  = 1,
+       NSSS_NumOccasionDifferentPrecoder_eight = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_NSSS_NumOccasionDifferentPrecoder;
+
+/* NSSS-NumOccasionDifferentPrecoder */
+typedef long    NSSS_NumOccasionDifferentPrecoder_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NSSS_NumOccasionDifferentPrecoder;
+asn_struct_free_f NSSS_NumOccasionDifferentPrecoder_free;
+asn_struct_print_f NSSS_NumOccasionDifferentPrecoder_print;
+asn_constr_check_f NSSS_NumOccasionDifferentPrecoder_constraint;
+ber_type_decoder_f NSSS_NumOccasionDifferentPrecoder_decode_ber;
+der_type_encoder_f NSSS_NumOccasionDifferentPrecoder_encode_der;
+xer_type_decoder_f NSSS_NumOccasionDifferentPrecoder_decode_xer;
+xer_type_encoder_f NSSS_NumOccasionDifferentPrecoder_encode_xer;
+oer_type_decoder_f NSSS_NumOccasionDifferentPrecoder_decode_oer;
+oer_type_encoder_f NSSS_NumOccasionDifferentPrecoder_encode_oer;
+per_type_decoder_f NSSS_NumOccasionDifferentPrecoder_decode_uper;
+per_type_encoder_f NSSS_NumOccasionDifferentPrecoder_encode_uper;
+per_type_decoder_f NSSS_NumOccasionDifferentPrecoder_decode_aper;
+per_type_encoder_f NSSS_NumOccasionDifferentPrecoder_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NSSS_NumOccasionDifferentPrecoder_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NULL.h b/e2ap/headers/NULL.h
new file mode 100644 (file)
index 0000000..802d12c
--- /dev/null
@@ -0,0 +1,45 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        ASN_TYPE_NULL_H
+#define        ASN_TYPE_NULL_H
+
+#include <asn_application.h>
+#include <BOOLEAN.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The value of the NULL type is meaningless: see BOOLEAN if you want to
+ * carry true/false semantics.
+ */
+typedef int NULL_t;
+
+extern asn_TYPE_descriptor_t asn_DEF_NULL;
+extern asn_TYPE_operation_t asn_OP_NULL;
+
+asn_struct_print_f NULL_print;
+asn_struct_compare_f NULL_compare;
+der_type_encoder_f NULL_encode_der;
+xer_type_decoder_f NULL_decode_xer;
+xer_type_encoder_f NULL_encode_xer;
+oer_type_decoder_f NULL_decode_oer;
+oer_type_encoder_f NULL_encode_oer;
+per_type_decoder_f NULL_decode_uper;
+per_type_encoder_f NULL_encode_uper;
+per_type_decoder_f NULL_decode_aper;
+per_type_encoder_f NULL_encode_aper;
+asn_random_fill_f  NULL_random_fill;
+
+#define NULL_free      BOOLEAN_free
+#define NULL_decode_ber        BOOLEAN_decode_ber
+#define NULL_constraint        asn_generic_no_constraint
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* NULL_H */
diff --git a/e2ap/headers/NativeEnumerated.h b/e2ap/headers/NativeEnumerated.h
new file mode 100644 (file)
index 0000000..459f0e6
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+/*
+ * This type differs from the standard ENUMERATED in that it is modelled using
+ * the fixed machine type (long, int, short), so it can hold only values of
+ * limited length. There is no type (i.e., NativeEnumerated_t, any integer type
+ * will do).
+ * This type may be used when integer range is limited by subtype constraints.
+ */
+#ifndef        _NativeEnumerated_H_
+#define        _NativeEnumerated_H_
+
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern asn_TYPE_descriptor_t asn_DEF_NativeEnumerated;
+extern asn_TYPE_operation_t asn_OP_NativeEnumerated;
+
+xer_type_encoder_f NativeEnumerated_encode_xer;
+oer_type_decoder_f NativeEnumerated_decode_oer;
+oer_type_encoder_f NativeEnumerated_encode_oer;
+per_type_decoder_f NativeEnumerated_decode_uper;
+per_type_encoder_f NativeEnumerated_encode_uper;
+per_type_decoder_f NativeEnumerated_decode_aper;
+per_type_encoder_f NativeEnumerated_encode_aper;
+
+#define NativeEnumerated_free       NativeInteger_free
+#define NativeEnumerated_print      NativeInteger_print
+#define NativeEnumerated_compare    NativeInteger_compare
+#define NativeEnumerated_random_fill NativeInteger_random_fill
+#define NativeEnumerated_constraint asn_generic_no_constraint
+#define NativeEnumerated_decode_ber NativeInteger_decode_ber
+#define NativeEnumerated_encode_der NativeInteger_encode_der
+#define NativeEnumerated_decode_xer NativeInteger_decode_xer
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NativeEnumerated_H_ */
diff --git a/e2ap/headers/NativeInteger.h b/e2ap/headers/NativeInteger.h
new file mode 100644 (file)
index 0000000..c74406a
--- /dev/null
@@ -0,0 +1,46 @@
+/*-
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+/*
+ * This type differs from the standard INTEGER in that it is modelled using
+ * the fixed machine type (long, int, short), so it can hold only values of
+ * limited length. There is no type (i.e., NativeInteger_t, any integer type
+ * will do).
+ * This type may be used when integer range is limited by subtype constraints.
+ */
+#ifndef        _NativeInteger_H_
+#define        _NativeInteger_H_
+
+#include <asn_application.h>
+#include <INTEGER.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern asn_TYPE_descriptor_t asn_DEF_NativeInteger;
+extern asn_TYPE_operation_t asn_OP_NativeInteger;
+
+asn_struct_free_f  NativeInteger_free;
+asn_struct_print_f NativeInteger_print;
+asn_struct_compare_f NativeInteger_compare;
+ber_type_decoder_f NativeInteger_decode_ber;
+der_type_encoder_f NativeInteger_encode_der;
+xer_type_decoder_f NativeInteger_decode_xer;
+xer_type_encoder_f NativeInteger_encode_xer;
+oer_type_decoder_f NativeInteger_decode_oer;
+oer_type_encoder_f NativeInteger_encode_oer;
+per_type_decoder_f NativeInteger_decode_uper;
+per_type_encoder_f NativeInteger_encode_uper;
+per_type_decoder_f NativeInteger_decode_aper;
+per_type_encoder_f NativeInteger_encode_aper;
+asn_random_fill_f  NativeInteger_random_fill;
+
+#define NativeInteger_constraint  asn_generic_no_constraint
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NativeInteger_H_ */
diff --git a/e2ap/headers/Neighbour-Information.h b/e2ap/headers/Neighbour-Information.h
new file mode 100644 (file)
index 0000000..5512d87
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Neighbour_Information_H_
+#define        _Neighbour_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "ECGI.h"
+#include "PCI.h"
+#include "EARFCN.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* Forward definitions */
+typedef struct Neighbour_Information__Member {
+       ECGI_t   eCGI;
+       PCI_t    pCI;
+       EARFCN_t         eARFCN;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} Neighbour_Information__Member;
+
+/* Neighbour-Information */
+typedef struct Neighbour_Information {
+       A_SEQUENCE_OF(Neighbour_Information__Member) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} Neighbour_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Neighbour_Information;
+extern asn_SET_OF_specifics_t asn_SPC_Neighbour_Information_specs_1;
+extern asn_TYPE_member_t asn_MBR_Neighbour_Information_1[1];
+extern asn_per_constraints_t asn_PER_type_Neighbour_Information_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Neighbour_Information_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NewDRBIDrequest.h b/e2ap/headers/NewDRBIDrequest.h
new file mode 100644 (file)
index 0000000..0cc5c4a
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _NewDRBIDrequest_H_
+#define        _NewDRBIDrequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NewDRBIDrequest {
+       NewDRBIDrequest_true    = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_NewDRBIDrequest;
+
+/* NewDRBIDrequest */
+typedef long    NewDRBIDrequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NewDRBIDrequest;
+asn_struct_free_f NewDRBIDrequest_free;
+asn_struct_print_f NewDRBIDrequest_print;
+asn_constr_check_f NewDRBIDrequest_constraint;
+ber_type_decoder_f NewDRBIDrequest_decode_ber;
+der_type_encoder_f NewDRBIDrequest_encode_der;
+xer_type_decoder_f NewDRBIDrequest_decode_xer;
+xer_type_encoder_f NewDRBIDrequest_encode_xer;
+oer_type_decoder_f NewDRBIDrequest_decode_oer;
+oer_type_encoder_f NewDRBIDrequest_encode_oer;
+per_type_decoder_f NewDRBIDrequest_decode_uper;
+per_type_encoder_f NewDRBIDrequest_encode_uper;
+per_type_decoder_f NewDRBIDrequest_decode_aper;
+per_type_encoder_f NewDRBIDrequest_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NewDRBIDrequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NextHopChainingCount.h b/e2ap/headers/NextHopChainingCount.h
new file mode 100644 (file)
index 0000000..7769701
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _NextHopChainingCount_H_
+#define        _NextHopChainingCount_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NextHopChainingCount */
+typedef long    NextHopChainingCount_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NextHopChainingCount_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NextHopChainingCount;
+asn_struct_free_f NextHopChainingCount_free;
+asn_struct_print_f NextHopChainingCount_print;
+asn_constr_check_f NextHopChainingCount_constraint;
+ber_type_decoder_f NextHopChainingCount_decode_ber;
+der_type_encoder_f NextHopChainingCount_encode_der;
+xer_type_decoder_f NextHopChainingCount_decode_xer;
+xer_type_encoder_f NextHopChainingCount_encode_xer;
+oer_type_decoder_f NextHopChainingCount_decode_oer;
+oer_type_encoder_f NextHopChainingCount_encode_oer;
+per_type_decoder_f NextHopChainingCount_decode_uper;
+per_type_encoder_f NextHopChainingCount_encode_uper;
+per_type_decoder_f NextHopChainingCount_decode_aper;
+per_type_encoder_f NextHopChainingCount_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NextHopChainingCount_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Number-of-Antennaports.h b/e2ap/headers/Number-of-Antennaports.h
new file mode 100644 (file)
index 0000000..a244ef9
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Number_of_Antennaports_H_
+#define        _Number_of_Antennaports_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Number_of_Antennaports {
+       Number_of_Antennaports_an1      = 0,
+       Number_of_Antennaports_an2      = 1,
+       Number_of_Antennaports_an4      = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_Number_of_Antennaports;
+
+/* Number-of-Antennaports */
+typedef long    Number_of_Antennaports_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Number_of_Antennaports;
+asn_struct_free_f Number_of_Antennaports_free;
+asn_struct_print_f Number_of_Antennaports_print;
+asn_constr_check_f Number_of_Antennaports_constraint;
+ber_type_decoder_f Number_of_Antennaports_decode_ber;
+der_type_encoder_f Number_of_Antennaports_encode_der;
+xer_type_decoder_f Number_of_Antennaports_decode_xer;
+xer_type_encoder_f Number_of_Antennaports_encode_xer;
+oer_type_decoder_f Number_of_Antennaports_decode_oer;
+oer_type_encoder_f Number_of_Antennaports_encode_oer;
+per_type_decoder_f Number_of_Antennaports_decode_uper;
+per_type_encoder_f Number_of_Antennaports_encode_uper;
+per_type_decoder_f Number_of_Antennaports_decode_aper;
+per_type_encoder_f Number_of_Antennaports_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Number_of_Antennaports_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/OBJECT_IDENTIFIER.h b/e2ap/headers/OBJECT_IDENTIFIER.h
new file mode 100644 (file)
index 0000000..087c6fd
--- /dev/null
@@ -0,0 +1,156 @@
+/*
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _OBJECT_IDENTIFIER_H_
+#define        _OBJECT_IDENTIFIER_H_
+
+#include <asn_application.h>
+#include <asn_codecs_prim.h>
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef uint32_t asn_oid_arc_t;
+#define ASN_OID_ARC_MAX (~((asn_oid_arc_t)0))
+
+typedef ASN__PRIMITIVE_TYPE_t OBJECT_IDENTIFIER_t;
+
+extern asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER;
+extern asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER;
+
+asn_struct_print_f OBJECT_IDENTIFIER_print;
+asn_constr_check_f OBJECT_IDENTIFIER_constraint;
+der_type_encoder_f OBJECT_IDENTIFIER_encode_der;
+xer_type_decoder_f OBJECT_IDENTIFIER_decode_xer;
+xer_type_encoder_f OBJECT_IDENTIFIER_encode_xer;
+asn_random_fill_f  OBJECT_IDENTIFIER_random_fill;
+
+#define OBJECT_IDENTIFIER_free           ASN__PRIMITIVE_TYPE_free
+#define OBJECT_IDENTIFIER_compare        OCTET_STRING_compare
+#define OBJECT_IDENTIFIER_decode_ber     ber_decode_primitive
+#define OBJECT_IDENTIFIER_encode_der     der_encode_primitive
+#define OBJECT_IDENTIFIER_decode_oer     oer_decode_primitive
+#define OBJECT_IDENTIFIER_encode_oer     oer_encode_primitive
+#define OBJECT_IDENTIFIER_decode_uper    OCTET_STRING_decode_uper
+#define OBJECT_IDENTIFIER_encode_uper    OCTET_STRING_encode_uper
+#define OBJECT_IDENTIFIER_decode_aper    OCTET_STRING_decode_aper
+#define OBJECT_IDENTIFIER_encode_aper    OCTET_STRING_encode_aper
+
+/**********************************
+ * Some handy conversion routines *
+ **********************************/
+
+/*
+ * This function fills an (arcs) array with OBJECT IDENTIFIER arcs
+ * up to specified (arc_slots) elements.
+ *
+ * EXAMPLE:
+ *     void print_arcs(OBJECT_IDENTIFIER_t *oid) {
+ *             asn_oid_arc_t fixed_arcs[10];   // Try with fixed space first
+ *             asn_oid_arc_t *arcs = fixed_arcs;
+ *             size_t arc_slots = sizeof(fixed_arcs)/sizeof(fixed_arcs[0]); // 10
+ *             ssize_t count;  // Real number of arcs.
+ *             int i;
+ *
+ *             count = OBJECT_IDENTIFIER_get_arcs(oid, arcs, arc_slots);
+ *             // If necessary, reallocate arcs array and try again.
+ *             if(count > arc_slots) {
+ *                     arc_slots = count;
+ *                     arcs = malloc(sizeof(asn_oid_arc_t) * arc_slots);
+ *                     if(!arcs) return;
+ *                     count = OBJECT_IDENTIFIER_get_arcs(oid, arcs, arc_slots);
+ *                     assert(count == arc_slots);
+ *             }
+ *
+ *             // Print the contents of the arcs array.
+ *             for(i = 0; i < count; i++)
+ *                     printf("%"PRIu32"\n", arcs[i]);
+ *
+ *             // Avoid memory leak.
+ *             if(arcs != fixed_arcs) free(arcs);
+ *     }
+ *
+ * RETURN VALUES:
+ * -1/EINVAL:  Invalid arguments (oid is missing)
+ * -1/ERANGE:  One or more arcs have value out of array cell type range.
+ * >=0:                Number of arcs contained in the OBJECT IDENTIFIER
+ *
+ * WARNING: The function always returns the actual number of arcs,
+ * even if there is no sufficient (arc_slots) provided.
+ */
+ssize_t OBJECT_IDENTIFIER_get_arcs(const OBJECT_IDENTIFIER_t *oid,
+                                   asn_oid_arc_t *arcs, size_t arc_slots);
+
+/*
+ * This functions initializes the OBJECT IDENTIFIER object with
+ * the given set of arcs.
+ * The minimum of two arcs must be present; some restrictions apply.
+ * RETURN VALUES:
+ * -1/EINVAL:  Invalid arguments
+ * -1/ERANGE:  The first two arcs do not conform to ASN.1 restrictions.
+ * -1/ENOMEM:  Memory allocation failed
+ * 0:          The object was initialized with new arcs.
+ */
+int OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *oid,
+                               const asn_oid_arc_t *arcs, size_t arcs_count);
+
+
+/*
+ * Parse the OBJECT IDENTIFIER textual representation ("1.3.6.1.4.1.9363").
+ * No arc can exceed the (0..ASN_OID_ARC_MAX, which is the same as UINT32_MAX).
+ * This function is not specific to OBJECT IDENTIFIER, it may be used to parse
+ * the RELATIVE-OID data, or any other data consisting of dot-separated
+ * series of numeric values.
+ *
+ * If (oid_txt_length == -1), the strlen() will be invoked to determine the
+ * size of the (oid_text) string.
+ * 
+ * After return, the optional (opt_oid_text_end) is set to the character after
+ * the last parsed one. (opt_oid_text_end) is never less than (oid_text).
+ * 
+ * RETURN VALUES:
+ *   -1:       Parse error.
+ * >= 0:       Number of arcs contained in the OBJECT IDENTIFIER.
+ * 
+ * WARNING: The function always returns the real number of arcs,
+ * even if there is no sufficient (arc_slots) provided.
+ * This is useful for (arc_slots) value estimation.
+ */
+ssize_t OBJECT_IDENTIFIER_parse_arcs(const char *oid_text,
+                                     ssize_t oid_txt_length,
+                                     asn_oid_arc_t *arcs, size_t arcs_count,
+                                     const char **opt_oid_text_end);
+
+/*
+ * Internal functions.
+ * Used by RELATIVE-OID implementation in particular.
+ */
+
+/*
+ * Retrieve a single arc of size from the (arcbuf) buffer.
+ * RETURN VALUES:
+ *  -1: Failed to retrieve the value from the (arcbuf).
+ *  >0: Number of bytes consumed from the (arcbuf), <= (arcbuf_len).
+ */
+ssize_t OBJECT_IDENTIFIER_get_single_arc(const uint8_t *arcbuf,
+                                         size_t arcbuf_len,
+                                         asn_oid_arc_t *ret_value);
+
+/*
+ * Write the unterminated arc value into the (arcbuf) which has the size at
+ * least (arcbuf_len).
+ * RETURN VALUES:
+ *   -1: (arcbuf_len) size is not sufficient to write the value.
+ *  <n>: Number of bytes appended to the arcbuf (<= arcbuf_len).
+ */
+ssize_t OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, size_t arcbuf_len,
+                                         asn_oid_arc_t arc_value);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _OBJECT_IDENTIFIER_H_ */
diff --git a/e2ap/headers/OCTET_STRING.h b/e2ap/headers/OCTET_STRING.h
new file mode 100644 (file)
index 0000000..c2f8bae
--- /dev/null
@@ -0,0 +1,102 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _OCTET_STRING_H_
+#define        _OCTET_STRING_H_
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct OCTET_STRING {
+       uint8_t *buf;   /* Buffer with consecutive OCTET_STRING bits */
+       size_t size;    /* Size of the buffer */
+
+       asn_struct_ctx_t _asn_ctx;      /* Parsing across buffer boundaries */
+} OCTET_STRING_t;
+
+extern asn_TYPE_descriptor_t asn_DEF_OCTET_STRING;
+extern asn_TYPE_operation_t asn_OP_OCTET_STRING;
+
+asn_struct_free_f OCTET_STRING_free;
+asn_struct_print_f OCTET_STRING_print;
+asn_struct_print_f OCTET_STRING_print_utf8;
+asn_struct_compare_f OCTET_STRING_compare;
+ber_type_decoder_f OCTET_STRING_decode_ber;
+der_type_encoder_f OCTET_STRING_encode_der;
+xer_type_decoder_f OCTET_STRING_decode_xer_hex;                /* Hexadecimal */
+xer_type_decoder_f OCTET_STRING_decode_xer_binary;     /* 01010111010 */
+xer_type_decoder_f OCTET_STRING_decode_xer_utf8;       /* ASCII/UTF-8 */
+xer_type_encoder_f OCTET_STRING_encode_xer;
+xer_type_encoder_f OCTET_STRING_encode_xer_utf8;
+oer_type_decoder_f OCTET_STRING_decode_oer;
+oer_type_encoder_f OCTET_STRING_encode_oer;
+per_type_decoder_f OCTET_STRING_decode_uper;
+per_type_encoder_f OCTET_STRING_encode_uper;
+per_type_decoder_f OCTET_STRING_decode_aper;
+per_type_encoder_f OCTET_STRING_encode_aper;
+asn_random_fill_f  OCTET_STRING_random_fill;
+
+#define OCTET_STRING_constraint  asn_generic_no_constraint
+#define OCTET_STRING_decode_xer  OCTET_STRING_decode_xer_hex
+
+/******************************
+ * Handy conversion routines. *
+ ******************************/
+
+/*
+ * This function clears the previous value of the OCTET STRING (if any)
+ * and then allocates a new memory with the specified content (str/size).
+ * If size = -1, the size of the original string will be determined
+ * using strlen(str).
+ * If str equals to NULL, the function will silently clear the
+ * current contents of the OCTET STRING.
+ * Returns 0 if it was possible to perform operation, -1 otherwise.
+ */
+int OCTET_STRING_fromBuf(OCTET_STRING_t *s, const char *str, int size);
+
+/* Handy conversion from the C string into the OCTET STRING. */
+#define        OCTET_STRING_fromString(s, str) OCTET_STRING_fromBuf(s, str, -1)
+
+/*
+ * Allocate and fill the new OCTET STRING and return a pointer to the newly
+ * allocated object. NULL is permitted in str: the function will just allocate
+ * empty OCTET STRING.
+ */
+OCTET_STRING_t *OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td,
+                                         const char *str, int size);
+
+/****************************
+ * Internally useful stuff. *
+ ****************************/
+
+typedef struct asn_OCTET_STRING_specifics_s {
+    /*
+     * Target structure description.
+     */
+    unsigned struct_size;   /* Size of the structure */
+    unsigned ctx_offset;    /* Offset of the asn_struct_ctx_t member */
+
+    enum asn_OS_Subvariant {
+        ASN_OSUBV_ANY, /* The open type (ANY) */
+        ASN_OSUBV_BIT, /* BIT STRING */
+        ASN_OSUBV_STR, /* String types, not {BMP,Universal}String  */
+        ASN_OSUBV_U16, /* 16-bit character (BMPString) */
+        ASN_OSUBV_U32  /* 32-bit character (UniversalString) */
+    } subvariant;
+} asn_OCTET_STRING_specifics_t;
+
+extern asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs;
+
+size_t OCTET_STRING_random_length_constrained(
+    const asn_TYPE_descriptor_t *, const asn_encoding_constraints_t *,
+    size_t max_length);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _OCTET_STRING_H_ */
diff --git a/e2ap/headers/OPEN_TYPE.h b/e2ap/headers/OPEN_TYPE.h
new file mode 100644 (file)
index 0000000..b0d023c
--- /dev/null
@@ -0,0 +1,77 @@
+/*-
+ * Copyright (c) 2017-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN_OPEN_TYPE_H
+#define ASN_OPEN_TYPE_H
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define OPEN_TYPE_free CHOICE_free
+#define OPEN_TYPE_print CHOICE_print
+#define OPEN_TYPE_compare CHOICE_compare
+#define OPEN_TYPE_constraint CHOICE_constraint
+#define OPEN_TYPE_decode_ber NULL
+#define OPEN_TYPE_encode_der CHOICE_encode_der
+#define OPEN_TYPE_decode_xer NULL
+#define OPEN_TYPE_encode_xer CHOICE_encode_xer
+#define OPEN_TYPE_decode_oer NULL
+#define OPEN_TYPE_encode_oer CHOICE_encode_oer
+#define OPEN_TYPE_decode_uper NULL
+#define OPEN_TYPE_decode_aper NULL
+
+extern asn_TYPE_operation_t asn_OP_OPEN_TYPE;
+
+/*
+ * Decode an Open Type which is potentially constraiend
+ * by the other members of the parent structure.
+ */
+asn_dec_rval_t OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx,
+                                 const asn_TYPE_descriptor_t *parent_type,
+                                 void *parent_structure,
+                                 const asn_TYPE_member_t *element,
+                                 const void *ptr, size_t size);
+
+asn_dec_rval_t OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx,
+                                 const asn_TYPE_descriptor_t *parent_type,
+                                 void *parent_structure,
+                                 const asn_TYPE_member_t *element,
+                                 const void *ptr, size_t size);
+
+asn_dec_rval_t OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx,
+                                 const asn_TYPE_descriptor_t *parent_type,
+                                 void *parent_structure,
+                                 asn_TYPE_member_t *element, const void *ptr,
+                                 size_t size);
+
+asn_dec_rval_t OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx,
+                                  const asn_TYPE_descriptor_t *parent_type,
+                                  void *parent_structure,
+                                  const asn_TYPE_member_t *element,
+                                  asn_per_data_t *pd);
+
+asn_dec_rval_t OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx,
+                                  const asn_TYPE_descriptor_t *parent_type,
+                                  void *parent_structure,
+                                  const asn_TYPE_member_t *element,
+                                  asn_per_data_t *pd);
+
+asn_enc_rval_t OPEN_TYPE_encode_uper(
+    const asn_TYPE_descriptor_t *type_descriptor,
+    const asn_per_constraints_t *constraints, const void *struct_ptr,
+    asn_per_outp_t *per_output);
+
+asn_enc_rval_t OPEN_TYPE_encode_aper(
+    const asn_TYPE_descriptor_t *type_descriptor,
+    const asn_per_constraints_t *constraints, const void *struct_ptr,
+    asn_per_outp_t *per_output);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ASN_OPEN_TYPE_H */
diff --git a/e2ap/headers/OffsetOfNbiotChannelNumberToEARFCN.h b/e2ap/headers/OffsetOfNbiotChannelNumberToEARFCN.h
new file mode 100644 (file)
index 0000000..b51353e
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _OffsetOfNbiotChannelNumberToEARFCN_H_
+#define        _OffsetOfNbiotChannelNumberToEARFCN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum OffsetOfNbiotChannelNumberToEARFCN {
+       OffsetOfNbiotChannelNumberToEARFCN_minusTen     = 0,
+       OffsetOfNbiotChannelNumberToEARFCN_minusNine    = 1,
+       OffsetOfNbiotChannelNumberToEARFCN_minusEight   = 2,
+       OffsetOfNbiotChannelNumberToEARFCN_minusSeven   = 3,
+       OffsetOfNbiotChannelNumberToEARFCN_minusSix     = 4,
+       OffsetOfNbiotChannelNumberToEARFCN_minusFive    = 5,
+       OffsetOfNbiotChannelNumberToEARFCN_minusFour    = 6,
+       OffsetOfNbiotChannelNumberToEARFCN_minusThree   = 7,
+       OffsetOfNbiotChannelNumberToEARFCN_minusTwo     = 8,
+       OffsetOfNbiotChannelNumberToEARFCN_minusOne     = 9,
+       OffsetOfNbiotChannelNumberToEARFCN_minusZeroDotFive     = 10,
+       OffsetOfNbiotChannelNumberToEARFCN_zero = 11,
+       OffsetOfNbiotChannelNumberToEARFCN_one  = 12,
+       OffsetOfNbiotChannelNumberToEARFCN_two  = 13,
+       OffsetOfNbiotChannelNumberToEARFCN_three        = 14,
+       OffsetOfNbiotChannelNumberToEARFCN_four = 15,
+       OffsetOfNbiotChannelNumberToEARFCN_five = 16,
+       OffsetOfNbiotChannelNumberToEARFCN_six  = 17,
+       OffsetOfNbiotChannelNumberToEARFCN_seven        = 18,
+       OffsetOfNbiotChannelNumberToEARFCN_eight        = 19,
+       OffsetOfNbiotChannelNumberToEARFCN_nine = 20
+       /*
+        * Enumeration is extensible
+        */
+} e_OffsetOfNbiotChannelNumberToEARFCN;
+
+/* OffsetOfNbiotChannelNumberToEARFCN */
+typedef long    OffsetOfNbiotChannelNumberToEARFCN_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_OffsetOfNbiotChannelNumberToEARFCN;
+asn_struct_free_f OffsetOfNbiotChannelNumberToEARFCN_free;
+asn_struct_print_f OffsetOfNbiotChannelNumberToEARFCN_print;
+asn_constr_check_f OffsetOfNbiotChannelNumberToEARFCN_constraint;
+ber_type_decoder_f OffsetOfNbiotChannelNumberToEARFCN_decode_ber;
+der_type_encoder_f OffsetOfNbiotChannelNumberToEARFCN_encode_der;
+xer_type_decoder_f OffsetOfNbiotChannelNumberToEARFCN_decode_xer;
+xer_type_encoder_f OffsetOfNbiotChannelNumberToEARFCN_encode_xer;
+oer_type_decoder_f OffsetOfNbiotChannelNumberToEARFCN_decode_oer;
+oer_type_encoder_f OffsetOfNbiotChannelNumberToEARFCN_encode_oer;
+per_type_decoder_f OffsetOfNbiotChannelNumberToEARFCN_decode_uper;
+per_type_encoder_f OffsetOfNbiotChannelNumberToEARFCN_encode_uper;
+per_type_decoder_f OffsetOfNbiotChannelNumberToEARFCN_decode_aper;
+per_type_encoder_f OffsetOfNbiotChannelNumberToEARFCN_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _OffsetOfNbiotChannelNumberToEARFCN_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Old-ECGIs.h b/e2ap/headers/Old-ECGIs.h
new file mode 100644 (file)
index 0000000..dfa989c
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Old_ECGIs_H_
+#define        _Old_ECGIs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ECGI;
+
+/* Old-ECGIs */
+typedef struct Old_ECGIs {
+       A_SEQUENCE_OF(struct ECGI) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} Old_ECGIs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Old_ECGIs;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Old_ECGIs_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Oneframe.h b/e2ap/headers/Oneframe.h
new file mode 100644 (file)
index 0000000..d8f07b0
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Oneframe_H_
+#define        _Oneframe_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Oneframe */
+typedef BIT_STRING_t    Oneframe_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Oneframe_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Oneframe;
+asn_struct_free_f Oneframe_free;
+asn_struct_print_f Oneframe_print;
+asn_constr_check_f Oneframe_constraint;
+ber_type_decoder_f Oneframe_decode_ber;
+der_type_encoder_f Oneframe_encode_der;
+xer_type_decoder_f Oneframe_decode_xer;
+xer_type_encoder_f Oneframe_encode_xer;
+oer_type_decoder_f Oneframe_decode_oer;
+oer_type_encoder_f Oneframe_encode_oer;
+per_type_decoder_f Oneframe_decode_uper;
+per_type_encoder_f Oneframe_encode_uper;
+per_type_decoder_f Oneframe_decode_aper;
+per_type_encoder_f Oneframe_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Oneframe_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PA-Values.h b/e2ap/headers/PA-Values.h
new file mode 100644 (file)
index 0000000..91f5bd9
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PA_Values_H_
+#define        _PA_Values_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum PA_Values {
+       PA_Values_dB_6  = 0,
+       PA_Values_dB_4dot77     = 1,
+       PA_Values_dB_3  = 2,
+       PA_Values_dB_1dot77     = 3,
+       PA_Values_dB0   = 4,
+       PA_Values_dB1   = 5,
+       PA_Values_dB2   = 6,
+       PA_Values_dB3   = 7
+       /*
+        * Enumeration is extensible
+        */
+} e_PA_Values;
+
+/* PA-Values */
+typedef long    PA_Values_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PA_Values_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PA_Values;
+extern const asn_INTEGER_specifics_t asn_SPC_PA_Values_specs_1;
+asn_struct_free_f PA_Values_free;
+asn_struct_print_f PA_Values_print;
+asn_constr_check_f PA_Values_constraint;
+ber_type_decoder_f PA_Values_decode_ber;
+der_type_encoder_f PA_Values_encode_der;
+xer_type_decoder_f PA_Values_decode_xer;
+xer_type_encoder_f PA_Values_encode_xer;
+oer_type_decoder_f PA_Values_decode_oer;
+oer_type_encoder_f PA_Values_encode_oer;
+per_type_decoder_f PA_Values_decode_uper;
+per_type_encoder_f PA_Values_encode_uper;
+per_type_decoder_f PA_Values_decode_aper;
+per_type_encoder_f PA_Values_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PA_Values_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PCI.h b/e2ap/headers/PCI.h
new file mode 100644 (file)
index 0000000..973893c
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PCI_H_
+#define        _PCI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PCI */
+typedef long    PCI_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PCI_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PCI;
+asn_struct_free_f PCI_free;
+asn_struct_print_f PCI_print;
+asn_constr_check_f PCI_constraint;
+ber_type_decoder_f PCI_decode_ber;
+der_type_encoder_f PCI_encode_der;
+xer_type_decoder_f PCI_decode_xer;
+xer_type_encoder_f PCI_encode_xer;
+oer_type_decoder_f PCI_decode_oer;
+oer_type_encoder_f PCI_encode_oer;
+per_type_decoder_f PCI_decode_uper;
+per_type_encoder_f PCI_encode_uper;
+per_type_decoder_f PCI_decode_aper;
+per_type_encoder_f PCI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PCI_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PDCP-SN.h b/e2ap/headers/PDCP-SN.h
new file mode 100644 (file)
index 0000000..2a08d72
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PDCP_SN_H_
+#define        _PDCP_SN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PDCP-SN */
+typedef long    PDCP_SN_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PDCP_SN_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PDCP_SN;
+asn_struct_free_f PDCP_SN_free;
+asn_struct_print_f PDCP_SN_print;
+asn_constr_check_f PDCP_SN_constraint;
+ber_type_decoder_f PDCP_SN_decode_ber;
+der_type_encoder_f PDCP_SN_encode_der;
+xer_type_decoder_f PDCP_SN_decode_xer;
+xer_type_encoder_f PDCP_SN_encode_xer;
+oer_type_decoder_f PDCP_SN_decode_oer;
+oer_type_encoder_f PDCP_SN_encode_oer;
+per_type_decoder_f PDCP_SN_decode_uper;
+per_type_encoder_f PDCP_SN_encode_uper;
+per_type_decoder_f PDCP_SN_decode_aper;
+per_type_encoder_f PDCP_SN_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PDCP_SN_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PDCP-SNExtended.h b/e2ap/headers/PDCP-SNExtended.h
new file mode 100644 (file)
index 0000000..14bae74
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PDCP_SNExtended_H_
+#define        _PDCP_SNExtended_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PDCP-SNExtended */
+typedef long    PDCP_SNExtended_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PDCP_SNExtended_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PDCP_SNExtended;
+asn_struct_free_f PDCP_SNExtended_free;
+asn_struct_print_f PDCP_SNExtended_print;
+asn_constr_check_f PDCP_SNExtended_constraint;
+ber_type_decoder_f PDCP_SNExtended_decode_ber;
+der_type_encoder_f PDCP_SNExtended_encode_der;
+xer_type_decoder_f PDCP_SNExtended_decode_xer;
+xer_type_encoder_f PDCP_SNExtended_encode_xer;
+oer_type_decoder_f PDCP_SNExtended_decode_oer;
+oer_type_encoder_f PDCP_SNExtended_encode_oer;
+per_type_decoder_f PDCP_SNExtended_decode_uper;
+per_type_encoder_f PDCP_SNExtended_encode_uper;
+per_type_decoder_f PDCP_SNExtended_decode_aper;
+per_type_encoder_f PDCP_SNExtended_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PDCP_SNExtended_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PDCP-SNlength18.h b/e2ap/headers/PDCP-SNlength18.h
new file mode 100644 (file)
index 0000000..c9859b7
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PDCP_SNlength18_H_
+#define        _PDCP_SNlength18_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PDCP-SNlength18 */
+typedef long    PDCP_SNlength18_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PDCP_SNlength18_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PDCP_SNlength18;
+asn_struct_free_f PDCP_SNlength18_free;
+asn_struct_print_f PDCP_SNlength18_print;
+asn_constr_check_f PDCP_SNlength18_constraint;
+ber_type_decoder_f PDCP_SNlength18_decode_ber;
+der_type_encoder_f PDCP_SNlength18_encode_der;
+xer_type_decoder_f PDCP_SNlength18_decode_xer;
+xer_type_encoder_f PDCP_SNlength18_encode_xer;
+oer_type_decoder_f PDCP_SNlength18_decode_oer;
+oer_type_encoder_f PDCP_SNlength18_encode_oer;
+per_type_decoder_f PDCP_SNlength18_decode_uper;
+per_type_encoder_f PDCP_SNlength18_encode_uper;
+per_type_decoder_f PDCP_SNlength18_decode_aper;
+per_type_encoder_f PDCP_SNlength18_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PDCP_SNlength18_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PDCPChangeIndication.h b/e2ap/headers/PDCPChangeIndication.h
new file mode 100644 (file)
index 0000000..d95bda2
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PDCPChangeIndication_H_
+#define        _PDCPChangeIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum PDCPChangeIndication {
+       PDCPChangeIndication_s_KgNB_update_required     = 0,
+       PDCPChangeIndication_pDCP_data_recovery_required        = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_PDCPChangeIndication;
+
+/* PDCPChangeIndication */
+typedef long    PDCPChangeIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PDCPChangeIndication;
+asn_struct_free_f PDCPChangeIndication_free;
+asn_struct_print_f PDCPChangeIndication_print;
+asn_constr_check_f PDCPChangeIndication_constraint;
+ber_type_decoder_f PDCPChangeIndication_decode_ber;
+der_type_encoder_f PDCPChangeIndication_encode_der;
+xer_type_decoder_f PDCPChangeIndication_decode_xer;
+xer_type_encoder_f PDCPChangeIndication_encode_xer;
+oer_type_decoder_f PDCPChangeIndication_decode_oer;
+oer_type_encoder_f PDCPChangeIndication_encode_oer;
+per_type_decoder_f PDCPChangeIndication_decode_uper;
+per_type_encoder_f PDCPChangeIndication_encode_uper;
+per_type_decoder_f PDCPChangeIndication_decode_aper;
+per_type_encoder_f PDCPChangeIndication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PDCPChangeIndication_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PDCPSnLength.h b/e2ap/headers/PDCPSnLength.h
new file mode 100644 (file)
index 0000000..09f55aa
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PDCPSnLength_H_
+#define        _PDCPSnLength_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum PDCPSnLength {
+       PDCPSnLength_twelve_bits        = 0,
+       PDCPSnLength_eighteen_bits      = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_PDCPSnLength;
+
+/* PDCPSnLength */
+typedef long    PDCPSnLength_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PDCPSnLength;
+asn_struct_free_f PDCPSnLength_free;
+asn_struct_print_f PDCPSnLength_print;
+asn_constr_check_f PDCPSnLength_constraint;
+ber_type_decoder_f PDCPSnLength_decode_ber;
+der_type_encoder_f PDCPSnLength_encode_der;
+xer_type_decoder_f PDCPSnLength_decode_xer;
+xer_type_encoder_f PDCPSnLength_encode_xer;
+oer_type_decoder_f PDCPSnLength_decode_oer;
+oer_type_encoder_f PDCPSnLength_encode_oer;
+per_type_decoder_f PDCPSnLength_decode_uper;
+per_type_encoder_f PDCPSnLength_encode_uper;
+per_type_decoder_f PDCPSnLength_decode_aper;
+per_type_encoder_f PDCPSnLength_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PDCPSnLength_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PLMN-Identity.h b/e2ap/headers/PLMN-Identity.h
new file mode 100644 (file)
index 0000000..8ac7e32
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PLMN_Identity_H_
+#define        _PLMN_Identity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PLMN-Identity */
+typedef OCTET_STRING_t  PLMN_Identity_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PLMN_Identity;
+asn_struct_free_f PLMN_Identity_free;
+asn_struct_print_f PLMN_Identity_print;
+asn_constr_check_f PLMN_Identity_constraint;
+ber_type_decoder_f PLMN_Identity_decode_ber;
+der_type_encoder_f PLMN_Identity_encode_der;
+xer_type_decoder_f PLMN_Identity_decode_xer;
+xer_type_encoder_f PLMN_Identity_encode_xer;
+oer_type_decoder_f PLMN_Identity_decode_oer;
+oer_type_encoder_f PLMN_Identity_encode_oer;
+per_type_decoder_f PLMN_Identity_decode_uper;
+per_type_encoder_f PLMN_Identity_encode_uper;
+per_type_decoder_f PLMN_Identity_decode_aper;
+per_type_encoder_f PLMN_Identity_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PLMN_Identity_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PLMNAreaBasedQMC.h b/e2ap/headers/PLMNAreaBasedQMC.h
new file mode 100644 (file)
index 0000000..fd2ada1
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PLMNAreaBasedQMC_H_
+#define        _PLMNAreaBasedQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNListforQMC.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* PLMNAreaBasedQMC */
+typedef struct PLMNAreaBasedQMC {
+       PLMNListforQMC_t         plmnListforQMC;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} PLMNAreaBasedQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PLMNAreaBasedQMC;
+extern asn_SEQUENCE_specifics_t asn_SPC_PLMNAreaBasedQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_PLMNAreaBasedQMC_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PLMNAreaBasedQMC_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PLMNListforQMC.h b/e2ap/headers/PLMNListforQMC.h
new file mode 100644 (file)
index 0000000..26abb3e
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PLMNListforQMC_H_
+#define        _PLMNListforQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMN-Identity.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PLMNListforQMC */
+typedef struct PLMNListforQMC {
+       A_SEQUENCE_OF(PLMN_Identity_t) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} PLMNListforQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PLMNListforQMC;
+extern asn_SET_OF_specifics_t asn_SPC_PLMNListforQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_PLMNListforQMC_1[1];
+extern asn_per_constraints_t asn_PER_type_PLMNListforQMC_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PLMNListforQMC_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PRACH-Configuration.h b/e2ap/headers/PRACH-Configuration.h
new file mode 100644 (file)
index 0000000..8f428e1
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PRACH_Configuration_H_
+#define        _PRACH_Configuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <BOOLEAN.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* PRACH-Configuration */
+typedef struct PRACH_Configuration {
+       long     rootSequenceIndex;
+       long     zeroCorrelationIndex;
+       BOOLEAN_t        highSpeedFlag;
+       long     prach_FreqOffset;
+       long    *prach_ConfigIndex;     /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} PRACH_Configuration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PRACH_Configuration;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PRACH_Configuration_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Packet-LossRate.h b/e2ap/headers/Packet-LossRate.h
new file mode 100644 (file)
index 0000000..1e62543
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Packet_LossRate_H_
+#define        _Packet_LossRate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Packet-LossRate */
+typedef long    Packet_LossRate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Packet_LossRate;
+asn_struct_free_f Packet_LossRate_free;
+asn_struct_print_f Packet_LossRate_print;
+asn_constr_check_f Packet_LossRate_constraint;
+ber_type_decoder_f Packet_LossRate_decode_ber;
+der_type_encoder_f Packet_LossRate_encode_der;
+xer_type_decoder_f Packet_LossRate_decode_xer;
+xer_type_encoder_f Packet_LossRate_encode_xer;
+oer_type_decoder_f Packet_LossRate_decode_oer;
+oer_type_encoder_f Packet_LossRate_encode_oer;
+per_type_decoder_f Packet_LossRate_decode_uper;
+per_type_encoder_f Packet_LossRate_encode_uper;
+per_type_decoder_f Packet_LossRate_decode_aper;
+per_type_encoder_f Packet_LossRate_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Packet_LossRate_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PartialSuccessIndicator.h b/e2ap/headers/PartialSuccessIndicator.h
new file mode 100644 (file)
index 0000000..b8ac726
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PartialSuccessIndicator_H_
+#define        _PartialSuccessIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum PartialSuccessIndicator {
+       PartialSuccessIndicator_partial_success_allowed = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_PartialSuccessIndicator;
+
+/* PartialSuccessIndicator */
+typedef long    PartialSuccessIndicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PartialSuccessIndicator;
+asn_struct_free_f PartialSuccessIndicator_free;
+asn_struct_print_f PartialSuccessIndicator_print;
+asn_constr_check_f PartialSuccessIndicator_constraint;
+ber_type_decoder_f PartialSuccessIndicator_decode_ber;
+der_type_encoder_f PartialSuccessIndicator_encode_der;
+xer_type_decoder_f PartialSuccessIndicator_decode_xer;
+xer_type_encoder_f PartialSuccessIndicator_encode_xer;
+oer_type_decoder_f PartialSuccessIndicator_decode_oer;
+oer_type_encoder_f PartialSuccessIndicator_encode_oer;
+per_type_decoder_f PartialSuccessIndicator_decode_uper;
+per_type_encoder_f PartialSuccessIndicator_encode_uper;
+per_type_decoder_f PartialSuccessIndicator_decode_aper;
+per_type_encoder_f PartialSuccessIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PartialSuccessIndicator_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PedestrianUE.h b/e2ap/headers/PedestrianUE.h
new file mode 100644 (file)
index 0000000..41cc061
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PedestrianUE_H_
+#define        _PedestrianUE_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum PedestrianUE {
+       PedestrianUE_authorized = 0,
+       PedestrianUE_not_authorized     = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_PedestrianUE;
+
+/* PedestrianUE */
+typedef long    PedestrianUE_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PedestrianUE_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PedestrianUE;
+extern const asn_INTEGER_specifics_t asn_SPC_PedestrianUE_specs_1;
+asn_struct_free_f PedestrianUE_free;
+asn_struct_print_f PedestrianUE_print;
+asn_constr_check_f PedestrianUE_constraint;
+ber_type_decoder_f PedestrianUE_decode_ber;
+der_type_encoder_f PedestrianUE_encode_der;
+xer_type_decoder_f PedestrianUE_decode_xer;
+xer_type_encoder_f PedestrianUE_encode_xer;
+oer_type_decoder_f PedestrianUE_decode_oer;
+oer_type_encoder_f PedestrianUE_encode_oer;
+per_type_decoder_f PedestrianUE_decode_uper;
+per_type_encoder_f PedestrianUE_encode_uper;
+per_type_decoder_f PedestrianUE_decode_aper;
+per_type_encoder_f PedestrianUE_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PedestrianUE_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Port-Number.h b/e2ap/headers/Port-Number.h
new file mode 100644 (file)
index 0000000..06a0ba6
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Port_Number_H_
+#define        _Port_Number_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Port-Number */
+typedef OCTET_STRING_t  Port_Number_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Port_Number_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Port_Number;
+asn_struct_free_f Port_Number_free;
+asn_struct_print_f Port_Number_print;
+asn_constr_check_f Port_Number_constraint;
+ber_type_decoder_f Port_Number_decode_ber;
+der_type_encoder_f Port_Number_encode_der;
+xer_type_decoder_f Port_Number_decode_xer;
+xer_type_encoder_f Port_Number_encode_xer;
+oer_type_decoder_f Port_Number_decode_oer;
+oer_type_encoder_f Port_Number_encode_oer;
+per_type_decoder_f Port_Number_decode_uper;
+per_type_encoder_f Port_Number_encode_uper;
+per_type_decoder_f Port_Number_decode_aper;
+per_type_encoder_f Port_Number_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Port_Number_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Pre-emptionCapability.h b/e2ap/headers/Pre-emptionCapability.h
new file mode 100644 (file)
index 0000000..1d74096
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Pre_emptionCapability_H_
+#define        _Pre_emptionCapability_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Pre_emptionCapability {
+       Pre_emptionCapability_shall_not_trigger_pre_emption     = 0,
+       Pre_emptionCapability_may_trigger_pre_emption   = 1
+} e_Pre_emptionCapability;
+
+/* Pre-emptionCapability */
+typedef long    Pre_emptionCapability_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Pre_emptionCapability_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Pre_emptionCapability;
+extern const asn_INTEGER_specifics_t asn_SPC_Pre_emptionCapability_specs_1;
+asn_struct_free_f Pre_emptionCapability_free;
+asn_struct_print_f Pre_emptionCapability_print;
+asn_constr_check_f Pre_emptionCapability_constraint;
+ber_type_decoder_f Pre_emptionCapability_decode_ber;
+der_type_encoder_f Pre_emptionCapability_encode_der;
+xer_type_decoder_f Pre_emptionCapability_decode_xer;
+xer_type_encoder_f Pre_emptionCapability_encode_xer;
+oer_type_decoder_f Pre_emptionCapability_decode_oer;
+oer_type_encoder_f Pre_emptionCapability_encode_oer;
+per_type_decoder_f Pre_emptionCapability_decode_uper;
+per_type_encoder_f Pre_emptionCapability_encode_uper;
+per_type_decoder_f Pre_emptionCapability_decode_aper;
+per_type_encoder_f Pre_emptionCapability_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Pre_emptionCapability_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Pre-emptionVulnerability.h b/e2ap/headers/Pre-emptionVulnerability.h
new file mode 100644 (file)
index 0000000..e55b091
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Pre_emptionVulnerability_H_
+#define        _Pre_emptionVulnerability_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Pre_emptionVulnerability {
+       Pre_emptionVulnerability_not_pre_emptable       = 0,
+       Pre_emptionVulnerability_pre_emptable   = 1
+} e_Pre_emptionVulnerability;
+
+/* Pre-emptionVulnerability */
+typedef long    Pre_emptionVulnerability_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Pre_emptionVulnerability_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Pre_emptionVulnerability;
+extern const asn_INTEGER_specifics_t asn_SPC_Pre_emptionVulnerability_specs_1;
+asn_struct_free_f Pre_emptionVulnerability_free;
+asn_struct_print_f Pre_emptionVulnerability_print;
+asn_constr_check_f Pre_emptionVulnerability_constraint;
+ber_type_decoder_f Pre_emptionVulnerability_decode_ber;
+der_type_encoder_f Pre_emptionVulnerability_encode_der;
+xer_type_decoder_f Pre_emptionVulnerability_decode_xer;
+xer_type_encoder_f Pre_emptionVulnerability_encode_xer;
+oer_type_decoder_f Pre_emptionVulnerability_decode_oer;
+oer_type_encoder_f Pre_emptionVulnerability_encode_oer;
+per_type_decoder_f Pre_emptionVulnerability_decode_uper;
+per_type_encoder_f Pre_emptionVulnerability_encode_uper;
+per_type_decoder_f Pre_emptionVulnerability_decode_aper;
+per_type_encoder_f Pre_emptionVulnerability_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Pre_emptionVulnerability_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Presence.h b/e2ap/headers/Presence.h
new file mode 100644 (file)
index 0000000..f0bd8e7
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-CommonDataTypes"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Presence_H_
+#define        _Presence_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Presence {
+       Presence_optional       = 0,
+       Presence_conditional    = 1,
+       Presence_mandatory      = 2
+} e_Presence;
+
+/* Presence */
+typedef long    Presence_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Presence_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Presence;
+extern const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1;
+asn_struct_free_f Presence_free;
+asn_struct_print_f Presence_print;
+asn_constr_check_f Presence_constraint;
+ber_type_decoder_f Presence_decode_ber;
+der_type_encoder_f Presence_encode_der;
+xer_type_decoder_f Presence_decode_xer;
+xer_type_encoder_f Presence_encode_xer;
+oer_type_decoder_f Presence_decode_oer;
+oer_type_encoder_f Presence_encode_oer;
+per_type_decoder_f Presence_decode_uper;
+per_type_encoder_f Presence_encode_uper;
+per_type_decoder_f Presence_decode_aper;
+per_type_encoder_f Presence_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Presence_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PrintableString.h b/e2ap/headers/PrintableString.h
new file mode 100644 (file)
index 0000000..8c2b61a
--- /dev/null
@@ -0,0 +1,37 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _PrintableString_H_
+#define        _PrintableString_H_
+
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef OCTET_STRING_t PrintableString_t;  /* Implemented via OCTET STRING */
+
+extern asn_TYPE_descriptor_t asn_DEF_PrintableString;
+extern asn_TYPE_operation_t asn_OP_PrintableString;
+
+asn_constr_check_f PrintableString_constraint;
+
+#define PrintableString_free            OCTET_STRING_free
+#define PrintableString_print           OCTET_STRING_print_utf8
+#define PrintableString_compare         OCTET_STRING_compare
+#define PrintableString_decode_ber      OCTET_STRING_decode_ber
+#define PrintableString_encode_der      OCTET_STRING_encode_der
+#define PrintableString_decode_xer      OCTET_STRING_decode_xer_utf8
+#define PrintableString_encode_xer      OCTET_STRING_encode_xer_utf8
+#define PrintableString_decode_uper     OCTET_STRING_decode_uper
+#define PrintableString_encode_uper     OCTET_STRING_encode_uper
+#define PrintableString_decode_aper     OCTET_STRING_decode_aper
+#define PrintableString_encode_aper     OCTET_STRING_encode_aper
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PrintableString_H_ */
diff --git a/e2ap/headers/PriorityLevel.h b/e2ap/headers/PriorityLevel.h
new file mode 100644 (file)
index 0000000..30447f2
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PriorityLevel_H_
+#define        _PriorityLevel_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum PriorityLevel {
+       PriorityLevel_spare     = 0,
+       PriorityLevel_highest   = 1,
+       PriorityLevel_lowest    = 14,
+       PriorityLevel_no_priority       = 15
+} e_PriorityLevel;
+
+/* PriorityLevel */
+typedef long    PriorityLevel_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PriorityLevel_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PriorityLevel;
+asn_struct_free_f PriorityLevel_free;
+asn_struct_print_f PriorityLevel_print;
+asn_constr_check_f PriorityLevel_constraint;
+ber_type_decoder_f PriorityLevel_decode_ber;
+der_type_encoder_f PriorityLevel_encode_der;
+xer_type_decoder_f PriorityLevel_decode_xer;
+xer_type_encoder_f PriorityLevel_encode_xer;
+oer_type_decoder_f PriorityLevel_decode_oer;
+oer_type_encoder_f PriorityLevel_encode_oer;
+per_type_decoder_f PriorityLevel_decode_uper;
+per_type_encoder_f PriorityLevel_encode_uper;
+per_type_decoder_f PriorityLevel_decode_aper;
+per_type_encoder_f PriorityLevel_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PriorityLevel_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PrivateIE-Container.h b/e2ap/headers/PrivateIE-Container.h
new file mode 100644 (file)
index 0000000..3417c6c
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PrivateIE_Container_H_
+#define        _PrivateIE_Container_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct PrivateMessage_IEs;
+
+/* PrivateIE-Container */
+typedef struct PrivateIE_Container_9582P0 {
+       A_SEQUENCE_OF(struct PrivateMessage_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} PrivateIE_Container_9582P0_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PrivateIE_Container_9582P0;
+extern asn_SET_OF_specifics_t asn_SPC_PrivateIE_Container_9582P0_specs_1;
+extern asn_TYPE_member_t asn_MBR_PrivateIE_Container_9582P0_1[1];
+extern asn_per_constraints_t asn_PER_type_PrivateIE_Container_9582P0_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PrivateIE_Container_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PrivateIE-Field.h b/e2ap/headers/PrivateIE-Field.h
new file mode 100644 (file)
index 0000000..b1b8520
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PrivateIE_Field_H_
+#define        _PrivateIE_Field_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PrivateIE-ID.h"
+#include "Criticality.h"
+#include <ANY.h>
+#include <asn_ioc.h>
+#include <OPEN_TYPE.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum PrivateMessage_IEs__value_PR {
+       PrivateMessage_IEs__value_PR_NOTHING    /* No components present */
+       
+} PrivateMessage_IEs__value_PR;
+
+/* PrivateIE-Field */
+typedef struct PrivateMessage_IEs {
+       PrivateIE_ID_t   id;
+       Criticality_t    criticality;
+       struct PrivateMessage_IEs__value {
+               PrivateMessage_IEs__value_PR present;
+               union PrivateMessage_IEs__value_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} PrivateMessage_IEs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PrivateMessage_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_PrivateMessage_IEs_specs_1;
+extern asn_TYPE_member_t asn_MBR_PrivateMessage_IEs_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PrivateIE_Field_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PrivateIE-ID.h b/e2ap/headers/PrivateIE-ID.h
new file mode 100644 (file)
index 0000000..bce729f
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-CommonDataTypes"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PrivateIE_ID_H_
+#define        _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 PrivateIE_ID_PR {
+       PrivateIE_ID_PR_NOTHING,        /* No components present */
+       PrivateIE_ID_PR_local,
+       PrivateIE_ID_PR_global
+} PrivateIE_ID_PR;
+
+/* PrivateIE-ID */
+typedef struct PrivateIE_ID {
+       PrivateIE_ID_PR present;
+       union PrivateIE_ID_u {
+               long     local;
+               OBJECT_IDENTIFIER_t      global;
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} PrivateIE_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PrivateIE_ID;
+extern asn_CHOICE_specifics_t asn_SPC_PrivateIE_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_PrivateIE_ID_1[2];
+extern asn_per_constraints_t asn_PER_type_PrivateIE_ID_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PrivateIE_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PrivateMessage.h b/e2ap/headers/PrivateMessage.h
new file mode 100644 (file)
index 0000000..45bbd17
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _PrivateMessage_H_
+#define        _PrivateMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PrivateIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PrivateMessage */
+typedef struct PrivateMessage {
+       PrivateIE_Container_9582P0_t     privateIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} PrivateMessage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PrivateMessage;
+extern asn_SEQUENCE_specifics_t asn_SPC_PrivateMessage_specs_1;
+extern asn_TYPE_member_t asn_MBR_PrivateMessage_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PrivateMessage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProSeAuthorized.h b/e2ap/headers/ProSeAuthorized.h
new file mode 100644 (file)
index 0000000..650688a
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProSeAuthorized_H_
+#define        _ProSeAuthorized_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProSeDirectDiscovery.h"
+#include "ProSeDirectCommunication.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ProSeAuthorized */
+typedef struct ProSeAuthorized {
+       ProSeDirectDiscovery_t  *proSeDirectDiscovery;  /* OPTIONAL */
+       ProSeDirectCommunication_t      *proSeDirectCommunication;      /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProSeAuthorized_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ProSeAuthorized;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProSeAuthorized_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProSeDirectCommunication.h b/e2ap/headers/ProSeDirectCommunication.h
new file mode 100644 (file)
index 0000000..62b1565
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProSeDirectCommunication_H_
+#define        _ProSeDirectCommunication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ProSeDirectCommunication {
+       ProSeDirectCommunication_authorized     = 0,
+       ProSeDirectCommunication_not_authorized = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_ProSeDirectCommunication;
+
+/* ProSeDirectCommunication */
+typedef long    ProSeDirectCommunication_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ProSeDirectCommunication_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ProSeDirectCommunication;
+extern const asn_INTEGER_specifics_t asn_SPC_ProSeDirectCommunication_specs_1;
+asn_struct_free_f ProSeDirectCommunication_free;
+asn_struct_print_f ProSeDirectCommunication_print;
+asn_constr_check_f ProSeDirectCommunication_constraint;
+ber_type_decoder_f ProSeDirectCommunication_decode_ber;
+der_type_encoder_f ProSeDirectCommunication_encode_der;
+xer_type_decoder_f ProSeDirectCommunication_decode_xer;
+xer_type_encoder_f ProSeDirectCommunication_encode_xer;
+oer_type_decoder_f ProSeDirectCommunication_decode_oer;
+oer_type_encoder_f ProSeDirectCommunication_encode_oer;
+per_type_decoder_f ProSeDirectCommunication_decode_uper;
+per_type_encoder_f ProSeDirectCommunication_encode_uper;
+per_type_decoder_f ProSeDirectCommunication_decode_aper;
+per_type_encoder_f ProSeDirectCommunication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProSeDirectCommunication_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProSeDirectDiscovery.h b/e2ap/headers/ProSeDirectDiscovery.h
new file mode 100644 (file)
index 0000000..3dbf7a5
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProSeDirectDiscovery_H_
+#define        _ProSeDirectDiscovery_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ProSeDirectDiscovery {
+       ProSeDirectDiscovery_authorized = 0,
+       ProSeDirectDiscovery_not_authorized     = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_ProSeDirectDiscovery;
+
+/* ProSeDirectDiscovery */
+typedef long    ProSeDirectDiscovery_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ProSeDirectDiscovery_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ProSeDirectDiscovery;
+extern const asn_INTEGER_specifics_t asn_SPC_ProSeDirectDiscovery_specs_1;
+asn_struct_free_f ProSeDirectDiscovery_free;
+asn_struct_print_f ProSeDirectDiscovery_print;
+asn_constr_check_f ProSeDirectDiscovery_constraint;
+ber_type_decoder_f ProSeDirectDiscovery_decode_ber;
+der_type_encoder_f ProSeDirectDiscovery_encode_der;
+xer_type_decoder_f ProSeDirectDiscovery_decode_xer;
+xer_type_encoder_f ProSeDirectDiscovery_encode_xer;
+oer_type_decoder_f ProSeDirectDiscovery_decode_oer;
+oer_type_encoder_f ProSeDirectDiscovery_encode_oer;
+per_type_decoder_f ProSeDirectDiscovery_decode_uper;
+per_type_encoder_f ProSeDirectDiscovery_encode_uper;
+per_type_decoder_f ProSeDirectDiscovery_decode_aper;
+per_type_encoder_f ProSeDirectDiscovery_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProSeDirectDiscovery_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProSeUEtoNetworkRelaying.h b/e2ap/headers/ProSeUEtoNetworkRelaying.h
new file mode 100644 (file)
index 0000000..81424c2
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProSeUEtoNetworkRelaying_H_
+#define        _ProSeUEtoNetworkRelaying_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ProSeUEtoNetworkRelaying {
+       ProSeUEtoNetworkRelaying_authorized     = 0,
+       ProSeUEtoNetworkRelaying_not_authorized = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_ProSeUEtoNetworkRelaying;
+
+/* ProSeUEtoNetworkRelaying */
+typedef long    ProSeUEtoNetworkRelaying_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ProSeUEtoNetworkRelaying;
+asn_struct_free_f ProSeUEtoNetworkRelaying_free;
+asn_struct_print_f ProSeUEtoNetworkRelaying_print;
+asn_constr_check_f ProSeUEtoNetworkRelaying_constraint;
+ber_type_decoder_f ProSeUEtoNetworkRelaying_decode_ber;
+der_type_encoder_f ProSeUEtoNetworkRelaying_encode_der;
+xer_type_decoder_f ProSeUEtoNetworkRelaying_decode_xer;
+xer_type_encoder_f ProSeUEtoNetworkRelaying_encode_xer;
+oer_type_decoder_f ProSeUEtoNetworkRelaying_decode_oer;
+oer_type_encoder_f ProSeUEtoNetworkRelaying_encode_oer;
+per_type_decoder_f ProSeUEtoNetworkRelaying_decode_uper;
+per_type_encoder_f ProSeUEtoNetworkRelaying_encode_uper;
+per_type_decoder_f ProSeUEtoNetworkRelaying_decode_aper;
+per_type_encoder_f ProSeUEtoNetworkRelaying_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProSeUEtoNetworkRelaying_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProcedureCode.h b/e2ap/headers/ProcedureCode.h
new file mode 100644 (file)
index 0000000..bc9bb1e
--- /dev/null
@@ -0,0 +1,98 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-CommonDataTypes"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProcedureCode_H_
+#define        _ProcedureCode_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ProcedureCode */
+typedef long    ProcedureCode_t;
+
+/* Implementation */
+#define ProcedureCode_id_ricSubscription       ((ProcedureCode_t)201)
+#define ProcedureCode_id_ricSubscriptionDelete ((ProcedureCode_t)202)
+#define ProcedureCode_id_ricServiceUpdate      ((ProcedureCode_t)203)
+#define ProcedureCode_id_ricControl    ((ProcedureCode_t)204)
+#define ProcedureCode_id_ricIndication ((ProcedureCode_t)205)
+#define ProcedureCode_id_ricServiceQuery       ((ProcedureCode_t)206)
+extern asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ProcedureCode;
+asn_struct_free_f ProcedureCode_free;
+asn_struct_print_f ProcedureCode_print;
+asn_constr_check_f ProcedureCode_constraint;
+ber_type_decoder_f ProcedureCode_decode_ber;
+der_type_encoder_f ProcedureCode_encode_der;
+xer_type_decoder_f ProcedureCode_decode_xer;
+xer_type_encoder_f ProcedureCode_encode_xer;
+oer_type_decoder_f ProcedureCode_decode_oer;
+oer_type_encoder_f ProcedureCode_encode_oer;
+per_type_decoder_f ProcedureCode_decode_uper;
+per_type_encoder_f ProcedureCode_encode_uper;
+per_type_decoder_f ProcedureCode_decode_aper;
+per_type_encoder_f ProcedureCode_encode_aper;
+#define ProcedureCode_id_handoverPreparation   ((ProcedureCode_t)0)
+#define ProcedureCode_id_handoverCancel        ((ProcedureCode_t)1)
+#define ProcedureCode_id_loadIndication        ((ProcedureCode_t)2)
+#define ProcedureCode_id_errorIndication       ((ProcedureCode_t)3)
+#define ProcedureCode_id_snStatusTransfer      ((ProcedureCode_t)4)
+#define ProcedureCode_id_uEContextRelease      ((ProcedureCode_t)5)
+#define ProcedureCode_id_x2Setup       ((ProcedureCode_t)6)
+#define ProcedureCode_id_reset ((ProcedureCode_t)7)
+#define ProcedureCode_id_eNBConfigurationUpdate        ((ProcedureCode_t)8)
+#define ProcedureCode_id_resourceStatusReportingInitiation     ((ProcedureCode_t)9)
+#define ProcedureCode_id_resourceStatusReporting       ((ProcedureCode_t)10)
+#define ProcedureCode_id_privateMessage        ((ProcedureCode_t)11)
+#define ProcedureCode_id_mobilitySettingsChange        ((ProcedureCode_t)12)
+#define ProcedureCode_id_rLFIndication ((ProcedureCode_t)13)
+#define ProcedureCode_id_handoverReport        ((ProcedureCode_t)14)
+#define ProcedureCode_id_cellActivation        ((ProcedureCode_t)15)
+#define ProcedureCode_id_x2Release     ((ProcedureCode_t)16)
+#define ProcedureCode_id_x2APMessageTransfer   ((ProcedureCode_t)17)
+#define ProcedureCode_id_x2Removal     ((ProcedureCode_t)18)
+#define ProcedureCode_id_seNBAdditionPreparation       ((ProcedureCode_t)19)
+#define ProcedureCode_id_seNBReconfigurationCompletion ((ProcedureCode_t)20)
+#define ProcedureCode_id_meNBinitiatedSeNBModificationPreparation      ((ProcedureCode_t)21)
+#define ProcedureCode_id_seNBinitiatedSeNBModification ((ProcedureCode_t)22)
+#define ProcedureCode_id_meNBinitiatedSeNBRelease      ((ProcedureCode_t)23)
+#define ProcedureCode_id_seNBinitiatedSeNBRelease      ((ProcedureCode_t)24)
+#define ProcedureCode_id_seNBCounterCheck      ((ProcedureCode_t)25)
+#define ProcedureCode_id_retrieveUEContext     ((ProcedureCode_t)26)
+#define ProcedureCode_id_sgNBAdditionPreparation       ((ProcedureCode_t)27)
+#define ProcedureCode_id_sgNBReconfigurationCompletion ((ProcedureCode_t)28)
+#define ProcedureCode_id_meNBinitiatedSgNBModificationPreparation      ((ProcedureCode_t)29)
+#define ProcedureCode_id_sgNBinitiatedSgNBModification ((ProcedureCode_t)30)
+#define ProcedureCode_id_meNBinitiatedSgNBRelease      ((ProcedureCode_t)31)
+#define ProcedureCode_id_sgNBinitiatedSgNBRelease      ((ProcedureCode_t)32)
+#define ProcedureCode_id_sgNBCounterCheck      ((ProcedureCode_t)33)
+#define ProcedureCode_id_sgNBChange    ((ProcedureCode_t)34)
+#define ProcedureCode_id_rRCTransfer   ((ProcedureCode_t)35)
+#define ProcedureCode_id_endcX2Setup   ((ProcedureCode_t)36)
+#define ProcedureCode_id_endcConfigurationUpdate       ((ProcedureCode_t)37)
+#define ProcedureCode_id_secondaryRATDataUsageReport   ((ProcedureCode_t)38)
+#define ProcedureCode_id_endcCellActivation    ((ProcedureCode_t)39)
+#define ProcedureCode_id_endcPartialReset      ((ProcedureCode_t)40)
+#define ProcedureCode_id_eUTRANRCellResourceCoordination       ((ProcedureCode_t)41)
+#define ProcedureCode_id_SgNBActivityNotification      ((ProcedureCode_t)42)
+#define ProcedureCode_id_endcX2Removal ((ProcedureCode_t)43)
+#define ProcedureCode_id_dataForwardingAddressIndication       ((ProcedureCode_t)44)
+#define ProcedureCode_id_gNBStatusIndication   ((ProcedureCode_t)45)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProcedureCode_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProtectedEUTRAResourceIndication.h b/e2ap/headers/ProtectedEUTRAResourceIndication.h
new file mode 100644 (file)
index 0000000..a871bce
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProtectedEUTRAResourceIndication_H_
+#define        _ProtectedEUTRAResourceIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include "ProtectedResourceList.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ProtectedEUTRAResourceIndication */
+typedef struct ProtectedEUTRAResourceIndication {
+       long     activationSFN;
+       ProtectedResourceList_t  protectedResourceList;
+       long    *mBSFNControlRegionLength;      /* OPTIONAL */
+       long    *pDCCHRegionLength;     /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtectedEUTRAResourceIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ProtectedEUTRAResourceIndication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtectedEUTRAResourceIndication_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProtectedFootprintTimePattern.h b/e2ap/headers/ProtectedFootprintTimePattern.h
new file mode 100644 (file)
index 0000000..60d801a
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProtectedFootprintTimePattern_H_
+#define        _ProtectedFootprintTimePattern_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ProtectedFootprintTimePattern */
+typedef struct ProtectedFootprintTimePattern {
+       long     protectedFootprintTimePeriodicity;
+       long     protectedFootprintStartTime;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtectedFootprintTimePattern_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ProtectedFootprintTimePattern;
+extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedFootprintTimePattern_specs_1;
+extern asn_TYPE_member_t asn_MBR_ProtectedFootprintTimePattern_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtectedFootprintTimePattern_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProtectedResourceList-Item.h b/e2ap/headers/ProtectedResourceList-Item.h
new file mode 100644 (file)
index 0000000..b7f4a1e
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProtectedResourceList_Item_H_
+#define        _ProtectedResourceList_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ResourceType.h"
+#include <BIT_STRING.h>
+#include "ProtectedFootprintTimePattern.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ProtectedResourceList-Item */
+typedef struct ProtectedResourceList_Item {
+       ResourceType_t   resourceType;
+       BIT_STRING_t     intraPRBProtectedResourceFootprint;
+       BIT_STRING_t     protectedFootprintFrequencyPattern;
+       ProtectedFootprintTimePattern_t  protectedFootprintTimePattern;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtectedResourceList_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ProtectedResourceList_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedResourceList_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_ProtectedResourceList_Item_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtectedResourceList_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProtectedResourceList.h b/e2ap/headers/ProtectedResourceList.h
new file mode 100644 (file)
index 0000000..ea41141
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProtectedResourceList_H_
+#define        _ProtectedResourceList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtectedResourceList_Item;
+
+/* ProtectedResourceList */
+typedef struct ProtectedResourceList {
+       A_SEQUENCE_OF(struct ProtectedResourceList_Item) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtectedResourceList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ProtectedResourceList;
+extern asn_SET_OF_specifics_t asn_SPC_ProtectedResourceList_specs_1;
+extern asn_TYPE_member_t asn_MBR_ProtectedResourceList_1[1];
+extern asn_per_constraints_t asn_PER_type_ProtectedResourceList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtectedResourceList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProtocolExtensionContainer.h b/e2ap/headers/ProtocolExtensionContainer.h
new file mode 100644 (file)
index 0000000..34a93be
--- /dev/null
@@ -0,0 +1,2486 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProtocolExtensionContainer_H_
+#define        _ProtocolExtensionContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct UE_ContextInformation_ExtIEs;
+struct E_RABs_ToBeSetup_ItemExtIEs;
+struct UE_ContextReferenceAtSeNB_ItemExtIEs;
+struct UE_ContextReferenceAtWT_ItemExtIEs;
+struct UE_ContextReferenceAtSgNB_ItemExtIEs;
+struct E_RABs_Admitted_Item_ExtIEs;
+struct E_RABs_SubjectToStatusTransfer_ItemExtIEs;
+struct CellInformation_Item_ExtIEs;
+struct ServedCellsToModify_Item_ExtIEs;
+struct CellToReport_Item_ExtIEs;
+struct MeasurementInitiationResult_Item_ExtIEs;
+struct MeasurementFailureCause_Item_ExtIEs;
+struct CompleteFailureCauseInformation_Item_ExtIEs;
+struct CellMeasurementResult_Item_ExtIEs;
+struct ServedCellsToActivate_Item_ExtIEs;
+struct ActivatedCellList_Item_ExtIEs;
+struct RNL_Header_Item_ExtIEs;
+struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs;
+struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs;
+struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs;
+struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs;
+struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs;
+struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs;
+struct UE_ContextInformationSeNBModReqExtIEs;
+struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs;
+struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs;
+struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs;
+struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs;
+struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs;
+struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs;
+struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs;
+struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs;
+struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs;
+struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs;
+struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs;
+struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs;
+struct E_RABs_ToBeReleased_ModReqdItemExtIEs;
+struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs;
+struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs;
+struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs;
+struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs;
+struct E_RABs_SubjectToCounterCheckItemExtIEs;
+struct UE_ContextInformationRetrieve_ExtIEs;
+struct E_RABs_ToBeSetupRetrieve_ItemExtIEs;
+struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs;
+struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs;
+struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs;
+struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs;
+struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs;
+struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs;
+struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs;
+struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs;
+struct UE_ContextInformationSgNBModReqExtIEs;
+struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs;
+struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs;
+struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs;
+struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs;
+struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs;
+struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs;
+struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs;
+struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs;
+struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs;
+struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs;
+struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs;
+struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs;
+struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs;
+struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs;
+struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs;
+struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs;
+struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs;
+struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs;
+struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs;
+struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs;
+struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs;
+struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs;
+struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs;
+struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs;
+struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs;
+struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs;
+struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs;
+struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs;
+struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs;
+struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs;
+struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs;
+struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs;
+struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs;
+struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs;
+struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs;
+struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs;
+struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs;
+struct ServedEUTRAcellsENDCX2Management_ExtIEs;
+struct En_gNBServedCells_ExtIEs;
+struct ServedNRCell_Information_ExtIEs;
+struct FDD_InfoServedNRCell_Information_ExtIEs;
+struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs;
+struct TDD_InfoServedNRCell_Information_ExtIEs;
+struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs;
+struct NRNeighbour_Information_ExtIEs;
+struct Limited_list_ExtIEs;
+struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs;
+struct ServedNRCellsToModify_Item_ExtIEs;
+struct ServedNRCellsToActivate_Item_ExtIEs;
+struct ActivatedNRCellList_Item_ExtIEs;
+struct E_RABs_DataForwardingAddress_ItemExtIEs;
+struct ABSInformationFDD_ExtIEs;
+struct ABSInformationTDD_ExtIEs;
+struct ABS_Status_ExtIEs;
+struct AdditionalSpecialSubframe_Info_ExtIEs;
+struct AdditionalSpecialSubframeExtension_Info_ExtIEs;
+struct AllocationAndRetentionPriority_ExtIEs;
+struct AS_SecurityInformation_ExtIEs;
+struct BluetoothMeasurementConfiguration_ExtIEs;
+struct CellBasedMDT_ExtIEs;
+struct CellBasedQMC_ExtIEs;
+struct CellReplacingInfo_ExtIEs;
+struct CellType_ExtIEs;
+struct CNTypeRestrictionsItem_ExtIEs;
+struct CoMPHypothesisSetItem_ExtIEs;
+struct CoMPInformation_ExtIEs;
+struct CoMPInformationItem_ExtIEs;
+struct CoMPInformationStartTime_ExtIEs;
+struct CompositeAvailableCapacity_ExtIEs;
+struct CompositeAvailableCapacityGroup_ExtIEs;
+struct COUNTvalue_ExtIEs;
+struct COUNTValueExtended_ExtIEs;
+struct COUNTvaluePDCP_SNlength18_ExtIEs;
+struct CriticalityDiagnostics_ExtIEs;
+struct CriticalityDiagnostics_IE_List_ExtIEs;
+struct CSIReportList_ExtIEs;
+struct CSIReportPerCSIProcess_ExtIEs;
+struct CSIReportPerCSIProcessItem_ExtIEs;
+struct DataTrafficResourceIndication_ExtIEs;
+struct DeliveryStatus_ExtIEs;
+struct DynamicNAICSInformation_ExtIEs;
+struct ECGI_ExtIEs;
+struct EnhancedRNTP_ExtIEs;
+struct EnhancedRNTPStartTime_ExtIEs;
+struct EN_DC_ResourceConfigurationExtIEs;
+struct ERABActivityNotifyItem_ExtIEs;
+struct E_RAB_Level_QoS_Parameters_ExtIEs;
+struct E_RAB_Item_ExtIEs;
+struct E_RABUsageReport_Item_ExtIEs;
+struct ExpectedUEBehaviour_ExtIEs;
+struct ExpectedUEActivityBehaviour_ExtIEs;
+struct ExtendedULInterferenceOverloadInfo_ExtIEs;
+struct FDD_Info_ExtIEs;
+struct ForbiddenTAs_Item_ExtIEs;
+struct ForbiddenLAs_Item_ExtIEs;
+struct FreqBandNrItem_ExtIEs;
+struct GBR_QosInformation_ExtIEs;
+struct GlobalENB_ID_ExtIEs;
+struct GlobalGNB_ID_ExtIEs;
+struct GTPtunnelEndpoint_ExtIEs;
+struct GU_Group_ID_ExtIEs;
+struct GUMMEI_ExtIEs;
+struct HandoverRestrictionList_ExtIEs;
+struct HWLoadIndicator_ExtIEs;
+struct LastVisitedEUTRANCellInformation_ExtIEs;
+struct LocationReportingInformation_ExtIEs;
+struct M1PeriodicReporting_ExtIEs;
+struct M1ThresholdEventA2_ExtIEs;
+struct M3Configuration_ExtIEs;
+struct M4Configuration_ExtIEs;
+struct M5Configuration_ExtIEs;
+struct M6Configuration_ExtIEs;
+struct M7Configuration_ExtIEs;
+struct MDT_Configuration_ExtIEs;
+struct MeNBResourceCoordinationInformationExtIEs;
+struct MBSFN_Subframe_Info_ExtIEs;
+struct BandInfo_ExtIEs;
+struct SplitSRB_ExtIEs;
+struct UENRMeasurement_ExtIEs;
+struct Neighbour_Information_ExtIEs;
+struct NRFreqInfo_ExtIEs;
+struct NRCGI_ExtIEs;
+struct NR_TxBW_ExtIEs;
+struct NRUESecurityCapabilities_ExtIEs;
+struct PRACH_Configuration_ExtIEs;
+struct PLMNAreaBasedQMC_ExtIEs;
+struct ProSeAuthorized_ExtIEs;
+struct ProtectedEUTRAResourceIndication_ExtIEs;
+struct ProtectedFootprintTimePattern_ExtIEs;
+struct ProtectedResourceList_Item_ExtIEs;
+struct RadioResourceStatus_ExtIEs;
+struct RelativeNarrowbandTxPower_ExtIEs;
+struct ReservedSubframePattern_ExtIEs;
+struct RLC_Status_ExtIEs;
+struct RSRPMeasurementResult_ExtIEs;
+struct RSRPMRList_ExtIEs;
+struct S1TNLLoadIndicator_ExtIEs;
+struct SecondaryRATUsageReport_Item_ExtIEs;
+struct ServedCell_ExtIEs;
+struct ServedCell_Information_ExtIEs;
+struct SgNBResourceCoordinationInformationExtIEs;
+struct SpecialSubframe_Info_ExtIEs;
+struct SubbandCQI_ExtIEs;
+struct Subscription_Based_UE_DifferentiationInfo_ExtIEs;
+struct ScheduledCommunicationTime_ExtIEs;
+struct SubbandCQIItem_ExtIEs;
+struct SULInformation_ExtIEs;
+struct SupportedSULFreqBandItem_ExtIEs;
+struct TABasedMDT_ExtIEs;
+struct TAIBasedMDT_ExtIEs;
+struct TAI_Item_ExtIEs;
+struct TABasedQMC_ExtIEs;
+struct TAIBasedQMC_ExtIEs;
+struct TDD_Info_ExtIEs;
+struct TraceActivation_ExtIEs;
+struct Tunnel_Information_ExtIEs;
+struct UEAggregate_MaximumBitrate_ExtIEs;
+struct UEAppLayerMeasConfig_ExtIEs;
+struct UESecurityCapabilities_ExtIEs;
+struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs;
+struct UEsToBeResetList_Item_ExtIEs;
+struct ULandDLSharing_ExtIEs;
+struct ULConfiguration_ExtIEs;
+struct UL_HighInterferenceIndicationInfo_Item_ExtIEs;
+struct ULOnlySharing_ExtIEs;
+struct UsableABSInformationFDD_ExtIEs;
+struct UsableABSInformationTDD_ExtIEs;
+struct V2XServicesAuthorized_ExtIEs;
+struct WidebandCQI_ExtIEs;
+struct WLANMeasurementConfiguration_ExtIEs;
+
+/* ProtocolExtensionContainer */
+typedef struct ProtocolExtensionContainer_9566P0 {
+       A_SEQUENCE_OF(struct UE_ContextInformation_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P0_t;
+typedef struct ProtocolExtensionContainer_9566P1 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeSetup_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P1_t;
+typedef struct ProtocolExtensionContainer_9566P2 {
+       A_SEQUENCE_OF(struct UE_ContextReferenceAtSeNB_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P2_t;
+typedef struct ProtocolExtensionContainer_9566P3 {
+       A_SEQUENCE_OF(struct UE_ContextReferenceAtWT_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P3_t;
+typedef struct ProtocolExtensionContainer_9566P4 {
+       A_SEQUENCE_OF(struct UE_ContextReferenceAtSgNB_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P4_t;
+typedef struct ProtocolExtensionContainer_9566P5 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P5_t;
+typedef struct ProtocolExtensionContainer_9566P6 {
+       A_SEQUENCE_OF(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P6_t;
+typedef struct ProtocolExtensionContainer_9566P7 {
+       A_SEQUENCE_OF(struct CellInformation_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P7_t;
+typedef struct ProtocolExtensionContainer_9566P8 {
+       A_SEQUENCE_OF(struct ServedCellsToModify_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P8_t;
+typedef struct ProtocolExtensionContainer_9566P9 {
+       A_SEQUENCE_OF(struct CellToReport_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P9_t;
+typedef struct ProtocolExtensionContainer_9566P10 {
+       A_SEQUENCE_OF(struct MeasurementInitiationResult_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P10_t;
+typedef struct ProtocolExtensionContainer_9566P11 {
+       A_SEQUENCE_OF(struct MeasurementFailureCause_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P11_t;
+typedef struct ProtocolExtensionContainer_9566P12 {
+       A_SEQUENCE_OF(struct CompleteFailureCauseInformation_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P12_t;
+typedef struct ProtocolExtensionContainer_9566P13 {
+       A_SEQUENCE_OF(struct CellMeasurementResult_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P13_t;
+typedef struct ProtocolExtensionContainer_9566P14 {
+       A_SEQUENCE_OF(struct ServedCellsToActivate_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P14_t;
+typedef struct ProtocolExtensionContainer_9566P15 {
+       A_SEQUENCE_OF(struct ActivatedCellList_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P15_t;
+typedef struct ProtocolExtensionContainer_9566P16 {
+       A_SEQUENCE_OF(struct RNL_Header_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P16_t;
+typedef struct ProtocolExtensionContainer_9566P17 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P17_t;
+typedef struct ProtocolExtensionContainer_9566P18 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P18_t;
+typedef struct ProtocolExtensionContainer_9566P19 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P19_t;
+typedef struct ProtocolExtensionContainer_9566P20 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P20_t;
+typedef struct ProtocolExtensionContainer_9566P21 {
+       A_SEQUENCE_OF(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P21_t;
+typedef struct ProtocolExtensionContainer_9566P22 {
+       A_SEQUENCE_OF(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P22_t;
+typedef struct ProtocolExtensionContainer_9566P23 {
+       A_SEQUENCE_OF(struct UE_ContextInformationSeNBModReqExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P23_t;
+typedef struct ProtocolExtensionContainer_9566P24 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P24_t;
+typedef struct ProtocolExtensionContainer_9566P25 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P25_t;
+typedef struct ProtocolExtensionContainer_9566P26 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P26_t;
+typedef struct ProtocolExtensionContainer_9566P27 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P27_t;
+typedef struct ProtocolExtensionContainer_9566P28 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P28_t;
+typedef struct ProtocolExtensionContainer_9566P29 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P29_t;
+typedef struct ProtocolExtensionContainer_9566P30 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P30_t;
+typedef struct ProtocolExtensionContainer_9566P31 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P31_t;
+typedef struct ProtocolExtensionContainer_9566P32 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P32_t;
+typedef struct ProtocolExtensionContainer_9566P33 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P33_t;
+typedef struct ProtocolExtensionContainer_9566P34 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P34_t;
+typedef struct ProtocolExtensionContainer_9566P35 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P35_t;
+typedef struct ProtocolExtensionContainer_9566P36 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_ModReqdItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P36_t;
+typedef struct ProtocolExtensionContainer_9566P37 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P37_t;
+typedef struct ProtocolExtensionContainer_9566P38 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P38_t;
+typedef struct ProtocolExtensionContainer_9566P39 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P39_t;
+typedef struct ProtocolExtensionContainer_9566P40 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P40_t;
+typedef struct ProtocolExtensionContainer_9566P41 {
+       A_SEQUENCE_OF(struct E_RABs_SubjectToCounterCheckItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P41_t;
+typedef struct ProtocolExtensionContainer_9566P42 {
+       A_SEQUENCE_OF(struct UE_ContextInformationRetrieve_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P42_t;
+typedef struct ProtocolExtensionContainer_9566P43 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P43_t;
+typedef struct ProtocolExtensionContainer_9566P44 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P44_t;
+typedef struct ProtocolExtensionContainer_9566P45 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P45_t;
+typedef struct ProtocolExtensionContainer_9566P46 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P46_t;
+typedef struct ProtocolExtensionContainer_9566P47 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P47_t;
+typedef struct ProtocolExtensionContainer_9566P48 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P48_t;
+typedef struct ProtocolExtensionContainer_9566P49 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P49_t;
+typedef struct ProtocolExtensionContainer_9566P50 {
+       A_SEQUENCE_OF(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P50_t;
+typedef struct ProtocolExtensionContainer_9566P51 {
+       A_SEQUENCE_OF(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P51_t;
+typedef struct ProtocolExtensionContainer_9566P52 {
+       A_SEQUENCE_OF(struct UE_ContextInformationSgNBModReqExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P52_t;
+typedef struct ProtocolExtensionContainer_9566P53 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P53_t;
+typedef struct ProtocolExtensionContainer_9566P54 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P54_t;
+typedef struct ProtocolExtensionContainer_9566P55 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P55_t;
+typedef struct ProtocolExtensionContainer_9566P56 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P56_t;
+typedef struct ProtocolExtensionContainer_9566P57 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P57_t;
+typedef struct ProtocolExtensionContainer_9566P58 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P58_t;
+typedef struct ProtocolExtensionContainer_9566P59 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P59_t;
+typedef struct ProtocolExtensionContainer_9566P60 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P60_t;
+typedef struct ProtocolExtensionContainer_9566P61 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P61_t;
+typedef struct ProtocolExtensionContainer_9566P62 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P62_t;
+typedef struct ProtocolExtensionContainer_9566P63 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P63_t;
+typedef struct ProtocolExtensionContainer_9566P64 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P64_t;
+typedef struct ProtocolExtensionContainer_9566P65 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P65_t;
+typedef struct ProtocolExtensionContainer_9566P66 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P66_t;
+typedef struct ProtocolExtensionContainer_9566P67 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P67_t;
+typedef struct ProtocolExtensionContainer_9566P68 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P68_t;
+typedef struct ProtocolExtensionContainer_9566P69 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P69_t;
+typedef struct ProtocolExtensionContainer_9566P70 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P70_t;
+typedef struct ProtocolExtensionContainer_9566P71 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P71_t;
+typedef struct ProtocolExtensionContainer_9566P72 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P72_t;
+typedef struct ProtocolExtensionContainer_9566P73 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P73_t;
+typedef struct ProtocolExtensionContainer_9566P74 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P74_t;
+typedef struct ProtocolExtensionContainer_9566P75 {
+       A_SEQUENCE_OF(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P75_t;
+typedef struct ProtocolExtensionContainer_9566P76 {
+       A_SEQUENCE_OF(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P76_t;
+typedef struct ProtocolExtensionContainer_9566P77 {
+       A_SEQUENCE_OF(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P77_t;
+typedef struct ProtocolExtensionContainer_9566P78 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P78_t;
+typedef struct ProtocolExtensionContainer_9566P79 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P79_t;
+typedef struct ProtocolExtensionContainer_9566P80 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P80_t;
+typedef struct ProtocolExtensionContainer_9566P81 {
+       A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P81_t;
+typedef struct ProtocolExtensionContainer_9566P82 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P82_t;
+typedef struct ProtocolExtensionContainer_9566P83 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P83_t;
+typedef struct ProtocolExtensionContainer_9566P84 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P84_t;
+typedef struct ProtocolExtensionContainer_9566P85 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P85_t;
+typedef struct ProtocolExtensionContainer_9566P86 {
+       A_SEQUENCE_OF(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P86_t;
+typedef struct ProtocolExtensionContainer_9566P87 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P87_t;
+typedef struct ProtocolExtensionContainer_9566P88 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P88_t;
+typedef struct ProtocolExtensionContainer_9566P89 {
+       A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P89_t;
+typedef struct ProtocolExtensionContainer_9566P90 {
+       A_SEQUENCE_OF(struct ServedEUTRAcellsENDCX2Management_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P90_t;
+typedef struct ProtocolExtensionContainer_9566P91 {
+       A_SEQUENCE_OF(struct En_gNBServedCells_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P91_t;
+typedef struct ProtocolExtensionContainer_9566P92 {
+       A_SEQUENCE_OF(struct ServedNRCell_Information_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P92_t;
+typedef struct ProtocolExtensionContainer_9566P93 {
+       A_SEQUENCE_OF(struct FDD_InfoServedNRCell_Information_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P93_t;
+typedef struct ProtocolExtensionContainer_9566P94 {
+       A_SEQUENCE_OF(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P94_t;
+typedef struct ProtocolExtensionContainer_9566P95 {
+       A_SEQUENCE_OF(struct TDD_InfoServedNRCell_Information_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P95_t;
+typedef struct ProtocolExtensionContainer_9566P96 {
+       A_SEQUENCE_OF(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P96_t;
+typedef struct ProtocolExtensionContainer_9566P97 {
+       A_SEQUENCE_OF(struct NRNeighbour_Information_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P97_t;
+typedef struct ProtocolExtensionContainer_9566P98 {
+       A_SEQUENCE_OF(struct Limited_list_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P98_t;
+typedef struct ProtocolExtensionContainer_9566P99 {
+       A_SEQUENCE_OF(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P99_t;
+typedef struct ProtocolExtensionContainer_9566P100 {
+       A_SEQUENCE_OF(struct ServedNRCellsToModify_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P100_t;
+typedef struct ProtocolExtensionContainer_9566P101 {
+       A_SEQUENCE_OF(struct ServedNRCellsToActivate_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P101_t;
+typedef struct ProtocolExtensionContainer_9566P102 {
+       A_SEQUENCE_OF(struct ActivatedNRCellList_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P102_t;
+typedef struct ProtocolExtensionContainer_9566P103 {
+       A_SEQUENCE_OF(struct E_RABs_DataForwardingAddress_ItemExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P103_t;
+typedef struct ProtocolExtensionContainer_9566P104 {
+       A_SEQUENCE_OF(struct ABSInformationFDD_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P104_t;
+typedef struct ProtocolExtensionContainer_9566P105 {
+       A_SEQUENCE_OF(struct ABSInformationTDD_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P105_t;
+typedef struct ProtocolExtensionContainer_9566P106 {
+       A_SEQUENCE_OF(struct ABS_Status_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P106_t;
+typedef struct ProtocolExtensionContainer_9566P107 {
+       A_SEQUENCE_OF(struct AdditionalSpecialSubframe_Info_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P107_t;
+typedef struct ProtocolExtensionContainer_9566P108 {
+       A_SEQUENCE_OF(struct AdditionalSpecialSubframeExtension_Info_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P108_t;
+typedef struct ProtocolExtensionContainer_9566P109 {
+       A_SEQUENCE_OF(struct AllocationAndRetentionPriority_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P109_t;
+typedef struct ProtocolExtensionContainer_9566P110 {
+       A_SEQUENCE_OF(struct AS_SecurityInformation_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P110_t;
+typedef struct ProtocolExtensionContainer_9566P111 {
+       A_SEQUENCE_OF(struct BluetoothMeasurementConfiguration_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P111_t;
+typedef struct ProtocolExtensionContainer_9566P112 {
+       A_SEQUENCE_OF(struct CellBasedMDT_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P112_t;
+typedef struct ProtocolExtensionContainer_9566P113 {
+       A_SEQUENCE_OF(struct CellBasedQMC_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P113_t;
+typedef struct ProtocolExtensionContainer_9566P114 {
+       A_SEQUENCE_OF(struct CellReplacingInfo_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P114_t;
+typedef struct ProtocolExtensionContainer_9566P115 {
+       A_SEQUENCE_OF(struct CellType_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P115_t;
+typedef struct ProtocolExtensionContainer_9566P116 {
+       A_SEQUENCE_OF(struct CNTypeRestrictionsItem_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P116_t;
+typedef struct ProtocolExtensionContainer_9566P117 {
+       A_SEQUENCE_OF(struct CoMPHypothesisSetItem_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P117_t;
+typedef struct ProtocolExtensionContainer_9566P118 {
+       A_SEQUENCE_OF(struct CoMPInformation_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P118_t;
+typedef struct ProtocolExtensionContainer_9566P119 {
+       A_SEQUENCE_OF(struct CoMPInformationItem_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P119_t;
+typedef struct ProtocolExtensionContainer_9566P120 {
+       A_SEQUENCE_OF(struct CoMPInformationStartTime_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P120_t;
+typedef struct ProtocolExtensionContainer_9566P121 {
+       A_SEQUENCE_OF(struct CompositeAvailableCapacity_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P121_t;
+typedef struct ProtocolExtensionContainer_9566P122 {
+       A_SEQUENCE_OF(struct CompositeAvailableCapacityGroup_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P122_t;
+typedef struct ProtocolExtensionContainer_9566P123 {
+       A_SEQUENCE_OF(struct COUNTvalue_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P123_t;
+typedef struct ProtocolExtensionContainer_9566P124 {
+       A_SEQUENCE_OF(struct COUNTValueExtended_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P124_t;
+typedef struct ProtocolExtensionContainer_9566P125 {
+       A_SEQUENCE_OF(struct COUNTvaluePDCP_SNlength18_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P125_t;
+typedef struct ProtocolExtensionContainer_9566P126 {
+       A_SEQUENCE_OF(struct CriticalityDiagnostics_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P126_t;
+typedef struct ProtocolExtensionContainer_9566P127 {
+       A_SEQUENCE_OF(struct CriticalityDiagnostics_IE_List_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P127_t;
+typedef struct ProtocolExtensionContainer_9566P128 {
+       A_SEQUENCE_OF(struct CSIReportList_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P128_t;
+typedef struct ProtocolExtensionContainer_9566P129 {
+       A_SEQUENCE_OF(struct CSIReportPerCSIProcess_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P129_t;
+typedef struct ProtocolExtensionContainer_9566P130 {
+       A_SEQUENCE_OF(struct CSIReportPerCSIProcessItem_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P130_t;
+typedef struct ProtocolExtensionContainer_9566P131 {
+       A_SEQUENCE_OF(struct DataTrafficResourceIndication_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P131_t;
+typedef struct ProtocolExtensionContainer_9566P132 {
+       A_SEQUENCE_OF(struct DeliveryStatus_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P132_t;
+typedef struct ProtocolExtensionContainer_9566P133 {
+       A_SEQUENCE_OF(struct DynamicNAICSInformation_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P133_t;
+typedef struct ProtocolExtensionContainer_9566P134 {
+       A_SEQUENCE_OF(struct ECGI_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P134_t;
+typedef struct ProtocolExtensionContainer_9566P135 {
+       A_SEQUENCE_OF(struct EnhancedRNTP_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P135_t;
+typedef struct ProtocolExtensionContainer_9566P136 {
+       A_SEQUENCE_OF(struct EnhancedRNTPStartTime_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P136_t;
+typedef struct ProtocolExtensionContainer_9566P137 {
+       A_SEQUENCE_OF(struct EN_DC_ResourceConfigurationExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P137_t;
+typedef struct ProtocolExtensionContainer_9566P138 {
+       A_SEQUENCE_OF(struct ERABActivityNotifyItem_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P138_t;
+typedef struct ProtocolExtensionContainer_9566P139 {
+       A_SEQUENCE_OF(struct E_RAB_Level_QoS_Parameters_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P139_t;
+typedef struct ProtocolExtensionContainer_9566P140 {
+       A_SEQUENCE_OF(struct E_RAB_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P140_t;
+typedef struct ProtocolExtensionContainer_9566P141 {
+       A_SEQUENCE_OF(struct E_RABUsageReport_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P141_t;
+typedef struct ProtocolExtensionContainer_9566P142 {
+       A_SEQUENCE_OF(struct ExpectedUEBehaviour_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P142_t;
+typedef struct ProtocolExtensionContainer_9566P143 {
+       A_SEQUENCE_OF(struct ExpectedUEActivityBehaviour_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P143_t;
+typedef struct ProtocolExtensionContainer_9566P144 {
+       A_SEQUENCE_OF(struct ExtendedULInterferenceOverloadInfo_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P144_t;
+typedef struct ProtocolExtensionContainer_9566P145 {
+       A_SEQUENCE_OF(struct FDD_Info_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P145_t;
+typedef struct ProtocolExtensionContainer_9566P146 {
+       A_SEQUENCE_OF(struct ForbiddenTAs_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P146_t;
+typedef struct ProtocolExtensionContainer_9566P147 {
+       A_SEQUENCE_OF(struct ForbiddenLAs_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P147_t;
+typedef struct ProtocolExtensionContainer_9566P148 {
+       A_SEQUENCE_OF(struct FreqBandNrItem_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P148_t;
+typedef struct ProtocolExtensionContainer_9566P149 {
+       A_SEQUENCE_OF(struct GBR_QosInformation_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P149_t;
+typedef struct ProtocolExtensionContainer_9566P150 {
+       A_SEQUENCE_OF(struct GlobalENB_ID_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P150_t;
+typedef struct ProtocolExtensionContainer_9566P151 {
+       A_SEQUENCE_OF(struct GlobalGNB_ID_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P151_t;
+typedef struct ProtocolExtensionContainer_9566P152 {
+       A_SEQUENCE_OF(struct GTPtunnelEndpoint_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P152_t;
+typedef struct ProtocolExtensionContainer_9566P153 {
+       A_SEQUENCE_OF(struct GU_Group_ID_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P153_t;
+typedef struct ProtocolExtensionContainer_9566P154 {
+       A_SEQUENCE_OF(struct GUMMEI_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P154_t;
+typedef struct ProtocolExtensionContainer_9566P155 {
+       A_SEQUENCE_OF(struct HandoverRestrictionList_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P155_t;
+typedef struct ProtocolExtensionContainer_9566P156 {
+       A_SEQUENCE_OF(struct HWLoadIndicator_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P156_t;
+typedef struct ProtocolExtensionContainer_9566P157 {
+       A_SEQUENCE_OF(struct LastVisitedEUTRANCellInformation_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P157_t;
+typedef struct ProtocolExtensionContainer_9566P158 {
+       A_SEQUENCE_OF(struct LocationReportingInformation_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P158_t;
+typedef struct ProtocolExtensionContainer_9566P159 {
+       A_SEQUENCE_OF(struct M1PeriodicReporting_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P159_t;
+typedef struct ProtocolExtensionContainer_9566P160 {
+       A_SEQUENCE_OF(struct M1ThresholdEventA2_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P160_t;
+typedef struct ProtocolExtensionContainer_9566P161 {
+       A_SEQUENCE_OF(struct M3Configuration_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P161_t;
+typedef struct ProtocolExtensionContainer_9566P162 {
+       A_SEQUENCE_OF(struct M4Configuration_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P162_t;
+typedef struct ProtocolExtensionContainer_9566P163 {
+       A_SEQUENCE_OF(struct M5Configuration_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P163_t;
+typedef struct ProtocolExtensionContainer_9566P164 {
+       A_SEQUENCE_OF(struct M6Configuration_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P164_t;
+typedef struct ProtocolExtensionContainer_9566P165 {
+       A_SEQUENCE_OF(struct M7Configuration_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P165_t;
+typedef struct ProtocolExtensionContainer_9566P166 {
+       A_SEQUENCE_OF(struct MDT_Configuration_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P166_t;
+typedef struct ProtocolExtensionContainer_9566P167 {
+       A_SEQUENCE_OF(struct MeNBResourceCoordinationInformationExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P167_t;
+typedef struct ProtocolExtensionContainer_9566P168 {
+       A_SEQUENCE_OF(struct MBSFN_Subframe_Info_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P168_t;
+typedef struct ProtocolExtensionContainer_9566P169 {
+       A_SEQUENCE_OF(struct BandInfo_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P169_t;
+typedef struct ProtocolExtensionContainer_9566P170 {
+       A_SEQUENCE_OF(struct SplitSRB_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P170_t;
+typedef struct ProtocolExtensionContainer_9566P171 {
+       A_SEQUENCE_OF(struct UENRMeasurement_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P171_t;
+typedef struct ProtocolExtensionContainer_9566P172 {
+       A_SEQUENCE_OF(struct Neighbour_Information_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P172_t;
+typedef struct ProtocolExtensionContainer_9566P173 {
+       A_SEQUENCE_OF(struct NRFreqInfo_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P173_t;
+typedef struct ProtocolExtensionContainer_9566P174 {
+       A_SEQUENCE_OF(struct NRCGI_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P174_t;
+typedef struct ProtocolExtensionContainer_9566P175 {
+       A_SEQUENCE_OF(struct NR_TxBW_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P175_t;
+typedef struct ProtocolExtensionContainer_9566P176 {
+       A_SEQUENCE_OF(struct NRUESecurityCapabilities_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P176_t;
+typedef struct ProtocolExtensionContainer_9566P177 {
+       A_SEQUENCE_OF(struct PRACH_Configuration_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P177_t;
+typedef struct ProtocolExtensionContainer_9566P178 {
+       A_SEQUENCE_OF(struct PLMNAreaBasedQMC_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P178_t;
+typedef struct ProtocolExtensionContainer_9566P179 {
+       A_SEQUENCE_OF(struct ProSeAuthorized_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P179_t;
+typedef struct ProtocolExtensionContainer_9566P180 {
+       A_SEQUENCE_OF(struct ProtectedEUTRAResourceIndication_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P180_t;
+typedef struct ProtocolExtensionContainer_9566P181 {
+       A_SEQUENCE_OF(struct ProtectedFootprintTimePattern_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P181_t;
+typedef struct ProtocolExtensionContainer_9566P182 {
+       A_SEQUENCE_OF(struct ProtectedResourceList_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P182_t;
+typedef struct ProtocolExtensionContainer_9566P183 {
+       A_SEQUENCE_OF(struct RadioResourceStatus_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P183_t;
+typedef struct ProtocolExtensionContainer_9566P184 {
+       A_SEQUENCE_OF(struct RelativeNarrowbandTxPower_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P184_t;
+typedef struct ProtocolExtensionContainer_9566P185 {
+       A_SEQUENCE_OF(struct ReservedSubframePattern_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P185_t;
+typedef struct ProtocolExtensionContainer_9566P186 {
+       A_SEQUENCE_OF(struct RLC_Status_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P186_t;
+typedef struct ProtocolExtensionContainer_9566P187 {
+       A_SEQUENCE_OF(struct RSRPMeasurementResult_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P187_t;
+typedef struct ProtocolExtensionContainer_9566P188 {
+       A_SEQUENCE_OF(struct RSRPMRList_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P188_t;
+typedef struct ProtocolExtensionContainer_9566P189 {
+       A_SEQUENCE_OF(struct S1TNLLoadIndicator_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P189_t;
+typedef struct ProtocolExtensionContainer_9566P190 {
+       A_SEQUENCE_OF(struct SecondaryRATUsageReport_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P190_t;
+typedef struct ProtocolExtensionContainer_9566P191 {
+       A_SEQUENCE_OF(struct ServedCell_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P191_t;
+typedef struct ProtocolExtensionContainer_9566P192 {
+       A_SEQUENCE_OF(struct ServedCell_Information_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P192_t;
+typedef struct ProtocolExtensionContainer_9566P193 {
+       A_SEQUENCE_OF(struct SgNBResourceCoordinationInformationExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P193_t;
+typedef struct ProtocolExtensionContainer_9566P194 {
+       A_SEQUENCE_OF(struct SpecialSubframe_Info_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P194_t;
+typedef struct ProtocolExtensionContainer_9566P195 {
+       A_SEQUENCE_OF(struct SubbandCQI_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P195_t;
+typedef struct ProtocolExtensionContainer_9566P196 {
+       A_SEQUENCE_OF(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P196_t;
+typedef struct ProtocolExtensionContainer_9566P197 {
+       A_SEQUENCE_OF(struct ScheduledCommunicationTime_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P197_t;
+typedef struct ProtocolExtensionContainer_9566P198 {
+       A_SEQUENCE_OF(struct SubbandCQIItem_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P198_t;
+typedef struct ProtocolExtensionContainer_9566P199 {
+       A_SEQUENCE_OF(struct SULInformation_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P199_t;
+typedef struct ProtocolExtensionContainer_9566P200 {
+       A_SEQUENCE_OF(struct SupportedSULFreqBandItem_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P200_t;
+typedef struct ProtocolExtensionContainer_9566P201 {
+       A_SEQUENCE_OF(struct TABasedMDT_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P201_t;
+typedef struct ProtocolExtensionContainer_9566P202 {
+       A_SEQUENCE_OF(struct TAIBasedMDT_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P202_t;
+typedef struct ProtocolExtensionContainer_9566P203 {
+       A_SEQUENCE_OF(struct TAI_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P203_t;
+typedef struct ProtocolExtensionContainer_9566P204 {
+       A_SEQUENCE_OF(struct TABasedQMC_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P204_t;
+typedef struct ProtocolExtensionContainer_9566P205 {
+       A_SEQUENCE_OF(struct TAIBasedQMC_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P205_t;
+typedef struct ProtocolExtensionContainer_9566P206 {
+       A_SEQUENCE_OF(struct TDD_Info_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P206_t;
+typedef struct ProtocolExtensionContainer_9566P207 {
+       A_SEQUENCE_OF(struct TraceActivation_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P207_t;
+typedef struct ProtocolExtensionContainer_9566P208 {
+       A_SEQUENCE_OF(struct Tunnel_Information_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P208_t;
+typedef struct ProtocolExtensionContainer_9566P209 {
+       A_SEQUENCE_OF(struct UEAggregate_MaximumBitrate_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P209_t;
+typedef struct ProtocolExtensionContainer_9566P210 {
+       A_SEQUENCE_OF(struct UEAppLayerMeasConfig_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P210_t;
+typedef struct ProtocolExtensionContainer_9566P211 {
+       A_SEQUENCE_OF(struct UESecurityCapabilities_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P211_t;
+typedef struct ProtocolExtensionContainer_9566P212 {
+       A_SEQUENCE_OF(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P212_t;
+typedef struct ProtocolExtensionContainer_9566P213 {
+       A_SEQUENCE_OF(struct UEsToBeResetList_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P213_t;
+typedef struct ProtocolExtensionContainer_9566P214 {
+       A_SEQUENCE_OF(struct ULandDLSharing_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P214_t;
+typedef struct ProtocolExtensionContainer_9566P215 {
+       A_SEQUENCE_OF(struct ULConfiguration_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P215_t;
+typedef struct ProtocolExtensionContainer_9566P216 {
+       A_SEQUENCE_OF(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P216_t;
+typedef struct ProtocolExtensionContainer_9566P217 {
+       A_SEQUENCE_OF(struct ULOnlySharing_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P217_t;
+typedef struct ProtocolExtensionContainer_9566P218 {
+       A_SEQUENCE_OF(struct UsableABSInformationFDD_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P218_t;
+typedef struct ProtocolExtensionContainer_9566P219 {
+       A_SEQUENCE_OF(struct UsableABSInformationTDD_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P219_t;
+typedef struct ProtocolExtensionContainer_9566P220 {
+       A_SEQUENCE_OF(struct V2XServicesAuthorized_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P220_t;
+typedef struct ProtocolExtensionContainer_9566P221 {
+       A_SEQUENCE_OF(struct WidebandCQI_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P221_t;
+typedef struct ProtocolExtensionContainer_9566P222 {
+       A_SEQUENCE_OF(struct WLANMeasurementConfiguration_ExtIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_9566P222_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P0;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P0_specs_1;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P0_1[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P0_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P1;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P1_specs_3;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P1_3[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P1_constr_3;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P2;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P2_specs_5;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P2_5[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P2_constr_5;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P3;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P3_specs_7;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P3_7[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P3_constr_7;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P4;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P4_specs_9;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P4_9[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P4_constr_9;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P5;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P5_specs_11;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P5_11[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P5_constr_11;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P6;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P6_specs_13;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P6_13[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P6_constr_13;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P7;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P7_specs_15;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P7_15[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P7_constr_15;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P8;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P8_specs_17;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P8_17[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P8_constr_17;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P9;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P9_specs_19;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P9_19[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P9_constr_19;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P10;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P10_specs_21;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P10_21[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P10_constr_21;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P11;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P11_specs_23;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P11_23[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P11_constr_23;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P12;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P12_specs_25;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P12_25[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P12_constr_25;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P13;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P13_specs_27;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P13_27[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P13_constr_27;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P14;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P14_specs_29;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P14_29[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P14_constr_29;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P15;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P15_specs_31;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P15_31[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P15_constr_31;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P16;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P16_specs_33;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P16_33[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P16_constr_33;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P17;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P17_specs_35;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P17_35[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P17_constr_35;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P18;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P18_specs_37;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P18_37[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P18_constr_37;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P19;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P19_specs_39;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P19_39[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P19_constr_39;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P20;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P20_specs_41;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P20_41[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P20_constr_41;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P21;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P21_specs_43;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P21_43[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P21_constr_43;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P22;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P22_specs_45;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P22_45[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P22_constr_45;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P23;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P23_specs_47;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P23_47[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P23_constr_47;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P24;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P24_specs_49;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P24_49[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P24_constr_49;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P25;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P25_specs_51;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P25_51[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P25_constr_51;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P26;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P26_specs_53;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P26_53[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P26_constr_53;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P27;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P27_specs_55;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P27_55[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P27_constr_55;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P28;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P28_specs_57;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P28_57[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P28_constr_57;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P29;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P29_specs_59;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P29_59[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P29_constr_59;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P30;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P30_specs_61;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P30_61[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P30_constr_61;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P31;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P31_specs_63;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P31_63[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P31_constr_63;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P32;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P32_specs_65;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P32_65[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P32_constr_65;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P33;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P33_specs_67;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P33_67[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P33_constr_67;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P34;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P34_specs_69;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P34_69[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P34_constr_69;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P35;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P35_specs_71;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P35_71[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P35_constr_71;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P36;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P36_specs_73;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P36_73[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P36_constr_73;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P37;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P37_specs_75;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P37_75[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P37_constr_75;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P38;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P38_specs_77;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P38_77[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P38_constr_77;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P39;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P39_specs_79;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P39_79[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P39_constr_79;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P40;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P40_specs_81;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P40_81[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P40_constr_81;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P41;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P41_specs_83;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P41_83[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P41_constr_83;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P42;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P42_specs_85;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P42_85[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P42_constr_85;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P43;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P43_specs_87;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P43_87[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P43_constr_87;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P44;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P44_specs_89;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P44_89[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P44_constr_89;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P45;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P45_specs_91;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P45_91[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P45_constr_91;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P46;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P46_specs_93;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P46_93[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P46_constr_93;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P47;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P47_specs_95;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P47_95[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P47_constr_95;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P48;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P48_specs_97;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P48_97[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P48_constr_97;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P49;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P49_specs_99;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P49_99[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P49_constr_99;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P50;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P50_specs_101;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P50_101[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P50_constr_101;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P51;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P51_specs_103;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P51_103[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P51_constr_103;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P52;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P52_specs_105;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P52_105[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P52_constr_105;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P53;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P53_specs_107;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P53_107[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P53_constr_107;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P54;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P54_specs_109;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P54_109[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P54_constr_109;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P55;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P55_specs_111;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P55_111[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P55_constr_111;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P56;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P56_specs_113;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P56_113[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P56_constr_113;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P57;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P57_specs_115;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P57_115[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P57_constr_115;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P58;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P58_specs_117;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P58_117[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P58_constr_117;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P59;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P59_specs_119;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P59_119[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P59_constr_119;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P60;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P60_specs_121;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P60_121[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P60_constr_121;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P61;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P61_specs_123;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P61_123[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P61_constr_123;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P62;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P62_specs_125;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P62_125[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P62_constr_125;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P63;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P63_specs_127;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P63_127[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P63_constr_127;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P64;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P64_specs_129;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P64_129[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P64_constr_129;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P65;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P65_specs_131;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P65_131[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P65_constr_131;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P66;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P66_specs_133;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P66_133[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P66_constr_133;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P67;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P67_specs_135;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P67_135[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P67_constr_135;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P68;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P68_specs_137;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P68_137[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P68_constr_137;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P69;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P69_specs_139;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P69_139[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P69_constr_139;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P70;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P70_specs_141;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P70_141[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P70_constr_141;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P71;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P71_specs_143;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P71_143[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P71_constr_143;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P72;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P72_specs_145;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P72_145[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P72_constr_145;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P73;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P73_specs_147;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P73_147[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P73_constr_147;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P74;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P74_specs_149;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P74_149[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P74_constr_149;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P75;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P75_specs_151;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P75_151[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P75_constr_151;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P76;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P76_specs_153;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P76_153[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P76_constr_153;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P77;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P77_specs_155;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P77_155[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P77_constr_155;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P78;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P78_specs_157;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P78_157[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P78_constr_157;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P79;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P79_specs_159;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P79_159[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P79_constr_159;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P80;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P80_specs_161;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P80_161[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P80_constr_161;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P81;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P81_specs_163;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P81_163[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P81_constr_163;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P82;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P82_specs_165;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P82_165[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P82_constr_165;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P83;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P83_specs_167;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P83_167[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P83_constr_167;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P84;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P84_specs_169;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P84_169[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P84_constr_169;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P85;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P85_specs_171;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P85_171[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P85_constr_171;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P86;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P86_specs_173;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P86_173[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P86_constr_173;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P87;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P87_specs_175;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P87_175[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P87_constr_175;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P88;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P88_specs_177;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P88_177[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P88_constr_177;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P89;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P89_specs_179;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P89_179[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P89_constr_179;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P90;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P90_specs_181;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P90_181[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P90_constr_181;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P91;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P91_specs_183;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P91_183[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P91_constr_183;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P92;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P92_specs_185;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P92_185[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P92_constr_185;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P93;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P93_specs_187;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P93_187[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P93_constr_187;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P94;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P94_specs_189;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P94_189[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P94_constr_189;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P95;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P95_specs_191;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P95_191[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P95_constr_191;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P96;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P96_specs_193;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P96_193[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P96_constr_193;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P97;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P97_specs_195;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P97_195[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P97_constr_195;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P98;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P98_specs_197;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P98_197[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P98_constr_197;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P99;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P99_specs_199;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P99_199[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P99_constr_199;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P100;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P100_specs_201;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P100_201[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P100_constr_201;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P101;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P101_specs_203;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P101_203[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P101_constr_203;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P102;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P102_specs_205;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P102_205[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P102_constr_205;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P103;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P103_specs_207;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P103_207[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P103_constr_207;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P104;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P104_specs_209;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P104_209[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P104_constr_209;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P105;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P105_specs_211;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P105_211[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P105_constr_211;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P106;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P106_specs_213;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P106_213[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P106_constr_213;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P107;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P107_specs_215;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P107_215[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P107_constr_215;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P108;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P108_specs_217;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P108_217[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P108_constr_217;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P109;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P109_specs_219;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P109_219[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P109_constr_219;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P110;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P110_specs_221;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P110_221[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P110_constr_221;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P111;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P111_specs_223;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P111_223[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P111_constr_223;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P112;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P112_specs_225;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P112_225[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P112_constr_225;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P113;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P113_specs_227;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P113_227[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P113_constr_227;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P114;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P114_specs_229;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P114_229[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P114_constr_229;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P115;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P115_specs_231;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P115_231[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P115_constr_231;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P116;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P116_specs_233;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P116_233[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P116_constr_233;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P117;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P117_specs_235;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P117_235[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P117_constr_235;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P118;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P118_specs_237;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P118_237[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P118_constr_237;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P119;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P119_specs_239;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P119_239[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P119_constr_239;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P120;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P120_specs_241;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P120_241[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P120_constr_241;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P121;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P121_specs_243;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P121_243[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P121_constr_243;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P122;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P122_specs_245;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P122_245[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P122_constr_245;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P123;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P123_specs_247;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P123_247[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P123_constr_247;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P124;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P124_specs_249;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P124_249[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P124_constr_249;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P125;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P125_specs_251;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P125_251[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P125_constr_251;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P126;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P126_specs_253;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P126_253[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P126_constr_253;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P127;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P127_specs_255;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P127_255[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P127_constr_255;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P128;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P128_specs_257;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P128_257[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P128_constr_257;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P129;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P129_specs_259;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P129_259[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P129_constr_259;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P130;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P130_specs_261;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P130_261[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P130_constr_261;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P131;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P131_specs_263;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P131_263[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P131_constr_263;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P132;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P132_specs_265;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P132_265[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P132_constr_265;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P133;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P133_specs_267;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P133_267[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P133_constr_267;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P134;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P134_specs_269;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P134_269[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P134_constr_269;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P135;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P135_specs_271;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P135_271[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P135_constr_271;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P136;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P136_specs_273;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P136_273[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P136_constr_273;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P137;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P137_specs_275;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P137_275[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P137_constr_275;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P138;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P138_specs_277;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P138_277[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P138_constr_277;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P139;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P139_specs_279;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P139_279[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P139_constr_279;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P140;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P140_specs_281;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P140_281[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P140_constr_281;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P141;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P141_specs_283;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P141_283[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P141_constr_283;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P142;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P142_specs_285;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P142_285[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P142_constr_285;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P143;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P143_specs_287;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P143_287[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P143_constr_287;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P144;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P144_specs_289;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P144_289[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P144_constr_289;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P145;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P145_specs_291;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P145_291[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P145_constr_291;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P146;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P146_specs_293;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P146_293[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P146_constr_293;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P147;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P147_specs_295;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P147_295[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P147_constr_295;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P148;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P148_specs_297;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P148_297[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P148_constr_297;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P149;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P149_specs_299;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P149_299[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P149_constr_299;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P150;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P150_specs_301;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P150_301[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P150_constr_301;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P151;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P151_specs_303;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P151_303[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P151_constr_303;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P152;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P152_specs_305;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P152_305[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P152_constr_305;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P153;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P153_specs_307;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P153_307[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P153_constr_307;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P154;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P154_specs_309;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P154_309[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P154_constr_309;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P155;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P155_specs_311;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P155_311[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P155_constr_311;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P156;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P156_specs_313;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P156_313[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P156_constr_313;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P157;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P157_specs_315;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P157_315[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P157_constr_315;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P158;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P158_specs_317;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P158_317[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P158_constr_317;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P159;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P159_specs_319;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P159_319[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P159_constr_319;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P160;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P160_specs_321;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P160_321[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P160_constr_321;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P161;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P161_specs_323;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P161_323[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P161_constr_323;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P162;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P162_specs_325;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P162_325[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P162_constr_325;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P163;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P163_specs_327;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P163_327[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P163_constr_327;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P164;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P164_specs_329;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P164_329[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P164_constr_329;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P165;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P165_specs_331;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P165_331[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P165_constr_331;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P166;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P166_specs_333;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P166_333[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P166_constr_333;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P167;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P167_specs_335;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P167_335[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P167_constr_335;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P168;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P168_specs_337;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P168_337[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P168_constr_337;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P169;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P169_specs_339;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P169_339[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P169_constr_339;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P170;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P170_specs_341;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P170_341[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P170_constr_341;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P171;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P171_specs_343;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P171_343[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P171_constr_343;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P172;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P172_specs_345;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P172_345[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P172_constr_345;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P173;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P173_specs_347;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P173_347[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P173_constr_347;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P174;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P174_specs_349;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P174_349[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P174_constr_349;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P175;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P175_specs_351;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P175_351[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P175_constr_351;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P176;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P176_specs_353;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P176_353[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P176_constr_353;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P177;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P177_specs_355;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P177_355[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P177_constr_355;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P178;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P178_specs_357;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P178_357[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P178_constr_357;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P179;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P179_specs_359;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P179_359[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P179_constr_359;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P180;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P180_specs_361;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P180_361[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P180_constr_361;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P181;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P181_specs_363;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P181_363[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P181_constr_363;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P182;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P182_specs_365;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P182_365[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P182_constr_365;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P183;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P183_specs_367;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P183_367[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P183_constr_367;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P184;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P184_specs_369;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P184_369[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P184_constr_369;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P185;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P185_specs_371;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P185_371[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P185_constr_371;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P186;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P186_specs_373;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P186_373[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P186_constr_373;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P187;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P187_specs_375;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P187_375[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P187_constr_375;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P188;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P188_specs_377;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P188_377[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P188_constr_377;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P189;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P189_specs_379;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P189_379[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P189_constr_379;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P190;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P190_specs_381;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P190_381[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P190_constr_381;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P191;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P191_specs_383;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P191_383[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P191_constr_383;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P192;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P192_specs_385;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P192_385[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P192_constr_385;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P193;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P193_specs_387;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P193_387[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P193_constr_387;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P194;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P194_specs_389;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P194_389[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P194_constr_389;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P195;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P195_specs_391;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P195_391[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P195_constr_391;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P196;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P196_specs_393;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P196_393[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P196_constr_393;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P197;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P197_specs_395;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P197_395[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P197_constr_395;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P198;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P198_specs_397;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P198_397[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P198_constr_397;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P199;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P199_specs_399;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P199_399[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P199_constr_399;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P200;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P200_specs_401;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P200_401[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P200_constr_401;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P201;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P201_specs_403;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P201_403[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P201_constr_403;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P202;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P202_specs_405;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P202_405[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P202_constr_405;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P203;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P203_specs_407;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P203_407[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P203_constr_407;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P204;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P204_specs_409;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P204_409[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P204_constr_409;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P205;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P205_specs_411;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P205_411[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P205_constr_411;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P206;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P206_specs_413;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P206_413[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P206_constr_413;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P207;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P207_specs_415;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P207_415[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P207_constr_415;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P208;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P208_specs_417;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P208_417[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P208_constr_417;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P209;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P209_specs_419;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P209_419[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P209_constr_419;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P210;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P210_specs_421;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P210_421[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P210_constr_421;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P211;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P211_specs_423;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P211_423[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P211_constr_423;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P212;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P212_specs_425;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P212_425[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P212_constr_425;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P213;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P213_specs_427;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P213_427[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P213_constr_427;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P214;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P214_specs_429;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P214_429[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P214_constr_429;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P215;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P215_specs_431;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P215_431[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P215_constr_431;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P216;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P216_specs_433;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P216_433[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P216_constr_433;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P217;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P217_specs_435;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P217_435[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P217_constr_435;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P218;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P218_specs_437;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P218_437[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P218_constr_437;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P219;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P219_specs_439;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P219_439[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P219_constr_439;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P220;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P220_specs_441;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P220_441[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P220_constr_441;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P221;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P221_specs_443;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P221_443[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P221_constr_443;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P222;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P222_specs_445;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P222_445[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P222_constr_445;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolExtensionContainer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProtocolExtensionField.h b/e2ap/headers/ProtocolExtensionField.h
new file mode 100644 (file)
index 0000000..d67d227
--- /dev/null
@@ -0,0 +1,5163 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProtocolExtensionField_H_
+#define        _ProtocolExtensionField_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-ID.h"
+#include "Criticality.h"
+#include <ANY.h>
+#include <asn_ioc.h>
+#include "ManagementBasedMDTallowed.h"
+#include "Presence.h"
+#include "MDTPLMNList.h"
+#include "UESidelinkAggregateMaximumBitRate.h"
+#include <OPEN_TYPE.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+#include "BearerType.h"
+#include "ReceiveStatusOfULPDCPSDUsExtended.h"
+#include "COUNTValueExtended.h"
+#include "ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h"
+#include "COUNTvaluePDCP-SNlength18.h"
+#include "ABSInformation.h"
+#include "InvokeIndication.h"
+#include "SubframeAssignment.h"
+#include "ExtendedULInterferenceOverloadInfo.h"
+#include "CoMPInformation.h"
+#include "DynamicDLTransmissionInformation.h"
+#include "DeactivationIndication.h"
+#include "CompositeAvailableCapacityGroup.h"
+#include "ABS-Status.h"
+#include "RSRPMRList.h"
+#include "CSIReportList.h"
+#include "CellReportingIndicator.h"
+#include "Correlation-ID.h"
+#include "GTPtunnelEndpoint.h"
+#include "DL-Forwarding.h"
+#include "RLCMode.h"
+#include "PDCPSnLength.h"
+#include "DuplicationActivation.h"
+#include "LCID.h"
+#include "SubscriberProfileIDforRFP.h"
+#include "RLC-Status.h"
+#include "NewDRBIDrequest.h"
+#include "Packet-LossRate.h"
+#include "EARFCNExtension.h"
+#include "OffsetOfNbiotChannelNumberToEARFCN.h"
+#include "NRS-NSSS-PowerOffset.h"
+#include "NSSS-NumOccasionDifferentPrecoder.h"
+#include "ExtendedBitRate.h"
+#include "NRrestrictioninEPSasSecondaryRAT.h"
+#include "CNTypeRestrictions.h"
+#include "NRrestrictionin5GS.h"
+#include "Time-UE-StayedInCell-EnhancedGranularity.h"
+#include "Cause.h"
+#include "M3Configuration.h"
+#include "M4Configuration.h"
+#include "M5Configuration.h"
+#include "MDT-Location-Info.h"
+#include "M6Configuration.h"
+#include "M7Configuration.h"
+#include "BluetoothMeasurementConfiguration.h"
+#include "WLANMeasurementConfiguration.h"
+#include "NRCGI.h"
+#include "MeNBCoordinationAssistanceInformation.h"
+#include "TAC.h"
+#include "ProSeUEtoNetworkRelaying.h"
+#include "DL-scheduling-PDCCH-CCE-usage.h"
+#include "UL-scheduling-PDCCH-CCE-usage.h"
+#include "EnhancedRNTP.h"
+#include "UEID.h"
+#include "Number-of-Antennaports.h"
+#include "PRACH-Configuration.h"
+#include "MBSFN-Subframe-Infolist.h"
+#include "CSG-Id.h"
+#include "MBMS-Service-Area-Identity-List.h"
+#include "MultibandInfoList.h"
+#include "FreqBandIndicatorPriority.h"
+#include "BandwidthReducedSI.h"
+#include "ProtectedEUTRAResourceIndication.h"
+#include "ECGI.h"
+#include "SgNBCoordinationAssistanceInformation.h"
+#include "AdditionalSpecialSubframe-Info.h"
+#include "AdditionalSpecialSubframeExtension-Info.h"
+#include "MDT-Configuration.h"
+#include "UEAppLayerMeasConfig.h"
+#include "ServiceType.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum UE_ContextInformation_ExtIEs__extensionValue_PR {
+       UE_ContextInformation_ExtIEs__extensionValue_PR_NOTHING,        /* No components present */
+       UE_ContextInformation_ExtIEs__extensionValue_PR_ManagementBasedMDTallowed,
+       UE_ContextInformation_ExtIEs__extensionValue_PR_MDTPLMNList,
+       UE_ContextInformation_ExtIEs__extensionValue_PR_UESidelinkAggregateMaximumBitRate
+} UE_ContextInformation_ExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeSetup_ItemExtIEs__extensionValue_PR {
+       E_RABs_ToBeSetup_ItemExtIEs__extensionValue_PR_NOTHING, /* No components present */
+       E_RABs_ToBeSetup_ItemExtIEs__extensionValue_PR_BearerType
+} E_RABs_ToBeSetup_ItemExtIEs__extensionValue_PR;
+typedef enum UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue_PR {
+       UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */
+       
+} UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue_PR;
+typedef enum UE_ContextReferenceAtWT_ItemExtIEs__extensionValue_PR {
+       UE_ContextReferenceAtWT_ItemExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} UE_ContextReferenceAtWT_ItemExtIEs__extensionValue_PR;
+typedef enum UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue_PR {
+       UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */
+       
+} UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_Item_ExtIEs__extensionValue_PR {
+       E_RABs_Admitted_Item_ExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} E_RABs_Admitted_Item_ExtIEs__extensionValue_PR;
+typedef enum E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR {
+       E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_NOTHING,   /* No components present */
+       E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_ReceiveStatusOfULPDCPSDUsExtended,
+       E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_COUNTValueExtended,
+       E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18,
+       E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_COUNTvaluePDCP_SNlength18
+} E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR;
+typedef enum CellInformation_Item_ExtIEs__extensionValue_PR {
+       CellInformation_Item_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+       CellInformation_Item_ExtIEs__extensionValue_PR_ABSInformation,
+       CellInformation_Item_ExtIEs__extensionValue_PR_InvokeIndication,
+       CellInformation_Item_ExtIEs__extensionValue_PR_SubframeAssignment,
+       CellInformation_Item_ExtIEs__extensionValue_PR_ExtendedULInterferenceOverloadInfo,
+       CellInformation_Item_ExtIEs__extensionValue_PR_CoMPInformation,
+       CellInformation_Item_ExtIEs__extensionValue_PR_DynamicDLTransmissionInformation
+} CellInformation_Item_ExtIEs__extensionValue_PR;
+typedef enum ServedCellsToModify_Item_ExtIEs__extensionValue_PR {
+       ServedCellsToModify_Item_ExtIEs__extensionValue_PR_NOTHING,     /* No components present */
+       ServedCellsToModify_Item_ExtIEs__extensionValue_PR_DeactivationIndication
+} ServedCellsToModify_Item_ExtIEs__extensionValue_PR;
+typedef enum CellToReport_Item_ExtIEs__extensionValue_PR {
+       CellToReport_Item_ExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} CellToReport_Item_ExtIEs__extensionValue_PR;
+typedef enum MeasurementInitiationResult_Item_ExtIEs__extensionValue_PR {
+       MeasurementInitiationResult_Item_ExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} MeasurementInitiationResult_Item_ExtIEs__extensionValue_PR;
+typedef enum MeasurementFailureCause_Item_ExtIEs__extensionValue_PR {
+       MeasurementFailureCause_Item_ExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} MeasurementFailureCause_Item_ExtIEs__extensionValue_PR;
+typedef enum CompleteFailureCauseInformation_Item_ExtIEs__extensionValue_PR {
+       CompleteFailureCauseInformation_Item_ExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} CompleteFailureCauseInformation_Item_ExtIEs__extensionValue_PR;
+typedef enum CellMeasurementResult_Item_ExtIEs__extensionValue_PR {
+       CellMeasurementResult_Item_ExtIEs__extensionValue_PR_NOTHING,   /* No components present */
+       CellMeasurementResult_Item_ExtIEs__extensionValue_PR_CompositeAvailableCapacityGroup,
+       CellMeasurementResult_Item_ExtIEs__extensionValue_PR_ABS_Status,
+       CellMeasurementResult_Item_ExtIEs__extensionValue_PR_RSRPMRList,
+       CellMeasurementResult_Item_ExtIEs__extensionValue_PR_CSIReportList,
+       CellMeasurementResult_Item_ExtIEs__extensionValue_PR_CellReportingIndicator
+} CellMeasurementResult_Item_ExtIEs__extensionValue_PR;
+typedef enum ServedCellsToActivate_Item_ExtIEs__extensionValue_PR {
+       ServedCellsToActivate_Item_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} ServedCellsToActivate_Item_ExtIEs__extensionValue_PR;
+typedef enum ActivatedCellList_Item_ExtIEs__extensionValue_PR {
+       ActivatedCellList_Item_ExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} ActivatedCellList_Item_ExtIEs__extensionValue_PR;
+typedef enum RNL_Header_Item_ExtIEs__extensionValue_PR {
+       RNL_Header_Item_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} RNL_Header_Item_ExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR {
+       E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR_NOTHING,      /* No components present */
+       E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR_Correlation_ID
+} E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_PR {
+       E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_PR;
+typedef enum ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue_PR {
+       ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue_PR;
+typedef enum ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_PR {
+       ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_PR;
+typedef enum UE_ContextInformationSeNBModReqExtIEs__extensionValue_PR {
+       UE_ContextInformationSeNBModReqExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} UE_ContextInformationSeNBModReqExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue_PR {
+       E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue_PR_NOTHING,        /* No components present */
+       E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue_PR_Correlation_ID
+} E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue_PR {
+       E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue_PR {
+       E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue_PR {
+       E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue_PR;
+typedef enum E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue_PR {
+       E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue_PR;
+typedef enum UE_ContextInformationRetrieve_ExtIEs__extensionValue_PR {
+       UE_ContextInformationRetrieve_ExtIEs__extensionValue_PR_NOTHING,        /* No components present */
+       UE_ContextInformationRetrieve_ExtIEs__extensionValue_PR_UESidelinkAggregateMaximumBitRate
+} UE_ContextInformationRetrieve_ExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue_PR {
+       E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue_PR_NOTHING, /* No components present */
+       E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue_PR_GTPtunnelEndpoint,
+       E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue_PR_DL_Forwarding
+} E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue_PR {
+       E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR {
+       E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING,      /* No components present */
+       E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_RLCMode
+} E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR {
+       E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING,   /* No components present */
+       E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_PDCPSnLength,
+       E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_DuplicationActivation
+} E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue_PR {
+       E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING,  /* No components present */
+       E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_PDCPSnLength
+} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING,       /* No components present */
+       E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_LCID
+} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR;
+typedef enum ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue_PR {
+       ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue_PR;
+typedef enum ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_PR {
+       ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_PR;
+typedef enum UE_ContextInformationSgNBModReqExtIEs__extensionValue_PR {
+       UE_ContextInformationSgNBModReqExtIEs__extensionValue_PR_NOTHING,       /* No components present */
+       UE_ContextInformationSgNBModReqExtIEs__extensionValue_PR_SubscriberProfileIDforRFP
+} UE_ContextInformationSgNBModReqExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue_PR {
+       E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR {
+       E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING,      /* No components present */
+       E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_RLCMode
+} E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR {
+       E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING,   /* No components present */
+       E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_PDCPSnLength,
+       E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_DuplicationActivation
+} E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue_PR {
+       E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR {
+       E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING,   /* No components present */
+       E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_RLC_Status
+} E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR {
+       E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING,        /* No components present */
+       E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_PDCPSnLength,
+       E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_GTPtunnelEndpoint
+} E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING /* No components present */
+       
+} E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING,     /* No components present */
+       E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_PDCPSnLength
+} E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING,  /* No components present */
+       E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_LCID
+} E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_PR {
+       E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING,  /* No components present */
+       E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_PDCPSnLength
+} E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING,       /* No components present */
+       E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_GTPtunnelEndpoint,
+       E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_RLC_Status
+} E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue_PR_NOTHING,  /* No components present */
+       E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue_PR_RLCMode
+} E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue_PR {
+       E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_PR {
+       E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING,  /* No components present */
+       E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_PDCPSnLength,
+       E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NewDRBIDrequest
+} E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR {
+       E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING,       /* No components present */
+       E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_RLC_Status,
+       E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_LCID
+} E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue_PR {
+       E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR {
+       E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR {
+       E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING,       /* No components present */
+       E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_PDCPSnLength
+} E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING /* No components present */
+       
+} E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue_PR {
+       E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue_PR {
+       E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR;
+typedef enum E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR {
+       E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR;
+typedef enum ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue_PR {
+       ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue_PR;
+typedef enum En_gNBServedCells_ExtIEs__extensionValue_PR {
+       En_gNBServedCells_ExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} En_gNBServedCells_ExtIEs__extensionValue_PR;
+typedef enum ServedNRCell_Information_ExtIEs__extensionValue_PR {
+       ServedNRCell_Information_ExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} ServedNRCell_Information_ExtIEs__extensionValue_PR;
+typedef enum FDD_InfoServedNRCell_Information_ExtIEs__extensionValue_PR {
+       FDD_InfoServedNRCell_Information_ExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} FDD_InfoServedNRCell_Information_ExtIEs__extensionValue_PR;
+typedef enum FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_PR {
+       FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_PR;
+typedef enum TDD_InfoServedNRCell_Information_ExtIEs__extensionValue_PR {
+       TDD_InfoServedNRCell_Information_ExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} TDD_InfoServedNRCell_Information_ExtIEs__extensionValue_PR;
+typedef enum TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_PR {
+       TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_PR;
+typedef enum NRNeighbour_Information_ExtIEs__extensionValue_PR {
+       NRNeighbour_Information_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} NRNeighbour_Information_ExtIEs__extensionValue_PR;
+typedef enum Limited_list_ExtIEs__extensionValue_PR {
+       Limited_list_ExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} Limited_list_ExtIEs__extensionValue_PR;
+typedef enum ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue_PR {
+       ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue_PR;
+typedef enum ServedNRCellsToModify_Item_ExtIEs__extensionValue_PR {
+       ServedNRCellsToModify_Item_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} ServedNRCellsToModify_Item_ExtIEs__extensionValue_PR;
+typedef enum ServedNRCellsToActivate_Item_ExtIEs__extensionValue_PR {
+       ServedNRCellsToActivate_Item_ExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} ServedNRCellsToActivate_Item_ExtIEs__extensionValue_PR;
+typedef enum ActivatedNRCellList_Item_ExtIEs__extensionValue_PR {
+       ActivatedNRCellList_Item_ExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} ActivatedNRCellList_Item_ExtIEs__extensionValue_PR;
+typedef enum E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue_PR {
+       E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue_PR;
+typedef enum ABSInformationFDD_ExtIEs__extensionValue_PR {
+       ABSInformationFDD_ExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} ABSInformationFDD_ExtIEs__extensionValue_PR;
+typedef enum ABSInformationTDD_ExtIEs__extensionValue_PR {
+       ABSInformationTDD_ExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} ABSInformationTDD_ExtIEs__extensionValue_PR;
+typedef enum ABS_Status_ExtIEs__extensionValue_PR {
+       ABS_Status_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} ABS_Status_ExtIEs__extensionValue_PR;
+typedef enum AdditionalSpecialSubframe_Info_ExtIEs__extensionValue_PR {
+       AdditionalSpecialSubframe_Info_ExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} AdditionalSpecialSubframe_Info_ExtIEs__extensionValue_PR;
+typedef enum AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue_PR {
+       AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue_PR;
+typedef enum AllocationAndRetentionPriority_ExtIEs__extensionValue_PR {
+       AllocationAndRetentionPriority_ExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} AllocationAndRetentionPriority_ExtIEs__extensionValue_PR;
+typedef enum AS_SecurityInformation_ExtIEs__extensionValue_PR {
+       AS_SecurityInformation_ExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} AS_SecurityInformation_ExtIEs__extensionValue_PR;
+typedef enum BluetoothMeasurementConfiguration_ExtIEs__extensionValue_PR {
+       BluetoothMeasurementConfiguration_ExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} BluetoothMeasurementConfiguration_ExtIEs__extensionValue_PR;
+typedef enum CellBasedMDT_ExtIEs__extensionValue_PR {
+       CellBasedMDT_ExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} CellBasedMDT_ExtIEs__extensionValue_PR;
+typedef enum CellBasedQMC_ExtIEs__extensionValue_PR {
+       CellBasedQMC_ExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} CellBasedQMC_ExtIEs__extensionValue_PR;
+typedef enum CellReplacingInfo_ExtIEs__extensionValue_PR {
+       CellReplacingInfo_ExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} CellReplacingInfo_ExtIEs__extensionValue_PR;
+typedef enum CellType_ExtIEs__extensionValue_PR {
+       CellType_ExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} CellType_ExtIEs__extensionValue_PR;
+typedef enum CNTypeRestrictionsItem_ExtIEs__extensionValue_PR {
+       CNTypeRestrictionsItem_ExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} CNTypeRestrictionsItem_ExtIEs__extensionValue_PR;
+typedef enum CoMPHypothesisSetItem_ExtIEs__extensionValue_PR {
+       CoMPHypothesisSetItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+       
+} CoMPHypothesisSetItem_ExtIEs__extensionValue_PR;
+typedef enum CoMPInformation_ExtIEs__extensionValue_PR {
+       CoMPInformation_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} CoMPInformation_ExtIEs__extensionValue_PR;
+typedef enum CoMPInformationItem_ExtIEs__extensionValue_PR {
+       CoMPInformationItem_ExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} CoMPInformationItem_ExtIEs__extensionValue_PR;
+typedef enum CoMPInformationStartTime_ExtIEs__extensionValue_PR {
+       CoMPInformationStartTime_ExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} CoMPInformationStartTime_ExtIEs__extensionValue_PR;
+typedef enum CompositeAvailableCapacity_ExtIEs__extensionValue_PR {
+       CompositeAvailableCapacity_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} CompositeAvailableCapacity_ExtIEs__extensionValue_PR;
+typedef enum CompositeAvailableCapacityGroup_ExtIEs__extensionValue_PR {
+       CompositeAvailableCapacityGroup_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} CompositeAvailableCapacityGroup_ExtIEs__extensionValue_PR;
+typedef enum COUNTvalue_ExtIEs__extensionValue_PR {
+       COUNTvalue_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} COUNTvalue_ExtIEs__extensionValue_PR;
+typedef enum COUNTValueExtended_ExtIEs__extensionValue_PR {
+       COUNTValueExtended_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} COUNTValueExtended_ExtIEs__extensionValue_PR;
+typedef enum COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue_PR {
+       COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue_PR;
+typedef enum CriticalityDiagnostics_ExtIEs__extensionValue_PR {
+       CriticalityDiagnostics_ExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} CriticalityDiagnostics_ExtIEs__extensionValue_PR;
+typedef enum CriticalityDiagnostics_IE_List_ExtIEs__extensionValue_PR {
+       CriticalityDiagnostics_IE_List_ExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} CriticalityDiagnostics_IE_List_ExtIEs__extensionValue_PR;
+typedef enum CSIReportList_ExtIEs__extensionValue_PR {
+       CSIReportList_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+       
+} CSIReportList_ExtIEs__extensionValue_PR;
+typedef enum CSIReportPerCSIProcess_ExtIEs__extensionValue_PR {
+       CSIReportPerCSIProcess_ExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} CSIReportPerCSIProcess_ExtIEs__extensionValue_PR;
+typedef enum CSIReportPerCSIProcessItem_ExtIEs__extensionValue_PR {
+       CSIReportPerCSIProcessItem_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} CSIReportPerCSIProcessItem_ExtIEs__extensionValue_PR;
+typedef enum DataTrafficResourceIndication_ExtIEs__extensionValue_PR {
+       DataTrafficResourceIndication_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+       
+} DataTrafficResourceIndication_ExtIEs__extensionValue_PR;
+typedef enum DeliveryStatus_ExtIEs__extensionValue_PR {
+       DeliveryStatus_ExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} DeliveryStatus_ExtIEs__extensionValue_PR;
+typedef enum DynamicNAICSInformation_ExtIEs__extensionValue_PR {
+       DynamicNAICSInformation_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} DynamicNAICSInformation_ExtIEs__extensionValue_PR;
+typedef enum ECGI_ExtIEs__extensionValue_PR {
+       ECGI_ExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} ECGI_ExtIEs__extensionValue_PR;
+typedef enum EnhancedRNTP_ExtIEs__extensionValue_PR {
+       EnhancedRNTP_ExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} EnhancedRNTP_ExtIEs__extensionValue_PR;
+typedef enum EnhancedRNTPStartTime_ExtIEs__extensionValue_PR {
+       EnhancedRNTPStartTime_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+       
+} EnhancedRNTPStartTime_ExtIEs__extensionValue_PR;
+typedef enum EN_DC_ResourceConfigurationExtIEs__extensionValue_PR {
+       EN_DC_ResourceConfigurationExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} EN_DC_ResourceConfigurationExtIEs__extensionValue_PR;
+typedef enum ERABActivityNotifyItem_ExtIEs__extensionValue_PR {
+       ERABActivityNotifyItem_ExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} ERABActivityNotifyItem_ExtIEs__extensionValue_PR;
+typedef enum E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue_PR {
+       E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue_PR_NOTHING,   /* No components present */
+       E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue_PR_Packet_LossRate
+} E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue_PR;
+typedef enum E_RAB_Item_ExtIEs__extensionValue_PR {
+       E_RAB_Item_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} E_RAB_Item_ExtIEs__extensionValue_PR;
+typedef enum E_RABUsageReport_Item_ExtIEs__extensionValue_PR {
+       E_RABUsageReport_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+       
+} E_RABUsageReport_Item_ExtIEs__extensionValue_PR;
+typedef enum ExpectedUEBehaviour_ExtIEs__extensionValue_PR {
+       ExpectedUEBehaviour_ExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} ExpectedUEBehaviour_ExtIEs__extensionValue_PR;
+typedef enum ExpectedUEActivityBehaviour_ExtIEs__extensionValue_PR {
+       ExpectedUEActivityBehaviour_ExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} ExpectedUEActivityBehaviour_ExtIEs__extensionValue_PR;
+typedef enum ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue_PR {
+       ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue_PR;
+typedef enum FDD_Info_ExtIEs__extensionValue_PR {
+       FDD_Info_ExtIEs__extensionValue_PR_NOTHING,     /* No components present */
+       FDD_Info_ExtIEs__extensionValue_PR_EARFCNExtension,
+       FDD_Info_ExtIEs__extensionValue_PR_OffsetOfNbiotChannelNumberToEARFCN,
+       FDD_Info_ExtIEs__extensionValue_PR_NRS_NSSS_PowerOffset,
+       FDD_Info_ExtIEs__extensionValue_PR_NSSS_NumOccasionDifferentPrecoder
+} FDD_Info_ExtIEs__extensionValue_PR;
+typedef enum ForbiddenTAs_Item_ExtIEs__extensionValue_PR {
+       ForbiddenTAs_Item_ExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} ForbiddenTAs_Item_ExtIEs__extensionValue_PR;
+typedef enum ForbiddenLAs_Item_ExtIEs__extensionValue_PR {
+       ForbiddenLAs_Item_ExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} ForbiddenLAs_Item_ExtIEs__extensionValue_PR;
+typedef enum FreqBandNrItem_ExtIEs__extensionValue_PR {
+       FreqBandNrItem_ExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} FreqBandNrItem_ExtIEs__extensionValue_PR;
+typedef enum GBR_QosInformation_ExtIEs__extensionValue_PR {
+       GBR_QosInformation_ExtIEs__extensionValue_PR_NOTHING,   /* No components present */
+       GBR_QosInformation_ExtIEs__extensionValue_PR_ExtendedBitRate
+} GBR_QosInformation_ExtIEs__extensionValue_PR;
+typedef enum GlobalENB_ID_ExtIEs__extensionValue_PR {
+       GlobalENB_ID_ExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} GlobalENB_ID_ExtIEs__extensionValue_PR;
+typedef enum GlobalGNB_ID_ExtIEs__extensionValue_PR {
+       GlobalGNB_ID_ExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} GlobalGNB_ID_ExtIEs__extensionValue_PR;
+typedef enum GTPtunnelEndpoint_ExtIEs__extensionValue_PR {
+       GTPtunnelEndpoint_ExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} GTPtunnelEndpoint_ExtIEs__extensionValue_PR;
+typedef enum GU_Group_ID_ExtIEs__extensionValue_PR {
+       GU_Group_ID_ExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} GU_Group_ID_ExtIEs__extensionValue_PR;
+typedef enum GUMMEI_ExtIEs__extensionValue_PR {
+       GUMMEI_ExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} GUMMEI_ExtIEs__extensionValue_PR;
+typedef enum HandoverRestrictionList_ExtIEs__extensionValue_PR {
+       HandoverRestrictionList_ExtIEs__extensionValue_PR_NOTHING,      /* No components present */
+       HandoverRestrictionList_ExtIEs__extensionValue_PR_NRrestrictioninEPSasSecondaryRAT,
+       HandoverRestrictionList_ExtIEs__extensionValue_PR_CNTypeRestrictions,
+       HandoverRestrictionList_ExtIEs__extensionValue_PR_NRrestrictionin5GS
+} HandoverRestrictionList_ExtIEs__extensionValue_PR;
+typedef enum HWLoadIndicator_ExtIEs__extensionValue_PR {
+       HWLoadIndicator_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} HWLoadIndicator_ExtIEs__extensionValue_PR;
+typedef enum LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR {
+       LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR_NOTHING,     /* No components present */
+       LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR_Time_UE_StayedInCell_EnhancedGranularity,
+       LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR_Cause
+} LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR;
+typedef enum LocationReportingInformation_ExtIEs__extensionValue_PR {
+       LocationReportingInformation_ExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} LocationReportingInformation_ExtIEs__extensionValue_PR;
+typedef enum M1PeriodicReporting_ExtIEs__extensionValue_PR {
+       M1PeriodicReporting_ExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} M1PeriodicReporting_ExtIEs__extensionValue_PR;
+typedef enum M1ThresholdEventA2_ExtIEs__extensionValue_PR {
+       M1ThresholdEventA2_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} M1ThresholdEventA2_ExtIEs__extensionValue_PR;
+typedef enum M3Configuration_ExtIEs__extensionValue_PR {
+       M3Configuration_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} M3Configuration_ExtIEs__extensionValue_PR;
+typedef enum M4Configuration_ExtIEs__extensionValue_PR {
+       M4Configuration_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} M4Configuration_ExtIEs__extensionValue_PR;
+typedef enum M5Configuration_ExtIEs__extensionValue_PR {
+       M5Configuration_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} M5Configuration_ExtIEs__extensionValue_PR;
+typedef enum M6Configuration_ExtIEs__extensionValue_PR {
+       M6Configuration_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} M6Configuration_ExtIEs__extensionValue_PR;
+typedef enum M7Configuration_ExtIEs__extensionValue_PR {
+       M7Configuration_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} M7Configuration_ExtIEs__extensionValue_PR;
+typedef enum MDT_Configuration_ExtIEs__extensionValue_PR {
+       MDT_Configuration_ExtIEs__extensionValue_PR_NOTHING,    /* No components present */
+       MDT_Configuration_ExtIEs__extensionValue_PR_M3Configuration,
+       MDT_Configuration_ExtIEs__extensionValue_PR_M4Configuration,
+       MDT_Configuration_ExtIEs__extensionValue_PR_M5Configuration,
+       MDT_Configuration_ExtIEs__extensionValue_PR_MDT_Location_Info,
+       MDT_Configuration_ExtIEs__extensionValue_PR_MDTPLMNList,
+       MDT_Configuration_ExtIEs__extensionValue_PR_M6Configuration,
+       MDT_Configuration_ExtIEs__extensionValue_PR_M7Configuration,
+       MDT_Configuration_ExtIEs__extensionValue_PR_BluetoothMeasurementConfiguration,
+       MDT_Configuration_ExtIEs__extensionValue_PR_WLANMeasurementConfiguration
+} MDT_Configuration_ExtIEs__extensionValue_PR;
+typedef enum MeNBResourceCoordinationInformationExtIEs__extensionValue_PR {
+       MeNBResourceCoordinationInformationExtIEs__extensionValue_PR_NOTHING,   /* No components present */
+       MeNBResourceCoordinationInformationExtIEs__extensionValue_PR_NRCGI,
+       MeNBResourceCoordinationInformationExtIEs__extensionValue_PR_MeNBCoordinationAssistanceInformation
+} MeNBResourceCoordinationInformationExtIEs__extensionValue_PR;
+typedef enum MBSFN_Subframe_Info_ExtIEs__extensionValue_PR {
+       MBSFN_Subframe_Info_ExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} MBSFN_Subframe_Info_ExtIEs__extensionValue_PR;
+typedef enum BandInfo_ExtIEs__extensionValue_PR {
+       BandInfo_ExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} BandInfo_ExtIEs__extensionValue_PR;
+typedef enum SplitSRB_ExtIEs__extensionValue_PR {
+       SplitSRB_ExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} SplitSRB_ExtIEs__extensionValue_PR;
+typedef enum UENRMeasurement_ExtIEs__extensionValue_PR {
+       UENRMeasurement_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} UENRMeasurement_ExtIEs__extensionValue_PR;
+typedef enum Neighbour_Information_ExtIEs__extensionValue_PR {
+       Neighbour_Information_ExtIEs__extensionValue_PR_NOTHING,        /* No components present */
+       Neighbour_Information_ExtIEs__extensionValue_PR_TAC,
+       Neighbour_Information_ExtIEs__extensionValue_PR_EARFCNExtension
+} Neighbour_Information_ExtIEs__extensionValue_PR;
+typedef enum NRFreqInfo_ExtIEs__extensionValue_PR {
+       NRFreqInfo_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} NRFreqInfo_ExtIEs__extensionValue_PR;
+typedef enum NRCGI_ExtIEs__extensionValue_PR {
+       NRCGI_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+       
+} NRCGI_ExtIEs__extensionValue_PR;
+typedef enum NR_TxBW_ExtIEs__extensionValue_PR {
+       NR_TxBW_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} NR_TxBW_ExtIEs__extensionValue_PR;
+typedef enum NRUESecurityCapabilities_ExtIEs__extensionValue_PR {
+       NRUESecurityCapabilities_ExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} NRUESecurityCapabilities_ExtIEs__extensionValue_PR;
+typedef enum PRACH_Configuration_ExtIEs__extensionValue_PR {
+       PRACH_Configuration_ExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} PRACH_Configuration_ExtIEs__extensionValue_PR;
+typedef enum PLMNAreaBasedQMC_ExtIEs__extensionValue_PR {
+       PLMNAreaBasedQMC_ExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} PLMNAreaBasedQMC_ExtIEs__extensionValue_PR;
+typedef enum ProSeAuthorized_ExtIEs__extensionValue_PR {
+       ProSeAuthorized_ExtIEs__extensionValue_PR_NOTHING,      /* No components present */
+       ProSeAuthorized_ExtIEs__extensionValue_PR_ProSeUEtoNetworkRelaying
+} ProSeAuthorized_ExtIEs__extensionValue_PR;
+typedef enum ProtectedEUTRAResourceIndication_ExtIEs__extensionValue_PR {
+       ProtectedEUTRAResourceIndication_ExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} ProtectedEUTRAResourceIndication_ExtIEs__extensionValue_PR;
+typedef enum ProtectedFootprintTimePattern_ExtIEs__extensionValue_PR {
+       ProtectedFootprintTimePattern_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+       
+} ProtectedFootprintTimePattern_ExtIEs__extensionValue_PR;
+typedef enum ProtectedResourceList_Item_ExtIEs__extensionValue_PR {
+       ProtectedResourceList_Item_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} ProtectedResourceList_Item_ExtIEs__extensionValue_PR;
+typedef enum RadioResourceStatus_ExtIEs__extensionValue_PR {
+       RadioResourceStatus_ExtIEs__extensionValue_PR_NOTHING,  /* No components present */
+       RadioResourceStatus_ExtIEs__extensionValue_PR_DL_scheduling_PDCCH_CCE_usage,
+       RadioResourceStatus_ExtIEs__extensionValue_PR_UL_scheduling_PDCCH_CCE_usage
+} RadioResourceStatus_ExtIEs__extensionValue_PR;
+typedef enum RelativeNarrowbandTxPower_ExtIEs__extensionValue_PR {
+       RelativeNarrowbandTxPower_ExtIEs__extensionValue_PR_NOTHING,    /* No components present */
+       RelativeNarrowbandTxPower_ExtIEs__extensionValue_PR_EnhancedRNTP
+} RelativeNarrowbandTxPower_ExtIEs__extensionValue_PR;
+typedef enum ReservedSubframePattern_ExtIEs__extensionValue_PR {
+       ReservedSubframePattern_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} ReservedSubframePattern_ExtIEs__extensionValue_PR;
+typedef enum RLC_Status_ExtIEs__extensionValue_PR {
+       RLC_Status_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} RLC_Status_ExtIEs__extensionValue_PR;
+typedef enum RSRPMeasurementResult_ExtIEs__extensionValue_PR {
+       RSRPMeasurementResult_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+       
+} RSRPMeasurementResult_ExtIEs__extensionValue_PR;
+typedef enum RSRPMRList_ExtIEs__extensionValue_PR {
+       RSRPMRList_ExtIEs__extensionValue_PR_NOTHING,   /* No components present */
+       RSRPMRList_ExtIEs__extensionValue_PR_UEID
+} RSRPMRList_ExtIEs__extensionValue_PR;
+typedef enum S1TNLLoadIndicator_ExtIEs__extensionValue_PR {
+       S1TNLLoadIndicator_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} S1TNLLoadIndicator_ExtIEs__extensionValue_PR;
+typedef enum SecondaryRATUsageReport_Item_ExtIEs__extensionValue_PR {
+       SecondaryRATUsageReport_Item_ExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} SecondaryRATUsageReport_Item_ExtIEs__extensionValue_PR;
+typedef enum ServedCell_ExtIEs__extensionValue_PR {
+       ServedCell_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} ServedCell_ExtIEs__extensionValue_PR;
+typedef enum ServedCell_Information_ExtIEs__extensionValue_PR {
+       ServedCell_Information_ExtIEs__extensionValue_PR_NOTHING,       /* No components present */
+       ServedCell_Information_ExtIEs__extensionValue_PR_Number_of_Antennaports,
+       ServedCell_Information_ExtIEs__extensionValue_PR_PRACH_Configuration,
+       ServedCell_Information_ExtIEs__extensionValue_PR_MBSFN_Subframe_Infolist,
+       ServedCell_Information_ExtIEs__extensionValue_PR_CSG_Id,
+       ServedCell_Information_ExtIEs__extensionValue_PR_MBMS_Service_Area_Identity_List,
+       ServedCell_Information_ExtIEs__extensionValue_PR_MultibandInfoList,
+       ServedCell_Information_ExtIEs__extensionValue_PR_FreqBandIndicatorPriority,
+       ServedCell_Information_ExtIEs__extensionValue_PR_BandwidthReducedSI,
+       ServedCell_Information_ExtIEs__extensionValue_PR_ProtectedEUTRAResourceIndication
+} ServedCell_Information_ExtIEs__extensionValue_PR;
+typedef enum SgNBResourceCoordinationInformationExtIEs__extensionValue_PR {
+       SgNBResourceCoordinationInformationExtIEs__extensionValue_PR_NOTHING,   /* No components present */
+       SgNBResourceCoordinationInformationExtIEs__extensionValue_PR_ECGI,
+       SgNBResourceCoordinationInformationExtIEs__extensionValue_PR_SgNBCoordinationAssistanceInformation
+} SgNBResourceCoordinationInformationExtIEs__extensionValue_PR;
+typedef enum SpecialSubframe_Info_ExtIEs__extensionValue_PR {
+       SpecialSubframe_Info_ExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} SpecialSubframe_Info_ExtIEs__extensionValue_PR;
+typedef enum SubbandCQI_ExtIEs__extensionValue_PR {
+       SubbandCQI_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} SubbandCQI_ExtIEs__extensionValue_PR;
+typedef enum Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue_PR {
+       Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue_PR_NOTHING     /* No components present */
+       
+} Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue_PR;
+typedef enum ScheduledCommunicationTime_ExtIEs__extensionValue_PR {
+       ScheduledCommunicationTime_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} ScheduledCommunicationTime_ExtIEs__extensionValue_PR;
+typedef enum SubbandCQIItem_ExtIEs__extensionValue_PR {
+       SubbandCQIItem_ExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} SubbandCQIItem_ExtIEs__extensionValue_PR;
+typedef enum SULInformation_ExtIEs__extensionValue_PR {
+       SULInformation_ExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} SULInformation_ExtIEs__extensionValue_PR;
+typedef enum SupportedSULFreqBandItem_ExtIEs__extensionValue_PR {
+       SupportedSULFreqBandItem_ExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} SupportedSULFreqBandItem_ExtIEs__extensionValue_PR;
+typedef enum TABasedMDT_ExtIEs__extensionValue_PR {
+       TABasedMDT_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} TABasedMDT_ExtIEs__extensionValue_PR;
+typedef enum TAIBasedMDT_ExtIEs__extensionValue_PR {
+       TAIBasedMDT_ExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} TAIBasedMDT_ExtIEs__extensionValue_PR;
+typedef enum TAI_Item_ExtIEs__extensionValue_PR {
+       TAI_Item_ExtIEs__extensionValue_PR_NOTHING      /* No components present */
+       
+} TAI_Item_ExtIEs__extensionValue_PR;
+typedef enum TABasedQMC_ExtIEs__extensionValue_PR {
+       TABasedQMC_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} TABasedQMC_ExtIEs__extensionValue_PR;
+typedef enum TAIBasedQMC_ExtIEs__extensionValue_PR {
+       TAIBasedQMC_ExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} TAIBasedQMC_ExtIEs__extensionValue_PR;
+typedef enum TDD_Info_ExtIEs__extensionValue_PR {
+       TDD_Info_ExtIEs__extensionValue_PR_NOTHING,     /* No components present */
+       TDD_Info_ExtIEs__extensionValue_PR_AdditionalSpecialSubframe_Info,
+       TDD_Info_ExtIEs__extensionValue_PR_EARFCNExtension,
+       TDD_Info_ExtIEs__extensionValue_PR_AdditionalSpecialSubframeExtension_Info
+} TDD_Info_ExtIEs__extensionValue_PR;
+typedef enum TraceActivation_ExtIEs__extensionValue_PR {
+       TraceActivation_ExtIEs__extensionValue_PR_NOTHING,      /* No components present */
+       TraceActivation_ExtIEs__extensionValue_PR_MDT_Configuration,
+       TraceActivation_ExtIEs__extensionValue_PR_UEAppLayerMeasConfig
+} TraceActivation_ExtIEs__extensionValue_PR;
+typedef enum Tunnel_Information_ExtIEs__extensionValue_PR {
+       Tunnel_Information_ExtIEs__extensionValue_PR_NOTHING    /* No components present */
+       
+} Tunnel_Information_ExtIEs__extensionValue_PR;
+typedef enum UEAggregate_MaximumBitrate_ExtIEs__extensionValue_PR {
+       UEAggregate_MaximumBitrate_ExtIEs__extensionValue_PR_NOTHING,   /* No components present */
+       UEAggregate_MaximumBitrate_ExtIEs__extensionValue_PR_ExtendedBitRate
+} UEAggregate_MaximumBitrate_ExtIEs__extensionValue_PR;
+typedef enum UEAppLayerMeasConfig_ExtIEs__extensionValue_PR {
+       UEAppLayerMeasConfig_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+       UEAppLayerMeasConfig_ExtIEs__extensionValue_PR_ServiceType
+} UEAppLayerMeasConfig_ExtIEs__extensionValue_PR;
+typedef enum UESecurityCapabilities_ExtIEs__extensionValue_PR {
+       UESecurityCapabilities_ExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} UESecurityCapabilities_ExtIEs__extensionValue_PR;
+typedef enum UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue_PR {
+       UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue_PR;
+typedef enum UEsToBeResetList_Item_ExtIEs__extensionValue_PR {
+       UEsToBeResetList_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+       
+} UEsToBeResetList_Item_ExtIEs__extensionValue_PR;
+typedef enum ULandDLSharing_ExtIEs__extensionValue_PR {
+       ULandDLSharing_ExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} ULandDLSharing_ExtIEs__extensionValue_PR;
+typedef enum ULConfiguration_ExtIEs__extensionValue_PR {
+       ULConfiguration_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} ULConfiguration_ExtIEs__extensionValue_PR;
+typedef enum UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue_PR {
+       UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue_PR_NOTHING        /* No components present */
+       
+} UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue_PR;
+typedef enum ULOnlySharing_ExtIEs__extensionValue_PR {
+       ULOnlySharing_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+       
+} ULOnlySharing_ExtIEs__extensionValue_PR;
+typedef enum UsableABSInformationFDD_ExtIEs__extensionValue_PR {
+       UsableABSInformationFDD_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} UsableABSInformationFDD_ExtIEs__extensionValue_PR;
+typedef enum UsableABSInformationTDD_ExtIEs__extensionValue_PR {
+       UsableABSInformationTDD_ExtIEs__extensionValue_PR_NOTHING       /* No components present */
+       
+} UsableABSInformationTDD_ExtIEs__extensionValue_PR;
+typedef enum V2XServicesAuthorized_ExtIEs__extensionValue_PR {
+       V2XServicesAuthorized_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+       
+} V2XServicesAuthorized_ExtIEs__extensionValue_PR;
+typedef enum WidebandCQI_ExtIEs__extensionValue_PR {
+       WidebandCQI_ExtIEs__extensionValue_PR_NOTHING   /* No components present */
+       
+} WidebandCQI_ExtIEs__extensionValue_PR;
+typedef enum WLANMeasurementConfiguration_ExtIEs__extensionValue_PR {
+       WLANMeasurementConfiguration_ExtIEs__extensionValue_PR_NOTHING  /* No components present */
+       
+} WLANMeasurementConfiguration_ExtIEs__extensionValue_PR;
+
+/* ProtocolExtensionField */
+typedef struct UE_ContextInformation_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct UE_ContextInformation_ExtIEs__extensionValue {
+               UE_ContextInformation_ExtIEs__extensionValue_PR present;
+               union UE_ContextInformation_ExtIEs__extensionValue_u {
+                       ManagementBasedMDTallowed_t      ManagementBasedMDTallowed;
+                       MDTPLMNList_t    MDTPLMNList;
+                       UESidelinkAggregateMaximumBitRate_t      UESidelinkAggregateMaximumBitRate;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UE_ContextInformation_ExtIEs_t;
+typedef struct E_RABs_ToBeSetup_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeSetup_ItemExtIEs__extensionValue {
+               E_RABs_ToBeSetup_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeSetup_ItemExtIEs__extensionValue_u {
+                       BearerType_t     BearerType;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeSetup_ItemExtIEs_t;
+typedef struct UE_ContextReferenceAtSeNB_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue {
+               UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue_PR present;
+               union UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UE_ContextReferenceAtSeNB_ItemExtIEs_t;
+typedef struct UE_ContextReferenceAtWT_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct UE_ContextReferenceAtWT_ItemExtIEs__extensionValue {
+               UE_ContextReferenceAtWT_ItemExtIEs__extensionValue_PR present;
+               union UE_ContextReferenceAtWT_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UE_ContextReferenceAtWT_ItemExtIEs_t;
+typedef struct UE_ContextReferenceAtSgNB_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue {
+               UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue_PR present;
+               union UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UE_ContextReferenceAtSgNB_ItemExtIEs_t;
+typedef struct E_RABs_Admitted_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_Item_ExtIEs__extensionValue {
+               E_RABs_Admitted_Item_ExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_Item_ExtIEs_t;
+typedef struct E_RABs_SubjectToStatusTransfer_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue {
+               E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_u {
+                       ReceiveStatusOfULPDCPSDUsExtended_t      ReceiveStatusOfULPDCPSDUsExtended;
+                       COUNTValueExtended_t     COUNTValueExtended;
+                       ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_t       ReceiveStatusOfULPDCPSDUsPDCP_SNlength18;
+                       COUNTvaluePDCP_SNlength18_t      COUNTvaluePDCP_SNlength18;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_SubjectToStatusTransfer_ItemExtIEs_t;
+typedef struct CellInformation_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CellInformation_Item_ExtIEs__extensionValue {
+               CellInformation_Item_ExtIEs__extensionValue_PR present;
+               union CellInformation_Item_ExtIEs__extensionValue_u {
+                       ABSInformation_t         ABSInformation;
+                       InvokeIndication_t       InvokeIndication;
+                       SubframeAssignment_t     SubframeAssignment;
+                       ExtendedULInterferenceOverloadInfo_t     ExtendedULInterferenceOverloadInfo;
+                       CoMPInformation_t        CoMPInformation;
+                       DynamicDLTransmissionInformation_t       DynamicDLTransmissionInformation;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellInformation_Item_ExtIEs_t;
+typedef struct ServedCellsToModify_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ServedCellsToModify_Item_ExtIEs__extensionValue {
+               ServedCellsToModify_Item_ExtIEs__extensionValue_PR present;
+               union ServedCellsToModify_Item_ExtIEs__extensionValue_u {
+                       DeactivationIndication_t         DeactivationIndication;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedCellsToModify_Item_ExtIEs_t;
+typedef struct CellToReport_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CellToReport_Item_ExtIEs__extensionValue {
+               CellToReport_Item_ExtIEs__extensionValue_PR present;
+               union CellToReport_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellToReport_Item_ExtIEs_t;
+typedef struct MeasurementInitiationResult_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct MeasurementInitiationResult_Item_ExtIEs__extensionValue {
+               MeasurementInitiationResult_Item_ExtIEs__extensionValue_PR present;
+               union MeasurementInitiationResult_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MeasurementInitiationResult_Item_ExtIEs_t;
+typedef struct MeasurementFailureCause_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct MeasurementFailureCause_Item_ExtIEs__extensionValue {
+               MeasurementFailureCause_Item_ExtIEs__extensionValue_PR present;
+               union MeasurementFailureCause_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MeasurementFailureCause_Item_ExtIEs_t;
+typedef struct CompleteFailureCauseInformation_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CompleteFailureCauseInformation_Item_ExtIEs__extensionValue {
+               CompleteFailureCauseInformation_Item_ExtIEs__extensionValue_PR present;
+               union CompleteFailureCauseInformation_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CompleteFailureCauseInformation_Item_ExtIEs_t;
+typedef struct CellMeasurementResult_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CellMeasurementResult_Item_ExtIEs__extensionValue {
+               CellMeasurementResult_Item_ExtIEs__extensionValue_PR present;
+               union CellMeasurementResult_Item_ExtIEs__extensionValue_u {
+                       CompositeAvailableCapacityGroup_t        CompositeAvailableCapacityGroup;
+                       ABS_Status_t     ABS_Status;
+                       RSRPMRList_t     RSRPMRList;
+                       CSIReportList_t  CSIReportList;
+                       CellReportingIndicator_t         CellReportingIndicator;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellMeasurementResult_Item_ExtIEs_t;
+typedef struct ServedCellsToActivate_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ServedCellsToActivate_Item_ExtIEs__extensionValue {
+               ServedCellsToActivate_Item_ExtIEs__extensionValue_PR present;
+               union ServedCellsToActivate_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedCellsToActivate_Item_ExtIEs_t;
+typedef struct ActivatedCellList_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ActivatedCellList_Item_ExtIEs__extensionValue {
+               ActivatedCellList_Item_ExtIEs__extensionValue_PR present;
+               union ActivatedCellList_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ActivatedCellList_Item_ExtIEs_t;
+typedef struct RNL_Header_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RNL_Header_Item_ExtIEs__extensionValue {
+               RNL_Header_Item_ExtIEs__extensionValue_PR present;
+               union RNL_Header_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RNL_Header_Item_ExtIEs_t;
+typedef struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue {
+               E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_u {
+                       Correlation_ID_t         Correlation_ID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_t;
+typedef struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue {
+               E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_Item_Split_BearerExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_t;
+typedef struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue {
+               ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue_PR present;
+               union ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResponseInformationSeNBReconfComp_SuccessItemExtIEs_t;
+typedef struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue {
+               ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_PR present;
+               union ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_t;
+typedef struct UE_ContextInformationSeNBModReqExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct UE_ContextInformationSeNBModReqExtIEs__extensionValue {
+               UE_ContextInformationSeNBModReqExtIEs__extensionValue_PR present;
+               union UE_ContextInformationSeNBModReqExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UE_ContextInformationSeNBModReqExtIEs_t;
+typedef struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue {
+               E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue_u {
+                       Correlation_ID_t         Correlation_ID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_t;
+typedef struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue {
+               E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_t;
+typedef struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue {
+               E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_t;
+typedef struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue {
+               E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_t;
+typedef struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue {
+               E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_t;
+typedef struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue {
+               E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_t;
+typedef struct E_RABs_ToBeReleased_ModReqdItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue {
+               E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_ModReqdItemExtIEs_t;
+typedef struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue {
+               E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_t;
+typedef struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue {
+               E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_t;
+typedef struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue {
+               E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_t;
+typedef struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue {
+               E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_t;
+typedef struct E_RABs_SubjectToCounterCheckItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue {
+               E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue_PR present;
+               union E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_SubjectToCounterCheckItemExtIEs_t;
+typedef struct UE_ContextInformationRetrieve_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct UE_ContextInformationRetrieve_ExtIEs__extensionValue {
+               UE_ContextInformationRetrieve_ExtIEs__extensionValue_PR present;
+               union UE_ContextInformationRetrieve_ExtIEs__extensionValue_u {
+                       UESidelinkAggregateMaximumBitRate_t      UESidelinkAggregateMaximumBitRate;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UE_ContextInformationRetrieve_ExtIEs_t;
+typedef struct E_RABs_ToBeSetupRetrieve_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue {
+               E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue_u {
+                       GTPtunnelEndpoint_t      GTPtunnelEndpoint;
+                       DL_Forwarding_t  DL_Forwarding;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeSetupRetrieve_ItemExtIEs_t;
+typedef struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue {
+               E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_t;
+typedef struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue {
+               E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue_u {
+                       RLCMode_t        RLCMode;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_t;
+typedef struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue {
+               E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u {
+                       PDCPSnLength_t   PDCPSnLength;
+                       DuplicationActivation_t  DuplicationActivation;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_t;
+typedef struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue {
+               E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue_u {
+                       PDCPSnLength_t   PDCPSnLength;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u {
+                       LCID_t   LCID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_t;
+typedef struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue {
+               ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue_PR present;
+               union ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResponseInformationSgNBReconfComp_SuccessItemExtIEs_t;
+typedef struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue {
+               ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_PR present;
+               union ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_t;
+typedef struct UE_ContextInformationSgNBModReqExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct UE_ContextInformationSgNBModReqExtIEs__extensionValue {
+               UE_ContextInformationSgNBModReqExtIEs__extensionValue_PR present;
+               union UE_ContextInformationSgNBModReqExtIEs__extensionValue_u {
+                       SubscriberProfileIDforRFP_t      SubscriberProfileIDforRFP;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UE_ContextInformationSgNBModReqExtIEs_t;
+typedef struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue {
+               E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_t;
+typedef struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue {
+               E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_u {
+                       RLCMode_t        RLCMode;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_t;
+typedef struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue {
+               E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u {
+                       PDCPSnLength_t   PDCPSnLength;
+                       DuplicationActivation_t  DuplicationActivation;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_t;
+typedef struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue {
+               E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_t;
+typedef struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue {
+               E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_u {
+                       RLC_Status_t     RLC_Status;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_t;
+typedef struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue {
+               E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u {
+                       PDCPSnLength_t   PDCPSnLength;
+                       GTPtunnelEndpoint_t      GTPtunnelEndpoint;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue {
+               E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue {
+               E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue {
+               E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_u {
+                       PDCPSnLength_t   PDCPSnLength;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u {
+                       LCID_t   LCID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_t;
+typedef struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue {
+               E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_u {
+                       PDCPSnLength_t   PDCPSnLength;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u {
+                       GTPtunnelEndpoint_t      GTPtunnelEndpoint;
+                       RLC_Status_t     RLC_Status;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue {
+               E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue {
+               E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue_u {
+                       RLCMode_t        RLCMode;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_t;
+typedef struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue {
+               E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_t;
+typedef struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue {
+               E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_u {
+                       PDCPSnLength_t   PDCPSnLength;
+                       NewDRBIDrequest_t        NewDRBIDrequest;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_t;
+typedef struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue {
+               E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u {
+                       RLC_Status_t     RLC_Status;
+                       LCID_t   LCID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_t;
+typedef struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue {
+               E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_t;
+typedef struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue {
+               E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present;
+               union E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_t;
+typedef struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue {
+               E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present;
+               union E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u {
+                       PDCPSnLength_t   PDCPSnLength;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue {
+               E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue {
+               E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue {
+               E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_t;
+typedef struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue {
+               E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue {
+               E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue {
+               E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue {
+               E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue {
+               E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_t;
+typedef struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue {
+               E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue {
+               E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue {
+               E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue {
+               E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present;
+               union E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_t;
+typedef struct ServedEUTRAcellsENDCX2Management_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue {
+               ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue_PR present;
+               union ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedEUTRAcellsENDCX2Management_ExtIEs_t;
+typedef struct En_gNBServedCells_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct En_gNBServedCells_ExtIEs__extensionValue {
+               En_gNBServedCells_ExtIEs__extensionValue_PR present;
+               union En_gNBServedCells_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} En_gNBServedCells_ExtIEs_t;
+typedef struct ServedNRCell_Information_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ServedNRCell_Information_ExtIEs__extensionValue {
+               ServedNRCell_Information_ExtIEs__extensionValue_PR present;
+               union ServedNRCell_Information_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedNRCell_Information_ExtIEs_t;
+typedef struct FDD_InfoServedNRCell_Information_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct FDD_InfoServedNRCell_Information_ExtIEs__extensionValue {
+               FDD_InfoServedNRCell_Information_ExtIEs__extensionValue_PR present;
+               union FDD_InfoServedNRCell_Information_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} FDD_InfoServedNRCell_Information_ExtIEs_t;
+typedef struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue {
+               FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_PR present;
+               union FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} FDD_InfoNeighbourServedNRCell_Information_ExtIEs_t;
+typedef struct TDD_InfoServedNRCell_Information_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct TDD_InfoServedNRCell_Information_ExtIEs__extensionValue {
+               TDD_InfoServedNRCell_Information_ExtIEs__extensionValue_PR present;
+               union TDD_InfoServedNRCell_Information_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TDD_InfoServedNRCell_Information_ExtIEs_t;
+typedef struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue {
+               TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_PR present;
+               union TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TDD_InfoNeighbourServedNRCell_Information_ExtIEs_t;
+typedef struct NRNeighbour_Information_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct NRNeighbour_Information_ExtIEs__extensionValue {
+               NRNeighbour_Information_ExtIEs__extensionValue_PR present;
+               union NRNeighbour_Information_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} NRNeighbour_Information_ExtIEs_t;
+typedef struct Limited_list_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct Limited_list_ExtIEs__extensionValue {
+               Limited_list_ExtIEs__extensionValue_PR present;
+               union Limited_list_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} Limited_list_ExtIEs_t;
+typedef struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue {
+               ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue_PR present;
+               union ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_t;
+typedef struct ServedNRCellsToModify_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ServedNRCellsToModify_Item_ExtIEs__extensionValue {
+               ServedNRCellsToModify_Item_ExtIEs__extensionValue_PR present;
+               union ServedNRCellsToModify_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedNRCellsToModify_Item_ExtIEs_t;
+typedef struct ServedNRCellsToActivate_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ServedNRCellsToActivate_Item_ExtIEs__extensionValue {
+               ServedNRCellsToActivate_Item_ExtIEs__extensionValue_PR present;
+               union ServedNRCellsToActivate_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedNRCellsToActivate_Item_ExtIEs_t;
+typedef struct ActivatedNRCellList_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ActivatedNRCellList_Item_ExtIEs__extensionValue {
+               ActivatedNRCellList_Item_ExtIEs__extensionValue_PR present;
+               union ActivatedNRCellList_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ActivatedNRCellList_Item_ExtIEs_t;
+typedef struct E_RABs_DataForwardingAddress_ItemExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue {
+               E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue_PR present;
+               union E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_DataForwardingAddress_ItemExtIEs_t;
+typedef struct ABSInformationFDD_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ABSInformationFDD_ExtIEs__extensionValue {
+               ABSInformationFDD_ExtIEs__extensionValue_PR present;
+               union ABSInformationFDD_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ABSInformationFDD_ExtIEs_t;
+typedef struct ABSInformationTDD_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ABSInformationTDD_ExtIEs__extensionValue {
+               ABSInformationTDD_ExtIEs__extensionValue_PR present;
+               union ABSInformationTDD_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ABSInformationTDD_ExtIEs_t;
+typedef struct ABS_Status_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ABS_Status_ExtIEs__extensionValue {
+               ABS_Status_ExtIEs__extensionValue_PR present;
+               union ABS_Status_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ABS_Status_ExtIEs_t;
+typedef struct AdditionalSpecialSubframe_Info_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct AdditionalSpecialSubframe_Info_ExtIEs__extensionValue {
+               AdditionalSpecialSubframe_Info_ExtIEs__extensionValue_PR present;
+               union AdditionalSpecialSubframe_Info_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} AdditionalSpecialSubframe_Info_ExtIEs_t;
+typedef struct AdditionalSpecialSubframeExtension_Info_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue {
+               AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue_PR present;
+               union AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} AdditionalSpecialSubframeExtension_Info_ExtIEs_t;
+typedef struct AllocationAndRetentionPriority_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct AllocationAndRetentionPriority_ExtIEs__extensionValue {
+               AllocationAndRetentionPriority_ExtIEs__extensionValue_PR present;
+               union AllocationAndRetentionPriority_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} AllocationAndRetentionPriority_ExtIEs_t;
+typedef struct AS_SecurityInformation_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct AS_SecurityInformation_ExtIEs__extensionValue {
+               AS_SecurityInformation_ExtIEs__extensionValue_PR present;
+               union AS_SecurityInformation_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} AS_SecurityInformation_ExtIEs_t;
+typedef struct BluetoothMeasurementConfiguration_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct BluetoothMeasurementConfiguration_ExtIEs__extensionValue {
+               BluetoothMeasurementConfiguration_ExtIEs__extensionValue_PR present;
+               union BluetoothMeasurementConfiguration_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} BluetoothMeasurementConfiguration_ExtIEs_t;
+typedef struct CellBasedMDT_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CellBasedMDT_ExtIEs__extensionValue {
+               CellBasedMDT_ExtIEs__extensionValue_PR present;
+               union CellBasedMDT_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellBasedMDT_ExtIEs_t;
+typedef struct CellBasedQMC_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CellBasedQMC_ExtIEs__extensionValue {
+               CellBasedQMC_ExtIEs__extensionValue_PR present;
+               union CellBasedQMC_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellBasedQMC_ExtIEs_t;
+typedef struct CellReplacingInfo_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CellReplacingInfo_ExtIEs__extensionValue {
+               CellReplacingInfo_ExtIEs__extensionValue_PR present;
+               union CellReplacingInfo_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellReplacingInfo_ExtIEs_t;
+typedef struct CellType_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CellType_ExtIEs__extensionValue {
+               CellType_ExtIEs__extensionValue_PR present;
+               union CellType_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellType_ExtIEs_t;
+typedef struct CNTypeRestrictionsItem_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CNTypeRestrictionsItem_ExtIEs__extensionValue {
+               CNTypeRestrictionsItem_ExtIEs__extensionValue_PR present;
+               union CNTypeRestrictionsItem_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CNTypeRestrictionsItem_ExtIEs_t;
+typedef struct CoMPHypothesisSetItem_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CoMPHypothesisSetItem_ExtIEs__extensionValue {
+               CoMPHypothesisSetItem_ExtIEs__extensionValue_PR present;
+               union CoMPHypothesisSetItem_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CoMPHypothesisSetItem_ExtIEs_t;
+typedef struct CoMPInformation_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CoMPInformation_ExtIEs__extensionValue {
+               CoMPInformation_ExtIEs__extensionValue_PR present;
+               union CoMPInformation_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CoMPInformation_ExtIEs_t;
+typedef struct CoMPInformationItem_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CoMPInformationItem_ExtIEs__extensionValue {
+               CoMPInformationItem_ExtIEs__extensionValue_PR present;
+               union CoMPInformationItem_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CoMPInformationItem_ExtIEs_t;
+typedef struct CoMPInformationStartTime_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CoMPInformationStartTime_ExtIEs__extensionValue {
+               CoMPInformationStartTime_ExtIEs__extensionValue_PR present;
+               union CoMPInformationStartTime_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CoMPInformationStartTime_ExtIEs_t;
+typedef struct CompositeAvailableCapacity_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CompositeAvailableCapacity_ExtIEs__extensionValue {
+               CompositeAvailableCapacity_ExtIEs__extensionValue_PR present;
+               union CompositeAvailableCapacity_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CompositeAvailableCapacity_ExtIEs_t;
+typedef struct CompositeAvailableCapacityGroup_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CompositeAvailableCapacityGroup_ExtIEs__extensionValue {
+               CompositeAvailableCapacityGroup_ExtIEs__extensionValue_PR present;
+               union CompositeAvailableCapacityGroup_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CompositeAvailableCapacityGroup_ExtIEs_t;
+typedef struct COUNTvalue_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct COUNTvalue_ExtIEs__extensionValue {
+               COUNTvalue_ExtIEs__extensionValue_PR present;
+               union COUNTvalue_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} COUNTvalue_ExtIEs_t;
+typedef struct COUNTValueExtended_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct COUNTValueExtended_ExtIEs__extensionValue {
+               COUNTValueExtended_ExtIEs__extensionValue_PR present;
+               union COUNTValueExtended_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} COUNTValueExtended_ExtIEs_t;
+typedef struct COUNTvaluePDCP_SNlength18_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue {
+               COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue_PR present;
+               union COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} COUNTvaluePDCP_SNlength18_ExtIEs_t;
+typedef struct CriticalityDiagnostics_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CriticalityDiagnostics_ExtIEs__extensionValue {
+               CriticalityDiagnostics_ExtIEs__extensionValue_PR present;
+               union CriticalityDiagnostics_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CriticalityDiagnostics_ExtIEs_t;
+typedef struct CriticalityDiagnostics_IE_List_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CriticalityDiagnostics_IE_List_ExtIEs__extensionValue {
+               CriticalityDiagnostics_IE_List_ExtIEs__extensionValue_PR present;
+               union CriticalityDiagnostics_IE_List_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CriticalityDiagnostics_IE_List_ExtIEs_t;
+typedef struct CSIReportList_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CSIReportList_ExtIEs__extensionValue {
+               CSIReportList_ExtIEs__extensionValue_PR present;
+               union CSIReportList_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CSIReportList_ExtIEs_t;
+typedef struct CSIReportPerCSIProcess_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CSIReportPerCSIProcess_ExtIEs__extensionValue {
+               CSIReportPerCSIProcess_ExtIEs__extensionValue_PR present;
+               union CSIReportPerCSIProcess_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CSIReportPerCSIProcess_ExtIEs_t;
+typedef struct CSIReportPerCSIProcessItem_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CSIReportPerCSIProcessItem_ExtIEs__extensionValue {
+               CSIReportPerCSIProcessItem_ExtIEs__extensionValue_PR present;
+               union CSIReportPerCSIProcessItem_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CSIReportPerCSIProcessItem_ExtIEs_t;
+typedef struct DataTrafficResourceIndication_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct DataTrafficResourceIndication_ExtIEs__extensionValue {
+               DataTrafficResourceIndication_ExtIEs__extensionValue_PR present;
+               union DataTrafficResourceIndication_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} DataTrafficResourceIndication_ExtIEs_t;
+typedef struct DeliveryStatus_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct DeliveryStatus_ExtIEs__extensionValue {
+               DeliveryStatus_ExtIEs__extensionValue_PR present;
+               union DeliveryStatus_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} DeliveryStatus_ExtIEs_t;
+typedef struct DynamicNAICSInformation_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct DynamicNAICSInformation_ExtIEs__extensionValue {
+               DynamicNAICSInformation_ExtIEs__extensionValue_PR present;
+               union DynamicNAICSInformation_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} DynamicNAICSInformation_ExtIEs_t;
+typedef struct ECGI_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ECGI_ExtIEs__extensionValue {
+               ECGI_ExtIEs__extensionValue_PR present;
+               union ECGI_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ECGI_ExtIEs_t;
+typedef struct EnhancedRNTP_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct EnhancedRNTP_ExtIEs__extensionValue {
+               EnhancedRNTP_ExtIEs__extensionValue_PR present;
+               union EnhancedRNTP_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} EnhancedRNTP_ExtIEs_t;
+typedef struct EnhancedRNTPStartTime_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct EnhancedRNTPStartTime_ExtIEs__extensionValue {
+               EnhancedRNTPStartTime_ExtIEs__extensionValue_PR present;
+               union EnhancedRNTPStartTime_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} EnhancedRNTPStartTime_ExtIEs_t;
+typedef struct EN_DC_ResourceConfigurationExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct EN_DC_ResourceConfigurationExtIEs__extensionValue {
+               EN_DC_ResourceConfigurationExtIEs__extensionValue_PR present;
+               union EN_DC_ResourceConfigurationExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} EN_DC_ResourceConfigurationExtIEs_t;
+typedef struct ERABActivityNotifyItem_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ERABActivityNotifyItem_ExtIEs__extensionValue {
+               ERABActivityNotifyItem_ExtIEs__extensionValue_PR present;
+               union ERABActivityNotifyItem_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ERABActivityNotifyItem_ExtIEs_t;
+typedef struct E_RAB_Level_QoS_Parameters_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue {
+               E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue_PR present;
+               union E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue_u {
+                       Packet_LossRate_t        Packet_LossRate;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RAB_Level_QoS_Parameters_ExtIEs_t;
+typedef struct E_RAB_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RAB_Item_ExtIEs__extensionValue {
+               E_RAB_Item_ExtIEs__extensionValue_PR present;
+               union E_RAB_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RAB_Item_ExtIEs_t;
+typedef struct E_RABUsageReport_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABUsageReport_Item_ExtIEs__extensionValue {
+               E_RABUsageReport_Item_ExtIEs__extensionValue_PR present;
+               union E_RABUsageReport_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABUsageReport_Item_ExtIEs_t;
+typedef struct ExpectedUEBehaviour_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ExpectedUEBehaviour_ExtIEs__extensionValue {
+               ExpectedUEBehaviour_ExtIEs__extensionValue_PR present;
+               union ExpectedUEBehaviour_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ExpectedUEBehaviour_ExtIEs_t;
+typedef struct ExpectedUEActivityBehaviour_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ExpectedUEActivityBehaviour_ExtIEs__extensionValue {
+               ExpectedUEActivityBehaviour_ExtIEs__extensionValue_PR present;
+               union ExpectedUEActivityBehaviour_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ExpectedUEActivityBehaviour_ExtIEs_t;
+typedef struct ExtendedULInterferenceOverloadInfo_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue {
+               ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue_PR present;
+               union ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ExtendedULInterferenceOverloadInfo_ExtIEs_t;
+typedef struct FDD_Info_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct FDD_Info_ExtIEs__extensionValue {
+               FDD_Info_ExtIEs__extensionValue_PR present;
+               union FDD_Info_ExtIEs__extensionValue_u {
+                       EARFCNExtension_t        EARFCNExtension;
+                       OffsetOfNbiotChannelNumberToEARFCN_t     OffsetOfNbiotChannelNumberToEARFCN;
+                       NRS_NSSS_PowerOffset_t   NRS_NSSS_PowerOffset;
+                       NSSS_NumOccasionDifferentPrecoder_t      NSSS_NumOccasionDifferentPrecoder;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} FDD_Info_ExtIEs_t;
+typedef struct ForbiddenTAs_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ForbiddenTAs_Item_ExtIEs__extensionValue {
+               ForbiddenTAs_Item_ExtIEs__extensionValue_PR present;
+               union ForbiddenTAs_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ForbiddenTAs_Item_ExtIEs_t;
+typedef struct ForbiddenLAs_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ForbiddenLAs_Item_ExtIEs__extensionValue {
+               ForbiddenLAs_Item_ExtIEs__extensionValue_PR present;
+               union ForbiddenLAs_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ForbiddenLAs_Item_ExtIEs_t;
+typedef struct FreqBandNrItem_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct FreqBandNrItem_ExtIEs__extensionValue {
+               FreqBandNrItem_ExtIEs__extensionValue_PR present;
+               union FreqBandNrItem_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} FreqBandNrItem_ExtIEs_t;
+typedef struct GBR_QosInformation_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct GBR_QosInformation_ExtIEs__extensionValue {
+               GBR_QosInformation_ExtIEs__extensionValue_PR present;
+               union GBR_QosInformation_ExtIEs__extensionValue_u {
+                       ExtendedBitRate_t        ExtendedBitRate;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} GBR_QosInformation_ExtIEs_t;
+typedef struct GlobalENB_ID_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct GlobalENB_ID_ExtIEs__extensionValue {
+               GlobalENB_ID_ExtIEs__extensionValue_PR present;
+               union GlobalENB_ID_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} GlobalENB_ID_ExtIEs_t;
+typedef struct GlobalGNB_ID_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct GlobalGNB_ID_ExtIEs__extensionValue {
+               GlobalGNB_ID_ExtIEs__extensionValue_PR present;
+               union GlobalGNB_ID_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} GlobalGNB_ID_ExtIEs_t;
+typedef struct GTPtunnelEndpoint_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct GTPtunnelEndpoint_ExtIEs__extensionValue {
+               GTPtunnelEndpoint_ExtIEs__extensionValue_PR present;
+               union GTPtunnelEndpoint_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} GTPtunnelEndpoint_ExtIEs_t;
+typedef struct GU_Group_ID_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct GU_Group_ID_ExtIEs__extensionValue {
+               GU_Group_ID_ExtIEs__extensionValue_PR present;
+               union GU_Group_ID_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} GU_Group_ID_ExtIEs_t;
+typedef struct GUMMEI_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct GUMMEI_ExtIEs__extensionValue {
+               GUMMEI_ExtIEs__extensionValue_PR present;
+               union GUMMEI_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} GUMMEI_ExtIEs_t;
+typedef struct HandoverRestrictionList_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct HandoverRestrictionList_ExtIEs__extensionValue {
+               HandoverRestrictionList_ExtIEs__extensionValue_PR present;
+               union HandoverRestrictionList_ExtIEs__extensionValue_u {
+                       NRrestrictioninEPSasSecondaryRAT_t       NRrestrictioninEPSasSecondaryRAT;
+                       CNTypeRestrictions_t     CNTypeRestrictions;
+                       NRrestrictionin5GS_t     NRrestrictionin5GS;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} HandoverRestrictionList_ExtIEs_t;
+typedef struct HWLoadIndicator_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct HWLoadIndicator_ExtIEs__extensionValue {
+               HWLoadIndicator_ExtIEs__extensionValue_PR present;
+               union HWLoadIndicator_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} HWLoadIndicator_ExtIEs_t;
+typedef struct LastVisitedEUTRANCellInformation_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct LastVisitedEUTRANCellInformation_ExtIEs__extensionValue {
+               LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR present;
+               union LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_u {
+                       Time_UE_StayedInCell_EnhancedGranularity_t       Time_UE_StayedInCell_EnhancedGranularity;
+                       Cause_t  Cause;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} LastVisitedEUTRANCellInformation_ExtIEs_t;
+typedef struct LocationReportingInformation_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct LocationReportingInformation_ExtIEs__extensionValue {
+               LocationReportingInformation_ExtIEs__extensionValue_PR present;
+               union LocationReportingInformation_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} LocationReportingInformation_ExtIEs_t;
+typedef struct M1PeriodicReporting_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct M1PeriodicReporting_ExtIEs__extensionValue {
+               M1PeriodicReporting_ExtIEs__extensionValue_PR present;
+               union M1PeriodicReporting_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} M1PeriodicReporting_ExtIEs_t;
+typedef struct M1ThresholdEventA2_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct M1ThresholdEventA2_ExtIEs__extensionValue {
+               M1ThresholdEventA2_ExtIEs__extensionValue_PR present;
+               union M1ThresholdEventA2_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} M1ThresholdEventA2_ExtIEs_t;
+typedef struct M3Configuration_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct M3Configuration_ExtIEs__extensionValue {
+               M3Configuration_ExtIEs__extensionValue_PR present;
+               union M3Configuration_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} M3Configuration_ExtIEs_t;
+typedef struct M4Configuration_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct M4Configuration_ExtIEs__extensionValue {
+               M4Configuration_ExtIEs__extensionValue_PR present;
+               union M4Configuration_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} M4Configuration_ExtIEs_t;
+typedef struct M5Configuration_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct M5Configuration_ExtIEs__extensionValue {
+               M5Configuration_ExtIEs__extensionValue_PR present;
+               union M5Configuration_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} M5Configuration_ExtIEs_t;
+typedef struct M6Configuration_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct M6Configuration_ExtIEs__extensionValue {
+               M6Configuration_ExtIEs__extensionValue_PR present;
+               union M6Configuration_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} M6Configuration_ExtIEs_t;
+typedef struct M7Configuration_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct M7Configuration_ExtIEs__extensionValue {
+               M7Configuration_ExtIEs__extensionValue_PR present;
+               union M7Configuration_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} M7Configuration_ExtIEs_t;
+typedef struct MDT_Configuration_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct MDT_Configuration_ExtIEs__extensionValue {
+               MDT_Configuration_ExtIEs__extensionValue_PR present;
+               union MDT_Configuration_ExtIEs__extensionValue_u {
+                       M3Configuration_t        M3Configuration;
+                       M4Configuration_t        M4Configuration;
+                       M5Configuration_t        M5Configuration;
+                       MDT_Location_Info_t      MDT_Location_Info;
+                       MDTPLMNList_t    MDTPLMNList;
+                       M6Configuration_t        M6Configuration;
+                       M7Configuration_t        M7Configuration;
+                       BluetoothMeasurementConfiguration_t      BluetoothMeasurementConfiguration;
+                       WLANMeasurementConfiguration_t   WLANMeasurementConfiguration;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MDT_Configuration_ExtIEs_t;
+typedef struct MeNBResourceCoordinationInformationExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct MeNBResourceCoordinationInformationExtIEs__extensionValue {
+               MeNBResourceCoordinationInformationExtIEs__extensionValue_PR present;
+               union MeNBResourceCoordinationInformationExtIEs__extensionValue_u {
+                       NRCGI_t  NRCGI;
+                       MeNBCoordinationAssistanceInformation_t  MeNBCoordinationAssistanceInformation;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MeNBResourceCoordinationInformationExtIEs_t;
+typedef struct MBSFN_Subframe_Info_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct MBSFN_Subframe_Info_ExtIEs__extensionValue {
+               MBSFN_Subframe_Info_ExtIEs__extensionValue_PR present;
+               union MBSFN_Subframe_Info_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MBSFN_Subframe_Info_ExtIEs_t;
+typedef struct BandInfo_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct BandInfo_ExtIEs__extensionValue {
+               BandInfo_ExtIEs__extensionValue_PR present;
+               union BandInfo_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} BandInfo_ExtIEs_t;
+typedef struct SplitSRB_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SplitSRB_ExtIEs__extensionValue {
+               SplitSRB_ExtIEs__extensionValue_PR present;
+               union SplitSRB_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SplitSRB_ExtIEs_t;
+typedef struct UENRMeasurement_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct UENRMeasurement_ExtIEs__extensionValue {
+               UENRMeasurement_ExtIEs__extensionValue_PR present;
+               union UENRMeasurement_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UENRMeasurement_ExtIEs_t;
+typedef struct Neighbour_Information_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct Neighbour_Information_ExtIEs__extensionValue {
+               Neighbour_Information_ExtIEs__extensionValue_PR present;
+               union Neighbour_Information_ExtIEs__extensionValue_u {
+                       TAC_t    TAC;
+                       EARFCNExtension_t        EARFCNExtension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} Neighbour_Information_ExtIEs_t;
+typedef struct NRFreqInfo_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct NRFreqInfo_ExtIEs__extensionValue {
+               NRFreqInfo_ExtIEs__extensionValue_PR present;
+               union NRFreqInfo_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} NRFreqInfo_ExtIEs_t;
+typedef struct NRCGI_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct NRCGI_ExtIEs__extensionValue {
+               NRCGI_ExtIEs__extensionValue_PR present;
+               union NRCGI_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} NRCGI_ExtIEs_t;
+typedef struct NR_TxBW_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct NR_TxBW_ExtIEs__extensionValue {
+               NR_TxBW_ExtIEs__extensionValue_PR present;
+               union NR_TxBW_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} NR_TxBW_ExtIEs_t;
+typedef struct NRUESecurityCapabilities_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct NRUESecurityCapabilities_ExtIEs__extensionValue {
+               NRUESecurityCapabilities_ExtIEs__extensionValue_PR present;
+               union NRUESecurityCapabilities_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} NRUESecurityCapabilities_ExtIEs_t;
+typedef struct PRACH_Configuration_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct PRACH_Configuration_ExtIEs__extensionValue {
+               PRACH_Configuration_ExtIEs__extensionValue_PR present;
+               union PRACH_Configuration_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} PRACH_Configuration_ExtIEs_t;
+typedef struct PLMNAreaBasedQMC_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct PLMNAreaBasedQMC_ExtIEs__extensionValue {
+               PLMNAreaBasedQMC_ExtIEs__extensionValue_PR present;
+               union PLMNAreaBasedQMC_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} PLMNAreaBasedQMC_ExtIEs_t;
+typedef struct ProSeAuthorized_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ProSeAuthorized_ExtIEs__extensionValue {
+               ProSeAuthorized_ExtIEs__extensionValue_PR present;
+               union ProSeAuthorized_ExtIEs__extensionValue_u {
+                       ProSeUEtoNetworkRelaying_t       ProSeUEtoNetworkRelaying;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProSeAuthorized_ExtIEs_t;
+typedef struct ProtectedEUTRAResourceIndication_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ProtectedEUTRAResourceIndication_ExtIEs__extensionValue {
+               ProtectedEUTRAResourceIndication_ExtIEs__extensionValue_PR present;
+               union ProtectedEUTRAResourceIndication_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtectedEUTRAResourceIndication_ExtIEs_t;
+typedef struct ProtectedFootprintTimePattern_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ProtectedFootprintTimePattern_ExtIEs__extensionValue {
+               ProtectedFootprintTimePattern_ExtIEs__extensionValue_PR present;
+               union ProtectedFootprintTimePattern_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtectedFootprintTimePattern_ExtIEs_t;
+typedef struct ProtectedResourceList_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ProtectedResourceList_Item_ExtIEs__extensionValue {
+               ProtectedResourceList_Item_ExtIEs__extensionValue_PR present;
+               union ProtectedResourceList_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtectedResourceList_Item_ExtIEs_t;
+typedef struct RadioResourceStatus_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RadioResourceStatus_ExtIEs__extensionValue {
+               RadioResourceStatus_ExtIEs__extensionValue_PR present;
+               union RadioResourceStatus_ExtIEs__extensionValue_u {
+                       DL_scheduling_PDCCH_CCE_usage_t  DL_scheduling_PDCCH_CCE_usage;
+                       UL_scheduling_PDCCH_CCE_usage_t  UL_scheduling_PDCCH_CCE_usage;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RadioResourceStatus_ExtIEs_t;
+typedef struct RelativeNarrowbandTxPower_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RelativeNarrowbandTxPower_ExtIEs__extensionValue {
+               RelativeNarrowbandTxPower_ExtIEs__extensionValue_PR present;
+               union RelativeNarrowbandTxPower_ExtIEs__extensionValue_u {
+                       EnhancedRNTP_t   EnhancedRNTP;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RelativeNarrowbandTxPower_ExtIEs_t;
+typedef struct ReservedSubframePattern_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ReservedSubframePattern_ExtIEs__extensionValue {
+               ReservedSubframePattern_ExtIEs__extensionValue_PR present;
+               union ReservedSubframePattern_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ReservedSubframePattern_ExtIEs_t;
+typedef struct RLC_Status_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RLC_Status_ExtIEs__extensionValue {
+               RLC_Status_ExtIEs__extensionValue_PR present;
+               union RLC_Status_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RLC_Status_ExtIEs_t;
+typedef struct RSRPMeasurementResult_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RSRPMeasurementResult_ExtIEs__extensionValue {
+               RSRPMeasurementResult_ExtIEs__extensionValue_PR present;
+               union RSRPMeasurementResult_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RSRPMeasurementResult_ExtIEs_t;
+typedef struct RSRPMRList_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RSRPMRList_ExtIEs__extensionValue {
+               RSRPMRList_ExtIEs__extensionValue_PR present;
+               union RSRPMRList_ExtIEs__extensionValue_u {
+                       UEID_t   UEID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RSRPMRList_ExtIEs_t;
+typedef struct S1TNLLoadIndicator_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct S1TNLLoadIndicator_ExtIEs__extensionValue {
+               S1TNLLoadIndicator_ExtIEs__extensionValue_PR present;
+               union S1TNLLoadIndicator_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} S1TNLLoadIndicator_ExtIEs_t;
+typedef struct SecondaryRATUsageReport_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SecondaryRATUsageReport_Item_ExtIEs__extensionValue {
+               SecondaryRATUsageReport_Item_ExtIEs__extensionValue_PR present;
+               union SecondaryRATUsageReport_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SecondaryRATUsageReport_Item_ExtIEs_t;
+typedef struct ServedCell_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ServedCell_ExtIEs__extensionValue {
+               ServedCell_ExtIEs__extensionValue_PR present;
+               union ServedCell_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedCell_ExtIEs_t;
+typedef struct ServedCell_Information_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ServedCell_Information_ExtIEs__extensionValue {
+               ServedCell_Information_ExtIEs__extensionValue_PR present;
+               union ServedCell_Information_ExtIEs__extensionValue_u {
+                       Number_of_Antennaports_t         Number_of_Antennaports;
+                       PRACH_Configuration_t    PRACH_Configuration;
+                       MBSFN_Subframe_Infolist_t        MBSFN_Subframe_Infolist;
+                       CSG_Id_t         CSG_Id;
+                       MBMS_Service_Area_Identity_List_t        MBMS_Service_Area_Identity_List;
+                       MultibandInfoList_t      MultibandInfoList;
+                       FreqBandIndicatorPriority_t      FreqBandIndicatorPriority;
+                       BandwidthReducedSI_t     BandwidthReducedSI;
+                       ProtectedEUTRAResourceIndication_t       ProtectedEUTRAResourceIndication;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedCell_Information_ExtIEs_t;
+typedef struct SgNBResourceCoordinationInformationExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBResourceCoordinationInformationExtIEs__extensionValue {
+               SgNBResourceCoordinationInformationExtIEs__extensionValue_PR present;
+               union SgNBResourceCoordinationInformationExtIEs__extensionValue_u {
+                       ECGI_t   ECGI;
+                       SgNBCoordinationAssistanceInformation_t  SgNBCoordinationAssistanceInformation;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBResourceCoordinationInformationExtIEs_t;
+typedef struct SpecialSubframe_Info_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SpecialSubframe_Info_ExtIEs__extensionValue {
+               SpecialSubframe_Info_ExtIEs__extensionValue_PR present;
+               union SpecialSubframe_Info_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SpecialSubframe_Info_ExtIEs_t;
+typedef struct SubbandCQI_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SubbandCQI_ExtIEs__extensionValue {
+               SubbandCQI_ExtIEs__extensionValue_PR present;
+               union SubbandCQI_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SubbandCQI_ExtIEs_t;
+typedef struct Subscription_Based_UE_DifferentiationInfo_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue {
+               Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue_PR present;
+               union Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} Subscription_Based_UE_DifferentiationInfo_ExtIEs_t;
+typedef struct ScheduledCommunicationTime_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ScheduledCommunicationTime_ExtIEs__extensionValue {
+               ScheduledCommunicationTime_ExtIEs__extensionValue_PR present;
+               union ScheduledCommunicationTime_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ScheduledCommunicationTime_ExtIEs_t;
+typedef struct SubbandCQIItem_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SubbandCQIItem_ExtIEs__extensionValue {
+               SubbandCQIItem_ExtIEs__extensionValue_PR present;
+               union SubbandCQIItem_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SubbandCQIItem_ExtIEs_t;
+typedef struct SULInformation_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SULInformation_ExtIEs__extensionValue {
+               SULInformation_ExtIEs__extensionValue_PR present;
+               union SULInformation_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SULInformation_ExtIEs_t;
+typedef struct SupportedSULFreqBandItem_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SupportedSULFreqBandItem_ExtIEs__extensionValue {
+               SupportedSULFreqBandItem_ExtIEs__extensionValue_PR present;
+               union SupportedSULFreqBandItem_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SupportedSULFreqBandItem_ExtIEs_t;
+typedef struct TABasedMDT_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct TABasedMDT_ExtIEs__extensionValue {
+               TABasedMDT_ExtIEs__extensionValue_PR present;
+               union TABasedMDT_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TABasedMDT_ExtIEs_t;
+typedef struct TAIBasedMDT_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct TAIBasedMDT_ExtIEs__extensionValue {
+               TAIBasedMDT_ExtIEs__extensionValue_PR present;
+               union TAIBasedMDT_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TAIBasedMDT_ExtIEs_t;
+typedef struct TAI_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct TAI_Item_ExtIEs__extensionValue {
+               TAI_Item_ExtIEs__extensionValue_PR present;
+               union TAI_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TAI_Item_ExtIEs_t;
+typedef struct TABasedQMC_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct TABasedQMC_ExtIEs__extensionValue {
+               TABasedQMC_ExtIEs__extensionValue_PR present;
+               union TABasedQMC_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TABasedQMC_ExtIEs_t;
+typedef struct TAIBasedQMC_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct TAIBasedQMC_ExtIEs__extensionValue {
+               TAIBasedQMC_ExtIEs__extensionValue_PR present;
+               union TAIBasedQMC_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TAIBasedQMC_ExtIEs_t;
+typedef struct TDD_Info_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct TDD_Info_ExtIEs__extensionValue {
+               TDD_Info_ExtIEs__extensionValue_PR present;
+               union TDD_Info_ExtIEs__extensionValue_u {
+                       AdditionalSpecialSubframe_Info_t         AdditionalSpecialSubframe_Info;
+                       EARFCNExtension_t        EARFCNExtension;
+                       AdditionalSpecialSubframeExtension_Info_t        AdditionalSpecialSubframeExtension_Info;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TDD_Info_ExtIEs_t;
+typedef struct TraceActivation_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct TraceActivation_ExtIEs__extensionValue {
+               TraceActivation_ExtIEs__extensionValue_PR present;
+               union TraceActivation_ExtIEs__extensionValue_u {
+                       MDT_Configuration_t      MDT_Configuration;
+                       UEAppLayerMeasConfig_t   UEAppLayerMeasConfig;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TraceActivation_ExtIEs_t;
+typedef struct Tunnel_Information_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct Tunnel_Information_ExtIEs__extensionValue {
+               Tunnel_Information_ExtIEs__extensionValue_PR present;
+               union Tunnel_Information_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} Tunnel_Information_ExtIEs_t;
+typedef struct UEAggregate_MaximumBitrate_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct UEAggregate_MaximumBitrate_ExtIEs__extensionValue {
+               UEAggregate_MaximumBitrate_ExtIEs__extensionValue_PR present;
+               union UEAggregate_MaximumBitrate_ExtIEs__extensionValue_u {
+                       ExtendedBitRate_t        ExtendedBitRate;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UEAggregate_MaximumBitrate_ExtIEs_t;
+typedef struct UEAppLayerMeasConfig_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct UEAppLayerMeasConfig_ExtIEs__extensionValue {
+               UEAppLayerMeasConfig_ExtIEs__extensionValue_PR present;
+               union UEAppLayerMeasConfig_ExtIEs__extensionValue_u {
+                       ServiceType_t    ServiceType;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UEAppLayerMeasConfig_ExtIEs_t;
+typedef struct UESecurityCapabilities_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct UESecurityCapabilities_ExtIEs__extensionValue {
+               UESecurityCapabilities_ExtIEs__extensionValue_PR present;
+               union UESecurityCapabilities_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UESecurityCapabilities_ExtIEs_t;
+typedef struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue {
+               UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue_PR present;
+               union UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_t;
+typedef struct UEsToBeResetList_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct UEsToBeResetList_Item_ExtIEs__extensionValue {
+               UEsToBeResetList_Item_ExtIEs__extensionValue_PR present;
+               union UEsToBeResetList_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UEsToBeResetList_Item_ExtIEs_t;
+typedef struct ULandDLSharing_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ULandDLSharing_ExtIEs__extensionValue {
+               ULandDLSharing_ExtIEs__extensionValue_PR present;
+               union ULandDLSharing_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ULandDLSharing_ExtIEs_t;
+typedef struct ULConfiguration_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ULConfiguration_ExtIEs__extensionValue {
+               ULConfiguration_ExtIEs__extensionValue_PR present;
+               union ULConfiguration_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ULConfiguration_ExtIEs_t;
+typedef struct UL_HighInterferenceIndicationInfo_Item_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue {
+               UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue_PR present;
+               union UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UL_HighInterferenceIndicationInfo_Item_ExtIEs_t;
+typedef struct ULOnlySharing_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ULOnlySharing_ExtIEs__extensionValue {
+               ULOnlySharing_ExtIEs__extensionValue_PR present;
+               union ULOnlySharing_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ULOnlySharing_ExtIEs_t;
+typedef struct UsableABSInformationFDD_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct UsableABSInformationFDD_ExtIEs__extensionValue {
+               UsableABSInformationFDD_ExtIEs__extensionValue_PR present;
+               union UsableABSInformationFDD_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UsableABSInformationFDD_ExtIEs_t;
+typedef struct UsableABSInformationTDD_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct UsableABSInformationTDD_ExtIEs__extensionValue {
+               UsableABSInformationTDD_ExtIEs__extensionValue_PR present;
+               union UsableABSInformationTDD_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UsableABSInformationTDD_ExtIEs_t;
+typedef struct V2XServicesAuthorized_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct V2XServicesAuthorized_ExtIEs__extensionValue {
+               V2XServicesAuthorized_ExtIEs__extensionValue_PR present;
+               union V2XServicesAuthorized_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} V2XServicesAuthorized_ExtIEs_t;
+typedef struct WidebandCQI_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct WidebandCQI_ExtIEs__extensionValue {
+               WidebandCQI_ExtIEs__extensionValue_PR present;
+               union WidebandCQI_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} WidebandCQI_ExtIEs_t;
+typedef struct WLANMeasurementConfiguration_ExtIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct WLANMeasurementConfiguration_ExtIEs__extensionValue {
+               WLANMeasurementConfiguration_ExtIEs__extensionValue_PR present;
+               union WLANMeasurementConfiguration_ExtIEs__extensionValue_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } extensionValue;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} WLANMeasurementConfiguration_ExtIEs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_ContextInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformation_ExtIEs_specs_1;
+extern asn_TYPE_member_t asn_MBR_UE_ContextInformation_ExtIEs_1[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetup_ItemExtIEs_specs_5;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_ItemExtIEs_5[3];
+extern asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtSeNB_ItemExtIEs_specs_9;
+extern asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtSeNB_ItemExtIEs_9[3];
+extern asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtWT_ItemExtIEs_specs_13;
+extern asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtWT_ItemExtIEs_13[3];
+extern asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtSgNB_ItemExtIEs_specs_17;
+extern asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtSgNB_ItemExtIEs_17[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_Item_ExtIEs_specs_21;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_Item_ExtIEs_21[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToStatusTransfer_ItemExtIEs_specs_25;
+extern asn_TYPE_member_t asn_MBR_E_RABs_SubjectToStatusTransfer_ItemExtIEs_25[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellInformation_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellInformation_Item_ExtIEs_specs_29;
+extern asn_TYPE_member_t asn_MBR_CellInformation_Item_ExtIEs_29[3];
+extern asn_TYPE_descriptor_t asn_DEF_ServedCellsToModify_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedCellsToModify_Item_ExtIEs_specs_33;
+extern asn_TYPE_member_t asn_MBR_ServedCellsToModify_Item_ExtIEs_33[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellToReport_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellToReport_Item_ExtIEs_specs_37;
+extern asn_TYPE_member_t asn_MBR_CellToReport_Item_ExtIEs_37[3];
+extern asn_TYPE_descriptor_t asn_DEF_MeasurementInitiationResult_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementInitiationResult_Item_ExtIEs_specs_41;
+extern asn_TYPE_member_t asn_MBR_MeasurementInitiationResult_Item_ExtIEs_41[3];
+extern asn_TYPE_descriptor_t asn_DEF_MeasurementFailureCause_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementFailureCause_Item_ExtIEs_specs_45;
+extern asn_TYPE_member_t asn_MBR_MeasurementFailureCause_Item_ExtIEs_45[3];
+extern asn_TYPE_descriptor_t asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CompleteFailureCauseInformation_Item_ExtIEs_specs_49;
+extern asn_TYPE_member_t asn_MBR_CompleteFailureCauseInformation_Item_ExtIEs_49[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellMeasurementResult_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellMeasurementResult_Item_ExtIEs_specs_53;
+extern asn_TYPE_member_t asn_MBR_CellMeasurementResult_Item_ExtIEs_53[3];
+extern asn_TYPE_descriptor_t asn_DEF_ServedCellsToActivate_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedCellsToActivate_Item_ExtIEs_specs_57;
+extern asn_TYPE_member_t asn_MBR_ServedCellsToActivate_Item_ExtIEs_57[3];
+extern asn_TYPE_descriptor_t asn_DEF_ActivatedCellList_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ActivatedCellList_Item_ExtIEs_specs_61;
+extern asn_TYPE_member_t asn_MBR_ActivatedCellList_Item_ExtIEs_61[3];
+extern asn_TYPE_descriptor_t asn_DEF_RNL_Header_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RNL_Header_Item_ExtIEs_specs_65;
+extern asn_TYPE_member_t asn_MBR_RNL_Header_Item_ExtIEs_65[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_specs_69;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_69[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_specs_73;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_73[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_specs_77;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_77[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_specs_81;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_81[3];
+extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_specs_85;
+extern asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_85[3];
+extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_specs_89;
+extern asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_89[3];
+extern asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationSeNBModReqExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformationSeNBModReqExtIEs_specs_93;
+extern asn_TYPE_member_t asn_MBR_UE_ContextInformationSeNBModReqExtIEs_93[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_specs_97;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_97[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_specs_101;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_101[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_specs_105;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_105[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_specs_109;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_109[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_specs_113;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_113[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_specs_117;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_117[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_specs_121;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_121[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_specs_125;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_125[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_specs_129;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_129[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_specs_133;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_133[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_specs_137;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_137[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_specs_141;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_141[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqdItemExtIEs_specs_145;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqdItemExtIEs_145[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_specs_149;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_149[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_specs_153;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_153[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_specs_157;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_157[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_specs_161;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_161[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToCounterCheckItemExtIEs_specs_165;
+extern asn_TYPE_member_t asn_MBR_E_RABs_SubjectToCounterCheckItemExtIEs_165[3];
+extern asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationRetrieve_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformationRetrieve_ExtIEs_specs_169;
+extern asn_TYPE_member_t asn_MBR_UE_ContextInformationRetrieve_ExtIEs_169[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetupRetrieve_ItemExtIEs_specs_173;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetupRetrieve_ItemExtIEs_173[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_specs_177;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_177[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_specs_181;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_181[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_specs_185;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_185[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_specs_189;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_189[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_specs_193;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_193[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_specs_197;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_197[3];
+extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_specs_201;
+extern asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_201[3];
+extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_specs_205;
+extern asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_205[3];
+extern asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationSgNBModReqExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformationSgNBModReqExtIEs_specs_209;
+extern asn_TYPE_member_t asn_MBR_UE_ContextInformationSgNBModReqExtIEs_209[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_specs_213;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_213[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_217;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_217[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_221;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_221[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_specs_225;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_225[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_229;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_229[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_233;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_233[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_specs_237;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_237[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_241;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_241[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_245;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_245[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_specs_249;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_249[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_253;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_253[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_257;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_257[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_specs_261;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_261[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_265;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_265[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_269;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_269[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_specs_273;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_273[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_277;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_277[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_281;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_281[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_specs_285;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_285[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_specs_289;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_289[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_specs_293;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_293[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_specs_297;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_297[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_specs_301;
+extern asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_301[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_specs_305;
+extern asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_305[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_specs_309;
+extern asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_309[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_specs_313;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_313[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_specs_317;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_317[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_specs_321;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_321[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_specs_325;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_325[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_specs_329;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_329[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_specs_333;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_333[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_specs_337;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_337[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_specs_341;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_341[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_specs_345;
+extern asn_TYPE_member_t asn_MBR_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_345[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_specs_349;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_349[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_specs_353;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_353[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_specs_357;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_357[3];
+extern asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedEUTRAcellsENDCX2Management_ExtIEs_specs_361;
+extern asn_TYPE_member_t asn_MBR_ServedEUTRAcellsENDCX2Management_ExtIEs_361[3];
+extern asn_TYPE_descriptor_t asn_DEF_En_gNBServedCells_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_En_gNBServedCells_ExtIEs_specs_365;
+extern asn_TYPE_member_t asn_MBR_En_gNBServedCells_ExtIEs_365[3];
+extern asn_TYPE_descriptor_t asn_DEF_ServedNRCell_Information_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedNRCell_Information_ExtIEs_specs_369;
+extern asn_TYPE_member_t asn_MBR_ServedNRCell_Information_ExtIEs_369[3];
+extern asn_TYPE_descriptor_t asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_FDD_InfoServedNRCell_Information_ExtIEs_specs_373;
+extern asn_TYPE_member_t asn_MBR_FDD_InfoServedNRCell_Information_ExtIEs_373[3];
+extern asn_TYPE_descriptor_t asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_specs_377;
+extern asn_TYPE_member_t asn_MBR_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_377[3];
+extern asn_TYPE_descriptor_t asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TDD_InfoServedNRCell_Information_ExtIEs_specs_381;
+extern asn_TYPE_member_t asn_MBR_TDD_InfoServedNRCell_Information_ExtIEs_381[3];
+extern asn_TYPE_descriptor_t asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_specs_385;
+extern asn_TYPE_member_t asn_MBR_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_385[3];
+extern asn_TYPE_descriptor_t asn_DEF_NRNeighbour_Information_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_NRNeighbour_Information_ExtIEs_specs_389;
+extern asn_TYPE_member_t asn_MBR_NRNeighbour_Information_ExtIEs_389[3];
+extern asn_TYPE_descriptor_t asn_DEF_Limited_list_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_Limited_list_ExtIEs_specs_393;
+extern asn_TYPE_member_t asn_MBR_Limited_list_ExtIEs_393[3];
+extern asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_specs_397;
+extern asn_TYPE_member_t asn_MBR_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_397[3];
+extern asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToModify_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedNRCellsToModify_Item_ExtIEs_specs_401;
+extern asn_TYPE_member_t asn_MBR_ServedNRCellsToModify_Item_ExtIEs_401[3];
+extern asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToActivate_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedNRCellsToActivate_Item_ExtIEs_specs_405;
+extern asn_TYPE_member_t asn_MBR_ServedNRCellsToActivate_Item_ExtIEs_405[3];
+extern asn_TYPE_descriptor_t asn_DEF_ActivatedNRCellList_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ActivatedNRCellList_Item_ExtIEs_specs_409;
+extern asn_TYPE_member_t asn_MBR_ActivatedNRCellList_Item_ExtIEs_409[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_DataForwardingAddress_ItemExtIEs_specs_413;
+extern asn_TYPE_member_t asn_MBR_E_RABs_DataForwardingAddress_ItemExtIEs_413[3];
+extern asn_TYPE_descriptor_t asn_DEF_ABSInformationFDD_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ABSInformationFDD_ExtIEs_specs_417;
+extern asn_TYPE_member_t asn_MBR_ABSInformationFDD_ExtIEs_417[3];
+extern asn_TYPE_descriptor_t asn_DEF_ABSInformationTDD_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ABSInformationTDD_ExtIEs_specs_421;
+extern asn_TYPE_member_t asn_MBR_ABSInformationTDD_ExtIEs_421[3];
+extern asn_TYPE_descriptor_t asn_DEF_ABS_Status_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ABS_Status_ExtIEs_specs_425;
+extern asn_TYPE_member_t asn_MBR_ABS_Status_ExtIEs_425[3];
+extern asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_AdditionalSpecialSubframe_Info_ExtIEs_specs_429;
+extern asn_TYPE_member_t asn_MBR_AdditionalSpecialSubframe_Info_ExtIEs_429[3];
+extern asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_AdditionalSpecialSubframeExtension_Info_ExtIEs_specs_433;
+extern asn_TYPE_member_t asn_MBR_AdditionalSpecialSubframeExtension_Info_ExtIEs_433[3];
+extern asn_TYPE_descriptor_t asn_DEF_AllocationAndRetentionPriority_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_AllocationAndRetentionPriority_ExtIEs_specs_437;
+extern asn_TYPE_member_t asn_MBR_AllocationAndRetentionPriority_ExtIEs_437[3];
+extern asn_TYPE_descriptor_t asn_DEF_AS_SecurityInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_AS_SecurityInformation_ExtIEs_specs_441;
+extern asn_TYPE_member_t asn_MBR_AS_SecurityInformation_ExtIEs_441[3];
+extern asn_TYPE_descriptor_t asn_DEF_BluetoothMeasurementConfiguration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_BluetoothMeasurementConfiguration_ExtIEs_specs_445;
+extern asn_TYPE_member_t asn_MBR_BluetoothMeasurementConfiguration_ExtIEs_445[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellBasedMDT_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellBasedMDT_ExtIEs_specs_449;
+extern asn_TYPE_member_t asn_MBR_CellBasedMDT_ExtIEs_449[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellBasedQMC_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellBasedQMC_ExtIEs_specs_453;
+extern asn_TYPE_member_t asn_MBR_CellBasedQMC_ExtIEs_453[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellReplacingInfo_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellReplacingInfo_ExtIEs_specs_457;
+extern asn_TYPE_member_t asn_MBR_CellReplacingInfo_ExtIEs_457[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellType_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellType_ExtIEs_specs_461;
+extern asn_TYPE_member_t asn_MBR_CellType_ExtIEs_461[3];
+extern asn_TYPE_descriptor_t asn_DEF_CNTypeRestrictionsItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CNTypeRestrictionsItem_ExtIEs_specs_465;
+extern asn_TYPE_member_t asn_MBR_CNTypeRestrictionsItem_ExtIEs_465[3];
+extern asn_TYPE_descriptor_t asn_DEF_CoMPHypothesisSetItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CoMPHypothesisSetItem_ExtIEs_specs_469;
+extern asn_TYPE_member_t asn_MBR_CoMPHypothesisSetItem_ExtIEs_469[3];
+extern asn_TYPE_descriptor_t asn_DEF_CoMPInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CoMPInformation_ExtIEs_specs_473;
+extern asn_TYPE_member_t asn_MBR_CoMPInformation_ExtIEs_473[3];
+extern asn_TYPE_descriptor_t asn_DEF_CoMPInformationItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CoMPInformationItem_ExtIEs_specs_477;
+extern asn_TYPE_member_t asn_MBR_CoMPInformationItem_ExtIEs_477[3];
+extern asn_TYPE_descriptor_t asn_DEF_CoMPInformationStartTime_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CoMPInformationStartTime_ExtIEs_specs_481;
+extern asn_TYPE_member_t asn_MBR_CoMPInformationStartTime_ExtIEs_481[3];
+extern asn_TYPE_descriptor_t asn_DEF_CompositeAvailableCapacity_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CompositeAvailableCapacity_ExtIEs_specs_485;
+extern asn_TYPE_member_t asn_MBR_CompositeAvailableCapacity_ExtIEs_485[3];
+extern asn_TYPE_descriptor_t asn_DEF_CompositeAvailableCapacityGroup_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CompositeAvailableCapacityGroup_ExtIEs_specs_489;
+extern asn_TYPE_member_t asn_MBR_CompositeAvailableCapacityGroup_ExtIEs_489[3];
+extern asn_TYPE_descriptor_t asn_DEF_COUNTvalue_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_COUNTvalue_ExtIEs_specs_493;
+extern asn_TYPE_member_t asn_MBR_COUNTvalue_ExtIEs_493[3];
+extern asn_TYPE_descriptor_t asn_DEF_COUNTValueExtended_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_COUNTValueExtended_ExtIEs_specs_497;
+extern asn_TYPE_member_t asn_MBR_COUNTValueExtended_ExtIEs_497[3];
+extern asn_TYPE_descriptor_t asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_COUNTvaluePDCP_SNlength18_ExtIEs_specs_501;
+extern asn_TYPE_member_t asn_MBR_COUNTvaluePDCP_SNlength18_ExtIEs_501[3];
+extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_ExtIEs_specs_505;
+extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_ExtIEs_505[3];
+extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_ExtIEs_specs_509;
+extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_ExtIEs_509[3];
+extern asn_TYPE_descriptor_t asn_DEF_CSIReportList_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CSIReportList_ExtIEs_specs_513;
+extern asn_TYPE_member_t asn_MBR_CSIReportList_ExtIEs_513[3];
+extern asn_TYPE_descriptor_t asn_DEF_CSIReportPerCSIProcess_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CSIReportPerCSIProcess_ExtIEs_specs_517;
+extern asn_TYPE_member_t asn_MBR_CSIReportPerCSIProcess_ExtIEs_517[3];
+extern asn_TYPE_descriptor_t asn_DEF_CSIReportPerCSIProcessItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CSIReportPerCSIProcessItem_ExtIEs_specs_521;
+extern asn_TYPE_member_t asn_MBR_CSIReportPerCSIProcessItem_ExtIEs_521[3];
+extern asn_TYPE_descriptor_t asn_DEF_DataTrafficResourceIndication_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_DataTrafficResourceIndication_ExtIEs_specs_525;
+extern asn_TYPE_member_t asn_MBR_DataTrafficResourceIndication_ExtIEs_525[3];
+extern asn_TYPE_descriptor_t asn_DEF_DeliveryStatus_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_DeliveryStatus_ExtIEs_specs_529;
+extern asn_TYPE_member_t asn_MBR_DeliveryStatus_ExtIEs_529[3];
+extern asn_TYPE_descriptor_t asn_DEF_DynamicNAICSInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_DynamicNAICSInformation_ExtIEs_specs_533;
+extern asn_TYPE_member_t asn_MBR_DynamicNAICSInformation_ExtIEs_533[3];
+extern asn_TYPE_descriptor_t asn_DEF_ECGI_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ECGI_ExtIEs_specs_537;
+extern asn_TYPE_member_t asn_MBR_ECGI_ExtIEs_537[3];
+extern asn_TYPE_descriptor_t asn_DEF_EnhancedRNTP_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_EnhancedRNTP_ExtIEs_specs_541;
+extern asn_TYPE_member_t asn_MBR_EnhancedRNTP_ExtIEs_541[3];
+extern asn_TYPE_descriptor_t asn_DEF_EnhancedRNTPStartTime_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_EnhancedRNTPStartTime_ExtIEs_specs_545;
+extern asn_TYPE_member_t asn_MBR_EnhancedRNTPStartTime_ExtIEs_545[3];
+extern asn_TYPE_descriptor_t asn_DEF_EN_DC_ResourceConfigurationExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_EN_DC_ResourceConfigurationExtIEs_specs_549;
+extern asn_TYPE_member_t asn_MBR_EN_DC_ResourceConfigurationExtIEs_549[3];
+extern asn_TYPE_descriptor_t asn_DEF_ERABActivityNotifyItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ERABActivityNotifyItem_ExtIEs_specs_553;
+extern asn_TYPE_member_t asn_MBR_ERABActivityNotifyItem_ExtIEs_553[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RAB_Level_QoS_Parameters_ExtIEs_specs_557;
+extern asn_TYPE_member_t asn_MBR_E_RAB_Level_QoS_Parameters_ExtIEs_557[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RAB_Item_ExtIEs_specs_561;
+extern asn_TYPE_member_t asn_MBR_E_RAB_Item_ExtIEs_561[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABUsageReport_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABUsageReport_Item_ExtIEs_specs_565;
+extern asn_TYPE_member_t asn_MBR_E_RABUsageReport_Item_ExtIEs_565[3];
+extern asn_TYPE_descriptor_t asn_DEF_ExpectedUEBehaviour_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEBehaviour_ExtIEs_specs_569;
+extern asn_TYPE_member_t asn_MBR_ExpectedUEBehaviour_ExtIEs_569[3];
+extern asn_TYPE_descriptor_t asn_DEF_ExpectedUEActivityBehaviour_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEActivityBehaviour_ExtIEs_specs_573;
+extern asn_TYPE_member_t asn_MBR_ExpectedUEActivityBehaviour_ExtIEs_573[3];
+extern asn_TYPE_descriptor_t asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ExtendedULInterferenceOverloadInfo_ExtIEs_specs_577;
+extern asn_TYPE_member_t asn_MBR_ExtendedULInterferenceOverloadInfo_ExtIEs_577[3];
+extern asn_TYPE_descriptor_t asn_DEF_FDD_Info_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_FDD_Info_ExtIEs_specs_581;
+extern asn_TYPE_member_t asn_MBR_FDD_Info_ExtIEs_581[3];
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenTAs_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ForbiddenTAs_Item_ExtIEs_specs_585;
+extern asn_TYPE_member_t asn_MBR_ForbiddenTAs_Item_ExtIEs_585[3];
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenLAs_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ForbiddenLAs_Item_ExtIEs_specs_589;
+extern asn_TYPE_member_t asn_MBR_ForbiddenLAs_Item_ExtIEs_589[3];
+extern asn_TYPE_descriptor_t asn_DEF_FreqBandNrItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_FreqBandNrItem_ExtIEs_specs_593;
+extern asn_TYPE_member_t asn_MBR_FreqBandNrItem_ExtIEs_593[3];
+extern asn_TYPE_descriptor_t asn_DEF_GBR_QosInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_GBR_QosInformation_ExtIEs_specs_597;
+extern asn_TYPE_member_t asn_MBR_GBR_QosInformation_ExtIEs_597[3];
+extern asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_ExtIEs_specs_601;
+extern asn_TYPE_member_t asn_MBR_GlobalENB_ID_ExtIEs_601[3];
+extern asn_TYPE_descriptor_t asn_DEF_GlobalGNB_ID_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_GlobalGNB_ID_ExtIEs_specs_605;
+extern asn_TYPE_member_t asn_MBR_GlobalGNB_ID_ExtIEs_605[3];
+extern asn_TYPE_descriptor_t asn_DEF_GTPtunnelEndpoint_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_GTPtunnelEndpoint_ExtIEs_specs_609;
+extern asn_TYPE_member_t asn_MBR_GTPtunnelEndpoint_ExtIEs_609[3];
+extern asn_TYPE_descriptor_t asn_DEF_GU_Group_ID_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_GU_Group_ID_ExtIEs_specs_613;
+extern asn_TYPE_member_t asn_MBR_GU_Group_ID_ExtIEs_613[3];
+extern asn_TYPE_descriptor_t asn_DEF_GUMMEI_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_GUMMEI_ExtIEs_specs_617;
+extern asn_TYPE_member_t asn_MBR_GUMMEI_ExtIEs_617[3];
+extern asn_TYPE_descriptor_t asn_DEF_HandoverRestrictionList_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverRestrictionList_ExtIEs_specs_621;
+extern asn_TYPE_member_t asn_MBR_HandoverRestrictionList_ExtIEs_621[3];
+extern asn_TYPE_descriptor_t asn_DEF_HWLoadIndicator_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_HWLoadIndicator_ExtIEs_specs_625;
+extern asn_TYPE_member_t asn_MBR_HWLoadIndicator_ExtIEs_625[3];
+extern asn_TYPE_descriptor_t asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_LastVisitedEUTRANCellInformation_ExtIEs_specs_629;
+extern asn_TYPE_member_t asn_MBR_LastVisitedEUTRANCellInformation_ExtIEs_629[3];
+extern asn_TYPE_descriptor_t asn_DEF_LocationReportingInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_LocationReportingInformation_ExtIEs_specs_633;
+extern asn_TYPE_member_t asn_MBR_LocationReportingInformation_ExtIEs_633[3];
+extern asn_TYPE_descriptor_t asn_DEF_M1PeriodicReporting_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_M1PeriodicReporting_ExtIEs_specs_637;
+extern asn_TYPE_member_t asn_MBR_M1PeriodicReporting_ExtIEs_637[3];
+extern asn_TYPE_descriptor_t asn_DEF_M1ThresholdEventA2_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_M1ThresholdEventA2_ExtIEs_specs_641;
+extern asn_TYPE_member_t asn_MBR_M1ThresholdEventA2_ExtIEs_641[3];
+extern asn_TYPE_descriptor_t asn_DEF_M3Configuration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_M3Configuration_ExtIEs_specs_645;
+extern asn_TYPE_member_t asn_MBR_M3Configuration_ExtIEs_645[3];
+extern asn_TYPE_descriptor_t asn_DEF_M4Configuration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_M4Configuration_ExtIEs_specs_649;
+extern asn_TYPE_member_t asn_MBR_M4Configuration_ExtIEs_649[3];
+extern asn_TYPE_descriptor_t asn_DEF_M5Configuration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_M5Configuration_ExtIEs_specs_653;
+extern asn_TYPE_member_t asn_MBR_M5Configuration_ExtIEs_653[3];
+extern asn_TYPE_descriptor_t asn_DEF_M6Configuration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_M6Configuration_ExtIEs_specs_657;
+extern asn_TYPE_member_t asn_MBR_M6Configuration_ExtIEs_657[3];
+extern asn_TYPE_descriptor_t asn_DEF_M7Configuration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_M7Configuration_ExtIEs_specs_661;
+extern asn_TYPE_member_t asn_MBR_M7Configuration_ExtIEs_661[3];
+extern asn_TYPE_descriptor_t asn_DEF_MDT_Configuration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MDT_Configuration_ExtIEs_specs_665;
+extern asn_TYPE_member_t asn_MBR_MDT_Configuration_ExtIEs_665[3];
+extern asn_TYPE_descriptor_t asn_DEF_MeNBResourceCoordinationInformationExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MeNBResourceCoordinationInformationExtIEs_specs_669;
+extern asn_TYPE_member_t asn_MBR_MeNBResourceCoordinationInformationExtIEs_669[3];
+extern asn_TYPE_descriptor_t asn_DEF_MBSFN_Subframe_Info_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MBSFN_Subframe_Info_ExtIEs_specs_673;
+extern asn_TYPE_member_t asn_MBR_MBSFN_Subframe_Info_ExtIEs_673[3];
+extern asn_TYPE_descriptor_t asn_DEF_BandInfo_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_BandInfo_ExtIEs_specs_677;
+extern asn_TYPE_member_t asn_MBR_BandInfo_ExtIEs_677[3];
+extern asn_TYPE_descriptor_t asn_DEF_SplitSRB_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SplitSRB_ExtIEs_specs_681;
+extern asn_TYPE_member_t asn_MBR_SplitSRB_ExtIEs_681[3];
+extern asn_TYPE_descriptor_t asn_DEF_UENRMeasurement_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UENRMeasurement_ExtIEs_specs_685;
+extern asn_TYPE_member_t asn_MBR_UENRMeasurement_ExtIEs_685[3];
+extern asn_TYPE_descriptor_t asn_DEF_Neighbour_Information_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_Neighbour_Information_ExtIEs_specs_689;
+extern asn_TYPE_member_t asn_MBR_Neighbour_Information_ExtIEs_689[3];
+extern asn_TYPE_descriptor_t asn_DEF_NRFreqInfo_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_NRFreqInfo_ExtIEs_specs_693;
+extern asn_TYPE_member_t asn_MBR_NRFreqInfo_ExtIEs_693[3];
+extern asn_TYPE_descriptor_t asn_DEF_NRCGI_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_NRCGI_ExtIEs_specs_697;
+extern asn_TYPE_member_t asn_MBR_NRCGI_ExtIEs_697[3];
+extern asn_TYPE_descriptor_t asn_DEF_NR_TxBW_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_NR_TxBW_ExtIEs_specs_701;
+extern asn_TYPE_member_t asn_MBR_NR_TxBW_ExtIEs_701[3];
+extern asn_TYPE_descriptor_t asn_DEF_NRUESecurityCapabilities_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_NRUESecurityCapabilities_ExtIEs_specs_705;
+extern asn_TYPE_member_t asn_MBR_NRUESecurityCapabilities_ExtIEs_705[3];
+extern asn_TYPE_descriptor_t asn_DEF_PRACH_Configuration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_PRACH_Configuration_ExtIEs_specs_709;
+extern asn_TYPE_member_t asn_MBR_PRACH_Configuration_ExtIEs_709[3];
+extern asn_TYPE_descriptor_t asn_DEF_PLMNAreaBasedQMC_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_PLMNAreaBasedQMC_ExtIEs_specs_713;
+extern asn_TYPE_member_t asn_MBR_PLMNAreaBasedQMC_ExtIEs_713[3];
+extern asn_TYPE_descriptor_t asn_DEF_ProSeAuthorized_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ProSeAuthorized_ExtIEs_specs_717;
+extern asn_TYPE_member_t asn_MBR_ProSeAuthorized_ExtIEs_717[3];
+extern asn_TYPE_descriptor_t asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedEUTRAResourceIndication_ExtIEs_specs_721;
+extern asn_TYPE_member_t asn_MBR_ProtectedEUTRAResourceIndication_ExtIEs_721[3];
+extern asn_TYPE_descriptor_t asn_DEF_ProtectedFootprintTimePattern_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedFootprintTimePattern_ExtIEs_specs_725;
+extern asn_TYPE_member_t asn_MBR_ProtectedFootprintTimePattern_ExtIEs_725[3];
+extern asn_TYPE_descriptor_t asn_DEF_ProtectedResourceList_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedResourceList_Item_ExtIEs_specs_729;
+extern asn_TYPE_member_t asn_MBR_ProtectedResourceList_Item_ExtIEs_729[3];
+extern asn_TYPE_descriptor_t asn_DEF_RadioResourceStatus_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RadioResourceStatus_ExtIEs_specs_733;
+extern asn_TYPE_member_t asn_MBR_RadioResourceStatus_ExtIEs_733[3];
+extern asn_TYPE_descriptor_t asn_DEF_RelativeNarrowbandTxPower_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RelativeNarrowbandTxPower_ExtIEs_specs_737;
+extern asn_TYPE_member_t asn_MBR_RelativeNarrowbandTxPower_ExtIEs_737[3];
+extern asn_TYPE_descriptor_t asn_DEF_ReservedSubframePattern_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ReservedSubframePattern_ExtIEs_specs_741;
+extern asn_TYPE_member_t asn_MBR_ReservedSubframePattern_ExtIEs_741[3];
+extern asn_TYPE_descriptor_t asn_DEF_RLC_Status_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RLC_Status_ExtIEs_specs_745;
+extern asn_TYPE_member_t asn_MBR_RLC_Status_ExtIEs_745[3];
+extern asn_TYPE_descriptor_t asn_DEF_RSRPMeasurementResult_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RSRPMeasurementResult_ExtIEs_specs_749;
+extern asn_TYPE_member_t asn_MBR_RSRPMeasurementResult_ExtIEs_749[3];
+extern asn_TYPE_descriptor_t asn_DEF_RSRPMRList_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RSRPMRList_ExtIEs_specs_753;
+extern asn_TYPE_member_t asn_MBR_RSRPMRList_ExtIEs_753[3];
+extern asn_TYPE_descriptor_t asn_DEF_S1TNLLoadIndicator_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_S1TNLLoadIndicator_ExtIEs_specs_757;
+extern asn_TYPE_member_t asn_MBR_S1TNLLoadIndicator_ExtIEs_757[3];
+extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATUsageReport_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATUsageReport_Item_ExtIEs_specs_761;
+extern asn_TYPE_member_t asn_MBR_SecondaryRATUsageReport_Item_ExtIEs_761[3];
+extern asn_TYPE_descriptor_t asn_DEF_ServedCell_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedCell_ExtIEs_specs_765;
+extern asn_TYPE_member_t asn_MBR_ServedCell_ExtIEs_765[3];
+extern asn_TYPE_descriptor_t asn_DEF_ServedCell_Information_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedCell_Information_ExtIEs_specs_769;
+extern asn_TYPE_member_t asn_MBR_ServedCell_Information_ExtIEs_769[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBResourceCoordinationInformationExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBResourceCoordinationInformationExtIEs_specs_773;
+extern asn_TYPE_member_t asn_MBR_SgNBResourceCoordinationInformationExtIEs_773[3];
+extern asn_TYPE_descriptor_t asn_DEF_SpecialSubframe_Info_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SpecialSubframe_Info_ExtIEs_specs_777;
+extern asn_TYPE_member_t asn_MBR_SpecialSubframe_Info_ExtIEs_777[3];
+extern asn_TYPE_descriptor_t asn_DEF_SubbandCQI_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SubbandCQI_ExtIEs_specs_781;
+extern asn_TYPE_member_t asn_MBR_SubbandCQI_ExtIEs_781[3];
+extern asn_TYPE_descriptor_t asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_Subscription_Based_UE_DifferentiationInfo_ExtIEs_specs_785;
+extern asn_TYPE_member_t asn_MBR_Subscription_Based_UE_DifferentiationInfo_ExtIEs_785[3];
+extern asn_TYPE_descriptor_t asn_DEF_ScheduledCommunicationTime_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ScheduledCommunicationTime_ExtIEs_specs_789;
+extern asn_TYPE_member_t asn_MBR_ScheduledCommunicationTime_ExtIEs_789[3];
+extern asn_TYPE_descriptor_t asn_DEF_SubbandCQIItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SubbandCQIItem_ExtIEs_specs_793;
+extern asn_TYPE_member_t asn_MBR_SubbandCQIItem_ExtIEs_793[3];
+extern asn_TYPE_descriptor_t asn_DEF_SULInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SULInformation_ExtIEs_specs_797;
+extern asn_TYPE_member_t asn_MBR_SULInformation_ExtIEs_797[3];
+extern asn_TYPE_descriptor_t asn_DEF_SupportedSULFreqBandItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SupportedSULFreqBandItem_ExtIEs_specs_801;
+extern asn_TYPE_member_t asn_MBR_SupportedSULFreqBandItem_ExtIEs_801[3];
+extern asn_TYPE_descriptor_t asn_DEF_TABasedMDT_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TABasedMDT_ExtIEs_specs_805;
+extern asn_TYPE_member_t asn_MBR_TABasedMDT_ExtIEs_805[3];
+extern asn_TYPE_descriptor_t asn_DEF_TAIBasedMDT_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAIBasedMDT_ExtIEs_specs_809;
+extern asn_TYPE_member_t asn_MBR_TAIBasedMDT_ExtIEs_809[3];
+extern asn_TYPE_descriptor_t asn_DEF_TAI_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAI_Item_ExtIEs_specs_813;
+extern asn_TYPE_member_t asn_MBR_TAI_Item_ExtIEs_813[3];
+extern asn_TYPE_descriptor_t asn_DEF_TABasedQMC_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TABasedQMC_ExtIEs_specs_817;
+extern asn_TYPE_member_t asn_MBR_TABasedQMC_ExtIEs_817[3];
+extern asn_TYPE_descriptor_t asn_DEF_TAIBasedQMC_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAIBasedQMC_ExtIEs_specs_821;
+extern asn_TYPE_member_t asn_MBR_TAIBasedQMC_ExtIEs_821[3];
+extern asn_TYPE_descriptor_t asn_DEF_TDD_Info_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TDD_Info_ExtIEs_specs_825;
+extern asn_TYPE_member_t asn_MBR_TDD_Info_ExtIEs_825[3];
+extern asn_TYPE_descriptor_t asn_DEF_TraceActivation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TraceActivation_ExtIEs_specs_829;
+extern asn_TYPE_member_t asn_MBR_TraceActivation_ExtIEs_829[3];
+extern asn_TYPE_descriptor_t asn_DEF_Tunnel_Information_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_Tunnel_Information_ExtIEs_specs_833;
+extern asn_TYPE_member_t asn_MBR_Tunnel_Information_ExtIEs_833[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEAggregate_MaximumBitrate_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEAggregate_MaximumBitrate_ExtIEs_specs_837;
+extern asn_TYPE_member_t asn_MBR_UEAggregate_MaximumBitrate_ExtIEs_837[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEAppLayerMeasConfig_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEAppLayerMeasConfig_ExtIEs_specs_841;
+extern asn_TYPE_member_t asn_MBR_UEAppLayerMeasConfig_ExtIEs_841[3];
+extern asn_TYPE_descriptor_t asn_DEF_UESecurityCapabilities_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UESecurityCapabilities_ExtIEs_specs_845;
+extern asn_TYPE_member_t asn_MBR_UESecurityCapabilities_ExtIEs_845[3];
+extern asn_TYPE_descriptor_t asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_specs_849;
+extern asn_TYPE_member_t asn_MBR_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_849[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEsToBeResetList_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEsToBeResetList_Item_ExtIEs_specs_853;
+extern asn_TYPE_member_t asn_MBR_UEsToBeResetList_Item_ExtIEs_853[3];
+extern asn_TYPE_descriptor_t asn_DEF_ULandDLSharing_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ULandDLSharing_ExtIEs_specs_857;
+extern asn_TYPE_member_t asn_MBR_ULandDLSharing_ExtIEs_857[3];
+extern asn_TYPE_descriptor_t asn_DEF_ULConfiguration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ULConfiguration_ExtIEs_specs_861;
+extern asn_TYPE_member_t asn_MBR_ULConfiguration_ExtIEs_861[3];
+extern asn_TYPE_descriptor_t asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UL_HighInterferenceIndicationInfo_Item_ExtIEs_specs_865;
+extern asn_TYPE_member_t asn_MBR_UL_HighInterferenceIndicationInfo_Item_ExtIEs_865[3];
+extern asn_TYPE_descriptor_t asn_DEF_ULOnlySharing_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ULOnlySharing_ExtIEs_specs_869;
+extern asn_TYPE_member_t asn_MBR_ULOnlySharing_ExtIEs_869[3];
+extern asn_TYPE_descriptor_t asn_DEF_UsableABSInformationFDD_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UsableABSInformationFDD_ExtIEs_specs_873;
+extern asn_TYPE_member_t asn_MBR_UsableABSInformationFDD_ExtIEs_873[3];
+extern asn_TYPE_descriptor_t asn_DEF_UsableABSInformationTDD_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UsableABSInformationTDD_ExtIEs_specs_877;
+extern asn_TYPE_member_t asn_MBR_UsableABSInformationTDD_ExtIEs_877[3];
+extern asn_TYPE_descriptor_t asn_DEF_V2XServicesAuthorized_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_V2XServicesAuthorized_ExtIEs_specs_881;
+extern asn_TYPE_member_t asn_MBR_V2XServicesAuthorized_ExtIEs_881[3];
+extern asn_TYPE_descriptor_t asn_DEF_WidebandCQI_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_WidebandCQI_ExtIEs_specs_885;
+extern asn_TYPE_member_t asn_MBR_WidebandCQI_ExtIEs_885[3];
+extern asn_TYPE_descriptor_t asn_DEF_WLANMeasurementConfiguration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_WLANMeasurementConfiguration_ExtIEs_specs_889;
+extern asn_TYPE_member_t asn_MBR_WLANMeasurementConfiguration_ExtIEs_889[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolExtensionField_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProtocolIE-Container.h b/e2ap/headers/ProtocolIE-Container.h
new file mode 100644 (file)
index 0000000..a8a9fa0
--- /dev/null
@@ -0,0 +1,1353 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProtocolIE_Container_H_
+#define        _ProtocolIE_Container_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RICsubscriptionRequest_IEs;
+struct RICsubscriptionResponse_IEs;
+struct RICsubscriptionFailure_IEs;
+struct RICsubscriptionDeleteRequest_IEs;
+struct RICsubscriptionDeleteResponse_IEs;
+struct RICsubscriptionDeleteFailure_IEs;
+struct RICindication_IEs;
+struct RICcontrolRequest_IEs;
+struct RICcontrolAcknowledge_IEs;
+struct RICcontrolFailure_IEs;
+struct RICserviceUpdate_IEs;
+struct RICserviceUpdateAcknowledge_IEs;
+struct RICserviceUpdateFailure_IEs;
+struct RICserviceQuery_IEs;
+struct HandoverRequest_IEs;
+struct HandoverRequestAcknowledge_IEs;
+struct HandoverPreparationFailure_IEs;
+struct HandoverReport_IEs;
+struct SNStatusTransfer_IEs;
+struct UEContextRelease_IEs;
+struct HandoverCancel_IEs;
+struct ErrorIndication_IEs;
+struct ResetRequest_IEs;
+struct ResetResponse_IEs;
+struct X2SetupRequest_IEs;
+struct X2SetupResponse_IEs;
+struct X2SetupFailure_IEs;
+struct LoadInformation_IEs;
+struct ENBConfigurationUpdate_IEs;
+struct ENBConfigurationUpdateAcknowledge_IEs;
+struct ENBConfigurationUpdateFailure_IEs;
+struct ResourceStatusRequest_IEs;
+struct ResourceStatusResponse_IEs;
+struct ResourceStatusFailure_IEs;
+struct ResourceStatusUpdate_IEs;
+struct MobilityChangeRequest_IEs;
+struct MobilityChangeAcknowledge_IEs;
+struct MobilityChangeFailure_IEs;
+struct RLFIndication_IEs;
+struct CellActivationRequest_IEs;
+struct CellActivationResponse_IEs;
+struct CellActivationFailure_IEs;
+struct X2Release_IEs;
+struct X2APMessageTransfer_IEs;
+struct SeNBAdditionRequest_IEs;
+struct SeNBAdditionRequestAcknowledge_IEs;
+struct SeNBAdditionRequestReject_IEs;
+struct SeNBReconfigurationComplete_IEs;
+struct SeNBModificationRequest_IEs;
+struct SeNBModificationRequestAcknowledge_IEs;
+struct SeNBModificationRequestReject_IEs;
+struct SeNBModificationRequired_IEs;
+struct SeNBModificationConfirm_IEs;
+struct SeNBModificationRefuse_IEs;
+struct SeNBReleaseRequest_IEs;
+struct SeNBReleaseRequired_IEs;
+struct SeNBReleaseConfirm_IEs;
+struct SeNBCounterCheckRequest_IEs;
+struct X2RemovalRequest_IEs;
+struct X2RemovalResponse_IEs;
+struct X2RemovalFailure_IEs;
+struct RetrieveUEContextRequest_IEs;
+struct RetrieveUEContextResponse_IEs;
+struct RetrieveUEContextFailure_IEs;
+struct SgNBAdditionRequest_IEs;
+struct SgNBAdditionRequestAcknowledge_IEs;
+struct SgNBAdditionRequestReject_IEs;
+struct SgNBReconfigurationComplete_IEs;
+struct SgNBModificationRequest_IEs;
+struct SgNBModificationRequestAcknowledge_IEs;
+struct SgNBModificationRequestReject_IEs;
+struct SgNBModificationRequired_IEs;
+struct SgNBModificationConfirm_IEs;
+struct SgNBModificationRefuse_IEs;
+struct SgNBReleaseRequest_IEs;
+struct SgNBReleaseRequestAcknowledge_IEs;
+struct SgNBReleaseRequestReject_IEs;
+struct SgNBReleaseRequired_IEs;
+struct SgNBReleaseConfirm_IEs;
+struct SgNBCounterCheckRequest_IEs;
+struct SgNBChangeRequired_IEs;
+struct SgNBChangeConfirm_IEs;
+struct RRCTransfer_IEs;
+struct SgNBChangeRefuse_IEs;
+struct ENDCX2SetupRequest_IEs;
+struct ENB_ENDCX2SetupReqIEs;
+struct En_gNB_ENDCX2SetupReqIEs;
+struct ENDCX2SetupResponse_IEs;
+struct ENB_ENDCX2SetupReqAckIEs;
+struct En_gNB_ENDCX2SetupReqAckIEs;
+struct ENDCX2SetupFailure_IEs;
+struct ENDCConfigurationUpdate_IEs;
+struct ENB_ENDCConfigUpdateIEs;
+struct En_gNB_ENDCConfigUpdateIEs;
+struct ENDCConfigurationUpdateAcknowledge_IEs;
+struct ENB_ENDCConfigUpdateAckIEs;
+struct En_gNB_ENDCConfigUpdateAckIEs;
+struct ENDCConfigurationUpdateFailure_IEs;
+struct ENDCCellActivationRequest_IEs;
+struct ENDCCellActivationResponse_IEs;
+struct ENDCCellActivationFailure_IEs;
+struct SecondaryRATDataUsageReport_IEs;
+struct SgNBActivityNotification_IEs;
+struct ENDCPartialResetRequired_IEs;
+struct ENDCPartialResetConfirm_IEs;
+struct EUTRANRCellResourceCoordinationRequest_IEs;
+struct ENB_EUTRA_NRCellResourceCoordinationReqIEs;
+struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs;
+struct EUTRANRCellResourceCoordinationResponse_IEs;
+struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs;
+struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs;
+struct ENDCX2RemovalRequest_IEs;
+struct ENB_ENDCX2RemovalReqIEs;
+struct En_gNB_ENDCX2RemovalReqIEs;
+struct ENDCX2RemovalResponse_IEs;
+struct ENB_ENDCX2RemovalReqAckIEs;
+struct En_gNB_ENDCX2RemovalReqAckIEs;
+struct ENDCX2RemovalFailure_IEs;
+struct DataForwardingAddressIndication_IEs;
+struct GNBStatusIndicationIEs;
+
+/* ProtocolIE-Container */
+typedef struct ProtocolIE_Container_9515P0 {
+       A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P0_t;
+typedef struct ProtocolIE_Container_9515P1 {
+       A_SEQUENCE_OF(struct RICsubscriptionResponse_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P1_t;
+typedef struct ProtocolIE_Container_9515P2 {
+       A_SEQUENCE_OF(struct RICsubscriptionFailure_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P2_t;
+typedef struct ProtocolIE_Container_9515P3 {
+       A_SEQUENCE_OF(struct RICsubscriptionDeleteRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P3_t;
+typedef struct ProtocolIE_Container_9515P4 {
+       A_SEQUENCE_OF(struct RICsubscriptionDeleteResponse_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P4_t;
+typedef struct ProtocolIE_Container_9515P5 {
+       A_SEQUENCE_OF(struct RICsubscriptionDeleteFailure_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P5_t;
+typedef struct ProtocolIE_Container_9515P6 {
+       A_SEQUENCE_OF(struct RICindication_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P6_t;
+typedef struct ProtocolIE_Container_9515P7 {
+       A_SEQUENCE_OF(struct RICcontrolRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P7_t;
+typedef struct ProtocolIE_Container_9515P8 {
+       A_SEQUENCE_OF(struct RICcontrolAcknowledge_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P8_t;
+typedef struct ProtocolIE_Container_9515P9 {
+       A_SEQUENCE_OF(struct RICcontrolFailure_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P9_t;
+typedef struct ProtocolIE_Container_9515P10 {
+       A_SEQUENCE_OF(struct RICserviceUpdate_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P10_t;
+typedef struct ProtocolIE_Container_9515P11 {
+       A_SEQUENCE_OF(struct RICserviceUpdateAcknowledge_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P11_t;
+typedef struct ProtocolIE_Container_9515P12 {
+       A_SEQUENCE_OF(struct RICserviceUpdateFailure_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P12_t;
+typedef struct ProtocolIE_Container_9515P13 {
+       A_SEQUENCE_OF(struct RICserviceQuery_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P13_t;
+typedef struct ProtocolIE_Container_9515P14 {
+       A_SEQUENCE_OF(struct HandoverRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P14_t;
+typedef struct ProtocolIE_Container_9515P15 {
+       A_SEQUENCE_OF(struct HandoverRequestAcknowledge_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P15_t;
+typedef struct ProtocolIE_Container_9515P16 {
+       A_SEQUENCE_OF(struct HandoverPreparationFailure_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P16_t;
+typedef struct ProtocolIE_Container_9515P17 {
+       A_SEQUENCE_OF(struct HandoverReport_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P17_t;
+typedef struct ProtocolIE_Container_9515P18 {
+       A_SEQUENCE_OF(struct SNStatusTransfer_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P18_t;
+typedef struct ProtocolIE_Container_9515P19 {
+       A_SEQUENCE_OF(struct UEContextRelease_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P19_t;
+typedef struct ProtocolIE_Container_9515P20 {
+       A_SEQUENCE_OF(struct HandoverCancel_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P20_t;
+typedef struct ProtocolIE_Container_9515P21 {
+       A_SEQUENCE_OF(struct ErrorIndication_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P21_t;
+typedef struct ProtocolIE_Container_9515P22 {
+       A_SEQUENCE_OF(struct ResetRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P22_t;
+typedef struct ProtocolIE_Container_9515P23 {
+       A_SEQUENCE_OF(struct ResetResponse_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P23_t;
+typedef struct ProtocolIE_Container_9515P24 {
+       A_SEQUENCE_OF(struct X2SetupRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P24_t;
+typedef struct ProtocolIE_Container_9515P25 {
+       A_SEQUENCE_OF(struct X2SetupResponse_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P25_t;
+typedef struct ProtocolIE_Container_9515P26 {
+       A_SEQUENCE_OF(struct X2SetupFailure_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P26_t;
+typedef struct ProtocolIE_Container_9515P27 {
+       A_SEQUENCE_OF(struct LoadInformation_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P27_t;
+typedef struct ProtocolIE_Container_9515P28 {
+       A_SEQUENCE_OF(struct ENBConfigurationUpdate_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P28_t;
+typedef struct ProtocolIE_Container_9515P29 {
+       A_SEQUENCE_OF(struct ENBConfigurationUpdateAcknowledge_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P29_t;
+typedef struct ProtocolIE_Container_9515P30 {
+       A_SEQUENCE_OF(struct ENBConfigurationUpdateFailure_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P30_t;
+typedef struct ProtocolIE_Container_9515P31 {
+       A_SEQUENCE_OF(struct ResourceStatusRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P31_t;
+typedef struct ProtocolIE_Container_9515P32 {
+       A_SEQUENCE_OF(struct ResourceStatusResponse_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P32_t;
+typedef struct ProtocolIE_Container_9515P33 {
+       A_SEQUENCE_OF(struct ResourceStatusFailure_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P33_t;
+typedef struct ProtocolIE_Container_9515P34 {
+       A_SEQUENCE_OF(struct ResourceStatusUpdate_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P34_t;
+typedef struct ProtocolIE_Container_9515P35 {
+       A_SEQUENCE_OF(struct MobilityChangeRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P35_t;
+typedef struct ProtocolIE_Container_9515P36 {
+       A_SEQUENCE_OF(struct MobilityChangeAcknowledge_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P36_t;
+typedef struct ProtocolIE_Container_9515P37 {
+       A_SEQUENCE_OF(struct MobilityChangeFailure_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P37_t;
+typedef struct ProtocolIE_Container_9515P38 {
+       A_SEQUENCE_OF(struct RLFIndication_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P38_t;
+typedef struct ProtocolIE_Container_9515P39 {
+       A_SEQUENCE_OF(struct CellActivationRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P39_t;
+typedef struct ProtocolIE_Container_9515P40 {
+       A_SEQUENCE_OF(struct CellActivationResponse_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P40_t;
+typedef struct ProtocolIE_Container_9515P41 {
+       A_SEQUENCE_OF(struct CellActivationFailure_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P41_t;
+typedef struct ProtocolIE_Container_9515P42 {
+       A_SEQUENCE_OF(struct X2Release_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P42_t;
+typedef struct ProtocolIE_Container_9515P43 {
+       A_SEQUENCE_OF(struct X2APMessageTransfer_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P43_t;
+typedef struct ProtocolIE_Container_9515P44 {
+       A_SEQUENCE_OF(struct SeNBAdditionRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P44_t;
+typedef struct ProtocolIE_Container_9515P45 {
+       A_SEQUENCE_OF(struct SeNBAdditionRequestAcknowledge_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P45_t;
+typedef struct ProtocolIE_Container_9515P46 {
+       A_SEQUENCE_OF(struct SeNBAdditionRequestReject_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P46_t;
+typedef struct ProtocolIE_Container_9515P47 {
+       A_SEQUENCE_OF(struct SeNBReconfigurationComplete_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P47_t;
+typedef struct ProtocolIE_Container_9515P48 {
+       A_SEQUENCE_OF(struct SeNBModificationRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P48_t;
+typedef struct ProtocolIE_Container_9515P49 {
+       A_SEQUENCE_OF(struct SeNBModificationRequestAcknowledge_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P49_t;
+typedef struct ProtocolIE_Container_9515P50 {
+       A_SEQUENCE_OF(struct SeNBModificationRequestReject_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P50_t;
+typedef struct ProtocolIE_Container_9515P51 {
+       A_SEQUENCE_OF(struct SeNBModificationRequired_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P51_t;
+typedef struct ProtocolIE_Container_9515P52 {
+       A_SEQUENCE_OF(struct SeNBModificationConfirm_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P52_t;
+typedef struct ProtocolIE_Container_9515P53 {
+       A_SEQUENCE_OF(struct SeNBModificationRefuse_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P53_t;
+typedef struct ProtocolIE_Container_9515P54 {
+       A_SEQUENCE_OF(struct SeNBReleaseRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P54_t;
+typedef struct ProtocolIE_Container_9515P55 {
+       A_SEQUENCE_OF(struct SeNBReleaseRequired_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P55_t;
+typedef struct ProtocolIE_Container_9515P56 {
+       A_SEQUENCE_OF(struct SeNBReleaseConfirm_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P56_t;
+typedef struct ProtocolIE_Container_9515P57 {
+       A_SEQUENCE_OF(struct SeNBCounterCheckRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P57_t;
+typedef struct ProtocolIE_Container_9515P58 {
+       A_SEQUENCE_OF(struct X2RemovalRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P58_t;
+typedef struct ProtocolIE_Container_9515P59 {
+       A_SEQUENCE_OF(struct X2RemovalResponse_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P59_t;
+typedef struct ProtocolIE_Container_9515P60 {
+       A_SEQUENCE_OF(struct X2RemovalFailure_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P60_t;
+typedef struct ProtocolIE_Container_9515P61 {
+       A_SEQUENCE_OF(struct RetrieveUEContextRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P61_t;
+typedef struct ProtocolIE_Container_9515P62 {
+       A_SEQUENCE_OF(struct RetrieveUEContextResponse_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P62_t;
+typedef struct ProtocolIE_Container_9515P63 {
+       A_SEQUENCE_OF(struct RetrieveUEContextFailure_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P63_t;
+typedef struct ProtocolIE_Container_9515P64 {
+       A_SEQUENCE_OF(struct SgNBAdditionRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P64_t;
+typedef struct ProtocolIE_Container_9515P65 {
+       A_SEQUENCE_OF(struct SgNBAdditionRequestAcknowledge_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P65_t;
+typedef struct ProtocolIE_Container_9515P66 {
+       A_SEQUENCE_OF(struct SgNBAdditionRequestReject_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P66_t;
+typedef struct ProtocolIE_Container_9515P67 {
+       A_SEQUENCE_OF(struct SgNBReconfigurationComplete_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P67_t;
+typedef struct ProtocolIE_Container_9515P68 {
+       A_SEQUENCE_OF(struct SgNBModificationRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P68_t;
+typedef struct ProtocolIE_Container_9515P69 {
+       A_SEQUENCE_OF(struct SgNBModificationRequestAcknowledge_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P69_t;
+typedef struct ProtocolIE_Container_9515P70 {
+       A_SEQUENCE_OF(struct SgNBModificationRequestReject_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P70_t;
+typedef struct ProtocolIE_Container_9515P71 {
+       A_SEQUENCE_OF(struct SgNBModificationRequired_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P71_t;
+typedef struct ProtocolIE_Container_9515P72 {
+       A_SEQUENCE_OF(struct SgNBModificationConfirm_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P72_t;
+typedef struct ProtocolIE_Container_9515P73 {
+       A_SEQUENCE_OF(struct SgNBModificationRefuse_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P73_t;
+typedef struct ProtocolIE_Container_9515P74 {
+       A_SEQUENCE_OF(struct SgNBReleaseRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P74_t;
+typedef struct ProtocolIE_Container_9515P75 {
+       A_SEQUENCE_OF(struct SgNBReleaseRequestAcknowledge_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P75_t;
+typedef struct ProtocolIE_Container_9515P76 {
+       A_SEQUENCE_OF(struct SgNBReleaseRequestReject_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P76_t;
+typedef struct ProtocolIE_Container_9515P77 {
+       A_SEQUENCE_OF(struct SgNBReleaseRequired_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P77_t;
+typedef struct ProtocolIE_Container_9515P78 {
+       A_SEQUENCE_OF(struct SgNBReleaseConfirm_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P78_t;
+typedef struct ProtocolIE_Container_9515P79 {
+       A_SEQUENCE_OF(struct SgNBCounterCheckRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P79_t;
+typedef struct ProtocolIE_Container_9515P80 {
+       A_SEQUENCE_OF(struct SgNBChangeRequired_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P80_t;
+typedef struct ProtocolIE_Container_9515P81 {
+       A_SEQUENCE_OF(struct SgNBChangeConfirm_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P81_t;
+typedef struct ProtocolIE_Container_9515P82 {
+       A_SEQUENCE_OF(struct RRCTransfer_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P82_t;
+typedef struct ProtocolIE_Container_9515P83 {
+       A_SEQUENCE_OF(struct SgNBChangeRefuse_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P83_t;
+typedef struct ProtocolIE_Container_9515P84 {
+       A_SEQUENCE_OF(struct ENDCX2SetupRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P84_t;
+typedef struct ProtocolIE_Container_9515P85 {
+       A_SEQUENCE_OF(struct ENB_ENDCX2SetupReqIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P85_t;
+typedef struct ProtocolIE_Container_9515P86 {
+       A_SEQUENCE_OF(struct En_gNB_ENDCX2SetupReqIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P86_t;
+typedef struct ProtocolIE_Container_9515P87 {
+       A_SEQUENCE_OF(struct ENDCX2SetupResponse_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P87_t;
+typedef struct ProtocolIE_Container_9515P88 {
+       A_SEQUENCE_OF(struct ENB_ENDCX2SetupReqAckIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P88_t;
+typedef struct ProtocolIE_Container_9515P89 {
+       A_SEQUENCE_OF(struct En_gNB_ENDCX2SetupReqAckIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P89_t;
+typedef struct ProtocolIE_Container_9515P90 {
+       A_SEQUENCE_OF(struct ENDCX2SetupFailure_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P90_t;
+typedef struct ProtocolIE_Container_9515P91 {
+       A_SEQUENCE_OF(struct ENDCConfigurationUpdate_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P91_t;
+typedef struct ProtocolIE_Container_9515P92 {
+       A_SEQUENCE_OF(struct ENB_ENDCConfigUpdateIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P92_t;
+typedef struct ProtocolIE_Container_9515P93 {
+       A_SEQUENCE_OF(struct En_gNB_ENDCConfigUpdateIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P93_t;
+typedef struct ProtocolIE_Container_9515P94 {
+       A_SEQUENCE_OF(struct ENDCConfigurationUpdateAcknowledge_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P94_t;
+typedef struct ProtocolIE_Container_9515P95 {
+       A_SEQUENCE_OF(struct ENB_ENDCConfigUpdateAckIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P95_t;
+typedef struct ProtocolIE_Container_9515P96 {
+       A_SEQUENCE_OF(struct En_gNB_ENDCConfigUpdateAckIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P96_t;
+typedef struct ProtocolIE_Container_9515P97 {
+       A_SEQUENCE_OF(struct ENDCConfigurationUpdateFailure_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P97_t;
+typedef struct ProtocolIE_Container_9515P98 {
+       A_SEQUENCE_OF(struct ENDCCellActivationRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P98_t;
+typedef struct ProtocolIE_Container_9515P99 {
+       A_SEQUENCE_OF(struct ENDCCellActivationResponse_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P99_t;
+typedef struct ProtocolIE_Container_9515P100 {
+       A_SEQUENCE_OF(struct ENDCCellActivationFailure_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P100_t;
+typedef struct ProtocolIE_Container_9515P101 {
+       A_SEQUENCE_OF(struct SecondaryRATDataUsageReport_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P101_t;
+typedef struct ProtocolIE_Container_9515P102 {
+       A_SEQUENCE_OF(struct SgNBActivityNotification_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P102_t;
+typedef struct ProtocolIE_Container_9515P103 {
+       A_SEQUENCE_OF(struct ENDCPartialResetRequired_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P103_t;
+typedef struct ProtocolIE_Container_9515P104 {
+       A_SEQUENCE_OF(struct ENDCPartialResetConfirm_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P104_t;
+typedef struct ProtocolIE_Container_9515P105 {
+       A_SEQUENCE_OF(struct EUTRANRCellResourceCoordinationRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P105_t;
+typedef struct ProtocolIE_Container_9515P106 {
+       A_SEQUENCE_OF(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P106_t;
+typedef struct ProtocolIE_Container_9515P107 {
+       A_SEQUENCE_OF(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P107_t;
+typedef struct ProtocolIE_Container_9515P108 {
+       A_SEQUENCE_OF(struct EUTRANRCellResourceCoordinationResponse_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P108_t;
+typedef struct ProtocolIE_Container_9515P109 {
+       A_SEQUENCE_OF(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P109_t;
+typedef struct ProtocolIE_Container_9515P110 {
+       A_SEQUENCE_OF(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P110_t;
+typedef struct ProtocolIE_Container_9515P111 {
+       A_SEQUENCE_OF(struct ENDCX2RemovalRequest_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P111_t;
+typedef struct ProtocolIE_Container_9515P112 {
+       A_SEQUENCE_OF(struct ENB_ENDCX2RemovalReqIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P112_t;
+typedef struct ProtocolIE_Container_9515P113 {
+       A_SEQUENCE_OF(struct En_gNB_ENDCX2RemovalReqIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P113_t;
+typedef struct ProtocolIE_Container_9515P114 {
+       A_SEQUENCE_OF(struct ENDCX2RemovalResponse_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P114_t;
+typedef struct ProtocolIE_Container_9515P115 {
+       A_SEQUENCE_OF(struct ENB_ENDCX2RemovalReqAckIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P115_t;
+typedef struct ProtocolIE_Container_9515P116 {
+       A_SEQUENCE_OF(struct En_gNB_ENDCX2RemovalReqAckIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P116_t;
+typedef struct ProtocolIE_Container_9515P117 {
+       A_SEQUENCE_OF(struct ENDCX2RemovalFailure_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P117_t;
+typedef struct ProtocolIE_Container_9515P118 {
+       A_SEQUENCE_OF(struct DataForwardingAddressIndication_IEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P118_t;
+typedef struct ProtocolIE_Container_9515P119 {
+       A_SEQUENCE_OF(struct GNBStatusIndicationIEs) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_9515P119_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P0;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P0_specs_1;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P0_1[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P0_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P1;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P1_specs_3;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P1_3[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P1_constr_3;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P2;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P2_specs_5;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P2_5[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P2_constr_5;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P3;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P3_specs_7;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P3_7[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P3_constr_7;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P4;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P4_specs_9;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P4_9[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P4_constr_9;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P5;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P5_specs_11;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P5_11[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P5_constr_11;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P6;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P6_specs_13;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P6_13[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P6_constr_13;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P7;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P7_specs_15;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P7_15[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P7_constr_15;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P8;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P8_specs_17;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P8_17[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P8_constr_17;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P9;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P9_specs_19;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P9_19[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P9_constr_19;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P10;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P10_specs_21;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P10_21[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P10_constr_21;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P11;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P11_specs_23;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P11_23[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P11_constr_23;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P12;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P12_specs_25;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P12_25[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P12_constr_25;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P13;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P13_specs_27;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P13_27[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P13_constr_27;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P14;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P14_specs_29;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P14_29[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P14_constr_29;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P15;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P15_specs_31;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P15_31[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P15_constr_31;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P16;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P16_specs_33;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P16_33[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P16_constr_33;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P17;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P17_specs_35;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P17_35[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P17_constr_35;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P18;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P18_specs_37;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P18_37[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P18_constr_37;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P19;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P19_specs_39;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P19_39[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P19_constr_39;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P20;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P20_specs_41;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P20_41[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P20_constr_41;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P21;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P21_specs_43;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P21_43[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P21_constr_43;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P22;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P22_specs_45;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P22_45[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P22_constr_45;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P23;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P23_specs_47;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P23_47[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P23_constr_47;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P24;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P24_specs_49;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P24_49[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P24_constr_49;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P25;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P25_specs_51;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P25_51[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P25_constr_51;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P26;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P26_specs_53;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P26_53[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P26_constr_53;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P27;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P27_specs_55;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P27_55[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P27_constr_55;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P28;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P28_specs_57;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P28_57[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P28_constr_57;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P29;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P29_specs_59;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P29_59[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P29_constr_59;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P30;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P30_specs_61;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P30_61[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P30_constr_61;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P31;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P31_specs_63;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P31_63[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P31_constr_63;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P32;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P32_specs_65;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P32_65[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P32_constr_65;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P33;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P33_specs_67;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P33_67[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P33_constr_67;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P34;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P34_specs_69;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P34_69[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P34_constr_69;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P35;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P35_specs_71;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P35_71[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P35_constr_71;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P36;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P36_specs_73;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P36_73[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P36_constr_73;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P37;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P37_specs_75;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P37_75[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P37_constr_75;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P38;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P38_specs_77;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P38_77[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P38_constr_77;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P39;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P39_specs_79;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P39_79[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P39_constr_79;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P40;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P40_specs_81;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P40_81[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P40_constr_81;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P41;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P41_specs_83;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P41_83[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P41_constr_83;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P42;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P42_specs_85;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P42_85[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P42_constr_85;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P43;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P43_specs_87;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P43_87[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P43_constr_87;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P44;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P44_specs_89;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P44_89[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P44_constr_89;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P45;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P45_specs_91;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P45_91[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P45_constr_91;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P46;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P46_specs_93;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P46_93[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P46_constr_93;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P47;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P47_specs_95;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P47_95[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P47_constr_95;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P48;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P48_specs_97;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P48_97[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P48_constr_97;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P49;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P49_specs_99;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P49_99[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P49_constr_99;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P50;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P50_specs_101;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P50_101[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P50_constr_101;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P51;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P51_specs_103;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P51_103[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P51_constr_103;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P52;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P52_specs_105;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P52_105[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P52_constr_105;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P53;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P53_specs_107;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P53_107[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P53_constr_107;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P54;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P54_specs_109;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P54_109[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P54_constr_109;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P55;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P55_specs_111;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P55_111[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P55_constr_111;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P56;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P56_specs_113;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P56_113[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P56_constr_113;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P57;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P57_specs_115;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P57_115[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P57_constr_115;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P58;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P58_specs_117;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P58_117[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P58_constr_117;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P59;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P59_specs_119;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P59_119[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P59_constr_119;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P60;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P60_specs_121;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P60_121[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P60_constr_121;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P61;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P61_specs_123;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P61_123[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P61_constr_123;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P62;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P62_specs_125;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P62_125[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P62_constr_125;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P63;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P63_specs_127;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P63_127[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P63_constr_127;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P64;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P64_specs_129;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P64_129[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P64_constr_129;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P65;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P65_specs_131;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P65_131[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P65_constr_131;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P66;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P66_specs_133;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P66_133[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P66_constr_133;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P67;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P67_specs_135;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P67_135[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P67_constr_135;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P68;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P68_specs_137;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P68_137[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P68_constr_137;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P69;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P69_specs_139;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P69_139[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P69_constr_139;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P70;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P70_specs_141;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P70_141[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P70_constr_141;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P71;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P71_specs_143;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P71_143[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P71_constr_143;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P72;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P72_specs_145;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P72_145[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P72_constr_145;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P73;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P73_specs_147;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P73_147[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P73_constr_147;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P74;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P74_specs_149;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P74_149[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P74_constr_149;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P75;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P75_specs_151;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P75_151[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P75_constr_151;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P76;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P76_specs_153;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P76_153[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P76_constr_153;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P77;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P77_specs_155;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P77_155[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P77_constr_155;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P78;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P78_specs_157;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P78_157[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P78_constr_157;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P79;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P79_specs_159;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P79_159[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P79_constr_159;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P80;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P80_specs_161;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P80_161[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P80_constr_161;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P81;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P81_specs_163;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P81_163[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P81_constr_163;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P82;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P82_specs_165;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P82_165[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P82_constr_165;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P83;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P83_specs_167;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P83_167[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P83_constr_167;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P84;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P84_specs_169;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P84_169[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P84_constr_169;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P85;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P85_specs_171;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P85_171[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P85_constr_171;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P86;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P86_specs_173;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P86_173[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P86_constr_173;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P87;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P87_specs_175;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P87_175[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P87_constr_175;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P88;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P88_specs_177;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P88_177[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P88_constr_177;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P89;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P89_specs_179;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P89_179[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P89_constr_179;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P90;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P90_specs_181;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P90_181[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P90_constr_181;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P91;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P91_specs_183;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P91_183[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P91_constr_183;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P92;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P92_specs_185;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P92_185[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P92_constr_185;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P93;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P93_specs_187;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P93_187[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P93_constr_187;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P94;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P94_specs_189;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P94_189[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P94_constr_189;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P95;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P95_specs_191;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P95_191[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P95_constr_191;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P96;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P96_specs_193;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P96_193[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P96_constr_193;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P97;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P97_specs_195;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P97_195[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P97_constr_195;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P98;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P98_specs_197;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P98_197[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P98_constr_197;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P99;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P99_specs_199;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P99_199[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P99_constr_199;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P100;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P100_specs_201;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P100_201[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P100_constr_201;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P101;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P101_specs_203;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P101_203[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P101_constr_203;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P102;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P102_specs_205;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P102_205[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P102_constr_205;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P103;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P103_specs_207;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P103_207[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P103_constr_207;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P104;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P104_specs_209;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P104_209[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P104_constr_209;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P105;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P105_specs_211;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P105_211[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P105_constr_211;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P106;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P106_specs_213;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P106_213[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P106_constr_213;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P107;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P107_specs_215;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P107_215[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P107_constr_215;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P108;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P108_specs_217;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P108_217[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P108_constr_217;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P109;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P109_specs_219;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P109_219[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P109_constr_219;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P110;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P110_specs_221;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P110_221[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P110_constr_221;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P111;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P111_specs_223;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P111_223[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P111_constr_223;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P112;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P112_specs_225;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P112_225[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P112_constr_225;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P113;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P113_specs_227;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P113_227[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P113_constr_227;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P114;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P114_specs_229;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P114_229[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P114_constr_229;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P115;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P115_specs_231;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P115_231[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P115_constr_231;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P116;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P116_specs_233;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P116_233[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P116_constr_233;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P117;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P117_specs_235;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P117_235[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P117_constr_235;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P118;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P118_specs_237;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P118_237[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P118_constr_237;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P119;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P119_specs_239;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P119_239[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P119_constr_239;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolIE_Container_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProtocolIE-ContainerList.h b/e2ap/headers/ProtocolIE-ContainerList.h
new file mode 100644 (file)
index 0000000..970e8be
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProtocolIE_ContainerList_H_
+#define        _ProtocolIE_ContainerList_H_
+
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolIE_ContainerList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProtocolIE-ContainerPair.h b/e2ap/headers/ProtocolIE-ContainerPair.h
new file mode 100644 (file)
index 0000000..a772f71
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProtocolIE_ContainerPair_H_
+#define        _ProtocolIE_ContainerPair_H_
+
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolIE_ContainerPair_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProtocolIE-ContainerPairList.h b/e2ap/headers/ProtocolIE-ContainerPairList.h
new file mode 100644 (file)
index 0000000..20ebc01
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProtocolIE_ContainerPairList_H_
+#define        _ProtocolIE_ContainerPairList_H_
+
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolIE_ContainerPairList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProtocolIE-Field.h b/e2ap/headers/ProtocolIE-Field.h
new file mode 100644 (file)
index 0000000..ae62e4d
--- /dev/null
@@ -0,0 +1,4885 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProtocolIE_Field_H_
+#define        _ProtocolIE_Field_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-ID.h"
+#include "Criticality.h"
+#include <ANY.h>
+#include <asn_ioc.h>
+#include "RICaction-ToBeSetup-Item.h"
+#include "Presence.h"
+#include <OPEN_TYPE.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+#include "RICaction-Admitted-Item.h"
+#include "RICaction-NotAdmitted-Item.h"
+#include "RANfunction-Item.h"
+#include "RANfunctionID-Item.h"
+#include "RANfunctionIDcause-Item.h"
+#include "E-RABs-ToBeSetup-Item.h"
+#include "E-RABs-Admitted-Item.h"
+#include "E-RABs-SubjectToStatusTransfer-Item.h"
+#include "CellInformation-Item.h"
+#include "CellToReport-Item.h"
+#include "MeasurementInitiationResult-Item.h"
+#include "MeasurementFailureCause-Item.h"
+#include "CompleteFailureCauseInformation-Item.h"
+#include "CellMeasurementResult-Item.h"
+#include "E-RABs-ToBeAdded-Item.h"
+#include "E-RABs-Admitted-ToBeAdded-Item.h"
+#include "E-RABs-ToBeAdded-ModReqItem.h"
+#include "E-RABs-ToBeModified-ModReqItem.h"
+#include "E-RABs-ToBeReleased-ModReqItem.h"
+#include "E-RABs-Admitted-ToBeAdded-ModAckItem.h"
+#include "E-RABs-Admitted-ToBeModified-ModAckItem.h"
+#include "E-RABs-Admitted-ToReleased-ModAckItem.h"
+#include "E-RABs-ToBeReleased-ModReqdItem.h"
+#include "E-RABs-ToBeReleased-RelReqItem.h"
+#include "E-RABs-ToBeReleased-RelConfItem.h"
+#include "E-RABs-SubjectToCounterCheckItem.h"
+#include "E-RABs-ToBeSetupRetrieve-Item.h"
+#include "E-RABs-ToBeAdded-SgNBAddReq-Item.h"
+#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h"
+#include "E-RABs-ToBeAdded-SgNBModReq-Item.h"
+#include "E-RABs-ToBeModified-SgNBModReq-Item.h"
+#include "E-RABs-ToBeReleased-SgNBModReq-Item.h"
+#include "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h"
+#include "E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h"
+#include "E-RABs-Admitted-ToReleased-SgNBModAck-Item.h"
+#include "E-RABs-ToBeReleased-SgNBModReqd-Item.h"
+#include "E-RABs-ToBeModified-SgNBModReqd-Item.h"
+#include "E-RABs-AdmittedToBeModified-SgNBModConf-Item.h"
+#include "E-RABs-ToBeReleased-SgNBRelReq-Item.h"
+#include "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h"
+#include "E-RABs-ToBeReleased-SgNBRelReqd-Item.h"
+#include "E-RABs-ToBeReleased-SgNBRelConf-Item.h"
+#include "E-RABs-SubjectToSgNBCounterCheck-Item.h"
+#include "E-RABs-ToBeReleased-SgNBChaConf-Item.h"
+#include "E-RABs-DataForwardingAddress-Item.h"
+#include "E-RAB-Item.h"
+#include "E-RABUsageReport-Item.h"
+#include "SecondaryRATUsageReport-Item.h"
+#include "RICrequestID.h"
+#include "RANfunctionID.h"
+#include "RICsubscription.h"
+#include "RICaction-Admitted-List.h"
+#include "RICaction-NotAdmitted-List.h"
+#include "CriticalityDiagnostics.h"
+#include "RICcause.h"
+#include "RICactionID.h"
+#include "RICindicationSN.h"
+#include "RICindicationType.h"
+#include "RICindicationHeader.h"
+#include "RICindicationMessage.h"
+#include "RICcallProcessID.h"
+#include "RICcontrolHeader.h"
+#include "RICcontrolMessage.h"
+#include "RICcontrolAckRequest.h"
+#include "RICcontrolStatus.h"
+#include "RANfunctions-List.h"
+#include "RANfunctionsID-List.h"
+#include "RANfunctionsIDcause-List.h"
+#include "TimeToWait.h"
+#include "UE-X2AP-ID.h"
+#include "Cause.h"
+#include "ECGI.h"
+#include "GUMMEI.h"
+#include "UE-ContextInformation.h"
+#include "UE-HistoryInformation.h"
+#include "TraceActivation.h"
+#include "SRVCCOperationPossible.h"
+#include "CSGMembershipStatus.h"
+#include "MobilityInformation.h"
+#include "Masked-IMEISV.h"
+#include "UE-HistoryInformationFromTheUE.h"
+#include "ExpectedUEBehaviour.h"
+#include "ProSeAuthorized.h"
+#include "UE-ContextReferenceAtSeNB.h"
+#include "UE-X2AP-ID-Extension.h"
+#include "V2XServicesAuthorized.h"
+#include "UE-ContextReferenceAtWT.h"
+#include "NRUESecurityCapabilities.h"
+#include "UE-ContextReferenceAtSgNB.h"
+#include "AerialUEsubscriptionInformation.h"
+#include "Subscription-Based-UE-DifferentiationInfo.h"
+#include "E-RABs-Admitted-List.h"
+#include "E-RAB-List.h"
+#include "TargeteNBtoSource-eNBTransparentContainer.h"
+#include "UE-ContextKeptIndicator.h"
+#include "HandoverReportType.h"
+#include "TargetCellInUTRAN.h"
+#include "CRNTI.h"
+#include "UE-RLF-Report-Container.h"
+#include "UE-RLF-Report-Container-for-extended-bands.h"
+#include "E-RABs-SubjectToStatusTransfer-List.h"
+#include "SgNB-UE-X2AP-ID.h"
+#include "SIPTOBearerDeactivationIndication.h"
+#include "GlobalENB-ID.h"
+#include "ServedCells.h"
+#include "GUGroupIDList.h"
+#include "LHN-ID.h"
+#include "CellInformation-List.h"
+#include "ServedCellsToModify.h"
+#include "Old-ECGIs.h"
+#include "CoverageModificationList.h"
+#include "Measurement-ID.h"
+#include "Registration-Request.h"
+#include "ReportCharacteristics.h"
+#include "CellToReport-List.h"
+#include "ReportingPeriodicity.h"
+#include "PartialSuccessIndicator.h"
+#include "ReportingPeriodicityRSRPMR.h"
+#include "ReportingPeriodicityCSIR.h"
+#include "MeasurementInitiationResult-List.h"
+#include "CompleteFailureCauseInformation-List.h"
+#include "CellMeasurementResult-List.h"
+#include "MobilityParametersInformation.h"
+#include "MobilityParametersModificationRange.h"
+#include "PCI.h"
+#include "ShortMAC-I.h"
+#include "RRCConnSetupIndicator.h"
+#include "RRCConnReestabIndicator.h"
+#include "ServedCellsToActivate.h"
+#include "ActivatedCellList.h"
+#include "RNL-Header.h"
+#include "X2AP-Message.h"
+#include "UESecurityCapabilities.h"
+#include "SeNBSecurityKey.h"
+#include "UEAggregateMaximumBitRate.h"
+#include "PLMN-Identity.h"
+#include "E-RABs-ToBeAdded-List.h"
+#include "MeNBtoSeNBContainer.h"
+#include "E-RABs-Admitted-ToBeAdded-List.h"
+#include "SeNBtoMeNBContainer.h"
+#include "TransportLayerAddress.h"
+#include "TunnelInformation.h"
+#include "ResponseInformationSeNBReconfComp.h"
+#include "SCGChangeIndication.h"
+#include "UE-ContextInformationSeNBModReq.h"
+#include "E-RABs-Admitted-ToBeAdded-ModAckList.h"
+#include "E-RABs-Admitted-ToBeModified-ModAckList.h"
+#include "E-RABs-Admitted-ToBeReleased-ModAckList.h"
+#include "E-RABs-ToBeReleased-ModReqd.h"
+#include "E-RABs-ToBeReleased-List-RelReq.h"
+#include "MakeBeforeBreakIndicator.h"
+#include "E-RABs-ToBeReleased-List-RelConf.h"
+#include "E-RABs-SubjectToCounterCheck-List.h"
+#include "X2BenefitValue.h"
+#include "ResumeID.h"
+#include "EUTRANCellIdentifier.h"
+#include "UE-ContextInformationRetrieve.h"
+#include "SgNBSecurityKey.h"
+#include "HandoverRestrictionList.h"
+#include "E-RABs-ToBeAdded-SgNBAddReqList.h"
+#include "MeNBtoSgNBContainer.h"
+#include "SplitSRBs.h"
+#include "MeNBResourceCoordinationInformation.h"
+#include "SGNB-Addition-Trigger-Ind.h"
+#include "SubscriberProfileIDforRFP.h"
+#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h"
+#include "SgNBtoMeNBContainer.h"
+#include "SgNBResourceCoordinationInformation.h"
+#include "RRC-Config-Ind.h"
+#include "ResponseInformationSgNBReconfComp.h"
+#include "SCGConfigurationQuery.h"
+#include "UE-ContextInformation-SgNBModReq.h"
+#include "E-RABs-Admitted-ToBeAdded-SgNBModAckList.h"
+#include "E-RABs-Admitted-ToBeModified-SgNBModAckList.h"
+#include "E-RABs-Admitted-ToBeReleased-SgNBModAckList.h"
+#include "PDCPChangeIndication.h"
+#include "E-RABs-ToBeReleased-SgNBModReqdList.h"
+#include "E-RABs-ToBeModified-SgNBModReqdList.h"
+#include "E-RABs-AdmittedToBeModified-SgNBModConfList.h"
+#include "E-RABs-ToBeReleased-SgNBRelReqList.h"
+#include "E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h"
+#include "E-RABs-ToBeReleased-SgNBRelReqdList.h"
+#include "E-RABs-ToBeReleased-SgNBRelConfList.h"
+#include "E-RABs-SubjectToSgNBCounterCheck-List.h"
+#include "GlobalGNB-ID.h"
+#include "E-RABs-ToBeReleased-SgNBChaConfList.h"
+#include "SplitSRB.h"
+#include "UENRMeasurement.h"
+#include "InitiatingNodeType-EndcX2Setup.h"
+#include "ServedEUTRAcellsENDCX2ManagementList.h"
+#include "ServedNRcellsENDCX2ManagementList.h"
+#include "RespondingNodeType-EndcX2Setup.h"
+#include "InitiatingNodeType-EndcConfigUpdate.h"
+#include "CellAssistanceInformation.h"
+#include "ServedEUTRAcellsToModifyListENDCConfUpd.h"
+#include "ServedEUTRAcellsToDeleteListENDCConfUpd.h"
+#include "ServedNRcellsToModifyENDCConfUpdList.h"
+#include "ServedNRcellsToDeleteENDCConfUpdList.h"
+#include "RespondingNodeType-EndcConfigUpdate.h"
+#include "ServedNRCellsToActivate.h"
+#include "ActivationID.h"
+#include "ActivatedNRCellList.h"
+#include "SecondaryRATUsageReportList.h"
+#include "UserPlaneTrafficActivityReport.h"
+#include "ERABActivityNotifyItemList.h"
+#include "UEsToBeResetList.h"
+#include "InitiatingNodeType-EutranrCellResourceCoordination.h"
+#include "DataTrafficResourceIndication.h"
+#include "SpectrumSharingGroupID.h"
+#include "ListofEUTRACellsinEUTRACoordinationReq.h"
+#include "ListofEUTRACellsinNRCoordinationReq.h"
+#include "ListofNRCellsinNRCoordinationReq.h"
+#include "RespondingNodeType-EutranrCellResourceCoordination.h"
+#include "ListofEUTRACellsinEUTRACoordinationResp.h"
+#include "ListofNRCellsinNRCoordinationResp.h"
+#include "InitiatingNodeType-EndcX2Removal.h"
+#include "RespondingNodeType-EndcX2Removal.h"
+#include "E-RABs-DataForwardingAddress-List.h"
+#include "GNBOverloadInformation.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RICaction_ToBeSetup_ItemIEs__value_PR {
+       RICaction_ToBeSetup_ItemIEs__value_PR_NOTHING,  /* No components present */
+       RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item
+} RICaction_ToBeSetup_ItemIEs__value_PR;
+typedef enum RICaction_Admitted_ItemIEs__value_PR {
+       RICaction_Admitted_ItemIEs__value_PR_NOTHING,   /* No components present */
+       RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item
+} RICaction_Admitted_ItemIEs__value_PR;
+typedef enum RICaction_NotAdmitted_ItemIEs__value_PR {
+       RICaction_NotAdmitted_ItemIEs__value_PR_NOTHING,        /* No components present */
+       RICaction_NotAdmitted_ItemIEs__value_PR_RICaction_NotAdmitted_Item
+} RICaction_NotAdmitted_ItemIEs__value_PR;
+typedef enum RANfunction_ItemIEs__value_PR {
+       RANfunction_ItemIEs__value_PR_NOTHING,  /* No components present */
+       RANfunction_ItemIEs__value_PR_RANfunction_Item
+} RANfunction_ItemIEs__value_PR;
+typedef enum RANfunctionID_ItemIEs__value_PR {
+       RANfunctionID_ItemIEs__value_PR_NOTHING,        /* No components present */
+       RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item
+} RANfunctionID_ItemIEs__value_PR;
+typedef enum RANfunctionIDcause_ItemIEs__value_PR {
+       RANfunctionIDcause_ItemIEs__value_PR_NOTHING,   /* No components present */
+       RANfunctionIDcause_ItemIEs__value_PR_RANfunctionIDcause_Item
+} RANfunctionIDcause_ItemIEs__value_PR;
+typedef enum E_RABs_ToBeSetup_ItemIEs__value_PR {
+       E_RABs_ToBeSetup_ItemIEs__value_PR_NOTHING,     /* No components present */
+       E_RABs_ToBeSetup_ItemIEs__value_PR_E_RABs_ToBeSetup_Item
+} E_RABs_ToBeSetup_ItemIEs__value_PR;
+typedef enum E_RABs_Admitted_ItemIEs__value_PR {
+       E_RABs_Admitted_ItemIEs__value_PR_NOTHING,      /* No components present */
+       E_RABs_Admitted_ItemIEs__value_PR_E_RABs_Admitted_Item
+} E_RABs_Admitted_ItemIEs__value_PR;
+typedef enum E_RABs_SubjectToStatusTransfer_ItemIEs__value_PR {
+       E_RABs_SubjectToStatusTransfer_ItemIEs__value_PR_NOTHING,       /* No components present */
+       E_RABs_SubjectToStatusTransfer_ItemIEs__value_PR_E_RABs_SubjectToStatusTransfer_Item
+} E_RABs_SubjectToStatusTransfer_ItemIEs__value_PR;
+typedef enum CellInformation_ItemIEs__value_PR {
+       CellInformation_ItemIEs__value_PR_NOTHING,      /* No components present */
+       CellInformation_ItemIEs__value_PR_CellInformation_Item
+} CellInformation_ItemIEs__value_PR;
+typedef enum CellToReport_ItemIEs__value_PR {
+       CellToReport_ItemIEs__value_PR_NOTHING, /* No components present */
+       CellToReport_ItemIEs__value_PR_CellToReport_Item
+} CellToReport_ItemIEs__value_PR;
+typedef enum MeasurementInitiationResult_ItemIEs__value_PR {
+       MeasurementInitiationResult_ItemIEs__value_PR_NOTHING,  /* No components present */
+       MeasurementInitiationResult_ItemIEs__value_PR_MeasurementInitiationResult_Item
+} MeasurementInitiationResult_ItemIEs__value_PR;
+typedef enum MeasurementFailureCause_ItemIEs__value_PR {
+       MeasurementFailureCause_ItemIEs__value_PR_NOTHING,      /* No components present */
+       MeasurementFailureCause_ItemIEs__value_PR_MeasurementFailureCause_Item
+} MeasurementFailureCause_ItemIEs__value_PR;
+typedef enum CompleteFailureCauseInformation_ItemIEs__value_PR {
+       CompleteFailureCauseInformation_ItemIEs__value_PR_NOTHING,      /* No components present */
+       CompleteFailureCauseInformation_ItemIEs__value_PR_CompleteFailureCauseInformation_Item
+} CompleteFailureCauseInformation_ItemIEs__value_PR;
+typedef enum CellMeasurementResult_ItemIEs__value_PR {
+       CellMeasurementResult_ItemIEs__value_PR_NOTHING,        /* No components present */
+       CellMeasurementResult_ItemIEs__value_PR_CellMeasurementResult_Item
+} CellMeasurementResult_ItemIEs__value_PR;
+typedef enum E_RABs_ToBeAdded_ItemIEs__value_PR {
+       E_RABs_ToBeAdded_ItemIEs__value_PR_NOTHING,     /* No components present */
+       E_RABs_ToBeAdded_ItemIEs__value_PR_E_RABs_ToBeAdded_Item
+} E_RABs_ToBeAdded_ItemIEs__value_PR;
+typedef enum E_RABs_Admitted_ToBeAdded_ItemIEs__value_PR {
+       E_RABs_Admitted_ToBeAdded_ItemIEs__value_PR_NOTHING,    /* No components present */
+       E_RABs_Admitted_ToBeAdded_ItemIEs__value_PR_E_RABs_Admitted_ToBeAdded_Item
+} E_RABs_Admitted_ToBeAdded_ItemIEs__value_PR;
+typedef enum E_RABs_ToBeAdded_ModReqItemIEs__value_PR {
+       E_RABs_ToBeAdded_ModReqItemIEs__value_PR_NOTHING,       /* No components present */
+       E_RABs_ToBeAdded_ModReqItemIEs__value_PR_E_RABs_ToBeAdded_ModReqItem
+} E_RABs_ToBeAdded_ModReqItemIEs__value_PR;
+typedef enum E_RABs_ToBeModified_ModReqItemIEs__value_PR {
+       E_RABs_ToBeModified_ModReqItemIEs__value_PR_NOTHING,    /* No components present */
+       E_RABs_ToBeModified_ModReqItemIEs__value_PR_E_RABs_ToBeModified_ModReqItem
+} E_RABs_ToBeModified_ModReqItemIEs__value_PR;
+typedef enum E_RABs_ToBeReleased_ModReqItemIEs__value_PR {
+       E_RABs_ToBeReleased_ModReqItemIEs__value_PR_NOTHING,    /* No components present */
+       E_RABs_ToBeReleased_ModReqItemIEs__value_PR_E_RABs_ToBeReleased_ModReqItem
+} E_RABs_ToBeReleased_ModReqItemIEs__value_PR;
+typedef enum E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_PR {
+       E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_PR_NOTHING,      /* No components present */
+       E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_PR_E_RABs_Admitted_ToBeAdded_ModAckItem
+} E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_PR;
+typedef enum E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_PR {
+       E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_PR_NOTHING,   /* No components present */
+       E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_PR_E_RABs_Admitted_ToBeModified_ModAckItem
+} E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_PR;
+typedef enum E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_PR {
+       E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_PR_NOTHING,   /* No components present */
+       E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_PR_E_RABs_Admitted_ToReleased_ModAckItem
+} E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_PR;
+typedef enum E_RABs_ToBeReleased_ModReqdItemIEs__value_PR {
+       E_RABs_ToBeReleased_ModReqdItemIEs__value_PR_NOTHING,   /* No components present */
+       E_RABs_ToBeReleased_ModReqdItemIEs__value_PR_E_RABs_ToBeReleased_ModReqdItem
+} E_RABs_ToBeReleased_ModReqdItemIEs__value_PR;
+typedef enum E_RABs_ToBeReleased_RelReqItemIEs__value_PR {
+       E_RABs_ToBeReleased_RelReqItemIEs__value_PR_NOTHING,    /* No components present */
+       E_RABs_ToBeReleased_RelReqItemIEs__value_PR_E_RABs_ToBeReleased_RelReqItem
+} E_RABs_ToBeReleased_RelReqItemIEs__value_PR;
+typedef enum E_RABs_ToBeReleased_RelConfItemIEs__value_PR {
+       E_RABs_ToBeReleased_RelConfItemIEs__value_PR_NOTHING,   /* No components present */
+       E_RABs_ToBeReleased_RelConfItemIEs__value_PR_E_RABs_ToBeReleased_RelConfItem
+} E_RABs_ToBeReleased_RelConfItemIEs__value_PR;
+typedef enum E_RABs_SubjectToCounterCheckItemIEs__value_PR {
+       E_RABs_SubjectToCounterCheckItemIEs__value_PR_NOTHING,  /* No components present */
+       E_RABs_SubjectToCounterCheckItemIEs__value_PR_E_RABs_SubjectToCounterCheckItem
+} E_RABs_SubjectToCounterCheckItemIEs__value_PR;
+typedef enum E_RABs_ToBeSetupRetrieve_ItemIEs__value_PR {
+       E_RABs_ToBeSetupRetrieve_ItemIEs__value_PR_NOTHING,     /* No components present */
+       E_RABs_ToBeSetupRetrieve_ItemIEs__value_PR_E_RABs_ToBeSetupRetrieve_Item
+} E_RABs_ToBeSetupRetrieve_ItemIEs__value_PR;
+typedef enum E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_PR {
+       E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_PR_NOTHING,  /* No components present */
+       E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_PR_E_RABs_ToBeAdded_SgNBAddReq_Item
+} E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_PR;
+typedef enum E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_PR {
+       E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_PR_NOTHING,      /* No components present */
+       E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_PR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item
+} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_PR;
+typedef enum E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_PR {
+       E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_PR_NOTHING,  /* No components present */
+       E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_PR_E_RABs_ToBeAdded_SgNBModReq_Item
+} E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_PR;
+typedef enum E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_PR {
+       E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_PR_NOTHING,       /* No components present */
+       E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_PR_E_RABs_ToBeModified_SgNBModReq_Item
+} E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_PR;
+typedef enum E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_PR {
+       E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_PR_NOTHING,       /* No components present */
+       E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBModReq_Item
+} E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_PR;
+typedef enum E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_PR {
+       E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_PR_NOTHING, /* No components present */
+       E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_PR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item
+} E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_PR;
+typedef enum E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_PR {
+       E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_PR_NOTHING,      /* No components present */
+       E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_PR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item
+} E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_PR;
+typedef enum E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_PR {
+       E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_PR_NOTHING,      /* No components present */
+       E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_PR_E_RABs_Admitted_ToReleased_SgNBModAck_Item
+} E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_PR;
+typedef enum E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_PR {
+       E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_PR_NOTHING,      /* No components present */
+       E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBModReqd_Item
+} E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_PR;
+typedef enum E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_PR {
+       E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_PR_NOTHING,      /* No components present */
+       E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_PR_E_RABs_ToBeModified_SgNBModReqd_Item
+} E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_PR;
+typedef enum E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_PR {
+       E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_PR_NOTHING,      /* No components present */
+       E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_PR_E_RABs_AdmittedToBeModified_SgNBModConf_Item
+} E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_PR;
+typedef enum E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_PR {
+       E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_PR_NOTHING,       /* No components present */
+       E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBRelReq_Item
+} E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_PR;
+typedef enum E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_PR {
+       E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_PR_NOTHING,   /* No components present */
+       E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_PR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item
+} E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_PR;
+typedef enum E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_PR {
+       E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_PR_NOTHING,      /* No components present */
+       E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBRelReqd_Item
+} E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_PR;
+typedef enum E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_PR {
+       E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_PR_NOTHING,      /* No components present */
+       E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBRelConf_Item
+} E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_PR;
+typedef enum E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_PR {
+       E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_PR_NOTHING,     /* No components present */
+       E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_PR_E_RABs_SubjectToSgNBCounterCheck_Item
+} E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_PR;
+typedef enum E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_PR {
+       E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_PR_NOTHING,      /* No components present */
+       E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBChaConf_Item
+} E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_PR;
+typedef enum E_RABs_DataForwardingAddress_ItemIEs__value_PR {
+       E_RABs_DataForwardingAddress_ItemIEs__value_PR_NOTHING, /* No components present */
+       E_RABs_DataForwardingAddress_ItemIEs__value_PR_E_RABs_DataForwardingAddress_Item
+} E_RABs_DataForwardingAddress_ItemIEs__value_PR;
+typedef enum E_RAB_ItemIEs__value_PR {
+       E_RAB_ItemIEs__value_PR_NOTHING,        /* No components present */
+       E_RAB_ItemIEs__value_PR_E_RAB_Item
+} E_RAB_ItemIEs__value_PR;
+typedef enum E_RABUsageReport_ItemIEs__value_PR {
+       E_RABUsageReport_ItemIEs__value_PR_NOTHING,     /* No components present */
+       E_RABUsageReport_ItemIEs__value_PR_E_RABUsageReport_Item
+} E_RABUsageReport_ItemIEs__value_PR;
+typedef enum SecondaryRATUsageReport_ItemIEs__value_PR {
+       SecondaryRATUsageReport_ItemIEs__value_PR_NOTHING,      /* No components present */
+       SecondaryRATUsageReport_ItemIEs__value_PR_SecondaryRATUsageReport_Item
+} SecondaryRATUsageReport_ItemIEs__value_PR;
+typedef enum RICsubscriptionRequest_IEs__value_PR {
+       RICsubscriptionRequest_IEs__value_PR_NOTHING,   /* No components present */
+       RICsubscriptionRequest_IEs__value_PR_RICrequestID,
+       RICsubscriptionRequest_IEs__value_PR_RANfunctionID,
+       RICsubscriptionRequest_IEs__value_PR_RICsubscription
+} RICsubscriptionRequest_IEs__value_PR;
+typedef enum RICsubscriptionResponse_IEs__value_PR {
+       RICsubscriptionResponse_IEs__value_PR_NOTHING,  /* No components present */
+       RICsubscriptionResponse_IEs__value_PR_RICrequestID,
+       RICsubscriptionResponse_IEs__value_PR_RANfunctionID,
+       RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List,
+       RICsubscriptionResponse_IEs__value_PR_RICaction_NotAdmitted_List
+} RICsubscriptionResponse_IEs__value_PR;
+typedef enum RICsubscriptionFailure_IEs__value_PR {
+       RICsubscriptionFailure_IEs__value_PR_NOTHING,   /* No components present */
+       RICsubscriptionFailure_IEs__value_PR_RICrequestID,
+       RICsubscriptionFailure_IEs__value_PR_RANfunctionID,
+       RICsubscriptionFailure_IEs__value_PR_RICaction_NotAdmitted_List,
+       RICsubscriptionFailure_IEs__value_PR_CriticalityDiagnostics
+} RICsubscriptionFailure_IEs__value_PR;
+typedef enum RICsubscriptionDeleteRequest_IEs__value_PR {
+       RICsubscriptionDeleteRequest_IEs__value_PR_NOTHING,     /* No components present */
+       RICsubscriptionDeleteRequest_IEs__value_PR_RICrequestID,
+       RICsubscriptionDeleteRequest_IEs__value_PR_RANfunctionID
+} RICsubscriptionDeleteRequest_IEs__value_PR;
+typedef enum RICsubscriptionDeleteResponse_IEs__value_PR {
+       RICsubscriptionDeleteResponse_IEs__value_PR_NOTHING,    /* No components present */
+       RICsubscriptionDeleteResponse_IEs__value_PR_RICrequestID,
+       RICsubscriptionDeleteResponse_IEs__value_PR_RANfunctionID
+} RICsubscriptionDeleteResponse_IEs__value_PR;
+typedef enum RICsubscriptionDeleteFailure_IEs__value_PR {
+       RICsubscriptionDeleteFailure_IEs__value_PR_NOTHING,     /* No components present */
+       RICsubscriptionDeleteFailure_IEs__value_PR_RICrequestID,
+       RICsubscriptionDeleteFailure_IEs__value_PR_RANfunctionID,
+       RICsubscriptionDeleteFailure_IEs__value_PR_RICcause,
+       RICsubscriptionDeleteFailure_IEs__value_PR_CriticalityDiagnostics
+} RICsubscriptionDeleteFailure_IEs__value_PR;
+typedef enum RICindication_IEs__value_PR {
+       RICindication_IEs__value_PR_NOTHING,    /* No components present */
+       RICindication_IEs__value_PR_RICrequestID,
+       RICindication_IEs__value_PR_RANfunctionID,
+       RICindication_IEs__value_PR_RICactionID,
+       RICindication_IEs__value_PR_RICindicationSN,
+       RICindication_IEs__value_PR_RICindicationType,
+       RICindication_IEs__value_PR_RICindicationHeader,
+       RICindication_IEs__value_PR_RICindicationMessage,
+       RICindication_IEs__value_PR_RICcallProcessID
+} RICindication_IEs__value_PR;
+typedef enum RICcontrolRequest_IEs__value_PR {
+       RICcontrolRequest_IEs__value_PR_NOTHING,        /* No components present */
+       RICcontrolRequest_IEs__value_PR_RICrequestID,
+       RICcontrolRequest_IEs__value_PR_RANfunctionID,
+       RICcontrolRequest_IEs__value_PR_RICcallProcessID,
+       RICcontrolRequest_IEs__value_PR_RICcontrolHeader,
+       RICcontrolRequest_IEs__value_PR_RICcontrolMessage,
+       RICcontrolRequest_IEs__value_PR_RICcontrolAckRequest
+} RICcontrolRequest_IEs__value_PR;
+typedef enum RICcontrolAcknowledge_IEs__value_PR {
+       RICcontrolAcknowledge_IEs__value_PR_NOTHING,    /* No components present */
+       RICcontrolAcknowledge_IEs__value_PR_RICrequestID,
+       RICcontrolAcknowledge_IEs__value_PR_RANfunctionID,
+       RICcontrolAcknowledge_IEs__value_PR_RICcallProcessID,
+       RICcontrolAcknowledge_IEs__value_PR_RICcontrolStatus
+} RICcontrolAcknowledge_IEs__value_PR;
+typedef enum RICcontrolFailure_IEs__value_PR {
+       RICcontrolFailure_IEs__value_PR_NOTHING,        /* No components present */
+       RICcontrolFailure_IEs__value_PR_RICrequestID,
+       RICcontrolFailure_IEs__value_PR_RANfunctionID,
+       RICcontrolFailure_IEs__value_PR_RICcallProcessID,
+       RICcontrolFailure_IEs__value_PR_RICcause
+} RICcontrolFailure_IEs__value_PR;
+typedef enum RICserviceUpdate_IEs__value_PR {
+       RICserviceUpdate_IEs__value_PR_NOTHING, /* No components present */
+       RICserviceUpdate_IEs__value_PR_RANfunctions_List,
+       RICserviceUpdate_IEs__value_PR_RANfunctionsID_List
+} RICserviceUpdate_IEs__value_PR;
+typedef enum RICserviceUpdateAcknowledge_IEs__value_PR {
+       RICserviceUpdateAcknowledge_IEs__value_PR_NOTHING,      /* No components present */
+       RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsID_List,
+       RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsIDcause_List
+} RICserviceUpdateAcknowledge_IEs__value_PR;
+typedef enum RICserviceUpdateFailure_IEs__value_PR {
+       RICserviceUpdateFailure_IEs__value_PR_NOTHING,  /* No components present */
+       RICserviceUpdateFailure_IEs__value_PR_RANfunctionsIDcause_List,
+       RICserviceUpdateFailure_IEs__value_PR_TimeToWait,
+       RICserviceUpdateFailure_IEs__value_PR_CriticalityDiagnostics
+} RICserviceUpdateFailure_IEs__value_PR;
+typedef enum RICserviceQuery_IEs__value_PR {
+       RICserviceQuery_IEs__value_PR_NOTHING,  /* No components present */
+       RICserviceQuery_IEs__value_PR_RANfunctionsID_List
+} RICserviceQuery_IEs__value_PR;
+typedef enum HandoverRequest_IEs__value_PR {
+       HandoverRequest_IEs__value_PR_NOTHING,  /* No components present */
+       HandoverRequest_IEs__value_PR_UE_X2AP_ID,
+       HandoverRequest_IEs__value_PR_Cause,
+       HandoverRequest_IEs__value_PR_ECGI,
+       HandoverRequest_IEs__value_PR_GUMMEI,
+       HandoverRequest_IEs__value_PR_UE_ContextInformation,
+       HandoverRequest_IEs__value_PR_UE_HistoryInformation,
+       HandoverRequest_IEs__value_PR_TraceActivation,
+       HandoverRequest_IEs__value_PR_SRVCCOperationPossible,
+       HandoverRequest_IEs__value_PR_CSGMembershipStatus,
+       HandoverRequest_IEs__value_PR_MobilityInformation,
+       HandoverRequest_IEs__value_PR_Masked_IMEISV,
+       HandoverRequest_IEs__value_PR_UE_HistoryInformationFromTheUE,
+       HandoverRequest_IEs__value_PR_ExpectedUEBehaviour,
+       HandoverRequest_IEs__value_PR_ProSeAuthorized,
+       HandoverRequest_IEs__value_PR_UE_ContextReferenceAtSeNB,
+       HandoverRequest_IEs__value_PR_UE_X2AP_ID_Extension,
+       HandoverRequest_IEs__value_PR_V2XServicesAuthorized,
+       HandoverRequest_IEs__value_PR_UE_ContextReferenceAtWT,
+       HandoverRequest_IEs__value_PR_NRUESecurityCapabilities,
+       HandoverRequest_IEs__value_PR_UE_ContextReferenceAtSgNB,
+       HandoverRequest_IEs__value_PR_AerialUEsubscriptionInformation,
+       HandoverRequest_IEs__value_PR_Subscription_Based_UE_DifferentiationInfo
+} HandoverRequest_IEs__value_PR;
+typedef enum HandoverRequestAcknowledge_IEs__value_PR {
+       HandoverRequestAcknowledge_IEs__value_PR_NOTHING,       /* No components present */
+       HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
+       HandoverRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_List,
+       HandoverRequestAcknowledge_IEs__value_PR_E_RAB_List,
+       HandoverRequestAcknowledge_IEs__value_PR_TargeteNBtoSource_eNBTransparentContainer,
+       HandoverRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics,
+       HandoverRequestAcknowledge_IEs__value_PR_UE_ContextKeptIndicator,
+       HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension
+} HandoverRequestAcknowledge_IEs__value_PR;
+typedef enum HandoverPreparationFailure_IEs__value_PR {
+       HandoverPreparationFailure_IEs__value_PR_NOTHING,       /* No components present */
+       HandoverPreparationFailure_IEs__value_PR_UE_X2AP_ID,
+       HandoverPreparationFailure_IEs__value_PR_Cause,
+       HandoverPreparationFailure_IEs__value_PR_CriticalityDiagnostics,
+       HandoverPreparationFailure_IEs__value_PR_UE_X2AP_ID_Extension
+} HandoverPreparationFailure_IEs__value_PR;
+typedef enum HandoverReport_IEs__value_PR {
+       HandoverReport_IEs__value_PR_NOTHING,   /* No components present */
+       HandoverReport_IEs__value_PR_HandoverReportType,
+       HandoverReport_IEs__value_PR_Cause,
+       HandoverReport_IEs__value_PR_ECGI,
+       HandoverReport_IEs__value_PR_TargetCellInUTRAN,
+       HandoverReport_IEs__value_PR_CRNTI,
+       HandoverReport_IEs__value_PR_MobilityInformation,
+       HandoverReport_IEs__value_PR_UE_RLF_Report_Container,
+       HandoverReport_IEs__value_PR_UE_RLF_Report_Container_for_extended_bands
+} HandoverReport_IEs__value_PR;
+typedef enum SNStatusTransfer_IEs__value_PR {
+       SNStatusTransfer_IEs__value_PR_NOTHING, /* No components present */
+       SNStatusTransfer_IEs__value_PR_UE_X2AP_ID,
+       SNStatusTransfer_IEs__value_PR_E_RABs_SubjectToStatusTransfer_List,
+       SNStatusTransfer_IEs__value_PR_UE_X2AP_ID_Extension,
+       SNStatusTransfer_IEs__value_PR_SgNB_UE_X2AP_ID
+} SNStatusTransfer_IEs__value_PR;
+typedef enum UEContextRelease_IEs__value_PR {
+       UEContextRelease_IEs__value_PR_NOTHING, /* No components present */
+       UEContextRelease_IEs__value_PR_UE_X2AP_ID,
+       UEContextRelease_IEs__value_PR_UE_X2AP_ID_Extension,
+       UEContextRelease_IEs__value_PR_SIPTOBearerDeactivationIndication,
+       UEContextRelease_IEs__value_PR_SgNB_UE_X2AP_ID
+} UEContextRelease_IEs__value_PR;
+typedef enum HandoverCancel_IEs__value_PR {
+       HandoverCancel_IEs__value_PR_NOTHING,   /* No components present */
+       HandoverCancel_IEs__value_PR_UE_X2AP_ID,
+       HandoverCancel_IEs__value_PR_Cause,
+       HandoverCancel_IEs__value_PR_UE_X2AP_ID_Extension
+} HandoverCancel_IEs__value_PR;
+typedef enum ErrorIndication_IEs__value_PR {
+       ErrorIndication_IEs__value_PR_NOTHING,  /* No components present */
+       ErrorIndication_IEs__value_PR_UE_X2AP_ID,
+       ErrorIndication_IEs__value_PR_Cause,
+       ErrorIndication_IEs__value_PR_CriticalityDiagnostics,
+       ErrorIndication_IEs__value_PR_UE_X2AP_ID_Extension,
+       ErrorIndication_IEs__value_PR_SgNB_UE_X2AP_ID
+} ErrorIndication_IEs__value_PR;
+typedef enum ResetRequest_IEs__value_PR {
+       ResetRequest_IEs__value_PR_NOTHING,     /* No components present */
+       ResetRequest_IEs__value_PR_Cause
+} ResetRequest_IEs__value_PR;
+typedef enum ResetResponse_IEs__value_PR {
+       ResetResponse_IEs__value_PR_NOTHING,    /* No components present */
+       ResetResponse_IEs__value_PR_CriticalityDiagnostics
+} ResetResponse_IEs__value_PR;
+typedef enum X2SetupRequest_IEs__value_PR {
+       X2SetupRequest_IEs__value_PR_NOTHING,   /* No components present */
+       X2SetupRequest_IEs__value_PR_GlobalENB_ID,
+       X2SetupRequest_IEs__value_PR_ServedCells,
+       X2SetupRequest_IEs__value_PR_GUGroupIDList,
+       X2SetupRequest_IEs__value_PR_LHN_ID
+} X2SetupRequest_IEs__value_PR;
+typedef enum X2SetupResponse_IEs__value_PR {
+       X2SetupResponse_IEs__value_PR_NOTHING,  /* No components present */
+       X2SetupResponse_IEs__value_PR_GlobalENB_ID,
+       X2SetupResponse_IEs__value_PR_ServedCells,
+       X2SetupResponse_IEs__value_PR_GUGroupIDList,
+       X2SetupResponse_IEs__value_PR_CriticalityDiagnostics,
+       X2SetupResponse_IEs__value_PR_LHN_ID
+} X2SetupResponse_IEs__value_PR;
+typedef enum X2SetupFailure_IEs__value_PR {
+       X2SetupFailure_IEs__value_PR_NOTHING,   /* No components present */
+       X2SetupFailure_IEs__value_PR_Cause,
+       X2SetupFailure_IEs__value_PR_TimeToWait,
+       X2SetupFailure_IEs__value_PR_CriticalityDiagnostics
+} X2SetupFailure_IEs__value_PR;
+typedef enum LoadInformation_IEs__value_PR {
+       LoadInformation_IEs__value_PR_NOTHING,  /* No components present */
+       LoadInformation_IEs__value_PR_CellInformation_List
+} LoadInformation_IEs__value_PR;
+typedef enum ENBConfigurationUpdate_IEs__value_PR {
+       ENBConfigurationUpdate_IEs__value_PR_NOTHING,   /* No components present */
+       ENBConfigurationUpdate_IEs__value_PR_ServedCells,
+       ENBConfigurationUpdate_IEs__value_PR_ServedCellsToModify,
+       ENBConfigurationUpdate_IEs__value_PR_Old_ECGIs,
+       ENBConfigurationUpdate_IEs__value_PR_GUGroupIDList,
+       ENBConfigurationUpdate_IEs__value_PR_CoverageModificationList
+} ENBConfigurationUpdate_IEs__value_PR;
+typedef enum ENBConfigurationUpdateAcknowledge_IEs__value_PR {
+       ENBConfigurationUpdateAcknowledge_IEs__value_PR_NOTHING,        /* No components present */
+       ENBConfigurationUpdateAcknowledge_IEs__value_PR_CriticalityDiagnostics
+} ENBConfigurationUpdateAcknowledge_IEs__value_PR;
+typedef enum ENBConfigurationUpdateFailure_IEs__value_PR {
+       ENBConfigurationUpdateFailure_IEs__value_PR_NOTHING,    /* No components present */
+       ENBConfigurationUpdateFailure_IEs__value_PR_Cause,
+       ENBConfigurationUpdateFailure_IEs__value_PR_TimeToWait,
+       ENBConfigurationUpdateFailure_IEs__value_PR_CriticalityDiagnostics
+} ENBConfigurationUpdateFailure_IEs__value_PR;
+typedef enum ResourceStatusRequest_IEs__value_PR {
+       ResourceStatusRequest_IEs__value_PR_NOTHING,    /* No components present */
+       ResourceStatusRequest_IEs__value_PR_Measurement_ID,
+       ResourceStatusRequest_IEs__value_PR_Registration_Request,
+       ResourceStatusRequest_IEs__value_PR_ReportCharacteristics,
+       ResourceStatusRequest_IEs__value_PR_CellToReport_List,
+       ResourceStatusRequest_IEs__value_PR_ReportingPeriodicity,
+       ResourceStatusRequest_IEs__value_PR_PartialSuccessIndicator,
+       ResourceStatusRequest_IEs__value_PR_ReportingPeriodicityRSRPMR,
+       ResourceStatusRequest_IEs__value_PR_ReportingPeriodicityCSIR
+} ResourceStatusRequest_IEs__value_PR;
+typedef enum ResourceStatusResponse_IEs__value_PR {
+       ResourceStatusResponse_IEs__value_PR_NOTHING,   /* No components present */
+       ResourceStatusResponse_IEs__value_PR_Measurement_ID,
+       ResourceStatusResponse_IEs__value_PR_CriticalityDiagnostics,
+       ResourceStatusResponse_IEs__value_PR_MeasurementInitiationResult_List
+} ResourceStatusResponse_IEs__value_PR;
+typedef enum ResourceStatusFailure_IEs__value_PR {
+       ResourceStatusFailure_IEs__value_PR_NOTHING,    /* No components present */
+       ResourceStatusFailure_IEs__value_PR_Measurement_ID,
+       ResourceStatusFailure_IEs__value_PR_Cause,
+       ResourceStatusFailure_IEs__value_PR_CriticalityDiagnostics,
+       ResourceStatusFailure_IEs__value_PR_CompleteFailureCauseInformation_List
+} ResourceStatusFailure_IEs__value_PR;
+typedef enum ResourceStatusUpdate_IEs__value_PR {
+       ResourceStatusUpdate_IEs__value_PR_NOTHING,     /* No components present */
+       ResourceStatusUpdate_IEs__value_PR_Measurement_ID,
+       ResourceStatusUpdate_IEs__value_PR_CellMeasurementResult_List
+} ResourceStatusUpdate_IEs__value_PR;
+typedef enum MobilityChangeRequest_IEs__value_PR {
+       MobilityChangeRequest_IEs__value_PR_NOTHING,    /* No components present */
+       MobilityChangeRequest_IEs__value_PR_ECGI,
+       MobilityChangeRequest_IEs__value_PR_MobilityParametersInformation,
+       MobilityChangeRequest_IEs__value_PR_Cause
+} MobilityChangeRequest_IEs__value_PR;
+typedef enum MobilityChangeAcknowledge_IEs__value_PR {
+       MobilityChangeAcknowledge_IEs__value_PR_NOTHING,        /* No components present */
+       MobilityChangeAcknowledge_IEs__value_PR_ECGI,
+       MobilityChangeAcknowledge_IEs__value_PR_CriticalityDiagnostics
+} MobilityChangeAcknowledge_IEs__value_PR;
+typedef enum MobilityChangeFailure_IEs__value_PR {
+       MobilityChangeFailure_IEs__value_PR_NOTHING,    /* No components present */
+       MobilityChangeFailure_IEs__value_PR_ECGI,
+       MobilityChangeFailure_IEs__value_PR_Cause,
+       MobilityChangeFailure_IEs__value_PR_MobilityParametersModificationRange,
+       MobilityChangeFailure_IEs__value_PR_CriticalityDiagnostics
+} MobilityChangeFailure_IEs__value_PR;
+typedef enum RLFIndication_IEs__value_PR {
+       RLFIndication_IEs__value_PR_NOTHING,    /* No components present */
+       RLFIndication_IEs__value_PR_PCI,
+       RLFIndication_IEs__value_PR_ECGI,
+       RLFIndication_IEs__value_PR_CRNTI,
+       RLFIndication_IEs__value_PR_ShortMAC_I,
+       RLFIndication_IEs__value_PR_UE_RLF_Report_Container,
+       RLFIndication_IEs__value_PR_RRCConnSetupIndicator,
+       RLFIndication_IEs__value_PR_RRCConnReestabIndicator,
+       RLFIndication_IEs__value_PR_UE_RLF_Report_Container_for_extended_bands
+} RLFIndication_IEs__value_PR;
+typedef enum CellActivationRequest_IEs__value_PR {
+       CellActivationRequest_IEs__value_PR_NOTHING,    /* No components present */
+       CellActivationRequest_IEs__value_PR_ServedCellsToActivate
+} CellActivationRequest_IEs__value_PR;
+typedef enum CellActivationResponse_IEs__value_PR {
+       CellActivationResponse_IEs__value_PR_NOTHING,   /* No components present */
+       CellActivationResponse_IEs__value_PR_ActivatedCellList,
+       CellActivationResponse_IEs__value_PR_CriticalityDiagnostics
+} CellActivationResponse_IEs__value_PR;
+typedef enum CellActivationFailure_IEs__value_PR {
+       CellActivationFailure_IEs__value_PR_NOTHING,    /* No components present */
+       CellActivationFailure_IEs__value_PR_Cause,
+       CellActivationFailure_IEs__value_PR_CriticalityDiagnostics
+} CellActivationFailure_IEs__value_PR;
+typedef enum X2Release_IEs__value_PR {
+       X2Release_IEs__value_PR_NOTHING,        /* No components present */
+       X2Release_IEs__value_PR_GlobalENB_ID
+} X2Release_IEs__value_PR;
+typedef enum X2APMessageTransfer_IEs__value_PR {
+       X2APMessageTransfer_IEs__value_PR_NOTHING,      /* No components present */
+       X2APMessageTransfer_IEs__value_PR_RNL_Header,
+       X2APMessageTransfer_IEs__value_PR_X2AP_Message
+} X2APMessageTransfer_IEs__value_PR;
+typedef enum SeNBAdditionRequest_IEs__value_PR {
+       SeNBAdditionRequest_IEs__value_PR_NOTHING,      /* No components present */
+       SeNBAdditionRequest_IEs__value_PR_UE_X2AP_ID,
+       SeNBAdditionRequest_IEs__value_PR_UESecurityCapabilities,
+       SeNBAdditionRequest_IEs__value_PR_SeNBSecurityKey,
+       SeNBAdditionRequest_IEs__value_PR_UEAggregateMaximumBitRate,
+       SeNBAdditionRequest_IEs__value_PR_PLMN_Identity,
+       SeNBAdditionRequest_IEs__value_PR_E_RABs_ToBeAdded_List,
+       SeNBAdditionRequest_IEs__value_PR_MeNBtoSeNBContainer,
+       SeNBAdditionRequest_IEs__value_PR_CSGMembershipStatus,
+       SeNBAdditionRequest_IEs__value_PR_UE_X2AP_ID_Extension,
+       SeNBAdditionRequest_IEs__value_PR_ExpectedUEBehaviour
+} SeNBAdditionRequest_IEs__value_PR;
+typedef enum SeNBAdditionRequestAcknowledge_IEs__value_PR {
+       SeNBAdditionRequestAcknowledge_IEs__value_PR_NOTHING,   /* No components present */
+       SeNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
+       SeNBAdditionRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_List,
+       SeNBAdditionRequestAcknowledge_IEs__value_PR_E_RAB_List,
+       SeNBAdditionRequestAcknowledge_IEs__value_PR_SeNBtoMeNBContainer,
+       SeNBAdditionRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics,
+       SeNBAdditionRequestAcknowledge_IEs__value_PR_TransportLayerAddress,
+       SeNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension,
+       SeNBAdditionRequestAcknowledge_IEs__value_PR_TunnelInformation
+} SeNBAdditionRequestAcknowledge_IEs__value_PR;
+typedef enum SeNBAdditionRequestReject_IEs__value_PR {
+       SeNBAdditionRequestReject_IEs__value_PR_NOTHING,        /* No components present */
+       SeNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID,
+       SeNBAdditionRequestReject_IEs__value_PR_Cause,
+       SeNBAdditionRequestReject_IEs__value_PR_CriticalityDiagnostics,
+       SeNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID_Extension
+} SeNBAdditionRequestReject_IEs__value_PR;
+typedef enum SeNBReconfigurationComplete_IEs__value_PR {
+       SeNBReconfigurationComplete_IEs__value_PR_NOTHING,      /* No components present */
+       SeNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID,
+       SeNBReconfigurationComplete_IEs__value_PR_ResponseInformationSeNBReconfComp,
+       SeNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID_Extension
+} SeNBReconfigurationComplete_IEs__value_PR;
+typedef enum SeNBModificationRequest_IEs__value_PR {
+       SeNBModificationRequest_IEs__value_PR_NOTHING,  /* No components present */
+       SeNBModificationRequest_IEs__value_PR_UE_X2AP_ID,
+       SeNBModificationRequest_IEs__value_PR_Cause,
+       SeNBModificationRequest_IEs__value_PR_SCGChangeIndication,
+       SeNBModificationRequest_IEs__value_PR_PLMN_Identity,
+       SeNBModificationRequest_IEs__value_PR_UE_ContextInformationSeNBModReq,
+       SeNBModificationRequest_IEs__value_PR_MeNBtoSeNBContainer,
+       SeNBModificationRequest_IEs__value_PR_CSGMembershipStatus,
+       SeNBModificationRequest_IEs__value_PR_UE_X2AP_ID_Extension
+} SeNBModificationRequest_IEs__value_PR;
+typedef enum SeNBModificationRequestAcknowledge_IEs__value_PR {
+       SeNBModificationRequestAcknowledge_IEs__value_PR_NOTHING,       /* No components present */
+       SeNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
+       SeNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_ModAckList,
+       SeNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeModified_ModAckList,
+       SeNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeReleased_ModAckList,
+       SeNBModificationRequestAcknowledge_IEs__value_PR_E_RAB_List,
+       SeNBModificationRequestAcknowledge_IEs__value_PR_SeNBtoMeNBContainer,
+       SeNBModificationRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics,
+       SeNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension
+} SeNBModificationRequestAcknowledge_IEs__value_PR;
+typedef enum SeNBModificationRequestReject_IEs__value_PR {
+       SeNBModificationRequestReject_IEs__value_PR_NOTHING,    /* No components present */
+       SeNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID,
+       SeNBModificationRequestReject_IEs__value_PR_Cause,
+       SeNBModificationRequestReject_IEs__value_PR_CriticalityDiagnostics,
+       SeNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID_Extension
+} SeNBModificationRequestReject_IEs__value_PR;
+typedef enum SeNBModificationRequired_IEs__value_PR {
+       SeNBModificationRequired_IEs__value_PR_NOTHING, /* No components present */
+       SeNBModificationRequired_IEs__value_PR_UE_X2AP_ID,
+       SeNBModificationRequired_IEs__value_PR_Cause,
+       SeNBModificationRequired_IEs__value_PR_SCGChangeIndication,
+       SeNBModificationRequired_IEs__value_PR_E_RABs_ToBeReleased_ModReqd,
+       SeNBModificationRequired_IEs__value_PR_SeNBtoMeNBContainer,
+       SeNBModificationRequired_IEs__value_PR_UE_X2AP_ID_Extension
+} SeNBModificationRequired_IEs__value_PR;
+typedef enum SeNBModificationConfirm_IEs__value_PR {
+       SeNBModificationConfirm_IEs__value_PR_NOTHING,  /* No components present */
+       SeNBModificationConfirm_IEs__value_PR_UE_X2AP_ID,
+       SeNBModificationConfirm_IEs__value_PR_MeNBtoSeNBContainer,
+       SeNBModificationConfirm_IEs__value_PR_CriticalityDiagnostics,
+       SeNBModificationConfirm_IEs__value_PR_UE_X2AP_ID_Extension
+} SeNBModificationConfirm_IEs__value_PR;
+typedef enum SeNBModificationRefuse_IEs__value_PR {
+       SeNBModificationRefuse_IEs__value_PR_NOTHING,   /* No components present */
+       SeNBModificationRefuse_IEs__value_PR_UE_X2AP_ID,
+       SeNBModificationRefuse_IEs__value_PR_Cause,
+       SeNBModificationRefuse_IEs__value_PR_MeNBtoSeNBContainer,
+       SeNBModificationRefuse_IEs__value_PR_CriticalityDiagnostics,
+       SeNBModificationRefuse_IEs__value_PR_UE_X2AP_ID_Extension
+} SeNBModificationRefuse_IEs__value_PR;
+typedef enum SeNBReleaseRequest_IEs__value_PR {
+       SeNBReleaseRequest_IEs__value_PR_NOTHING,       /* No components present */
+       SeNBReleaseRequest_IEs__value_PR_UE_X2AP_ID,
+       SeNBReleaseRequest_IEs__value_PR_Cause,
+       SeNBReleaseRequest_IEs__value_PR_E_RABs_ToBeReleased_List_RelReq,
+       SeNBReleaseRequest_IEs__value_PR_UE_ContextKeptIndicator,
+       SeNBReleaseRequest_IEs__value_PR_UE_X2AP_ID_Extension,
+       SeNBReleaseRequest_IEs__value_PR_MakeBeforeBreakIndicator
+} SeNBReleaseRequest_IEs__value_PR;
+typedef enum SeNBReleaseRequired_IEs__value_PR {
+       SeNBReleaseRequired_IEs__value_PR_NOTHING,      /* No components present */
+       SeNBReleaseRequired_IEs__value_PR_UE_X2AP_ID,
+       SeNBReleaseRequired_IEs__value_PR_Cause,
+       SeNBReleaseRequired_IEs__value_PR_UE_X2AP_ID_Extension
+} SeNBReleaseRequired_IEs__value_PR;
+typedef enum SeNBReleaseConfirm_IEs__value_PR {
+       SeNBReleaseConfirm_IEs__value_PR_NOTHING,       /* No components present */
+       SeNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID,
+       SeNBReleaseConfirm_IEs__value_PR_E_RABs_ToBeReleased_List_RelConf,
+       SeNBReleaseConfirm_IEs__value_PR_CriticalityDiagnostics,
+       SeNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID_Extension
+} SeNBReleaseConfirm_IEs__value_PR;
+typedef enum SeNBCounterCheckRequest_IEs__value_PR {
+       SeNBCounterCheckRequest_IEs__value_PR_NOTHING,  /* No components present */
+       SeNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID,
+       SeNBCounterCheckRequest_IEs__value_PR_E_RABs_SubjectToCounterCheck_List,
+       SeNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID_Extension
+} SeNBCounterCheckRequest_IEs__value_PR;
+typedef enum X2RemovalRequest_IEs__value_PR {
+       X2RemovalRequest_IEs__value_PR_NOTHING, /* No components present */
+       X2RemovalRequest_IEs__value_PR_GlobalENB_ID,
+       X2RemovalRequest_IEs__value_PR_X2BenefitValue
+} X2RemovalRequest_IEs__value_PR;
+typedef enum X2RemovalResponse_IEs__value_PR {
+       X2RemovalResponse_IEs__value_PR_NOTHING,        /* No components present */
+       X2RemovalResponse_IEs__value_PR_GlobalENB_ID,
+       X2RemovalResponse_IEs__value_PR_CriticalityDiagnostics
+} X2RemovalResponse_IEs__value_PR;
+typedef enum X2RemovalFailure_IEs__value_PR {
+       X2RemovalFailure_IEs__value_PR_NOTHING, /* No components present */
+       X2RemovalFailure_IEs__value_PR_Cause,
+       X2RemovalFailure_IEs__value_PR_CriticalityDiagnostics
+} X2RemovalFailure_IEs__value_PR;
+typedef enum RetrieveUEContextRequest_IEs__value_PR {
+       RetrieveUEContextRequest_IEs__value_PR_NOTHING, /* No components present */
+       RetrieveUEContextRequest_IEs__value_PR_UE_X2AP_ID,
+       RetrieveUEContextRequest_IEs__value_PR_UE_X2AP_ID_Extension,
+       RetrieveUEContextRequest_IEs__value_PR_ResumeID,
+       RetrieveUEContextRequest_IEs__value_PR_ShortMAC_I,
+       RetrieveUEContextRequest_IEs__value_PR_EUTRANCellIdentifier,
+       RetrieveUEContextRequest_IEs__value_PR_CRNTI,
+       RetrieveUEContextRequest_IEs__value_PR_PCI
+} RetrieveUEContextRequest_IEs__value_PR;
+typedef enum RetrieveUEContextResponse_IEs__value_PR {
+       RetrieveUEContextResponse_IEs__value_PR_NOTHING,        /* No components present */
+       RetrieveUEContextResponse_IEs__value_PR_UE_X2AP_ID,
+       RetrieveUEContextResponse_IEs__value_PR_UE_X2AP_ID_Extension,
+       RetrieveUEContextResponse_IEs__value_PR_GUMMEI,
+       RetrieveUEContextResponse_IEs__value_PR_UE_ContextInformationRetrieve,
+       RetrieveUEContextResponse_IEs__value_PR_TraceActivation,
+       RetrieveUEContextResponse_IEs__value_PR_SRVCCOperationPossible,
+       RetrieveUEContextResponse_IEs__value_PR_Masked_IMEISV,
+       RetrieveUEContextResponse_IEs__value_PR_ExpectedUEBehaviour,
+       RetrieveUEContextResponse_IEs__value_PR_ProSeAuthorized,
+       RetrieveUEContextResponse_IEs__value_PR_CriticalityDiagnostics,
+       RetrieveUEContextResponse_IEs__value_PR_V2XServicesAuthorized,
+       RetrieveUEContextResponse_IEs__value_PR_AerialUEsubscriptionInformation,
+       RetrieveUEContextResponse_IEs__value_PR_Subscription_Based_UE_DifferentiationInfo
+} RetrieveUEContextResponse_IEs__value_PR;
+typedef enum RetrieveUEContextFailure_IEs__value_PR {
+       RetrieveUEContextFailure_IEs__value_PR_NOTHING, /* No components present */
+       RetrieveUEContextFailure_IEs__value_PR_UE_X2AP_ID,
+       RetrieveUEContextFailure_IEs__value_PR_UE_X2AP_ID_Extension,
+       RetrieveUEContextFailure_IEs__value_PR_Cause,
+       RetrieveUEContextFailure_IEs__value_PR_CriticalityDiagnostics
+} RetrieveUEContextFailure_IEs__value_PR;
+typedef enum SgNBAdditionRequest_IEs__value_PR {
+       SgNBAdditionRequest_IEs__value_PR_NOTHING,      /* No components present */
+       SgNBAdditionRequest_IEs__value_PR_UE_X2AP_ID,
+       SgNBAdditionRequest_IEs__value_PR_NRUESecurityCapabilities,
+       SgNBAdditionRequest_IEs__value_PR_SgNBSecurityKey,
+       SgNBAdditionRequest_IEs__value_PR_UEAggregateMaximumBitRate,
+       SgNBAdditionRequest_IEs__value_PR_PLMN_Identity,
+       SgNBAdditionRequest_IEs__value_PR_HandoverRestrictionList,
+       SgNBAdditionRequest_IEs__value_PR_E_RABs_ToBeAdded_SgNBAddReqList,
+       SgNBAdditionRequest_IEs__value_PR_MeNBtoSgNBContainer,
+       SgNBAdditionRequest_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBAdditionRequest_IEs__value_PR_ExpectedUEBehaviour,
+       SgNBAdditionRequest_IEs__value_PR_UE_X2AP_ID_Extension,
+       SgNBAdditionRequest_IEs__value_PR_SplitSRBs,
+       SgNBAdditionRequest_IEs__value_PR_MeNBResourceCoordinationInformation,
+       SgNBAdditionRequest_IEs__value_PR_SGNB_Addition_Trigger_Ind,
+       SgNBAdditionRequest_IEs__value_PR_SubscriberProfileIDforRFP,
+       SgNBAdditionRequest_IEs__value_PR_ECGI
+} SgNBAdditionRequest_IEs__value_PR;
+typedef enum SgNBAdditionRequestAcknowledge_IEs__value_PR {
+       SgNBAdditionRequestAcknowledge_IEs__value_PR_NOTHING,   /* No components present */
+       SgNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
+       SgNBAdditionRequestAcknowledge_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBAdditionRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList,
+       SgNBAdditionRequestAcknowledge_IEs__value_PR_E_RAB_List,
+       SgNBAdditionRequestAcknowledge_IEs__value_PR_SgNBtoMeNBContainer,
+       SgNBAdditionRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics,
+       SgNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension,
+       SgNBAdditionRequestAcknowledge_IEs__value_PR_SplitSRBs,
+       SgNBAdditionRequestAcknowledge_IEs__value_PR_SgNBResourceCoordinationInformation,
+       SgNBAdditionRequestAcknowledge_IEs__value_PR_RRC_Config_Ind
+} SgNBAdditionRequestAcknowledge_IEs__value_PR;
+typedef enum SgNBAdditionRequestReject_IEs__value_PR {
+       SgNBAdditionRequestReject_IEs__value_PR_NOTHING,        /* No components present */
+       SgNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID,
+       SgNBAdditionRequestReject_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBAdditionRequestReject_IEs__value_PR_Cause,
+       SgNBAdditionRequestReject_IEs__value_PR_CriticalityDiagnostics,
+       SgNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID_Extension
+} SgNBAdditionRequestReject_IEs__value_PR;
+typedef enum SgNBReconfigurationComplete_IEs__value_PR {
+       SgNBReconfigurationComplete_IEs__value_PR_NOTHING,      /* No components present */
+       SgNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID,
+       SgNBReconfigurationComplete_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBReconfigurationComplete_IEs__value_PR_ResponseInformationSgNBReconfComp,
+       SgNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID_Extension
+} SgNBReconfigurationComplete_IEs__value_PR;
+typedef enum SgNBModificationRequest_IEs__value_PR {
+       SgNBModificationRequest_IEs__value_PR_NOTHING,  /* No components present */
+       SgNBModificationRequest_IEs__value_PR_UE_X2AP_ID,
+       SgNBModificationRequest_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBModificationRequest_IEs__value_PR_Cause,
+       SgNBModificationRequest_IEs__value_PR_PLMN_Identity,
+       SgNBModificationRequest_IEs__value_PR_HandoverRestrictionList,
+       SgNBModificationRequest_IEs__value_PR_SCGConfigurationQuery,
+       SgNBModificationRequest_IEs__value_PR_UE_ContextInformation_SgNBModReq,
+       SgNBModificationRequest_IEs__value_PR_MeNBtoSgNBContainer,
+       SgNBModificationRequest_IEs__value_PR_UE_X2AP_ID_Extension,
+       SgNBModificationRequest_IEs__value_PR_MeNBResourceCoordinationInformation,
+       SgNBModificationRequest_IEs__value_PR_SplitSRBs
+} SgNBModificationRequest_IEs__value_PR;
+typedef enum SgNBModificationRequestAcknowledge_IEs__value_PR {
+       SgNBModificationRequestAcknowledge_IEs__value_PR_NOTHING,       /* No components present */
+       SgNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
+       SgNBModificationRequestAcknowledge_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_SgNBModAckList,
+       SgNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeModified_SgNBModAckList,
+       SgNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeReleased_SgNBModAckList,
+       SgNBModificationRequestAcknowledge_IEs__value_PR_E_RAB_List,
+       SgNBModificationRequestAcknowledge_IEs__value_PR_SgNBtoMeNBContainer,
+       SgNBModificationRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics,
+       SgNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension,
+       SgNBModificationRequestAcknowledge_IEs__value_PR_SgNBResourceCoordinationInformation,
+       SgNBModificationRequestAcknowledge_IEs__value_PR_SplitSRBs,
+       SgNBModificationRequestAcknowledge_IEs__value_PR_RRC_Config_Ind
+} SgNBModificationRequestAcknowledge_IEs__value_PR;
+typedef enum SgNBModificationRequestReject_IEs__value_PR {
+       SgNBModificationRequestReject_IEs__value_PR_NOTHING,    /* No components present */
+       SgNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID,
+       SgNBModificationRequestReject_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBModificationRequestReject_IEs__value_PR_Cause,
+       SgNBModificationRequestReject_IEs__value_PR_CriticalityDiagnostics,
+       SgNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID_Extension
+} SgNBModificationRequestReject_IEs__value_PR;
+typedef enum SgNBModificationRequired_IEs__value_PR {
+       SgNBModificationRequired_IEs__value_PR_NOTHING, /* No components present */
+       SgNBModificationRequired_IEs__value_PR_UE_X2AP_ID,
+       SgNBModificationRequired_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBModificationRequired_IEs__value_PR_Cause,
+       SgNBModificationRequired_IEs__value_PR_PDCPChangeIndication,
+       SgNBModificationRequired_IEs__value_PR_E_RABs_ToBeReleased_SgNBModReqdList,
+       SgNBModificationRequired_IEs__value_PR_SgNBtoMeNBContainer,
+       SgNBModificationRequired_IEs__value_PR_UE_X2AP_ID_Extension,
+       SgNBModificationRequired_IEs__value_PR_E_RABs_ToBeModified_SgNBModReqdList,
+       SgNBModificationRequired_IEs__value_PR_SgNBResourceCoordinationInformation,
+       SgNBModificationRequired_IEs__value_PR_RRC_Config_Ind
+} SgNBModificationRequired_IEs__value_PR;
+typedef enum SgNBModificationConfirm_IEs__value_PR {
+       SgNBModificationConfirm_IEs__value_PR_NOTHING,  /* No components present */
+       SgNBModificationConfirm_IEs__value_PR_UE_X2AP_ID,
+       SgNBModificationConfirm_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBModificationConfirm_IEs__value_PR_E_RABs_AdmittedToBeModified_SgNBModConfList,
+       SgNBModificationConfirm_IEs__value_PR_MeNBtoSgNBContainer,
+       SgNBModificationConfirm_IEs__value_PR_CriticalityDiagnostics,
+       SgNBModificationConfirm_IEs__value_PR_UE_X2AP_ID_Extension,
+       SgNBModificationConfirm_IEs__value_PR_MeNBResourceCoordinationInformation
+} SgNBModificationConfirm_IEs__value_PR;
+typedef enum SgNBModificationRefuse_IEs__value_PR {
+       SgNBModificationRefuse_IEs__value_PR_NOTHING,   /* No components present */
+       SgNBModificationRefuse_IEs__value_PR_UE_X2AP_ID,
+       SgNBModificationRefuse_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBModificationRefuse_IEs__value_PR_Cause,
+       SgNBModificationRefuse_IEs__value_PR_MeNBtoSgNBContainer,
+       SgNBModificationRefuse_IEs__value_PR_CriticalityDiagnostics,
+       SgNBModificationRefuse_IEs__value_PR_UE_X2AP_ID_Extension
+} SgNBModificationRefuse_IEs__value_PR;
+typedef enum SgNBReleaseRequest_IEs__value_PR {
+       SgNBReleaseRequest_IEs__value_PR_NOTHING,       /* No components present */
+       SgNBReleaseRequest_IEs__value_PR_UE_X2AP_ID,
+       SgNBReleaseRequest_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBReleaseRequest_IEs__value_PR_Cause,
+       SgNBReleaseRequest_IEs__value_PR_E_RABs_ToBeReleased_SgNBRelReqList,
+       SgNBReleaseRequest_IEs__value_PR_UE_ContextKeptIndicator,
+       SgNBReleaseRequest_IEs__value_PR_UE_X2AP_ID_Extension,
+       SgNBReleaseRequest_IEs__value_PR_MeNBtoSgNBContainer
+} SgNBReleaseRequest_IEs__value_PR;
+typedef enum SgNBReleaseRequestAcknowledge_IEs__value_PR {
+       SgNBReleaseRequestAcknowledge_IEs__value_PR_NOTHING,    /* No components present */
+       SgNBReleaseRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
+       SgNBReleaseRequestAcknowledge_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBReleaseRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics,
+       SgNBReleaseRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension,
+       SgNBReleaseRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList
+} SgNBReleaseRequestAcknowledge_IEs__value_PR;
+typedef enum SgNBReleaseRequestReject_IEs__value_PR {
+       SgNBReleaseRequestReject_IEs__value_PR_NOTHING, /* No components present */
+       SgNBReleaseRequestReject_IEs__value_PR_UE_X2AP_ID,
+       SgNBReleaseRequestReject_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBReleaseRequestReject_IEs__value_PR_Cause,
+       SgNBReleaseRequestReject_IEs__value_PR_CriticalityDiagnostics,
+       SgNBReleaseRequestReject_IEs__value_PR_UE_X2AP_ID_Extension
+} SgNBReleaseRequestReject_IEs__value_PR;
+typedef enum SgNBReleaseRequired_IEs__value_PR {
+       SgNBReleaseRequired_IEs__value_PR_NOTHING,      /* No components present */
+       SgNBReleaseRequired_IEs__value_PR_UE_X2AP_ID,
+       SgNBReleaseRequired_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBReleaseRequired_IEs__value_PR_Cause,
+       SgNBReleaseRequired_IEs__value_PR_UE_X2AP_ID_Extension,
+       SgNBReleaseRequired_IEs__value_PR_E_RABs_ToBeReleased_SgNBRelReqdList
+} SgNBReleaseRequired_IEs__value_PR;
+typedef enum SgNBReleaseConfirm_IEs__value_PR {
+       SgNBReleaseConfirm_IEs__value_PR_NOTHING,       /* No components present */
+       SgNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID,
+       SgNBReleaseConfirm_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBReleaseConfirm_IEs__value_PR_E_RABs_ToBeReleased_SgNBRelConfList,
+       SgNBReleaseConfirm_IEs__value_PR_CriticalityDiagnostics,
+       SgNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID_Extension
+} SgNBReleaseConfirm_IEs__value_PR;
+typedef enum SgNBCounterCheckRequest_IEs__value_PR {
+       SgNBCounterCheckRequest_IEs__value_PR_NOTHING,  /* No components present */
+       SgNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID,
+       SgNBCounterCheckRequest_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBCounterCheckRequest_IEs__value_PR_E_RABs_SubjectToSgNBCounterCheck_List,
+       SgNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID_Extension
+} SgNBCounterCheckRequest_IEs__value_PR;
+typedef enum SgNBChangeRequired_IEs__value_PR {
+       SgNBChangeRequired_IEs__value_PR_NOTHING,       /* No components present */
+       SgNBChangeRequired_IEs__value_PR_UE_X2AP_ID,
+       SgNBChangeRequired_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBChangeRequired_IEs__value_PR_GlobalGNB_ID,
+       SgNBChangeRequired_IEs__value_PR_Cause,
+       SgNBChangeRequired_IEs__value_PR_SgNBtoMeNBContainer,
+       SgNBChangeRequired_IEs__value_PR_UE_X2AP_ID_Extension
+} SgNBChangeRequired_IEs__value_PR;
+typedef enum SgNBChangeConfirm_IEs__value_PR {
+       SgNBChangeConfirm_IEs__value_PR_NOTHING,        /* No components present */
+       SgNBChangeConfirm_IEs__value_PR_UE_X2AP_ID,
+       SgNBChangeConfirm_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBChangeConfirm_IEs__value_PR_E_RABs_ToBeReleased_SgNBChaConfList,
+       SgNBChangeConfirm_IEs__value_PR_CriticalityDiagnostics,
+       SgNBChangeConfirm_IEs__value_PR_UE_X2AP_ID_Extension
+} SgNBChangeConfirm_IEs__value_PR;
+typedef enum RRCTransfer_IEs__value_PR {
+       RRCTransfer_IEs__value_PR_NOTHING,      /* No components present */
+       RRCTransfer_IEs__value_PR_UE_X2AP_ID,
+       RRCTransfer_IEs__value_PR_SgNB_UE_X2AP_ID,
+       RRCTransfer_IEs__value_PR_SplitSRB,
+       RRCTransfer_IEs__value_PR_UENRMeasurement,
+       RRCTransfer_IEs__value_PR_UE_X2AP_ID_Extension
+} RRCTransfer_IEs__value_PR;
+typedef enum SgNBChangeRefuse_IEs__value_PR {
+       SgNBChangeRefuse_IEs__value_PR_NOTHING, /* No components present */
+       SgNBChangeRefuse_IEs__value_PR_UE_X2AP_ID,
+       SgNBChangeRefuse_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBChangeRefuse_IEs__value_PR_Cause,
+       SgNBChangeRefuse_IEs__value_PR_CriticalityDiagnostics,
+       SgNBChangeRefuse_IEs__value_PR_UE_X2AP_ID_Extension
+} SgNBChangeRefuse_IEs__value_PR;
+typedef enum ENDCX2SetupRequest_IEs__value_PR {
+       ENDCX2SetupRequest_IEs__value_PR_NOTHING,       /* No components present */
+       ENDCX2SetupRequest_IEs__value_PR_InitiatingNodeType_EndcX2Setup
+} ENDCX2SetupRequest_IEs__value_PR;
+typedef enum ENB_ENDCX2SetupReqIEs__value_PR {
+       ENB_ENDCX2SetupReqIEs__value_PR_NOTHING,        /* No components present */
+       ENB_ENDCX2SetupReqIEs__value_PR_GlobalENB_ID,
+       ENB_ENDCX2SetupReqIEs__value_PR_ServedEUTRAcellsENDCX2ManagementList
+} ENB_ENDCX2SetupReqIEs__value_PR;
+typedef enum En_gNB_ENDCX2SetupReqIEs__value_PR {
+       En_gNB_ENDCX2SetupReqIEs__value_PR_NOTHING,     /* No components present */
+       En_gNB_ENDCX2SetupReqIEs__value_PR_GlobalGNB_ID,
+       En_gNB_ENDCX2SetupReqIEs__value_PR_ServedNRcellsENDCX2ManagementList
+} En_gNB_ENDCX2SetupReqIEs__value_PR;
+typedef enum ENDCX2SetupResponse_IEs__value_PR {
+       ENDCX2SetupResponse_IEs__value_PR_NOTHING,      /* No components present */
+       ENDCX2SetupResponse_IEs__value_PR_RespondingNodeType_EndcX2Setup
+} ENDCX2SetupResponse_IEs__value_PR;
+typedef enum ENB_ENDCX2SetupReqAckIEs__value_PR {
+       ENB_ENDCX2SetupReqAckIEs__value_PR_NOTHING,     /* No components present */
+       ENB_ENDCX2SetupReqAckIEs__value_PR_GlobalENB_ID,
+       ENB_ENDCX2SetupReqAckIEs__value_PR_ServedEUTRAcellsENDCX2ManagementList
+} ENB_ENDCX2SetupReqAckIEs__value_PR;
+typedef enum En_gNB_ENDCX2SetupReqAckIEs__value_PR {
+       En_gNB_ENDCX2SetupReqAckIEs__value_PR_NOTHING,  /* No components present */
+       En_gNB_ENDCX2SetupReqAckIEs__value_PR_GlobalGNB_ID,
+       En_gNB_ENDCX2SetupReqAckIEs__value_PR_ServedNRcellsENDCX2ManagementList
+} En_gNB_ENDCX2SetupReqAckIEs__value_PR;
+typedef enum ENDCX2SetupFailure_IEs__value_PR {
+       ENDCX2SetupFailure_IEs__value_PR_NOTHING,       /* No components present */
+       ENDCX2SetupFailure_IEs__value_PR_Cause,
+       ENDCX2SetupFailure_IEs__value_PR_CriticalityDiagnostics,
+       ENDCX2SetupFailure_IEs__value_PR_TimeToWait
+} ENDCX2SetupFailure_IEs__value_PR;
+typedef enum ENDCConfigurationUpdate_IEs__value_PR {
+       ENDCConfigurationUpdate_IEs__value_PR_NOTHING,  /* No components present */
+       ENDCConfigurationUpdate_IEs__value_PR_InitiatingNodeType_EndcConfigUpdate
+} ENDCConfigurationUpdate_IEs__value_PR;
+typedef enum ENB_ENDCConfigUpdateIEs__value_PR {
+       ENB_ENDCConfigUpdateIEs__value_PR_NOTHING,      /* No components present */
+       ENB_ENDCConfigUpdateIEs__value_PR_CellAssistanceInformation,
+       ENB_ENDCConfigUpdateIEs__value_PR_ServedEUTRAcellsENDCX2ManagementList,
+       ENB_ENDCConfigUpdateIEs__value_PR_ServedEUTRAcellsToModifyListENDCConfUpd,
+       ENB_ENDCConfigUpdateIEs__value_PR_ServedEUTRAcellsToDeleteListENDCConfUpd
+} ENB_ENDCConfigUpdateIEs__value_PR;
+typedef enum En_gNB_ENDCConfigUpdateIEs__value_PR {
+       En_gNB_ENDCConfigUpdateIEs__value_PR_NOTHING,   /* No components present */
+       En_gNB_ENDCConfigUpdateIEs__value_PR_ServedNRcellsENDCX2ManagementList,
+       En_gNB_ENDCConfigUpdateIEs__value_PR_ServedNRcellsToModifyENDCConfUpdList,
+       En_gNB_ENDCConfigUpdateIEs__value_PR_ServedNRcellsToDeleteENDCConfUpdList
+} En_gNB_ENDCConfigUpdateIEs__value_PR;
+typedef enum ENDCConfigurationUpdateAcknowledge_IEs__value_PR {
+       ENDCConfigurationUpdateAcknowledge_IEs__value_PR_NOTHING,       /* No components present */
+       ENDCConfigurationUpdateAcknowledge_IEs__value_PR_RespondingNodeType_EndcConfigUpdate
+} ENDCConfigurationUpdateAcknowledge_IEs__value_PR;
+typedef enum ENB_ENDCConfigUpdateAckIEs__value_PR {
+       ENB_ENDCConfigUpdateAckIEs__value_PR_NOTHING    /* No components present */
+       
+} ENB_ENDCConfigUpdateAckIEs__value_PR;
+typedef enum En_gNB_ENDCConfigUpdateAckIEs__value_PR {
+       En_gNB_ENDCConfigUpdateAckIEs__value_PR_NOTHING,        /* No components present */
+       En_gNB_ENDCConfigUpdateAckIEs__value_PR_ServedNRcellsENDCX2ManagementList
+} En_gNB_ENDCConfigUpdateAckIEs__value_PR;
+typedef enum ENDCConfigurationUpdateFailure_IEs__value_PR {
+       ENDCConfigurationUpdateFailure_IEs__value_PR_NOTHING,   /* No components present */
+       ENDCConfigurationUpdateFailure_IEs__value_PR_Cause,
+       ENDCConfigurationUpdateFailure_IEs__value_PR_CriticalityDiagnostics,
+       ENDCConfigurationUpdateFailure_IEs__value_PR_TimeToWait
+} ENDCConfigurationUpdateFailure_IEs__value_PR;
+typedef enum ENDCCellActivationRequest_IEs__value_PR {
+       ENDCCellActivationRequest_IEs__value_PR_NOTHING,        /* No components present */
+       ENDCCellActivationRequest_IEs__value_PR_ServedNRCellsToActivate,
+       ENDCCellActivationRequest_IEs__value_PR_ActivationID
+} ENDCCellActivationRequest_IEs__value_PR;
+typedef enum ENDCCellActivationResponse_IEs__value_PR {
+       ENDCCellActivationResponse_IEs__value_PR_NOTHING,       /* No components present */
+       ENDCCellActivationResponse_IEs__value_PR_ActivatedNRCellList,
+       ENDCCellActivationResponse_IEs__value_PR_ActivationID,
+       ENDCCellActivationResponse_IEs__value_PR_CriticalityDiagnostics
+} ENDCCellActivationResponse_IEs__value_PR;
+typedef enum ENDCCellActivationFailure_IEs__value_PR {
+       ENDCCellActivationFailure_IEs__value_PR_NOTHING,        /* No components present */
+       ENDCCellActivationFailure_IEs__value_PR_ActivationID,
+       ENDCCellActivationFailure_IEs__value_PR_Cause,
+       ENDCCellActivationFailure_IEs__value_PR_CriticalityDiagnostics
+} ENDCCellActivationFailure_IEs__value_PR;
+typedef enum SecondaryRATDataUsageReport_IEs__value_PR {
+       SecondaryRATDataUsageReport_IEs__value_PR_NOTHING,      /* No components present */
+       SecondaryRATDataUsageReport_IEs__value_PR_UE_X2AP_ID,
+       SecondaryRATDataUsageReport_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SecondaryRATDataUsageReport_IEs__value_PR_SecondaryRATUsageReportList,
+       SecondaryRATDataUsageReport_IEs__value_PR_UE_X2AP_ID_Extension
+} SecondaryRATDataUsageReport_IEs__value_PR;
+typedef enum SgNBActivityNotification_IEs__value_PR {
+       SgNBActivityNotification_IEs__value_PR_NOTHING, /* No components present */
+       SgNBActivityNotification_IEs__value_PR_UE_X2AP_ID,
+       SgNBActivityNotification_IEs__value_PR_SgNB_UE_X2AP_ID,
+       SgNBActivityNotification_IEs__value_PR_UserPlaneTrafficActivityReport,
+       SgNBActivityNotification_IEs__value_PR_ERABActivityNotifyItemList,
+       SgNBActivityNotification_IEs__value_PR_UE_X2AP_ID_Extension
+} SgNBActivityNotification_IEs__value_PR;
+typedef enum ENDCPartialResetRequired_IEs__value_PR {
+       ENDCPartialResetRequired_IEs__value_PR_NOTHING, /* No components present */
+       ENDCPartialResetRequired_IEs__value_PR_UEsToBeResetList,
+       ENDCPartialResetRequired_IEs__value_PR_Cause
+} ENDCPartialResetRequired_IEs__value_PR;
+typedef enum ENDCPartialResetConfirm_IEs__value_PR {
+       ENDCPartialResetConfirm_IEs__value_PR_NOTHING,  /* No components present */
+       ENDCPartialResetConfirm_IEs__value_PR_UEsToBeResetList
+} ENDCPartialResetConfirm_IEs__value_PR;
+typedef enum EUTRANRCellResourceCoordinationRequest_IEs__value_PR {
+       EUTRANRCellResourceCoordinationRequest_IEs__value_PR_NOTHING,   /* No components present */
+       EUTRANRCellResourceCoordinationRequest_IEs__value_PR_InitiatingNodeType_EutranrCellResourceCoordination
+} EUTRANRCellResourceCoordinationRequest_IEs__value_PR;
+typedef enum ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR {
+       ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_NOTHING,   /* No components present */
+       ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_DataTrafficResourceIndication,
+       ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_SpectrumSharingGroupID,
+       ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_ListofEUTRACellsinEUTRACoordinationReq
+} ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR;
+typedef enum En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR {
+       En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_NOTHING,        /* No components present */
+       En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_DataTrafficResourceIndication,
+       En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_ListofEUTRACellsinNRCoordinationReq,
+       En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_SpectrumSharingGroupID,
+       En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_ListofNRCellsinNRCoordinationReq
+} En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR;
+typedef enum EUTRANRCellResourceCoordinationResponse_IEs__value_PR {
+       EUTRANRCellResourceCoordinationResponse_IEs__value_PR_NOTHING,  /* No components present */
+       EUTRANRCellResourceCoordinationResponse_IEs__value_PR_RespondingNodeType_EutranrCellResourceCoordination
+} EUTRANRCellResourceCoordinationResponse_IEs__value_PR;
+typedef enum ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR {
+       ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_NOTHING,        /* No components present */
+       ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_DataTrafficResourceIndication,
+       ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_SpectrumSharingGroupID,
+       ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_ListofEUTRACellsinEUTRACoordinationResp
+} ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR;
+typedef enum En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR {
+       En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_NOTHING,     /* No components present */
+       En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_DataTrafficResourceIndication,
+       En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_SpectrumSharingGroupID,
+       En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_ListofNRCellsinNRCoordinationResp
+} En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR;
+typedef enum ENDCX2RemovalRequest_IEs__value_PR {
+       ENDCX2RemovalRequest_IEs__value_PR_NOTHING,     /* No components present */
+       ENDCX2RemovalRequest_IEs__value_PR_InitiatingNodeType_EndcX2Removal
+} ENDCX2RemovalRequest_IEs__value_PR;
+typedef enum ENB_ENDCX2RemovalReqIEs__value_PR {
+       ENB_ENDCX2RemovalReqIEs__value_PR_NOTHING,      /* No components present */
+       ENB_ENDCX2RemovalReqIEs__value_PR_GlobalENB_ID
+} ENB_ENDCX2RemovalReqIEs__value_PR;
+typedef enum En_gNB_ENDCX2RemovalReqIEs__value_PR {
+       En_gNB_ENDCX2RemovalReqIEs__value_PR_NOTHING,   /* No components present */
+       En_gNB_ENDCX2RemovalReqIEs__value_PR_GlobalGNB_ID
+} En_gNB_ENDCX2RemovalReqIEs__value_PR;
+typedef enum ENDCX2RemovalResponse_IEs__value_PR {
+       ENDCX2RemovalResponse_IEs__value_PR_NOTHING,    /* No components present */
+       ENDCX2RemovalResponse_IEs__value_PR_RespondingNodeType_EndcX2Removal
+} ENDCX2RemovalResponse_IEs__value_PR;
+typedef enum ENB_ENDCX2RemovalReqAckIEs__value_PR {
+       ENB_ENDCX2RemovalReqAckIEs__value_PR_NOTHING,   /* No components present */
+       ENB_ENDCX2RemovalReqAckIEs__value_PR_GlobalENB_ID
+} ENB_ENDCX2RemovalReqAckIEs__value_PR;
+typedef enum En_gNB_ENDCX2RemovalReqAckIEs__value_PR {
+       En_gNB_ENDCX2RemovalReqAckIEs__value_PR_NOTHING,        /* No components present */
+       En_gNB_ENDCX2RemovalReqAckIEs__value_PR_GlobalGNB_ID
+} En_gNB_ENDCX2RemovalReqAckIEs__value_PR;
+typedef enum ENDCX2RemovalFailure_IEs__value_PR {
+       ENDCX2RemovalFailure_IEs__value_PR_NOTHING,     /* No components present */
+       ENDCX2RemovalFailure_IEs__value_PR_Cause,
+       ENDCX2RemovalFailure_IEs__value_PR_CriticalityDiagnostics
+} ENDCX2RemovalFailure_IEs__value_PR;
+typedef enum DataForwardingAddressIndication_IEs__value_PR {
+       DataForwardingAddressIndication_IEs__value_PR_NOTHING,  /* No components present */
+       DataForwardingAddressIndication_IEs__value_PR_UE_X2AP_ID_Extension,
+       DataForwardingAddressIndication_IEs__value_PR_UE_X2AP_ID,
+       DataForwardingAddressIndication_IEs__value_PR_E_RABs_DataForwardingAddress_List
+} DataForwardingAddressIndication_IEs__value_PR;
+typedef enum GNBStatusIndicationIEs__value_PR {
+       GNBStatusIndicationIEs__value_PR_NOTHING,       /* No components present */
+       GNBStatusIndicationIEs__value_PR_GNBOverloadInformation
+} GNBStatusIndicationIEs__value_PR;
+
+/* ProtocolIE-Field */
+typedef struct RICaction_ToBeSetup_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RICaction_ToBeSetup_ItemIEs__value {
+               RICaction_ToBeSetup_ItemIEs__value_PR present;
+               union RICaction_ToBeSetup_ItemIEs__value_u {
+                       RICaction_ToBeSetup_Item_t       RICaction_ToBeSetup_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICaction_ToBeSetup_ItemIEs_t;
+typedef struct RICaction_Admitted_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RICaction_Admitted_ItemIEs__value {
+               RICaction_Admitted_ItemIEs__value_PR present;
+               union RICaction_Admitted_ItemIEs__value_u {
+                       RICaction_Admitted_Item_t        RICaction_Admitted_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICaction_Admitted_ItemIEs_t;
+typedef struct RICaction_NotAdmitted_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RICaction_NotAdmitted_ItemIEs__value {
+               RICaction_NotAdmitted_ItemIEs__value_PR present;
+               union RICaction_NotAdmitted_ItemIEs__value_u {
+                       RICaction_NotAdmitted_Item_t     RICaction_NotAdmitted_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICaction_NotAdmitted_ItemIEs_t;
+typedef struct RANfunction_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RANfunction_ItemIEs__value {
+               RANfunction_ItemIEs__value_PR present;
+               union RANfunction_ItemIEs__value_u {
+                       RANfunction_Item_t       RANfunction_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RANfunction_ItemIEs_t;
+typedef struct RANfunctionID_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RANfunctionID_ItemIEs__value {
+               RANfunctionID_ItemIEs__value_PR present;
+               union RANfunctionID_ItemIEs__value_u {
+                       RANfunctionID_Item_t     RANfunctionID_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RANfunctionID_ItemIEs_t;
+typedef struct RANfunctionIDcause_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RANfunctionIDcause_ItemIEs__value {
+               RANfunctionIDcause_ItemIEs__value_PR present;
+               union RANfunctionIDcause_ItemIEs__value_u {
+                       RANfunctionIDcause_Item_t        RANfunctionIDcause_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RANfunctionIDcause_ItemIEs_t;
+typedef struct E_RABs_ToBeSetup_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeSetup_ItemIEs__value {
+               E_RABs_ToBeSetup_ItemIEs__value_PR present;
+               union E_RABs_ToBeSetup_ItemIEs__value_u {
+                       E_RABs_ToBeSetup_Item_t  E_RABs_ToBeSetup_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeSetup_ItemIEs_t;
+typedef struct E_RABs_Admitted_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ItemIEs__value {
+               E_RABs_Admitted_ItemIEs__value_PR present;
+               union E_RABs_Admitted_ItemIEs__value_u {
+                       E_RABs_Admitted_Item_t   E_RABs_Admitted_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ItemIEs_t;
+typedef struct E_RABs_SubjectToStatusTransfer_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_SubjectToStatusTransfer_ItemIEs__value {
+               E_RABs_SubjectToStatusTransfer_ItemIEs__value_PR present;
+               union E_RABs_SubjectToStatusTransfer_ItemIEs__value_u {
+                       E_RABs_SubjectToStatusTransfer_Item_t    E_RABs_SubjectToStatusTransfer_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_SubjectToStatusTransfer_ItemIEs_t;
+typedef struct CellInformation_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CellInformation_ItemIEs__value {
+               CellInformation_ItemIEs__value_PR present;
+               union CellInformation_ItemIEs__value_u {
+                       CellInformation_Item_t   CellInformation_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellInformation_ItemIEs_t;
+typedef struct CellToReport_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CellToReport_ItemIEs__value {
+               CellToReport_ItemIEs__value_PR present;
+               union CellToReport_ItemIEs__value_u {
+                       CellToReport_Item_t      CellToReport_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellToReport_ItemIEs_t;
+typedef struct MeasurementInitiationResult_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct MeasurementInitiationResult_ItemIEs__value {
+               MeasurementInitiationResult_ItemIEs__value_PR present;
+               union MeasurementInitiationResult_ItemIEs__value_u {
+                       MeasurementInitiationResult_Item_t       MeasurementInitiationResult_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MeasurementInitiationResult_ItemIEs_t;
+typedef struct MeasurementFailureCause_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct MeasurementFailureCause_ItemIEs__value {
+               MeasurementFailureCause_ItemIEs__value_PR present;
+               union MeasurementFailureCause_ItemIEs__value_u {
+                       MeasurementFailureCause_Item_t   MeasurementFailureCause_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MeasurementFailureCause_ItemIEs_t;
+typedef struct CompleteFailureCauseInformation_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CompleteFailureCauseInformation_ItemIEs__value {
+               CompleteFailureCauseInformation_ItemIEs__value_PR present;
+               union CompleteFailureCauseInformation_ItemIEs__value_u {
+                       CompleteFailureCauseInformation_Item_t   CompleteFailureCauseInformation_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CompleteFailureCauseInformation_ItemIEs_t;
+typedef struct CellMeasurementResult_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CellMeasurementResult_ItemIEs__value {
+               CellMeasurementResult_ItemIEs__value_PR present;
+               union CellMeasurementResult_ItemIEs__value_u {
+                       CellMeasurementResult_Item_t     CellMeasurementResult_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellMeasurementResult_ItemIEs_t;
+typedef struct E_RABs_ToBeAdded_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeAdded_ItemIEs__value {
+               E_RABs_ToBeAdded_ItemIEs__value_PR present;
+               union E_RABs_ToBeAdded_ItemIEs__value_u {
+                       E_RABs_ToBeAdded_Item_t  E_RABs_ToBeAdded_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_ItemIEs_t;
+typedef struct E_RABs_Admitted_ToBeAdded_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeAdded_ItemIEs__value {
+               E_RABs_Admitted_ToBeAdded_ItemIEs__value_PR present;
+               union E_RABs_Admitted_ToBeAdded_ItemIEs__value_u {
+                       E_RABs_Admitted_ToBeAdded_Item_t         E_RABs_Admitted_ToBeAdded_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_ItemIEs_t;
+typedef struct E_RABs_ToBeAdded_ModReqItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeAdded_ModReqItemIEs__value {
+               E_RABs_ToBeAdded_ModReqItemIEs__value_PR present;
+               union E_RABs_ToBeAdded_ModReqItemIEs__value_u {
+                       E_RABs_ToBeAdded_ModReqItem_t    E_RABs_ToBeAdded_ModReqItem;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_ModReqItemIEs_t;
+typedef struct E_RABs_ToBeModified_ModReqItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeModified_ModReqItemIEs__value {
+               E_RABs_ToBeModified_ModReqItemIEs__value_PR present;
+               union E_RABs_ToBeModified_ModReqItemIEs__value_u {
+                       E_RABs_ToBeModified_ModReqItem_t         E_RABs_ToBeModified_ModReqItem;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_ModReqItemIEs_t;
+typedef struct E_RABs_ToBeReleased_ModReqItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_ModReqItemIEs__value {
+               E_RABs_ToBeReleased_ModReqItemIEs__value_PR present;
+               union E_RABs_ToBeReleased_ModReqItemIEs__value_u {
+                       E_RABs_ToBeReleased_ModReqItem_t         E_RABs_ToBeReleased_ModReqItem;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_ModReqItemIEs_t;
+typedef struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value {
+               E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_PR present;
+               union E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_u {
+                       E_RABs_Admitted_ToBeAdded_ModAckItem_t   E_RABs_Admitted_ToBeAdded_ModAckItem;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_ModAckItemIEs_t;
+typedef struct E_RABs_Admitted_ToBeModified_ModAckItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeModified_ModAckItemIEs__value {
+               E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_PR present;
+               union E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_u {
+                       E_RABs_Admitted_ToBeModified_ModAckItem_t        E_RABs_Admitted_ToBeModified_ModAckItem;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeModified_ModAckItemIEs_t;
+typedef struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value {
+               E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_PR present;
+               union E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_u {
+                       E_RABs_Admitted_ToReleased_ModAckItem_t  E_RABs_Admitted_ToReleased_ModAckItem;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeReleased_ModAckItemIEs_t;
+typedef struct E_RABs_ToBeReleased_ModReqdItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_ModReqdItemIEs__value {
+               E_RABs_ToBeReleased_ModReqdItemIEs__value_PR present;
+               union E_RABs_ToBeReleased_ModReqdItemIEs__value_u {
+                       E_RABs_ToBeReleased_ModReqdItem_t        E_RABs_ToBeReleased_ModReqdItem;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_ModReqdItemIEs_t;
+typedef struct E_RABs_ToBeReleased_RelReqItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_RelReqItemIEs__value {
+               E_RABs_ToBeReleased_RelReqItemIEs__value_PR present;
+               union E_RABs_ToBeReleased_RelReqItemIEs__value_u {
+                       E_RABs_ToBeReleased_RelReqItem_t         E_RABs_ToBeReleased_RelReqItem;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_RelReqItemIEs_t;
+typedef struct E_RABs_ToBeReleased_RelConfItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_RelConfItemIEs__value {
+               E_RABs_ToBeReleased_RelConfItemIEs__value_PR present;
+               union E_RABs_ToBeReleased_RelConfItemIEs__value_u {
+                       E_RABs_ToBeReleased_RelConfItem_t        E_RABs_ToBeReleased_RelConfItem;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_RelConfItemIEs_t;
+typedef struct E_RABs_SubjectToCounterCheckItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_SubjectToCounterCheckItemIEs__value {
+               E_RABs_SubjectToCounterCheckItemIEs__value_PR present;
+               union E_RABs_SubjectToCounterCheckItemIEs__value_u {
+                       E_RABs_SubjectToCounterCheckItem_t       E_RABs_SubjectToCounterCheckItem;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_SubjectToCounterCheckItemIEs_t;
+typedef struct E_RABs_ToBeSetupRetrieve_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeSetupRetrieve_ItemIEs__value {
+               E_RABs_ToBeSetupRetrieve_ItemIEs__value_PR present;
+               union E_RABs_ToBeSetupRetrieve_ItemIEs__value_u {
+                       E_RABs_ToBeSetupRetrieve_Item_t  E_RABs_ToBeSetupRetrieve_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeSetupRetrieve_ItemIEs_t;
+typedef struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value {
+               E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_PR present;
+               union E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_u {
+                       E_RABs_ToBeAdded_SgNBAddReq_Item_t       E_RABs_ToBeAdded_SgNBAddReq_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t;
+typedef struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value {
+               E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_PR present;
+               union E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_u {
+                       E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_t   E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_t;
+typedef struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value {
+               E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_PR present;
+               union E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_u {
+                       E_RABs_ToBeAdded_SgNBModReq_Item_t       E_RABs_ToBeAdded_SgNBModReq_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeAdded_SgNBModReq_ItemIEs_t;
+typedef struct E_RABs_ToBeModified_SgNBModReq_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeModified_SgNBModReq_ItemIEs__value {
+               E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_PR present;
+               union E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_u {
+                       E_RABs_ToBeModified_SgNBModReq_Item_t    E_RABs_ToBeModified_SgNBModReq_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_SgNBModReq_ItemIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value {
+               E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_PR present;
+               union E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_u {
+                       E_RABs_ToBeReleased_SgNBModReq_Item_t    E_RABs_ToBeReleased_SgNBModReq_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBModReq_ItemIEs_t;
+typedef struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value {
+               E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_PR present;
+               union E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_u {
+                       E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_t      E_RABs_Admitted_ToBeAdded_SgNBModAck_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_t;
+typedef struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value {
+               E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_PR present;
+               union E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_u {
+                       E_RABs_Admitted_ToBeModified_SgNBModAck_Item_t   E_RABs_Admitted_ToBeModified_SgNBModAck_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_t;
+typedef struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value {
+               E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_PR present;
+               union E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_u {
+                       E_RABs_Admitted_ToReleased_SgNBModAck_Item_t     E_RABs_Admitted_ToReleased_SgNBModAck_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value {
+               E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_PR present;
+               union E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_u {
+                       E_RABs_ToBeReleased_SgNBModReqd_Item_t   E_RABs_ToBeReleased_SgNBModReqd_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_t;
+typedef struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value {
+               E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_PR present;
+               union E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_u {
+                       E_RABs_ToBeModified_SgNBModReqd_Item_t   E_RABs_ToBeModified_SgNBModReqd_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeModified_SgNBModReqd_ItemIEs_t;
+typedef struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value {
+               E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_PR present;
+               union E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_u {
+                       E_RABs_AdmittedToBeModified_SgNBModConf_Item_t   E_RABs_AdmittedToBeModified_SgNBModConf_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value {
+               E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_PR present;
+               union E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_u {
+                       E_RABs_ToBeReleased_SgNBRelReq_Item_t    E_RABs_ToBeReleased_SgNBRelReq_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_t;
+typedef struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value {
+               E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_PR present;
+               union E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_u {
+                       E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_t        E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value {
+               E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_PR present;
+               union E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_u {
+                       E_RABs_ToBeReleased_SgNBRelReqd_Item_t   E_RABs_ToBeReleased_SgNBRelReqd_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value {
+               E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_PR present;
+               union E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_u {
+                       E_RABs_ToBeReleased_SgNBRelConf_Item_t   E_RABs_ToBeReleased_SgNBRelConf_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_t;
+typedef struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value {
+               E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_PR present;
+               union E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_u {
+                       E_RABs_SubjectToSgNBCounterCheck_Item_t  E_RABs_SubjectToSgNBCounterCheck_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_SubjectToSgNBCounterCheck_ItemIEs_t;
+typedef struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value {
+               E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_PR present;
+               union E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_u {
+                       E_RABs_ToBeReleased_SgNBChaConf_Item_t   E_RABs_ToBeReleased_SgNBChaConf_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_t;
+typedef struct E_RABs_DataForwardingAddress_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABs_DataForwardingAddress_ItemIEs__value {
+               E_RABs_DataForwardingAddress_ItemIEs__value_PR present;
+               union E_RABs_DataForwardingAddress_ItemIEs__value_u {
+                       E_RABs_DataForwardingAddress_Item_t      E_RABs_DataForwardingAddress_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABs_DataForwardingAddress_ItemIEs_t;
+typedef struct E_RAB_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RAB_ItemIEs__value {
+               E_RAB_ItemIEs__value_PR present;
+               union E_RAB_ItemIEs__value_u {
+                       E_RAB_Item_t     E_RAB_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RAB_ItemIEs_t;
+typedef struct E_RABUsageReport_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct E_RABUsageReport_ItemIEs__value {
+               E_RABUsageReport_ItemIEs__value_PR present;
+               union E_RABUsageReport_ItemIEs__value_u {
+                       E_RABUsageReport_Item_t  E_RABUsageReport_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} E_RABUsageReport_ItemIEs_t;
+typedef struct SecondaryRATUsageReport_ItemIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SecondaryRATUsageReport_ItemIEs__value {
+               SecondaryRATUsageReport_ItemIEs__value_PR present;
+               union SecondaryRATUsageReport_ItemIEs__value_u {
+                       SecondaryRATUsageReport_Item_t   SecondaryRATUsageReport_Item;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SecondaryRATUsageReport_ItemIEs_t;
+typedef struct RICsubscriptionRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RICsubscriptionRequest_IEs__value {
+               RICsubscriptionRequest_IEs__value_PR present;
+               union RICsubscriptionRequest_IEs__value_u {
+                       RICrequestID_t   RICrequestID;
+                       RANfunctionID_t  RANfunctionID;
+                       RICsubscription_t        RICsubscription;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICsubscriptionRequest_IEs_t;
+typedef struct RICsubscriptionResponse_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RICsubscriptionResponse_IEs__value {
+               RICsubscriptionResponse_IEs__value_PR present;
+               union RICsubscriptionResponse_IEs__value_u {
+                       RICrequestID_t   RICrequestID;
+                       RANfunctionID_t  RANfunctionID;
+                       RICaction_Admitted_List_t        RICaction_Admitted_List;
+                       RICaction_NotAdmitted_List_t     RICaction_NotAdmitted_List;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICsubscriptionResponse_IEs_t;
+typedef struct RICsubscriptionFailure_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RICsubscriptionFailure_IEs__value {
+               RICsubscriptionFailure_IEs__value_PR present;
+               union RICsubscriptionFailure_IEs__value_u {
+                       RICrequestID_t   RICrequestID;
+                       RANfunctionID_t  RANfunctionID;
+                       RICaction_NotAdmitted_List_t     RICaction_NotAdmitted_List;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICsubscriptionFailure_IEs_t;
+typedef struct RICsubscriptionDeleteRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RICsubscriptionDeleteRequest_IEs__value {
+               RICsubscriptionDeleteRequest_IEs__value_PR present;
+               union RICsubscriptionDeleteRequest_IEs__value_u {
+                       RICrequestID_t   RICrequestID;
+                       RANfunctionID_t  RANfunctionID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICsubscriptionDeleteRequest_IEs_t;
+typedef struct RICsubscriptionDeleteResponse_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RICsubscriptionDeleteResponse_IEs__value {
+               RICsubscriptionDeleteResponse_IEs__value_PR present;
+               union RICsubscriptionDeleteResponse_IEs__value_u {
+                       RICrequestID_t   RICrequestID;
+                       RANfunctionID_t  RANfunctionID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICsubscriptionDeleteResponse_IEs_t;
+typedef struct RICsubscriptionDeleteFailure_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RICsubscriptionDeleteFailure_IEs__value {
+               RICsubscriptionDeleteFailure_IEs__value_PR present;
+               union RICsubscriptionDeleteFailure_IEs__value_u {
+                       RICrequestID_t   RICrequestID;
+                       RANfunctionID_t  RANfunctionID;
+                       RICcause_t       RICcause;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICsubscriptionDeleteFailure_IEs_t;
+typedef struct RICindication_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RICindication_IEs__value {
+               RICindication_IEs__value_PR present;
+               union RICindication_IEs__value_u {
+                       RICrequestID_t   RICrequestID;
+                       RANfunctionID_t  RANfunctionID;
+                       RICactionID_t    RICactionID;
+                       RICindicationSN_t        RICindicationSN;
+                       RICindicationType_t      RICindicationType;
+                       RICindicationHeader_t    RICindicationHeader;
+                       RICindicationMessage_t   RICindicationMessage;
+                       RICcallProcessID_t       RICcallProcessID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICindication_IEs_t;
+typedef struct RICcontrolRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RICcontrolRequest_IEs__value {
+               RICcontrolRequest_IEs__value_PR present;
+               union RICcontrolRequest_IEs__value_u {
+                       RICrequestID_t   RICrequestID;
+                       RANfunctionID_t  RANfunctionID;
+                       RICcallProcessID_t       RICcallProcessID;
+                       RICcontrolHeader_t       RICcontrolHeader;
+                       RICcontrolMessage_t      RICcontrolMessage;
+                       RICcontrolAckRequest_t   RICcontrolAckRequest;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICcontrolRequest_IEs_t;
+typedef struct RICcontrolAcknowledge_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RICcontrolAcknowledge_IEs__value {
+               RICcontrolAcknowledge_IEs__value_PR present;
+               union RICcontrolAcknowledge_IEs__value_u {
+                       RICrequestID_t   RICrequestID;
+                       RANfunctionID_t  RANfunctionID;
+                       RICcallProcessID_t       RICcallProcessID;
+                       RICcontrolStatus_t       RICcontrolStatus;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICcontrolAcknowledge_IEs_t;
+typedef struct RICcontrolFailure_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RICcontrolFailure_IEs__value {
+               RICcontrolFailure_IEs__value_PR present;
+               union RICcontrolFailure_IEs__value_u {
+                       RICrequestID_t   RICrequestID;
+                       RANfunctionID_t  RANfunctionID;
+                       RICcallProcessID_t       RICcallProcessID;
+                       RICcause_t       RICcause;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICcontrolFailure_IEs_t;
+typedef struct RICserviceUpdate_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RICserviceUpdate_IEs__value {
+               RICserviceUpdate_IEs__value_PR present;
+               union RICserviceUpdate_IEs__value_u {
+                       RANfunctions_List_t      RANfunctions_List;
+                       RANfunctionsID_List_t    RANfunctionsID_List;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICserviceUpdate_IEs_t;
+typedef struct RICserviceUpdateAcknowledge_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RICserviceUpdateAcknowledge_IEs__value {
+               RICserviceUpdateAcknowledge_IEs__value_PR present;
+               union RICserviceUpdateAcknowledge_IEs__value_u {
+                       RANfunctionsID_List_t    RANfunctionsID_List;
+                       RANfunctionsIDcause_List_t       RANfunctionsIDcause_List;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICserviceUpdateAcknowledge_IEs_t;
+typedef struct RICserviceUpdateFailure_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RICserviceUpdateFailure_IEs__value {
+               RICserviceUpdateFailure_IEs__value_PR present;
+               union RICserviceUpdateFailure_IEs__value_u {
+                       RANfunctionsIDcause_List_t       RANfunctionsIDcause_List;
+                       TimeToWait_t     TimeToWait;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICserviceUpdateFailure_IEs_t;
+typedef struct RICserviceQuery_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RICserviceQuery_IEs__value {
+               RICserviceQuery_IEs__value_PR present;
+               union RICserviceQuery_IEs__value_u {
+                       RANfunctionsID_List_t    RANfunctionsID_List;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICserviceQuery_IEs_t;
+typedef struct HandoverRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct HandoverRequest_IEs__value {
+               HandoverRequest_IEs__value_PR present;
+               union HandoverRequest_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       Cause_t  Cause;
+                       ECGI_t   ECGI;
+                       GUMMEI_t         GUMMEI;
+                       UE_ContextInformation_t  UE_ContextInformation;
+                       UE_HistoryInformation_t  UE_HistoryInformation;
+                       TraceActivation_t        TraceActivation;
+                       SRVCCOperationPossible_t         SRVCCOperationPossible;
+                       CSGMembershipStatus_t    CSGMembershipStatus;
+                       MobilityInformation_t    MobilityInformation;
+                       Masked_IMEISV_t  Masked_IMEISV;
+                       UE_HistoryInformationFromTheUE_t         UE_HistoryInformationFromTheUE;
+                       ExpectedUEBehaviour_t    ExpectedUEBehaviour;
+                       ProSeAuthorized_t        ProSeAuthorized;
+                       UE_ContextReferenceAtSeNB_t      UE_ContextReferenceAtSeNB;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       V2XServicesAuthorized_t  V2XServicesAuthorized;
+                       UE_ContextReferenceAtWT_t        UE_ContextReferenceAtWT;
+                       NRUESecurityCapabilities_t       NRUESecurityCapabilities;
+                       UE_ContextReferenceAtSgNB_t      UE_ContextReferenceAtSgNB;
+                       AerialUEsubscriptionInformation_t        AerialUEsubscriptionInformation;
+                       Subscription_Based_UE_DifferentiationInfo_t      Subscription_Based_UE_DifferentiationInfo;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} HandoverRequest_IEs_t;
+typedef struct HandoverRequestAcknowledge_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct HandoverRequestAcknowledge_IEs__value {
+               HandoverRequestAcknowledge_IEs__value_PR present;
+               union HandoverRequestAcknowledge_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       E_RABs_Admitted_List_t   E_RABs_Admitted_List;
+                       E_RAB_List_t     E_RAB_List;
+                       TargeteNBtoSource_eNBTransparentContainer_t      TargeteNBtoSource_eNBTransparentContainer;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_ContextKeptIndicator_t        UE_ContextKeptIndicator;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} HandoverRequestAcknowledge_IEs_t;
+typedef struct HandoverPreparationFailure_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct HandoverPreparationFailure_IEs__value {
+               HandoverPreparationFailure_IEs__value_PR present;
+               union HandoverPreparationFailure_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       Cause_t  Cause;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} HandoverPreparationFailure_IEs_t;
+typedef struct HandoverReport_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct HandoverReport_IEs__value {
+               HandoverReport_IEs__value_PR present;
+               union HandoverReport_IEs__value_u {
+                       HandoverReportType_t     HandoverReportType;
+                       Cause_t  Cause;
+                       ECGI_t   ECGI;
+                       TargetCellInUTRAN_t      TargetCellInUTRAN;
+                       CRNTI_t  CRNTI;
+                       MobilityInformation_t    MobilityInformation;
+                       UE_RLF_Report_Container_t        UE_RLF_Report_Container;
+                       UE_RLF_Report_Container_for_extended_bands_t     UE_RLF_Report_Container_for_extended_bands;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} HandoverReport_IEs_t;
+typedef struct SNStatusTransfer_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SNStatusTransfer_IEs__value {
+               SNStatusTransfer_IEs__value_PR present;
+               union SNStatusTransfer_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       E_RABs_SubjectToStatusTransfer_List_t    E_RABs_SubjectToStatusTransfer_List;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SNStatusTransfer_IEs_t;
+typedef struct UEContextRelease_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct UEContextRelease_IEs__value {
+               UEContextRelease_IEs__value_PR present;
+               union UEContextRelease_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       SIPTOBearerDeactivationIndication_t      SIPTOBearerDeactivationIndication;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UEContextRelease_IEs_t;
+typedef struct HandoverCancel_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct HandoverCancel_IEs__value {
+               HandoverCancel_IEs__value_PR present;
+               union HandoverCancel_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       Cause_t  Cause;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} HandoverCancel_IEs_t;
+typedef struct ErrorIndication_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ErrorIndication_IEs__value {
+               ErrorIndication_IEs__value_PR present;
+               union ErrorIndication_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       Cause_t  Cause;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ErrorIndication_IEs_t;
+typedef struct ResetRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ResetRequest_IEs__value {
+               ResetRequest_IEs__value_PR present;
+               union ResetRequest_IEs__value_u {
+                       Cause_t  Cause;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResetRequest_IEs_t;
+typedef struct ResetResponse_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ResetResponse_IEs__value {
+               ResetResponse_IEs__value_PR present;
+               union ResetResponse_IEs__value_u {
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResetResponse_IEs_t;
+typedef struct X2SetupRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct X2SetupRequest_IEs__value {
+               X2SetupRequest_IEs__value_PR present;
+               union X2SetupRequest_IEs__value_u {
+                       GlobalENB_ID_t   GlobalENB_ID;
+                       ServedCells_t    ServedCells;
+                       GUGroupIDList_t  GUGroupIDList;
+                       LHN_ID_t         LHN_ID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} X2SetupRequest_IEs_t;
+typedef struct X2SetupResponse_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct X2SetupResponse_IEs__value {
+               X2SetupResponse_IEs__value_PR present;
+               union X2SetupResponse_IEs__value_u {
+                       GlobalENB_ID_t   GlobalENB_ID;
+                       ServedCells_t    ServedCells;
+                       GUGroupIDList_t  GUGroupIDList;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       LHN_ID_t         LHN_ID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} X2SetupResponse_IEs_t;
+typedef struct X2SetupFailure_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct X2SetupFailure_IEs__value {
+               X2SetupFailure_IEs__value_PR present;
+               union X2SetupFailure_IEs__value_u {
+                       Cause_t  Cause;
+                       TimeToWait_t     TimeToWait;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} X2SetupFailure_IEs_t;
+typedef struct LoadInformation_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct LoadInformation_IEs__value {
+               LoadInformation_IEs__value_PR present;
+               union LoadInformation_IEs__value_u {
+                       CellInformation_List_t   CellInformation_List;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} LoadInformation_IEs_t;
+typedef struct ENBConfigurationUpdate_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENBConfigurationUpdate_IEs__value {
+               ENBConfigurationUpdate_IEs__value_PR present;
+               union ENBConfigurationUpdate_IEs__value_u {
+                       ServedCells_t    ServedCells;
+                       ServedCellsToModify_t    ServedCellsToModify;
+                       Old_ECGIs_t      Old_ECGIs;
+                       GUGroupIDList_t  GUGroupIDList;
+                       CoverageModificationList_t       CoverageModificationList;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENBConfigurationUpdate_IEs_t;
+typedef struct ENBConfigurationUpdateAcknowledge_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENBConfigurationUpdateAcknowledge_IEs__value {
+               ENBConfigurationUpdateAcknowledge_IEs__value_PR present;
+               union ENBConfigurationUpdateAcknowledge_IEs__value_u {
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENBConfigurationUpdateAcknowledge_IEs_t;
+typedef struct ENBConfigurationUpdateFailure_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENBConfigurationUpdateFailure_IEs__value {
+               ENBConfigurationUpdateFailure_IEs__value_PR present;
+               union ENBConfigurationUpdateFailure_IEs__value_u {
+                       Cause_t  Cause;
+                       TimeToWait_t     TimeToWait;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENBConfigurationUpdateFailure_IEs_t;
+typedef struct ResourceStatusRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ResourceStatusRequest_IEs__value {
+               ResourceStatusRequest_IEs__value_PR present;
+               union ResourceStatusRequest_IEs__value_u {
+                       Measurement_ID_t         Measurement_ID;
+                       Registration_Request_t   Registration_Request;
+                       ReportCharacteristics_t  ReportCharacteristics;
+                       CellToReport_List_t      CellToReport_List;
+                       ReportingPeriodicity_t   ReportingPeriodicity;
+                       PartialSuccessIndicator_t        PartialSuccessIndicator;
+                       ReportingPeriodicityRSRPMR_t     ReportingPeriodicityRSRPMR;
+                       ReportingPeriodicityCSIR_t       ReportingPeriodicityCSIR;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResourceStatusRequest_IEs_t;
+typedef struct ResourceStatusResponse_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ResourceStatusResponse_IEs__value {
+               ResourceStatusResponse_IEs__value_PR present;
+               union ResourceStatusResponse_IEs__value_u {
+                       Measurement_ID_t         Measurement_ID;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       MeasurementInitiationResult_List_t       MeasurementInitiationResult_List;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResourceStatusResponse_IEs_t;
+typedef struct ResourceStatusFailure_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ResourceStatusFailure_IEs__value {
+               ResourceStatusFailure_IEs__value_PR present;
+               union ResourceStatusFailure_IEs__value_u {
+                       Measurement_ID_t         Measurement_ID;
+                       Cause_t  Cause;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       CompleteFailureCauseInformation_List_t   CompleteFailureCauseInformation_List;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResourceStatusFailure_IEs_t;
+typedef struct ResourceStatusUpdate_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ResourceStatusUpdate_IEs__value {
+               ResourceStatusUpdate_IEs__value_PR present;
+               union ResourceStatusUpdate_IEs__value_u {
+                       Measurement_ID_t         Measurement_ID;
+                       CellMeasurementResult_List_t     CellMeasurementResult_List;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResourceStatusUpdate_IEs_t;
+typedef struct MobilityChangeRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct MobilityChangeRequest_IEs__value {
+               MobilityChangeRequest_IEs__value_PR present;
+               union MobilityChangeRequest_IEs__value_u {
+                       ECGI_t   ECGI;
+                       MobilityParametersInformation_t  MobilityParametersInformation;
+                       Cause_t  Cause;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MobilityChangeRequest_IEs_t;
+typedef struct MobilityChangeAcknowledge_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct MobilityChangeAcknowledge_IEs__value {
+               MobilityChangeAcknowledge_IEs__value_PR present;
+               union MobilityChangeAcknowledge_IEs__value_u {
+                       ECGI_t   ECGI;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MobilityChangeAcknowledge_IEs_t;
+typedef struct MobilityChangeFailure_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct MobilityChangeFailure_IEs__value {
+               MobilityChangeFailure_IEs__value_PR present;
+               union MobilityChangeFailure_IEs__value_u {
+                       ECGI_t   ECGI;
+                       Cause_t  Cause;
+                       MobilityParametersModificationRange_t    MobilityParametersModificationRange;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} MobilityChangeFailure_IEs_t;
+typedef struct RLFIndication_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RLFIndication_IEs__value {
+               RLFIndication_IEs__value_PR present;
+               union RLFIndication_IEs__value_u {
+                       PCI_t    PCI;
+                       ECGI_t   ECGI;
+                       CRNTI_t  CRNTI;
+                       ShortMAC_I_t     ShortMAC_I;
+                       UE_RLF_Report_Container_t        UE_RLF_Report_Container;
+                       RRCConnSetupIndicator_t  RRCConnSetupIndicator;
+                       RRCConnReestabIndicator_t        RRCConnReestabIndicator;
+                       UE_RLF_Report_Container_for_extended_bands_t     UE_RLF_Report_Container_for_extended_bands;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RLFIndication_IEs_t;
+typedef struct CellActivationRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CellActivationRequest_IEs__value {
+               CellActivationRequest_IEs__value_PR present;
+               union CellActivationRequest_IEs__value_u {
+                       ServedCellsToActivate_t  ServedCellsToActivate;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellActivationRequest_IEs_t;
+typedef struct CellActivationResponse_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CellActivationResponse_IEs__value {
+               CellActivationResponse_IEs__value_PR present;
+               union CellActivationResponse_IEs__value_u {
+                       ActivatedCellList_t      ActivatedCellList;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellActivationResponse_IEs_t;
+typedef struct CellActivationFailure_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct CellActivationFailure_IEs__value {
+               CellActivationFailure_IEs__value_PR present;
+               union CellActivationFailure_IEs__value_u {
+                       Cause_t  Cause;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} CellActivationFailure_IEs_t;
+typedef struct X2Release_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct X2Release_IEs__value {
+               X2Release_IEs__value_PR present;
+               union X2Release_IEs__value_u {
+                       GlobalENB_ID_t   GlobalENB_ID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} X2Release_IEs_t;
+typedef struct X2APMessageTransfer_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct X2APMessageTransfer_IEs__value {
+               X2APMessageTransfer_IEs__value_PR present;
+               union X2APMessageTransfer_IEs__value_u {
+                       RNL_Header_t     RNL_Header;
+                       X2AP_Message_t   X2AP_Message;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} X2APMessageTransfer_IEs_t;
+typedef struct SeNBAdditionRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SeNBAdditionRequest_IEs__value {
+               SeNBAdditionRequest_IEs__value_PR present;
+               union SeNBAdditionRequest_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       UESecurityCapabilities_t         UESecurityCapabilities;
+                       SeNBSecurityKey_t        SeNBSecurityKey;
+                       UEAggregateMaximumBitRate_t      UEAggregateMaximumBitRate;
+                       PLMN_Identity_t  PLMN_Identity;
+                       E_RABs_ToBeAdded_List_t  E_RABs_ToBeAdded_List;
+                       MeNBtoSeNBContainer_t    MeNBtoSeNBContainer;
+                       CSGMembershipStatus_t    CSGMembershipStatus;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       ExpectedUEBehaviour_t    ExpectedUEBehaviour;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBAdditionRequest_IEs_t;
+typedef struct SeNBAdditionRequestAcknowledge_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SeNBAdditionRequestAcknowledge_IEs__value {
+               SeNBAdditionRequestAcknowledge_IEs__value_PR present;
+               union SeNBAdditionRequestAcknowledge_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       E_RABs_Admitted_ToBeAdded_List_t         E_RABs_Admitted_ToBeAdded_List;
+                       E_RAB_List_t     E_RAB_List;
+                       SeNBtoMeNBContainer_t    SeNBtoMeNBContainer;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       TransportLayerAddress_t  TransportLayerAddress;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       TunnelInformation_t      TunnelInformation;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBAdditionRequestAcknowledge_IEs_t;
+typedef struct SeNBAdditionRequestReject_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SeNBAdditionRequestReject_IEs__value {
+               SeNBAdditionRequestReject_IEs__value_PR present;
+               union SeNBAdditionRequestReject_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       Cause_t  Cause;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBAdditionRequestReject_IEs_t;
+typedef struct SeNBReconfigurationComplete_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SeNBReconfigurationComplete_IEs__value {
+               SeNBReconfigurationComplete_IEs__value_PR present;
+               union SeNBReconfigurationComplete_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       ResponseInformationSeNBReconfComp_t      ResponseInformationSeNBReconfComp;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBReconfigurationComplete_IEs_t;
+typedef struct SeNBModificationRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SeNBModificationRequest_IEs__value {
+               SeNBModificationRequest_IEs__value_PR present;
+               union SeNBModificationRequest_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       Cause_t  Cause;
+                       SCGChangeIndication_t    SCGChangeIndication;
+                       PLMN_Identity_t  PLMN_Identity;
+                       UE_ContextInformationSeNBModReq_t        UE_ContextInformationSeNBModReq;
+                       MeNBtoSeNBContainer_t    MeNBtoSeNBContainer;
+                       CSGMembershipStatus_t    CSGMembershipStatus;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBModificationRequest_IEs_t;
+typedef struct SeNBModificationRequestAcknowledge_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SeNBModificationRequestAcknowledge_IEs__value {
+               SeNBModificationRequestAcknowledge_IEs__value_PR present;
+               union SeNBModificationRequestAcknowledge_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       E_RABs_Admitted_ToBeAdded_ModAckList_t   E_RABs_Admitted_ToBeAdded_ModAckList;
+                       E_RABs_Admitted_ToBeModified_ModAckList_t        E_RABs_Admitted_ToBeModified_ModAckList;
+                       E_RABs_Admitted_ToBeReleased_ModAckList_t        E_RABs_Admitted_ToBeReleased_ModAckList;
+                       E_RAB_List_t     E_RAB_List;
+                       SeNBtoMeNBContainer_t    SeNBtoMeNBContainer;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBModificationRequestAcknowledge_IEs_t;
+typedef struct SeNBModificationRequestReject_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SeNBModificationRequestReject_IEs__value {
+               SeNBModificationRequestReject_IEs__value_PR present;
+               union SeNBModificationRequestReject_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       Cause_t  Cause;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBModificationRequestReject_IEs_t;
+typedef struct SeNBModificationRequired_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SeNBModificationRequired_IEs__value {
+               SeNBModificationRequired_IEs__value_PR present;
+               union SeNBModificationRequired_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       Cause_t  Cause;
+                       SCGChangeIndication_t    SCGChangeIndication;
+                       E_RABs_ToBeReleased_ModReqd_t    E_RABs_ToBeReleased_ModReqd;
+                       SeNBtoMeNBContainer_t    SeNBtoMeNBContainer;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBModificationRequired_IEs_t;
+typedef struct SeNBModificationConfirm_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SeNBModificationConfirm_IEs__value {
+               SeNBModificationConfirm_IEs__value_PR present;
+               union SeNBModificationConfirm_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       MeNBtoSeNBContainer_t    MeNBtoSeNBContainer;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBModificationConfirm_IEs_t;
+typedef struct SeNBModificationRefuse_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SeNBModificationRefuse_IEs__value {
+               SeNBModificationRefuse_IEs__value_PR present;
+               union SeNBModificationRefuse_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       Cause_t  Cause;
+                       MeNBtoSeNBContainer_t    MeNBtoSeNBContainer;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBModificationRefuse_IEs_t;
+typedef struct SeNBReleaseRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SeNBReleaseRequest_IEs__value {
+               SeNBReleaseRequest_IEs__value_PR present;
+               union SeNBReleaseRequest_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       Cause_t  Cause;
+                       E_RABs_ToBeReleased_List_RelReq_t        E_RABs_ToBeReleased_List_RelReq;
+                       UE_ContextKeptIndicator_t        UE_ContextKeptIndicator;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       MakeBeforeBreakIndicator_t       MakeBeforeBreakIndicator;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBReleaseRequest_IEs_t;
+typedef struct SeNBReleaseRequired_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SeNBReleaseRequired_IEs__value {
+               SeNBReleaseRequired_IEs__value_PR present;
+               union SeNBReleaseRequired_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       Cause_t  Cause;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBReleaseRequired_IEs_t;
+typedef struct SeNBReleaseConfirm_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SeNBReleaseConfirm_IEs__value {
+               SeNBReleaseConfirm_IEs__value_PR present;
+               union SeNBReleaseConfirm_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       E_RABs_ToBeReleased_List_RelConf_t       E_RABs_ToBeReleased_List_RelConf;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBReleaseConfirm_IEs_t;
+typedef struct SeNBCounterCheckRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SeNBCounterCheckRequest_IEs__value {
+               SeNBCounterCheckRequest_IEs__value_PR present;
+               union SeNBCounterCheckRequest_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       E_RABs_SubjectToCounterCheck_List_t      E_RABs_SubjectToCounterCheck_List;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBCounterCheckRequest_IEs_t;
+typedef struct X2RemovalRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct X2RemovalRequest_IEs__value {
+               X2RemovalRequest_IEs__value_PR present;
+               union X2RemovalRequest_IEs__value_u {
+                       GlobalENB_ID_t   GlobalENB_ID;
+                       X2BenefitValue_t         X2BenefitValue;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} X2RemovalRequest_IEs_t;
+typedef struct X2RemovalResponse_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct X2RemovalResponse_IEs__value {
+               X2RemovalResponse_IEs__value_PR present;
+               union X2RemovalResponse_IEs__value_u {
+                       GlobalENB_ID_t   GlobalENB_ID;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} X2RemovalResponse_IEs_t;
+typedef struct X2RemovalFailure_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct X2RemovalFailure_IEs__value {
+               X2RemovalFailure_IEs__value_PR present;
+               union X2RemovalFailure_IEs__value_u {
+                       Cause_t  Cause;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} X2RemovalFailure_IEs_t;
+typedef struct RetrieveUEContextRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RetrieveUEContextRequest_IEs__value {
+               RetrieveUEContextRequest_IEs__value_PR present;
+               union RetrieveUEContextRequest_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       ResumeID_t       ResumeID;
+                       ShortMAC_I_t     ShortMAC_I;
+                       EUTRANCellIdentifier_t   EUTRANCellIdentifier;
+                       CRNTI_t  CRNTI;
+                       PCI_t    PCI;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RetrieveUEContextRequest_IEs_t;
+typedef struct RetrieveUEContextResponse_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RetrieveUEContextResponse_IEs__value {
+               RetrieveUEContextResponse_IEs__value_PR present;
+               union RetrieveUEContextResponse_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       GUMMEI_t         GUMMEI;
+                       UE_ContextInformationRetrieve_t  UE_ContextInformationRetrieve;
+                       TraceActivation_t        TraceActivation;
+                       SRVCCOperationPossible_t         SRVCCOperationPossible;
+                       Masked_IMEISV_t  Masked_IMEISV;
+                       ExpectedUEBehaviour_t    ExpectedUEBehaviour;
+                       ProSeAuthorized_t        ProSeAuthorized;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       V2XServicesAuthorized_t  V2XServicesAuthorized;
+                       AerialUEsubscriptionInformation_t        AerialUEsubscriptionInformation;
+                       Subscription_Based_UE_DifferentiationInfo_t      Subscription_Based_UE_DifferentiationInfo;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RetrieveUEContextResponse_IEs_t;
+typedef struct RetrieveUEContextFailure_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RetrieveUEContextFailure_IEs__value {
+               RetrieveUEContextFailure_IEs__value_PR present;
+               union RetrieveUEContextFailure_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       Cause_t  Cause;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RetrieveUEContextFailure_IEs_t;
+typedef struct SgNBAdditionRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBAdditionRequest_IEs__value {
+               SgNBAdditionRequest_IEs__value_PR present;
+               union SgNBAdditionRequest_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       NRUESecurityCapabilities_t       NRUESecurityCapabilities;
+                       SgNBSecurityKey_t        SgNBSecurityKey;
+                       UEAggregateMaximumBitRate_t      UEAggregateMaximumBitRate;
+                       PLMN_Identity_t  PLMN_Identity;
+                       HandoverRestrictionList_t        HandoverRestrictionList;
+                       E_RABs_ToBeAdded_SgNBAddReqList_t        E_RABs_ToBeAdded_SgNBAddReqList;
+                       MeNBtoSgNBContainer_t    MeNBtoSgNBContainer;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       ExpectedUEBehaviour_t    ExpectedUEBehaviour;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       SplitSRBs_t      SplitSRBs;
+                       MeNBResourceCoordinationInformation_t    MeNBResourceCoordinationInformation;
+                       SGNB_Addition_Trigger_Ind_t      SGNB_Addition_Trigger_Ind;
+                       SubscriberProfileIDforRFP_t      SubscriberProfileIDforRFP;
+                       ECGI_t   ECGI;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBAdditionRequest_IEs_t;
+typedef struct SgNBAdditionRequestAcknowledge_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBAdditionRequestAcknowledge_IEs__value {
+               SgNBAdditionRequestAcknowledge_IEs__value_PR present;
+               union SgNBAdditionRequestAcknowledge_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_t    E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList;
+                       E_RAB_List_t     E_RAB_List;
+                       SgNBtoMeNBContainer_t    SgNBtoMeNBContainer;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       SplitSRBs_t      SplitSRBs;
+                       SgNBResourceCoordinationInformation_t    SgNBResourceCoordinationInformation;
+                       RRC_Config_Ind_t         RRC_Config_Ind;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBAdditionRequestAcknowledge_IEs_t;
+typedef struct SgNBAdditionRequestReject_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBAdditionRequestReject_IEs__value {
+               SgNBAdditionRequestReject_IEs__value_PR present;
+               union SgNBAdditionRequestReject_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       Cause_t  Cause;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBAdditionRequestReject_IEs_t;
+typedef struct SgNBReconfigurationComplete_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBReconfigurationComplete_IEs__value {
+               SgNBReconfigurationComplete_IEs__value_PR present;
+               union SgNBReconfigurationComplete_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       ResponseInformationSgNBReconfComp_t      ResponseInformationSgNBReconfComp;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBReconfigurationComplete_IEs_t;
+typedef struct SgNBModificationRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBModificationRequest_IEs__value {
+               SgNBModificationRequest_IEs__value_PR present;
+               union SgNBModificationRequest_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       Cause_t  Cause;
+                       PLMN_Identity_t  PLMN_Identity;
+                       HandoverRestrictionList_t        HandoverRestrictionList;
+                       SCGConfigurationQuery_t  SCGConfigurationQuery;
+                       UE_ContextInformation_SgNBModReq_t       UE_ContextInformation_SgNBModReq;
+                       MeNBtoSgNBContainer_t    MeNBtoSgNBContainer;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       MeNBResourceCoordinationInformation_t    MeNBResourceCoordinationInformation;
+                       SplitSRBs_t      SplitSRBs;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBModificationRequest_IEs_t;
+typedef struct SgNBModificationRequestAcknowledge_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBModificationRequestAcknowledge_IEs__value {
+               SgNBModificationRequestAcknowledge_IEs__value_PR present;
+               union SgNBModificationRequestAcknowledge_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       E_RABs_Admitted_ToBeAdded_SgNBModAckList_t       E_RABs_Admitted_ToBeAdded_SgNBModAckList;
+                       E_RABs_Admitted_ToBeModified_SgNBModAckList_t    E_RABs_Admitted_ToBeModified_SgNBModAckList;
+                       E_RABs_Admitted_ToBeReleased_SgNBModAckList_t    E_RABs_Admitted_ToBeReleased_SgNBModAckList;
+                       E_RAB_List_t     E_RAB_List;
+                       SgNBtoMeNBContainer_t    SgNBtoMeNBContainer;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       SgNBResourceCoordinationInformation_t    SgNBResourceCoordinationInformation;
+                       SplitSRBs_t      SplitSRBs;
+                       RRC_Config_Ind_t         RRC_Config_Ind;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBModificationRequestAcknowledge_IEs_t;
+typedef struct SgNBModificationRequestReject_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBModificationRequestReject_IEs__value {
+               SgNBModificationRequestReject_IEs__value_PR present;
+               union SgNBModificationRequestReject_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       Cause_t  Cause;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBModificationRequestReject_IEs_t;
+typedef struct SgNBModificationRequired_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBModificationRequired_IEs__value {
+               SgNBModificationRequired_IEs__value_PR present;
+               union SgNBModificationRequired_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       Cause_t  Cause;
+                       PDCPChangeIndication_t   PDCPChangeIndication;
+                       E_RABs_ToBeReleased_SgNBModReqdList_t    E_RABs_ToBeReleased_SgNBModReqdList;
+                       SgNBtoMeNBContainer_t    SgNBtoMeNBContainer;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       E_RABs_ToBeModified_SgNBModReqdList_t    E_RABs_ToBeModified_SgNBModReqdList;
+                       SgNBResourceCoordinationInformation_t    SgNBResourceCoordinationInformation;
+                       RRC_Config_Ind_t         RRC_Config_Ind;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBModificationRequired_IEs_t;
+typedef struct SgNBModificationConfirm_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBModificationConfirm_IEs__value {
+               SgNBModificationConfirm_IEs__value_PR present;
+               union SgNBModificationConfirm_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       E_RABs_AdmittedToBeModified_SgNBModConfList_t    E_RABs_AdmittedToBeModified_SgNBModConfList;
+                       MeNBtoSgNBContainer_t    MeNBtoSgNBContainer;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       MeNBResourceCoordinationInformation_t    MeNBResourceCoordinationInformation;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBModificationConfirm_IEs_t;
+typedef struct SgNBModificationRefuse_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBModificationRefuse_IEs__value {
+               SgNBModificationRefuse_IEs__value_PR present;
+               union SgNBModificationRefuse_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       Cause_t  Cause;
+                       MeNBtoSgNBContainer_t    MeNBtoSgNBContainer;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBModificationRefuse_IEs_t;
+typedef struct SgNBReleaseRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBReleaseRequest_IEs__value {
+               SgNBReleaseRequest_IEs__value_PR present;
+               union SgNBReleaseRequest_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       Cause_t  Cause;
+                       E_RABs_ToBeReleased_SgNBRelReqList_t     E_RABs_ToBeReleased_SgNBRelReqList;
+                       UE_ContextKeptIndicator_t        UE_ContextKeptIndicator;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       MeNBtoSgNBContainer_t    MeNBtoSgNBContainer;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBReleaseRequest_IEs_t;
+typedef struct SgNBReleaseRequestAcknowledge_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBReleaseRequestAcknowledge_IEs__value {
+               SgNBReleaseRequestAcknowledge_IEs__value_PR present;
+               union SgNBReleaseRequestAcknowledge_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_t         E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBReleaseRequestAcknowledge_IEs_t;
+typedef struct SgNBReleaseRequestReject_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBReleaseRequestReject_IEs__value {
+               SgNBReleaseRequestReject_IEs__value_PR present;
+               union SgNBReleaseRequestReject_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       Cause_t  Cause;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBReleaseRequestReject_IEs_t;
+typedef struct SgNBReleaseRequired_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBReleaseRequired_IEs__value {
+               SgNBReleaseRequired_IEs__value_PR present;
+               union SgNBReleaseRequired_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       Cause_t  Cause;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       E_RABs_ToBeReleased_SgNBRelReqdList_t    E_RABs_ToBeReleased_SgNBRelReqdList;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBReleaseRequired_IEs_t;
+typedef struct SgNBReleaseConfirm_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBReleaseConfirm_IEs__value {
+               SgNBReleaseConfirm_IEs__value_PR present;
+               union SgNBReleaseConfirm_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       E_RABs_ToBeReleased_SgNBRelConfList_t    E_RABs_ToBeReleased_SgNBRelConfList;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBReleaseConfirm_IEs_t;
+typedef struct SgNBCounterCheckRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBCounterCheckRequest_IEs__value {
+               SgNBCounterCheckRequest_IEs__value_PR present;
+               union SgNBCounterCheckRequest_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       E_RABs_SubjectToSgNBCounterCheck_List_t  E_RABs_SubjectToSgNBCounterCheck_List;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBCounterCheckRequest_IEs_t;
+typedef struct SgNBChangeRequired_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBChangeRequired_IEs__value {
+               SgNBChangeRequired_IEs__value_PR present;
+               union SgNBChangeRequired_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       GlobalGNB_ID_t   GlobalGNB_ID;
+                       Cause_t  Cause;
+                       SgNBtoMeNBContainer_t    SgNBtoMeNBContainer;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBChangeRequired_IEs_t;
+typedef struct SgNBChangeConfirm_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBChangeConfirm_IEs__value {
+               SgNBChangeConfirm_IEs__value_PR present;
+               union SgNBChangeConfirm_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       E_RABs_ToBeReleased_SgNBChaConfList_t    E_RABs_ToBeReleased_SgNBChaConfList;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBChangeConfirm_IEs_t;
+typedef struct RRCTransfer_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct RRCTransfer_IEs__value {
+               RRCTransfer_IEs__value_PR present;
+               union RRCTransfer_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       SplitSRB_t       SplitSRB;
+                       UENRMeasurement_t        UENRMeasurement;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RRCTransfer_IEs_t;
+typedef struct SgNBChangeRefuse_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBChangeRefuse_IEs__value {
+               SgNBChangeRefuse_IEs__value_PR present;
+               union SgNBChangeRefuse_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       Cause_t  Cause;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBChangeRefuse_IEs_t;
+typedef struct ENDCX2SetupRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENDCX2SetupRequest_IEs__value {
+               ENDCX2SetupRequest_IEs__value_PR present;
+               union ENDCX2SetupRequest_IEs__value_u {
+                       InitiatingNodeType_EndcX2Setup_t         InitiatingNodeType_EndcX2Setup;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCX2SetupRequest_IEs_t;
+typedef struct ENB_ENDCX2SetupReqIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENB_ENDCX2SetupReqIEs__value {
+               ENB_ENDCX2SetupReqIEs__value_PR present;
+               union ENB_ENDCX2SetupReqIEs__value_u {
+                       GlobalENB_ID_t   GlobalENB_ID;
+                       ServedEUTRAcellsENDCX2ManagementList_t   ServedEUTRAcellsENDCX2ManagementList;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENB_ENDCX2SetupReqIEs_t;
+typedef struct En_gNB_ENDCX2SetupReqIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct En_gNB_ENDCX2SetupReqIEs__value {
+               En_gNB_ENDCX2SetupReqIEs__value_PR present;
+               union En_gNB_ENDCX2SetupReqIEs__value_u {
+                       GlobalGNB_ID_t   GlobalGNB_ID;
+                       ServedNRcellsENDCX2ManagementList_t      ServedNRcellsENDCX2ManagementList;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} En_gNB_ENDCX2SetupReqIEs_t;
+typedef struct ENDCX2SetupResponse_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENDCX2SetupResponse_IEs__value {
+               ENDCX2SetupResponse_IEs__value_PR present;
+               union ENDCX2SetupResponse_IEs__value_u {
+                       RespondingNodeType_EndcX2Setup_t         RespondingNodeType_EndcX2Setup;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCX2SetupResponse_IEs_t;
+typedef struct ENB_ENDCX2SetupReqAckIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENB_ENDCX2SetupReqAckIEs__value {
+               ENB_ENDCX2SetupReqAckIEs__value_PR present;
+               union ENB_ENDCX2SetupReqAckIEs__value_u {
+                       GlobalENB_ID_t   GlobalENB_ID;
+                       ServedEUTRAcellsENDCX2ManagementList_t   ServedEUTRAcellsENDCX2ManagementList;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENB_ENDCX2SetupReqAckIEs_t;
+typedef struct En_gNB_ENDCX2SetupReqAckIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct En_gNB_ENDCX2SetupReqAckIEs__value {
+               En_gNB_ENDCX2SetupReqAckIEs__value_PR present;
+               union En_gNB_ENDCX2SetupReqAckIEs__value_u {
+                       GlobalGNB_ID_t   GlobalGNB_ID;
+                       ServedNRcellsENDCX2ManagementList_t      ServedNRcellsENDCX2ManagementList;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} En_gNB_ENDCX2SetupReqAckIEs_t;
+typedef struct ENDCX2SetupFailure_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENDCX2SetupFailure_IEs__value {
+               ENDCX2SetupFailure_IEs__value_PR present;
+               union ENDCX2SetupFailure_IEs__value_u {
+                       Cause_t  Cause;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       TimeToWait_t     TimeToWait;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCX2SetupFailure_IEs_t;
+typedef struct ENDCConfigurationUpdate_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENDCConfigurationUpdate_IEs__value {
+               ENDCConfigurationUpdate_IEs__value_PR present;
+               union ENDCConfigurationUpdate_IEs__value_u {
+                       InitiatingNodeType_EndcConfigUpdate_t    InitiatingNodeType_EndcConfigUpdate;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCConfigurationUpdate_IEs_t;
+typedef struct ENB_ENDCConfigUpdateIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENB_ENDCConfigUpdateIEs__value {
+               ENB_ENDCConfigUpdateIEs__value_PR present;
+               union ENB_ENDCConfigUpdateIEs__value_u {
+                       CellAssistanceInformation_t      CellAssistanceInformation;
+                       ServedEUTRAcellsENDCX2ManagementList_t   ServedEUTRAcellsENDCX2ManagementList;
+                       ServedEUTRAcellsToModifyListENDCConfUpd_t        ServedEUTRAcellsToModifyListENDCConfUpd;
+                       ServedEUTRAcellsToDeleteListENDCConfUpd_t        ServedEUTRAcellsToDeleteListENDCConfUpd;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENB_ENDCConfigUpdateIEs_t;
+typedef struct En_gNB_ENDCConfigUpdateIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct En_gNB_ENDCConfigUpdateIEs__value {
+               En_gNB_ENDCConfigUpdateIEs__value_PR present;
+               union En_gNB_ENDCConfigUpdateIEs__value_u {
+                       ServedNRcellsENDCX2ManagementList_t      ServedNRcellsENDCX2ManagementList;
+                       ServedNRcellsToModifyENDCConfUpdList_t   ServedNRcellsToModifyENDCConfUpdList;
+                       ServedNRcellsToDeleteENDCConfUpdList_t   ServedNRcellsToDeleteENDCConfUpdList;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} En_gNB_ENDCConfigUpdateIEs_t;
+typedef struct ENDCConfigurationUpdateAcknowledge_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENDCConfigurationUpdateAcknowledge_IEs__value {
+               ENDCConfigurationUpdateAcknowledge_IEs__value_PR present;
+               union ENDCConfigurationUpdateAcknowledge_IEs__value_u {
+                       RespondingNodeType_EndcConfigUpdate_t    RespondingNodeType_EndcConfigUpdate;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCConfigurationUpdateAcknowledge_IEs_t;
+typedef struct ENB_ENDCConfigUpdateAckIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENB_ENDCConfigUpdateAckIEs__value {
+               ENB_ENDCConfigUpdateAckIEs__value_PR present;
+               union ENB_ENDCConfigUpdateAckIEs__value_u {
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENB_ENDCConfigUpdateAckIEs_t;
+typedef struct En_gNB_ENDCConfigUpdateAckIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct En_gNB_ENDCConfigUpdateAckIEs__value {
+               En_gNB_ENDCConfigUpdateAckIEs__value_PR present;
+               union En_gNB_ENDCConfigUpdateAckIEs__value_u {
+                       ServedNRcellsENDCX2ManagementList_t      ServedNRcellsENDCX2ManagementList;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} En_gNB_ENDCConfigUpdateAckIEs_t;
+typedef struct ENDCConfigurationUpdateFailure_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENDCConfigurationUpdateFailure_IEs__value {
+               ENDCConfigurationUpdateFailure_IEs__value_PR present;
+               union ENDCConfigurationUpdateFailure_IEs__value_u {
+                       Cause_t  Cause;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+                       TimeToWait_t     TimeToWait;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCConfigurationUpdateFailure_IEs_t;
+typedef struct ENDCCellActivationRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENDCCellActivationRequest_IEs__value {
+               ENDCCellActivationRequest_IEs__value_PR present;
+               union ENDCCellActivationRequest_IEs__value_u {
+                       ServedNRCellsToActivate_t        ServedNRCellsToActivate;
+                       ActivationID_t   ActivationID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCCellActivationRequest_IEs_t;
+typedef struct ENDCCellActivationResponse_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENDCCellActivationResponse_IEs__value {
+               ENDCCellActivationResponse_IEs__value_PR present;
+               union ENDCCellActivationResponse_IEs__value_u {
+                       ActivatedNRCellList_t    ActivatedNRCellList;
+                       ActivationID_t   ActivationID;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCCellActivationResponse_IEs_t;
+typedef struct ENDCCellActivationFailure_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENDCCellActivationFailure_IEs__value {
+               ENDCCellActivationFailure_IEs__value_PR present;
+               union ENDCCellActivationFailure_IEs__value_u {
+                       ActivationID_t   ActivationID;
+                       Cause_t  Cause;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCCellActivationFailure_IEs_t;
+typedef struct SecondaryRATDataUsageReport_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SecondaryRATDataUsageReport_IEs__value {
+               SecondaryRATDataUsageReport_IEs__value_PR present;
+               union SecondaryRATDataUsageReport_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       SecondaryRATUsageReportList_t    SecondaryRATUsageReportList;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SecondaryRATDataUsageReport_IEs_t;
+typedef struct SgNBActivityNotification_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct SgNBActivityNotification_IEs__value {
+               SgNBActivityNotification_IEs__value_PR present;
+               union SgNBActivityNotification_IEs__value_u {
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       SgNB_UE_X2AP_ID_t        SgNB_UE_X2AP_ID;
+                       UserPlaneTrafficActivityReport_t         UserPlaneTrafficActivityReport;
+                       ERABActivityNotifyItemList_t     ERABActivityNotifyItemList;
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBActivityNotification_IEs_t;
+typedef struct ENDCPartialResetRequired_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENDCPartialResetRequired_IEs__value {
+               ENDCPartialResetRequired_IEs__value_PR present;
+               union ENDCPartialResetRequired_IEs__value_u {
+                       UEsToBeResetList_t       UEsToBeResetList;
+                       Cause_t  Cause;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCPartialResetRequired_IEs_t;
+typedef struct ENDCPartialResetConfirm_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENDCPartialResetConfirm_IEs__value {
+               ENDCPartialResetConfirm_IEs__value_PR present;
+               union ENDCPartialResetConfirm_IEs__value_u {
+                       UEsToBeResetList_t       UEsToBeResetList;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCPartialResetConfirm_IEs_t;
+typedef struct EUTRANRCellResourceCoordinationRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct EUTRANRCellResourceCoordinationRequest_IEs__value {
+               EUTRANRCellResourceCoordinationRequest_IEs__value_PR present;
+               union EUTRANRCellResourceCoordinationRequest_IEs__value_u {
+                       InitiatingNodeType_EutranrCellResourceCoordination_t     InitiatingNodeType_EutranrCellResourceCoordination;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} EUTRANRCellResourceCoordinationRequest_IEs_t;
+typedef struct ENB_EUTRA_NRCellResourceCoordinationReqIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENB_EUTRA_NRCellResourceCoordinationReqIEs__value {
+               ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR present;
+               union ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_u {
+                       DataTrafficResourceIndication_t  DataTrafficResourceIndication;
+                       SpectrumSharingGroupID_t         SpectrumSharingGroupID;
+                       ListofEUTRACellsinEUTRACoordinationReq_t         ListofEUTRACellsinEUTRACoordinationReq;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENB_EUTRA_NRCellResourceCoordinationReqIEs_t;
+typedef struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value {
+               En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR present;
+               union En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_u {
+                       DataTrafficResourceIndication_t  DataTrafficResourceIndication;
+                       ListofEUTRACellsinNRCoordinationReq_t    ListofEUTRACellsinNRCoordinationReq;
+                       SpectrumSharingGroupID_t         SpectrumSharingGroupID;
+                       ListofNRCellsinNRCoordinationReq_t       ListofNRCellsinNRCoordinationReq;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_t;
+typedef struct EUTRANRCellResourceCoordinationResponse_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct EUTRANRCellResourceCoordinationResponse_IEs__value {
+               EUTRANRCellResourceCoordinationResponse_IEs__value_PR present;
+               union EUTRANRCellResourceCoordinationResponse_IEs__value_u {
+                       RespondingNodeType_EutranrCellResourceCoordination_t     RespondingNodeType_EutranrCellResourceCoordination;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} EUTRANRCellResourceCoordinationResponse_IEs_t;
+typedef struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value {
+               ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR present;
+               union ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_u {
+                       DataTrafficResourceIndication_t  DataTrafficResourceIndication;
+                       SpectrumSharingGroupID_t         SpectrumSharingGroupID;
+                       ListofEUTRACellsinEUTRACoordinationResp_t        ListofEUTRACellsinEUTRACoordinationResp;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_t;
+typedef struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value {
+               En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR present;
+               union En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_u {
+                       DataTrafficResourceIndication_t  DataTrafficResourceIndication;
+                       SpectrumSharingGroupID_t         SpectrumSharingGroupID;
+                       ListofNRCellsinNRCoordinationResp_t      ListofNRCellsinNRCoordinationResp;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_t;
+typedef struct ENDCX2RemovalRequest_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENDCX2RemovalRequest_IEs__value {
+               ENDCX2RemovalRequest_IEs__value_PR present;
+               union ENDCX2RemovalRequest_IEs__value_u {
+                       InitiatingNodeType_EndcX2Removal_t       InitiatingNodeType_EndcX2Removal;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCX2RemovalRequest_IEs_t;
+typedef struct ENB_ENDCX2RemovalReqIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENB_ENDCX2RemovalReqIEs__value {
+               ENB_ENDCX2RemovalReqIEs__value_PR present;
+               union ENB_ENDCX2RemovalReqIEs__value_u {
+                       GlobalENB_ID_t   GlobalENB_ID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENB_ENDCX2RemovalReqIEs_t;
+typedef struct En_gNB_ENDCX2RemovalReqIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct En_gNB_ENDCX2RemovalReqIEs__value {
+               En_gNB_ENDCX2RemovalReqIEs__value_PR present;
+               union En_gNB_ENDCX2RemovalReqIEs__value_u {
+                       GlobalGNB_ID_t   GlobalGNB_ID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} En_gNB_ENDCX2RemovalReqIEs_t;
+typedef struct ENDCX2RemovalResponse_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENDCX2RemovalResponse_IEs__value {
+               ENDCX2RemovalResponse_IEs__value_PR present;
+               union ENDCX2RemovalResponse_IEs__value_u {
+                       RespondingNodeType_EndcX2Removal_t       RespondingNodeType_EndcX2Removal;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCX2RemovalResponse_IEs_t;
+typedef struct ENB_ENDCX2RemovalReqAckIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENB_ENDCX2RemovalReqAckIEs__value {
+               ENB_ENDCX2RemovalReqAckIEs__value_PR present;
+               union ENB_ENDCX2RemovalReqAckIEs__value_u {
+                       GlobalENB_ID_t   GlobalENB_ID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENB_ENDCX2RemovalReqAckIEs_t;
+typedef struct En_gNB_ENDCX2RemovalReqAckIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct En_gNB_ENDCX2RemovalReqAckIEs__value {
+               En_gNB_ENDCX2RemovalReqAckIEs__value_PR present;
+               union En_gNB_ENDCX2RemovalReqAckIEs__value_u {
+                       GlobalGNB_ID_t   GlobalGNB_ID;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} En_gNB_ENDCX2RemovalReqAckIEs_t;
+typedef struct ENDCX2RemovalFailure_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct ENDCX2RemovalFailure_IEs__value {
+               ENDCX2RemovalFailure_IEs__value_PR present;
+               union ENDCX2RemovalFailure_IEs__value_u {
+                       Cause_t  Cause;
+                       CriticalityDiagnostics_t         CriticalityDiagnostics;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ENDCX2RemovalFailure_IEs_t;
+typedef struct DataForwardingAddressIndication_IEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct DataForwardingAddressIndication_IEs__value {
+               DataForwardingAddressIndication_IEs__value_PR present;
+               union DataForwardingAddressIndication_IEs__value_u {
+                       UE_X2AP_ID_Extension_t   UE_X2AP_ID_Extension;
+                       UE_X2AP_ID_t     UE_X2AP_ID;
+                       E_RABs_DataForwardingAddress_List_t      E_RABs_DataForwardingAddress_List;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} DataForwardingAddressIndication_IEs_t;
+typedef struct GNBStatusIndicationIEs {
+       ProtocolIE_ID_t  id;
+       Criticality_t    criticality;
+       struct GNBStatusIndicationIEs__value {
+               GNBStatusIndicationIEs__value_PR present;
+               union GNBStatusIndicationIEs__value_u {
+                       GNBOverloadInformation_t         GNBOverloadInformation;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} GNBStatusIndicationIEs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5;
+extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9;
+extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[3];
+extern asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_13;
+extern asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_13[3];
+extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_17;
+extern asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_17[3];
+extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_21;
+extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_21[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetup_ItemIEs_specs_25;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_ItemIEs_25[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ItemIEs_specs_29;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ItemIEs_29[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToStatusTransfer_ItemIEs_specs_33;
+extern asn_TYPE_member_t asn_MBR_E_RABs_SubjectToStatusTransfer_ItemIEs_33[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellInformation_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellInformation_ItemIEs_specs_37;
+extern asn_TYPE_member_t asn_MBR_CellInformation_ItemIEs_37[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellToReport_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellToReport_ItemIEs_specs_41;
+extern asn_TYPE_member_t asn_MBR_CellToReport_ItemIEs_41[3];
+extern asn_TYPE_descriptor_t asn_DEF_MeasurementInitiationResult_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementInitiationResult_ItemIEs_specs_45;
+extern asn_TYPE_member_t asn_MBR_MeasurementInitiationResult_ItemIEs_45[3];
+extern asn_TYPE_descriptor_t asn_DEF_MeasurementFailureCause_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementFailureCause_ItemIEs_specs_49;
+extern asn_TYPE_member_t asn_MBR_MeasurementFailureCause_ItemIEs_49[3];
+extern asn_TYPE_descriptor_t asn_DEF_CompleteFailureCauseInformation_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CompleteFailureCauseInformation_ItemIEs_specs_53;
+extern asn_TYPE_member_t asn_MBR_CompleteFailureCauseInformation_ItemIEs_53[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellMeasurementResult_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellMeasurementResult_ItemIEs_specs_57;
+extern asn_TYPE_member_t asn_MBR_CellMeasurementResult_ItemIEs_57[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ItemIEs_specs_61;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ItemIEs_61[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ItemIEs_specs_65;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ItemIEs_65[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItemIEs_specs_69;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItemIEs_69[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItemIEs_specs_73;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItemIEs_73[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItemIEs_specs_77;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItemIEs_77[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_specs_81;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_81[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItemIEs_specs_85;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItemIEs_85[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_specs_89;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_89[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqdItemIEs_specs_93;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqdItemIEs_93[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItemIEs_specs_97;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItemIEs_97[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItemIEs_specs_101;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItemIEs_101[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToCounterCheckItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToCounterCheckItemIEs_specs_105;
+extern asn_TYPE_member_t asn_MBR_E_RABs_SubjectToCounterCheckItemIEs_105[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetupRetrieve_ItemIEs_specs_109;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetupRetrieve_ItemIEs_109[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_specs_113;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_113[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_specs_117;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_117[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_specs_121;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_121[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_ItemIEs_specs_125;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_ItemIEs_125[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_specs_129;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_129[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_specs_133;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_133[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_specs_137;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_137[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_specs_141;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_141[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_specs_145;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_145[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_specs_149;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_149[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_specs_153;
+extern asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_153[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_specs_157;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_157[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_specs_161;
+extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_161[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_specs_165;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_165[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_specs_169;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_169[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_specs_173;
+extern asn_TYPE_member_t asn_MBR_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_173[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_specs_177;
+extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_177[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABs_DataForwardingAddress_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_DataForwardingAddress_ItemIEs_specs_181;
+extern asn_TYPE_member_t asn_MBR_E_RABs_DataForwardingAddress_ItemIEs_181[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RAB_ItemIEs_specs_185;
+extern asn_TYPE_member_t asn_MBR_E_RAB_ItemIEs_185[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABUsageReport_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABUsageReport_ItemIEs_specs_189;
+extern asn_TYPE_member_t asn_MBR_E_RABUsageReport_ItemIEs_189[3];
+extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATUsageReport_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATUsageReport_ItemIEs_specs_193;
+extern asn_TYPE_member_t asn_MBR_SecondaryRATUsageReport_ItemIEs_193[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_197;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_197[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_201;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_201[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_205;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_205[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_209;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_209[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_213;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_213[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_217;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_217[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICindication_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_221;
+extern asn_TYPE_member_t asn_MBR_RICindication_IEs_221[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_225;
+extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_225[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_229;
+extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_229[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_233;
+extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_233[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_237;
+extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_237[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_241;
+extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_241[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_245;
+extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_245[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_249;
+extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_249[3];
+extern asn_TYPE_descriptor_t asn_DEF_HandoverRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverRequest_IEs_specs_253;
+extern asn_TYPE_member_t asn_MBR_HandoverRequest_IEs_253[3];
+extern asn_TYPE_descriptor_t asn_DEF_HandoverRequestAcknowledge_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverRequestAcknowledge_IEs_specs_257;
+extern asn_TYPE_member_t asn_MBR_HandoverRequestAcknowledge_IEs_257[3];
+extern asn_TYPE_descriptor_t asn_DEF_HandoverPreparationFailure_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverPreparationFailure_IEs_specs_261;
+extern asn_TYPE_member_t asn_MBR_HandoverPreparationFailure_IEs_261[3];
+extern asn_TYPE_descriptor_t asn_DEF_HandoverReport_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverReport_IEs_specs_265;
+extern asn_TYPE_member_t asn_MBR_HandoverReport_IEs_265[3];
+extern asn_TYPE_descriptor_t asn_DEF_SNStatusTransfer_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SNStatusTransfer_IEs_specs_269;
+extern asn_TYPE_member_t asn_MBR_SNStatusTransfer_IEs_269[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEContextRelease_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEContextRelease_IEs_specs_273;
+extern asn_TYPE_member_t asn_MBR_UEContextRelease_IEs_273[3];
+extern asn_TYPE_descriptor_t asn_DEF_HandoverCancel_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverCancel_IEs_specs_277;
+extern asn_TYPE_member_t asn_MBR_HandoverCancel_IEs_277[3];
+extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_281;
+extern asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_281[3];
+extern asn_TYPE_descriptor_t asn_DEF_ResetRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_IEs_specs_285;
+extern asn_TYPE_member_t asn_MBR_ResetRequest_IEs_285[3];
+extern asn_TYPE_descriptor_t asn_DEF_ResetResponse_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_IEs_specs_289;
+extern asn_TYPE_member_t asn_MBR_ResetResponse_IEs_289[3];
+extern asn_TYPE_descriptor_t asn_DEF_X2SetupRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2SetupRequest_IEs_specs_293;
+extern asn_TYPE_member_t asn_MBR_X2SetupRequest_IEs_293[3];
+extern asn_TYPE_descriptor_t asn_DEF_X2SetupResponse_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2SetupResponse_IEs_specs_297;
+extern asn_TYPE_member_t asn_MBR_X2SetupResponse_IEs_297[3];
+extern asn_TYPE_descriptor_t asn_DEF_X2SetupFailure_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2SetupFailure_IEs_specs_301;
+extern asn_TYPE_member_t asn_MBR_X2SetupFailure_IEs_301[3];
+extern asn_TYPE_descriptor_t asn_DEF_LoadInformation_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_LoadInformation_IEs_specs_305;
+extern asn_TYPE_member_t asn_MBR_LoadInformation_IEs_305[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdate_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdate_IEs_specs_309;
+extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdate_IEs_309[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateAcknowledge_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateAcknowledge_IEs_specs_313;
+extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateAcknowledge_IEs_313[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateFailure_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateFailure_IEs_specs_317;
+extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateFailure_IEs_317[3];
+extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusRequest_IEs_specs_321;
+extern asn_TYPE_member_t asn_MBR_ResourceStatusRequest_IEs_321[3];
+extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusResponse_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusResponse_IEs_specs_325;
+extern asn_TYPE_member_t asn_MBR_ResourceStatusResponse_IEs_325[3];
+extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusFailure_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusFailure_IEs_specs_329;
+extern asn_TYPE_member_t asn_MBR_ResourceStatusFailure_IEs_329[3];
+extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusUpdate_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusUpdate_IEs_specs_333;
+extern asn_TYPE_member_t asn_MBR_ResourceStatusUpdate_IEs_333[3];
+extern asn_TYPE_descriptor_t asn_DEF_MobilityChangeRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeRequest_IEs_specs_337;
+extern asn_TYPE_member_t asn_MBR_MobilityChangeRequest_IEs_337[3];
+extern asn_TYPE_descriptor_t asn_DEF_MobilityChangeAcknowledge_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeAcknowledge_IEs_specs_341;
+extern asn_TYPE_member_t asn_MBR_MobilityChangeAcknowledge_IEs_341[3];
+extern asn_TYPE_descriptor_t asn_DEF_MobilityChangeFailure_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeFailure_IEs_specs_345;
+extern asn_TYPE_member_t asn_MBR_MobilityChangeFailure_IEs_345[3];
+extern asn_TYPE_descriptor_t asn_DEF_RLFIndication_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RLFIndication_IEs_specs_349;
+extern asn_TYPE_member_t asn_MBR_RLFIndication_IEs_349[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellActivationRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellActivationRequest_IEs_specs_353;
+extern asn_TYPE_member_t asn_MBR_CellActivationRequest_IEs_353[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellActivationResponse_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellActivationResponse_IEs_specs_357;
+extern asn_TYPE_member_t asn_MBR_CellActivationResponse_IEs_357[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellActivationFailure_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellActivationFailure_IEs_specs_361;
+extern asn_TYPE_member_t asn_MBR_CellActivationFailure_IEs_361[3];
+extern asn_TYPE_descriptor_t asn_DEF_X2Release_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2Release_IEs_specs_365;
+extern asn_TYPE_member_t asn_MBR_X2Release_IEs_365[3];
+extern asn_TYPE_descriptor_t asn_DEF_X2APMessageTransfer_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2APMessageTransfer_IEs_specs_369;
+extern asn_TYPE_member_t asn_MBR_X2APMessageTransfer_IEs_369[3];
+extern asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequest_IEs_specs_373;
+extern asn_TYPE_member_t asn_MBR_SeNBAdditionRequest_IEs_373[3];
+extern asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestAcknowledge_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequestAcknowledge_IEs_specs_377;
+extern asn_TYPE_member_t asn_MBR_SeNBAdditionRequestAcknowledge_IEs_377[3];
+extern asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestReject_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequestReject_IEs_specs_381;
+extern asn_TYPE_member_t asn_MBR_SeNBAdditionRequestReject_IEs_381[3];
+extern asn_TYPE_descriptor_t asn_DEF_SeNBReconfigurationComplete_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBReconfigurationComplete_IEs_specs_385;
+extern asn_TYPE_member_t asn_MBR_SeNBReconfigurationComplete_IEs_385[3];
+extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequest_IEs_specs_389;
+extern asn_TYPE_member_t asn_MBR_SeNBModificationRequest_IEs_389[3];
+extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestAcknowledge_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequestAcknowledge_IEs_specs_393;
+extern asn_TYPE_member_t asn_MBR_SeNBModificationRequestAcknowledge_IEs_393[3];
+extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestReject_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequestReject_IEs_specs_397;
+extern asn_TYPE_member_t asn_MBR_SeNBModificationRequestReject_IEs_397[3];
+extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequired_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequired_IEs_specs_401;
+extern asn_TYPE_member_t asn_MBR_SeNBModificationRequired_IEs_401[3];
+extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationConfirm_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationConfirm_IEs_specs_405;
+extern asn_TYPE_member_t asn_MBR_SeNBModificationConfirm_IEs_405[3];
+extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRefuse_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRefuse_IEs_specs_409;
+extern asn_TYPE_member_t asn_MBR_SeNBModificationRefuse_IEs_409[3];
+extern asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseRequest_IEs_specs_413;
+extern asn_TYPE_member_t asn_MBR_SeNBReleaseRequest_IEs_413[3];
+extern asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequired_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseRequired_IEs_specs_417;
+extern asn_TYPE_member_t asn_MBR_SeNBReleaseRequired_IEs_417[3];
+extern asn_TYPE_descriptor_t asn_DEF_SeNBReleaseConfirm_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseConfirm_IEs_specs_421;
+extern asn_TYPE_member_t asn_MBR_SeNBReleaseConfirm_IEs_421[3];
+extern asn_TYPE_descriptor_t asn_DEF_SeNBCounterCheckRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBCounterCheckRequest_IEs_specs_425;
+extern asn_TYPE_member_t asn_MBR_SeNBCounterCheckRequest_IEs_425[3];
+extern asn_TYPE_descriptor_t asn_DEF_X2RemovalRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2RemovalRequest_IEs_specs_429;
+extern asn_TYPE_member_t asn_MBR_X2RemovalRequest_IEs_429[3];
+extern asn_TYPE_descriptor_t asn_DEF_X2RemovalResponse_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2RemovalResponse_IEs_specs_433;
+extern asn_TYPE_member_t asn_MBR_X2RemovalResponse_IEs_433[3];
+extern asn_TYPE_descriptor_t asn_DEF_X2RemovalFailure_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2RemovalFailure_IEs_specs_437;
+extern asn_TYPE_member_t asn_MBR_X2RemovalFailure_IEs_437[3];
+extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextRequest_IEs_specs_441;
+extern asn_TYPE_member_t asn_MBR_RetrieveUEContextRequest_IEs_441[3];
+extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextResponse_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextResponse_IEs_specs_445;
+extern asn_TYPE_member_t asn_MBR_RetrieveUEContextResponse_IEs_445[3];
+extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextFailure_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextFailure_IEs_specs_449;
+extern asn_TYPE_member_t asn_MBR_RetrieveUEContextFailure_IEs_449[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequest_IEs_specs_453;
+extern asn_TYPE_member_t asn_MBR_SgNBAdditionRequest_IEs_453[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestAcknowledge_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequestAcknowledge_IEs_specs_457;
+extern asn_TYPE_member_t asn_MBR_SgNBAdditionRequestAcknowledge_IEs_457[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestReject_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequestReject_IEs_specs_461;
+extern asn_TYPE_member_t asn_MBR_SgNBAdditionRequestReject_IEs_461[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBReconfigurationComplete_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReconfigurationComplete_IEs_specs_465;
+extern asn_TYPE_member_t asn_MBR_SgNBReconfigurationComplete_IEs_465[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequest_IEs_specs_469;
+extern asn_TYPE_member_t asn_MBR_SgNBModificationRequest_IEs_469[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestAcknowledge_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequestAcknowledge_IEs_specs_473;
+extern asn_TYPE_member_t asn_MBR_SgNBModificationRequestAcknowledge_IEs_473[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestReject_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequestReject_IEs_specs_477;
+extern asn_TYPE_member_t asn_MBR_SgNBModificationRequestReject_IEs_477[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequired_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequired_IEs_specs_481;
+extern asn_TYPE_member_t asn_MBR_SgNBModificationRequired_IEs_481[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationConfirm_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationConfirm_IEs_specs_485;
+extern asn_TYPE_member_t asn_MBR_SgNBModificationConfirm_IEs_485[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRefuse_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRefuse_IEs_specs_489;
+extern asn_TYPE_member_t asn_MBR_SgNBModificationRefuse_IEs_489[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequest_IEs_specs_493;
+extern asn_TYPE_member_t asn_MBR_SgNBReleaseRequest_IEs_493[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestAcknowledge_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequestAcknowledge_IEs_specs_497;
+extern asn_TYPE_member_t asn_MBR_SgNBReleaseRequestAcknowledge_IEs_497[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestReject_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequestReject_IEs_specs_501;
+extern asn_TYPE_member_t asn_MBR_SgNBReleaseRequestReject_IEs_501[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequired_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequired_IEs_specs_505;
+extern asn_TYPE_member_t asn_MBR_SgNBReleaseRequired_IEs_505[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseConfirm_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseConfirm_IEs_specs_509;
+extern asn_TYPE_member_t asn_MBR_SgNBReleaseConfirm_IEs_509[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBCounterCheckRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBCounterCheckRequest_IEs_specs_513;
+extern asn_TYPE_member_t asn_MBR_SgNBCounterCheckRequest_IEs_513[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBChangeRequired_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeRequired_IEs_specs_517;
+extern asn_TYPE_member_t asn_MBR_SgNBChangeRequired_IEs_517[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBChangeConfirm_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeConfirm_IEs_specs_521;
+extern asn_TYPE_member_t asn_MBR_SgNBChangeConfirm_IEs_521[3];
+extern asn_TYPE_descriptor_t asn_DEF_RRCTransfer_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RRCTransfer_IEs_specs_525;
+extern asn_TYPE_member_t asn_MBR_RRCTransfer_IEs_525[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBChangeRefuse_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeRefuse_IEs_specs_529;
+extern asn_TYPE_member_t asn_MBR_SgNBChangeRefuse_IEs_529[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupRequest_IEs_specs_533;
+extern asn_TYPE_member_t asn_MBR_ENDCX2SetupRequest_IEs_533[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2SetupReqIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2SetupReqIEs_specs_537;
+extern asn_TYPE_member_t asn_MBR_ENB_ENDCX2SetupReqIEs_537[3];
+extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2SetupReqIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2SetupReqIEs_specs_541;
+extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2SetupReqIEs_541[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupResponse_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupResponse_IEs_specs_545;
+extern asn_TYPE_member_t asn_MBR_ENDCX2SetupResponse_IEs_545[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2SetupReqAckIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2SetupReqAckIEs_specs_549;
+extern asn_TYPE_member_t asn_MBR_ENB_ENDCX2SetupReqAckIEs_549[3];
+extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2SetupReqAckIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2SetupReqAckIEs_specs_553;
+extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2SetupReqAckIEs_553[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupFailure_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupFailure_IEs_specs_557;
+extern asn_TYPE_member_t asn_MBR_ENDCX2SetupFailure_IEs_557[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdate_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdate_IEs_specs_561;
+extern asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdate_IEs_561[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCConfigUpdateIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCConfigUpdateIEs_specs_565;
+extern asn_TYPE_member_t asn_MBR_ENB_ENDCConfigUpdateIEs_565[3];
+extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCConfigUpdateIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCConfigUpdateIEs_specs_569;
+extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCConfigUpdateIEs_569[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateAcknowledge_IEs_specs_573;
+extern asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateAcknowledge_IEs_573[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCConfigUpdateAckIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCConfigUpdateAckIEs_specs_577;
+extern asn_TYPE_member_t asn_MBR_ENB_ENDCConfigUpdateAckIEs_577[3];
+extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCConfigUpdateAckIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCConfigUpdateAckIEs_specs_581;
+extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCConfigUpdateAckIEs_581[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateFailure_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateFailure_IEs_specs_585;
+extern asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateFailure_IEs_585[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationRequest_IEs_specs_589;
+extern asn_TYPE_member_t asn_MBR_ENDCCellActivationRequest_IEs_589[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationResponse_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationResponse_IEs_specs_593;
+extern asn_TYPE_member_t asn_MBR_ENDCCellActivationResponse_IEs_593[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationFailure_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationFailure_IEs_specs_597;
+extern asn_TYPE_member_t asn_MBR_ENDCCellActivationFailure_IEs_597[3];
+extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATDataUsageReport_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATDataUsageReport_IEs_specs_601;
+extern asn_TYPE_member_t asn_MBR_SecondaryRATDataUsageReport_IEs_601[3];
+extern asn_TYPE_descriptor_t asn_DEF_SgNBActivityNotification_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBActivityNotification_IEs_specs_605;
+extern asn_TYPE_member_t asn_MBR_SgNBActivityNotification_IEs_605[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetRequired_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCPartialResetRequired_IEs_specs_609;
+extern asn_TYPE_member_t asn_MBR_ENDCPartialResetRequired_IEs_609[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetConfirm_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCPartialResetConfirm_IEs_specs_613;
+extern asn_TYPE_member_t asn_MBR_ENDCPartialResetConfirm_IEs_613[3];
+extern asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_EUTRANRCellResourceCoordinationRequest_IEs_specs_617;
+extern asn_TYPE_member_t asn_MBR_EUTRANRCellResourceCoordinationRequest_IEs_617[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENB_EUTRA_NRCellResourceCoordinationReqIEs_specs_621;
+extern asn_TYPE_member_t asn_MBR_ENB_EUTRA_NRCellResourceCoordinationReqIEs_621[3];
+extern asn_TYPE_descriptor_t asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_specs_625;
+extern asn_TYPE_member_t asn_MBR_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_625[3];
+extern asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_EUTRANRCellResourceCoordinationResponse_IEs_specs_629;
+extern asn_TYPE_member_t asn_MBR_EUTRANRCellResourceCoordinationResponse_IEs_629[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_specs_633;
+extern asn_TYPE_member_t asn_MBR_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_633[3];
+extern asn_TYPE_descriptor_t asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_specs_637;
+extern asn_TYPE_member_t asn_MBR_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_637[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalRequest_IEs_specs_641;
+extern asn_TYPE_member_t asn_MBR_ENDCX2RemovalRequest_IEs_641[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2RemovalReqIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2RemovalReqIEs_specs_645;
+extern asn_TYPE_member_t asn_MBR_ENB_ENDCX2RemovalReqIEs_645[3];
+extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2RemovalReqIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2RemovalReqIEs_specs_649;
+extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2RemovalReqIEs_649[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalResponse_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalResponse_IEs_specs_653;
+extern asn_TYPE_member_t asn_MBR_ENDCX2RemovalResponse_IEs_653[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2RemovalReqAckIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2RemovalReqAckIEs_specs_657;
+extern asn_TYPE_member_t asn_MBR_ENB_ENDCX2RemovalReqAckIEs_657[3];
+extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2RemovalReqAckIEs_specs_661;
+extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2RemovalReqAckIEs_661[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalFailure_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalFailure_IEs_specs_665;
+extern asn_TYPE_member_t asn_MBR_ENDCX2RemovalFailure_IEs_665[3];
+extern asn_TYPE_descriptor_t asn_DEF_DataForwardingAddressIndication_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_DataForwardingAddressIndication_IEs_specs_669;
+extern asn_TYPE_member_t asn_MBR_DataForwardingAddressIndication_IEs_669[3];
+extern asn_TYPE_descriptor_t asn_DEF_GNBStatusIndicationIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_GNBStatusIndicationIEs_specs_673;
+extern asn_TYPE_member_t asn_MBR_GNBStatusIndicationIEs_673[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolIE_Field_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProtocolIE-FieldPair.h b/e2ap/headers/ProtocolIE-FieldPair.h
new file mode 100644 (file)
index 0000000..470dab0
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProtocolIE_FieldPair_H_
+#define        _ProtocolIE_FieldPair_H_
+
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolIE_FieldPair_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProtocolIE-ID.h b/e2ap/headers/ProtocolIE-ID.h
new file mode 100644 (file)
index 0000000..1b52a74
--- /dev/null
@@ -0,0 +1,398 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-CommonDataTypes"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProtocolIE_ID_H_
+#define        _ProtocolIE_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ProtocolIE-ID */
+typedef long    ProtocolIE_ID_t;
+
+/* Implementation */
+#define ProtocolIE_ID_id_RANfunction_Item      ((ProtocolIE_ID_t)60001)
+#define ProtocolIE_ID_id_RANfunctionDefinition ((ProtocolIE_ID_t)60002)
+#define ProtocolIE_ID_id_RANfunctionID ((ProtocolIE_ID_t)60003)
+#define ProtocolIE_ID_id_RANfunctionID_Item    ((ProtocolIE_ID_t)60004)
+#define ProtocolIE_ID_id_RANfunctionIEcause_Item       ((ProtocolIE_ID_t)60005)
+#define ProtocolIE_ID_id_RANfunctionsAccepted  ((ProtocolIE_ID_t)60006)
+#define ProtocolIE_ID_id_RANfunctionsAdded     ((ProtocolIE_ID_t)60007)
+#define ProtocolIE_ID_id_RANfunctionsDeleted   ((ProtocolIE_ID_t)60008)
+#define ProtocolIE_ID_id_RANfunctionsModified  ((ProtocolIE_ID_t)60009)
+#define ProtocolIE_ID_id_RANfunctionsRejected  ((ProtocolIE_ID_t)60010)
+#define ProtocolIE_ID_id_RICaction_ToBeSetup_Item      ((ProtocolIE_ID_t)60011)
+#define ProtocolIE_ID_id_RICactions_Admitted   ((ProtocolIE_ID_t)60012)
+#define ProtocolIE_ID_id_RICaction_Admitted_Item       ((ProtocolIE_ID_t)60013)
+#define ProtocolIE_ID_id_RICactions_NotAdmitted        ((ProtocolIE_ID_t)60014)
+#define ProtocolIE_ID_id_RICaction_NotAdmitted_Item    ((ProtocolIE_ID_t)60015)
+#define ProtocolIE_ID_id_RICactionDefinition   ((ProtocolIE_ID_t)60016)
+#define ProtocolIE_ID_id_RICactionID   ((ProtocolIE_ID_t)60017)
+#define ProtocolIE_ID_id_RICactionType ((ProtocolIE_ID_t)60018)
+#define ProtocolIE_ID_id_RICcallProcessID      ((ProtocolIE_ID_t)60019)
+#define ProtocolIE_ID_id_RICcause      ((ProtocolIE_ID_t)60020)
+#define ProtocolIE_ID_id_RICcontrolAckRequest  ((ProtocolIE_ID_t)60021)
+#define ProtocolIE_ID_id_RICcontrolHeader      ((ProtocolIE_ID_t)60022)
+#define ProtocolIE_ID_id_RICcontrolMessage     ((ProtocolIE_ID_t)60023)
+#define ProtocolIE_ID_id_RICcontrolStatus      ((ProtocolIE_ID_t)60024)
+#define ProtocolIE_ID_id_RICeventTriggerDefinition     ((ProtocolIE_ID_t)60025)
+#define ProtocolIE_ID_id_RICindicationHeader   ((ProtocolIE_ID_t)60026)
+#define ProtocolIE_ID_id_RICindicationMessage  ((ProtocolIE_ID_t)60027)
+#define ProtocolIE_ID_id_RICindicationSN       ((ProtocolIE_ID_t)60028)
+#define ProtocolIE_ID_id_RICindicationType     ((ProtocolIE_ID_t)60029)
+#define ProtocolIE_ID_id_RICrequestID  ((ProtocolIE_ID_t)60030)
+#define ProtocolIE_ID_id_RICrequestorID        ((ProtocolIE_ID_t)60031)
+#define ProtocolIE_ID_id_RICrequestSequenceNumber      ((ProtocolIE_ID_t)60032)
+#define ProtocolIE_ID_id_RICsubscription       ((ProtocolIE_ID_t)60033)
+#define ProtocolIE_ID_id_RICsubsequentAction   ((ProtocolIE_ID_t)60034)
+#define ProtocolIE_ID_id_RICsubsequentActionType       ((ProtocolIE_ID_t)60035)
+#define ProtocolIE_ID_id_RICtimeToWait ((ProtocolIE_ID_t)60036)
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID;
+asn_struct_free_f ProtocolIE_ID_free;
+asn_struct_print_f ProtocolIE_ID_print;
+asn_constr_check_f ProtocolIE_ID_constraint;
+ber_type_decoder_f ProtocolIE_ID_decode_ber;
+der_type_encoder_f ProtocolIE_ID_encode_der;
+xer_type_decoder_f ProtocolIE_ID_decode_xer;
+xer_type_encoder_f ProtocolIE_ID_encode_xer;
+oer_type_decoder_f ProtocolIE_ID_decode_oer;
+oer_type_encoder_f ProtocolIE_ID_encode_oer;
+per_type_decoder_f ProtocolIE_ID_decode_uper;
+per_type_encoder_f ProtocolIE_ID_encode_uper;
+per_type_decoder_f ProtocolIE_ID_decode_aper;
+per_type_encoder_f ProtocolIE_ID_encode_aper;
+#define ProtocolIE_ID_id_E_RABs_Admitted_Item  ((ProtocolIE_ID_t)0)
+#define ProtocolIE_ID_id_E_RABs_Admitted_List  ((ProtocolIE_ID_t)1)
+#define ProtocolIE_ID_id_E_RAB_Item    ((ProtocolIE_ID_t)2)
+#define ProtocolIE_ID_id_E_RABs_NotAdmitted_List       ((ProtocolIE_ID_t)3)
+#define ProtocolIE_ID_id_E_RABs_ToBeSetup_Item ((ProtocolIE_ID_t)4)
+#define ProtocolIE_ID_id_Cause ((ProtocolIE_ID_t)5)
+#define ProtocolIE_ID_id_CellInformation       ((ProtocolIE_ID_t)6)
+#define ProtocolIE_ID_id_CellInformation_Item  ((ProtocolIE_ID_t)7)
+#define ProtocolIE_ID_id_New_eNB_UE_X2AP_ID    ((ProtocolIE_ID_t)9)
+#define ProtocolIE_ID_id_Old_eNB_UE_X2AP_ID    ((ProtocolIE_ID_t)10)
+#define ProtocolIE_ID_id_TargetCell_ID ((ProtocolIE_ID_t)11)
+#define ProtocolIE_ID_id_TargeteNBtoSource_eNBTransparentContainer     ((ProtocolIE_ID_t)12)
+#define ProtocolIE_ID_id_TraceActivation       ((ProtocolIE_ID_t)13)
+#define ProtocolIE_ID_id_UE_ContextInformation ((ProtocolIE_ID_t)14)
+#define ProtocolIE_ID_id_UE_HistoryInformation ((ProtocolIE_ID_t)15)
+#define ProtocolIE_ID_id_UE_X2AP_ID    ((ProtocolIE_ID_t)16)
+#define ProtocolIE_ID_id_CriticalityDiagnostics        ((ProtocolIE_ID_t)17)
+#define ProtocolIE_ID_id_E_RABs_SubjectToStatusTransfer_List   ((ProtocolIE_ID_t)18)
+#define ProtocolIE_ID_id_E_RABs_SubjectToStatusTransfer_Item   ((ProtocolIE_ID_t)19)
+#define ProtocolIE_ID_id_ServedCells   ((ProtocolIE_ID_t)20)
+#define ProtocolIE_ID_id_GlobalENB_ID  ((ProtocolIE_ID_t)21)
+#define ProtocolIE_ID_id_TimeToWait    ((ProtocolIE_ID_t)22)
+#define ProtocolIE_ID_id_GUMMEI_ID     ((ProtocolIE_ID_t)23)
+#define ProtocolIE_ID_id_GUGroupIDList ((ProtocolIE_ID_t)24)
+#define ProtocolIE_ID_id_ServedCellsToAdd      ((ProtocolIE_ID_t)25)
+#define ProtocolIE_ID_id_ServedCellsToModify   ((ProtocolIE_ID_t)26)
+#define ProtocolIE_ID_id_ServedCellsToDelete   ((ProtocolIE_ID_t)27)
+#define ProtocolIE_ID_id_Registration_Request  ((ProtocolIE_ID_t)28)
+#define ProtocolIE_ID_id_CellToReport  ((ProtocolIE_ID_t)29)
+#define ProtocolIE_ID_id_ReportingPeriodicity  ((ProtocolIE_ID_t)30)
+#define ProtocolIE_ID_id_CellToReport_Item     ((ProtocolIE_ID_t)31)
+#define ProtocolIE_ID_id_CellMeasurementResult ((ProtocolIE_ID_t)32)
+#define ProtocolIE_ID_id_CellMeasurementResult_Item    ((ProtocolIE_ID_t)33)
+#define ProtocolIE_ID_id_GUGroupIDToAddList    ((ProtocolIE_ID_t)34)
+#define ProtocolIE_ID_id_GUGroupIDToDeleteList ((ProtocolIE_ID_t)35)
+#define ProtocolIE_ID_id_SRVCCOperationPossible        ((ProtocolIE_ID_t)36)
+#define ProtocolIE_ID_id_Measurement_ID        ((ProtocolIE_ID_t)37)
+#define ProtocolIE_ID_id_ReportCharacteristics ((ProtocolIE_ID_t)38)
+#define ProtocolIE_ID_id_ENB1_Measurement_ID   ((ProtocolIE_ID_t)39)
+#define ProtocolIE_ID_id_ENB2_Measurement_ID   ((ProtocolIE_ID_t)40)
+#define ProtocolIE_ID_id_Number_of_Antennaports        ((ProtocolIE_ID_t)41)
+#define ProtocolIE_ID_id_CompositeAvailableCapacityGroup       ((ProtocolIE_ID_t)42)
+#define ProtocolIE_ID_id_ENB1_Cell_ID  ((ProtocolIE_ID_t)43)
+#define ProtocolIE_ID_id_ENB2_Cell_ID  ((ProtocolIE_ID_t)44)
+#define ProtocolIE_ID_id_ENB2_Proposed_Mobility_Parameters     ((ProtocolIE_ID_t)45)
+#define ProtocolIE_ID_id_ENB1_Mobility_Parameters      ((ProtocolIE_ID_t)46)
+#define ProtocolIE_ID_id_ENB2_Mobility_Parameters_Modification_Range   ((ProtocolIE_ID_t)47)
+#define ProtocolIE_ID_id_FailureCellPCI        ((ProtocolIE_ID_t)48)
+#define ProtocolIE_ID_id_Re_establishmentCellECGI      ((ProtocolIE_ID_t)49)
+#define ProtocolIE_ID_id_FailureCellCRNTI      ((ProtocolIE_ID_t)50)
+#define ProtocolIE_ID_id_ShortMAC_I    ((ProtocolIE_ID_t)51)
+#define ProtocolIE_ID_id_SourceCellECGI        ((ProtocolIE_ID_t)52)
+#define ProtocolIE_ID_id_FailureCellECGI       ((ProtocolIE_ID_t)53)
+#define ProtocolIE_ID_id_HandoverReportType    ((ProtocolIE_ID_t)54)
+#define ProtocolIE_ID_id_PRACH_Configuration   ((ProtocolIE_ID_t)55)
+#define ProtocolIE_ID_id_MBSFN_Subframe_Info   ((ProtocolIE_ID_t)56)
+#define ProtocolIE_ID_id_ServedCellsToActivate ((ProtocolIE_ID_t)57)
+#define ProtocolIE_ID_id_ActivatedCellList     ((ProtocolIE_ID_t)58)
+#define ProtocolIE_ID_id_DeactivationIndication        ((ProtocolIE_ID_t)59)
+#define ProtocolIE_ID_id_UE_RLF_Report_Container       ((ProtocolIE_ID_t)60)
+#define ProtocolIE_ID_id_ABSInformation        ((ProtocolIE_ID_t)61)
+#define ProtocolIE_ID_id_InvokeIndication      ((ProtocolIE_ID_t)62)
+#define ProtocolIE_ID_id_ABS_Status    ((ProtocolIE_ID_t)63)
+#define ProtocolIE_ID_id_PartialSuccessIndicator       ((ProtocolIE_ID_t)64)
+#define ProtocolIE_ID_id_MeasurementInitiationResult_List      ((ProtocolIE_ID_t)65)
+#define ProtocolIE_ID_id_MeasurementInitiationResult_Item      ((ProtocolIE_ID_t)66)
+#define ProtocolIE_ID_id_MeasurementFailureCause_Item  ((ProtocolIE_ID_t)67)
+#define ProtocolIE_ID_id_CompleteFailureCauseInformation_List  ((ProtocolIE_ID_t)68)
+#define ProtocolIE_ID_id_CompleteFailureCauseInformation_Item  ((ProtocolIE_ID_t)69)
+#define ProtocolIE_ID_id_CSG_Id        ((ProtocolIE_ID_t)70)
+#define ProtocolIE_ID_id_CSGMembershipStatus   ((ProtocolIE_ID_t)71)
+#define ProtocolIE_ID_id_MDTConfiguration      ((ProtocolIE_ID_t)72)
+#define ProtocolIE_ID_id_ManagementBasedMDTallowed     ((ProtocolIE_ID_t)74)
+#define ProtocolIE_ID_id_RRCConnSetupIndicator ((ProtocolIE_ID_t)75)
+#define ProtocolIE_ID_id_NeighbourTAC  ((ProtocolIE_ID_t)76)
+#define ProtocolIE_ID_id_Time_UE_StayedInCell_EnhancedGranularity      ((ProtocolIE_ID_t)77)
+#define ProtocolIE_ID_id_RRCConnReestabIndicator       ((ProtocolIE_ID_t)78)
+#define ProtocolIE_ID_id_MBMS_Service_Area_List        ((ProtocolIE_ID_t)79)
+#define ProtocolIE_ID_id_HO_cause      ((ProtocolIE_ID_t)80)
+#define ProtocolIE_ID_id_TargetCellInUTRAN     ((ProtocolIE_ID_t)81)
+#define ProtocolIE_ID_id_MobilityInformation   ((ProtocolIE_ID_t)82)
+#define ProtocolIE_ID_id_SourceCellCRNTI       ((ProtocolIE_ID_t)83)
+#define ProtocolIE_ID_id_MultibandInfoList     ((ProtocolIE_ID_t)84)
+#define ProtocolIE_ID_id_M3Configuration       ((ProtocolIE_ID_t)85)
+#define ProtocolIE_ID_id_M4Configuration       ((ProtocolIE_ID_t)86)
+#define ProtocolIE_ID_id_M5Configuration       ((ProtocolIE_ID_t)87)
+#define ProtocolIE_ID_id_MDT_Location_Info     ((ProtocolIE_ID_t)88)
+#define ProtocolIE_ID_id_ManagementBasedMDTPLMNList    ((ProtocolIE_ID_t)89)
+#define ProtocolIE_ID_id_SignallingBasedMDTPLMNList    ((ProtocolIE_ID_t)90)
+#define ProtocolIE_ID_id_ReceiveStatusOfULPDCPSDUsExtended     ((ProtocolIE_ID_t)91)
+#define ProtocolIE_ID_id_ULCOUNTValueExtended  ((ProtocolIE_ID_t)92)
+#define ProtocolIE_ID_id_DLCOUNTValueExtended  ((ProtocolIE_ID_t)93)
+#define ProtocolIE_ID_id_eARFCNExtension       ((ProtocolIE_ID_t)94)
+#define ProtocolIE_ID_id_UL_EARFCNExtension    ((ProtocolIE_ID_t)95)
+#define ProtocolIE_ID_id_DL_EARFCNExtension    ((ProtocolIE_ID_t)96)
+#define ProtocolIE_ID_id_AdditionalSpecialSubframe_Info        ((ProtocolIE_ID_t)97)
+#define ProtocolIE_ID_id_Masked_IMEISV ((ProtocolIE_ID_t)98)
+#define ProtocolIE_ID_id_IntendedULDLConfiguration     ((ProtocolIE_ID_t)99)
+#define ProtocolIE_ID_id_ExtendedULInterferenceOverloadInfo    ((ProtocolIE_ID_t)100)
+#define ProtocolIE_ID_id_RNL_Header    ((ProtocolIE_ID_t)101)
+#define ProtocolIE_ID_id_x2APMessage   ((ProtocolIE_ID_t)102)
+#define ProtocolIE_ID_id_ProSeAuthorized       ((ProtocolIE_ID_t)103)
+#define ProtocolIE_ID_id_ExpectedUEBehaviour   ((ProtocolIE_ID_t)104)
+#define ProtocolIE_ID_id_UE_HistoryInformationFromTheUE        ((ProtocolIE_ID_t)105)
+#define ProtocolIE_ID_id_DynamicDLTransmissionInformation      ((ProtocolIE_ID_t)106)
+#define ProtocolIE_ID_id_UE_RLF_Report_Container_for_extended_bands    ((ProtocolIE_ID_t)107)
+#define ProtocolIE_ID_id_CoMPInformation       ((ProtocolIE_ID_t)108)
+#define ProtocolIE_ID_id_ReportingPeriodicityRSRPMR    ((ProtocolIE_ID_t)109)
+#define ProtocolIE_ID_id_RSRPMRList    ((ProtocolIE_ID_t)110)
+#define ProtocolIE_ID_id_MeNB_UE_X2AP_ID       ((ProtocolIE_ID_t)111)
+#define ProtocolIE_ID_id_SeNB_UE_X2AP_ID       ((ProtocolIE_ID_t)112)
+#define ProtocolIE_ID_id_UE_SecurityCapabilities       ((ProtocolIE_ID_t)113)
+#define ProtocolIE_ID_id_SeNBSecurityKey       ((ProtocolIE_ID_t)114)
+#define ProtocolIE_ID_id_SeNBUEAggregateMaximumBitRate ((ProtocolIE_ID_t)115)
+#define ProtocolIE_ID_id_ServingPLMN   ((ProtocolIE_ID_t)116)
+#define ProtocolIE_ID_id_E_RABs_ToBeAdded_List ((ProtocolIE_ID_t)117)
+#define ProtocolIE_ID_id_E_RABs_ToBeAdded_Item ((ProtocolIE_ID_t)118)
+#define ProtocolIE_ID_id_MeNBtoSeNBContainer   ((ProtocolIE_ID_t)119)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_List        ((ProtocolIE_ID_t)120)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_Item        ((ProtocolIE_ID_t)121)
+#define ProtocolIE_ID_id_SeNBtoMeNBContainer   ((ProtocolIE_ID_t)122)
+#define ProtocolIE_ID_id_ResponseInformationSeNBReconfComp     ((ProtocolIE_ID_t)123)
+#define ProtocolIE_ID_id_UE_ContextInformationSeNBModReq       ((ProtocolIE_ID_t)124)
+#define ProtocolIE_ID_id_E_RABs_ToBeAdded_ModReqItem   ((ProtocolIE_ID_t)125)
+#define ProtocolIE_ID_id_E_RABs_ToBeModified_ModReqItem        ((ProtocolIE_ID_t)126)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_ModReqItem        ((ProtocolIE_ID_t)127)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_ModAckList  ((ProtocolIE_ID_t)128)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeModified_ModAckList       ((ProtocolIE_ID_t)129)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeReleased_ModAckList       ((ProtocolIE_ID_t)130)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_ModAckItem  ((ProtocolIE_ID_t)131)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeModified_ModAckItem       ((ProtocolIE_ID_t)132)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeReleased_ModAckItem       ((ProtocolIE_ID_t)133)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_ModReqd   ((ProtocolIE_ID_t)134)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_ModReqdItem       ((ProtocolIE_ID_t)135)
+#define ProtocolIE_ID_id_SCGChangeIndication   ((ProtocolIE_ID_t)136)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_List_RelReq       ((ProtocolIE_ID_t)137)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_RelReqItem        ((ProtocolIE_ID_t)138)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_List_RelConf      ((ProtocolIE_ID_t)139)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_RelConfItem       ((ProtocolIE_ID_t)140)
+#define ProtocolIE_ID_id_E_RABs_SubjectToCounterCheck_List     ((ProtocolIE_ID_t)141)
+#define ProtocolIE_ID_id_E_RABs_SubjectToCounterCheckItem      ((ProtocolIE_ID_t)142)
+#define ProtocolIE_ID_id_CoverageModificationList      ((ProtocolIE_ID_t)143)
+#define ProtocolIE_ID_id_ReportingPeriodicityCSIR      ((ProtocolIE_ID_t)145)
+#define ProtocolIE_ID_id_CSIReportList ((ProtocolIE_ID_t)146)
+#define ProtocolIE_ID_id_UEID  ((ProtocolIE_ID_t)147)
+#define ProtocolIE_ID_id_enhancedRNTP  ((ProtocolIE_ID_t)148)
+#define ProtocolIE_ID_id_ProSeUEtoNetworkRelaying      ((ProtocolIE_ID_t)149)
+#define ProtocolIE_ID_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18      ((ProtocolIE_ID_t)150)
+#define ProtocolIE_ID_id_ULCOUNTValuePDCP_SNlength18   ((ProtocolIE_ID_t)151)
+#define ProtocolIE_ID_id_DLCOUNTValuePDCP_SNlength18   ((ProtocolIE_ID_t)152)
+#define ProtocolIE_ID_id_UE_ContextReferenceAtSeNB     ((ProtocolIE_ID_t)153)
+#define ProtocolIE_ID_id_UE_ContextKeptIndicator       ((ProtocolIE_ID_t)154)
+#define ProtocolIE_ID_id_New_eNB_UE_X2AP_ID_Extension  ((ProtocolIE_ID_t)155)
+#define ProtocolIE_ID_id_Old_eNB_UE_X2AP_ID_Extension  ((ProtocolIE_ID_t)156)
+#define ProtocolIE_ID_id_MeNB_UE_X2AP_ID_Extension     ((ProtocolIE_ID_t)157)
+#define ProtocolIE_ID_id_SeNB_UE_X2AP_ID_Extension     ((ProtocolIE_ID_t)158)
+#define ProtocolIE_ID_id_LHN_ID        ((ProtocolIE_ID_t)159)
+#define ProtocolIE_ID_id_FreqBandIndicatorPriority     ((ProtocolIE_ID_t)160)
+#define ProtocolIE_ID_id_M6Configuration       ((ProtocolIE_ID_t)161)
+#define ProtocolIE_ID_id_M7Configuration       ((ProtocolIE_ID_t)162)
+#define ProtocolIE_ID_id_Tunnel_Information_for_BBF    ((ProtocolIE_ID_t)163)
+#define ProtocolIE_ID_id_SIPTO_BearerDeactivationIndication    ((ProtocolIE_ID_t)164)
+#define ProtocolIE_ID_id_GW_TransportLayerAddress      ((ProtocolIE_ID_t)165)
+#define ProtocolIE_ID_id_Correlation_ID        ((ProtocolIE_ID_t)166)
+#define ProtocolIE_ID_id_SIPTO_Correlation_ID  ((ProtocolIE_ID_t)167)
+#define ProtocolIE_ID_id_SIPTO_L_GW_TransportLayerAddress      ((ProtocolIE_ID_t)168)
+#define ProtocolIE_ID_id_X2RemovalThreshold    ((ProtocolIE_ID_t)169)
+#define ProtocolIE_ID_id_CellReportingIndicator        ((ProtocolIE_ID_t)170)
+#define ProtocolIE_ID_id_BearerType    ((ProtocolIE_ID_t)171)
+#define ProtocolIE_ID_id_resumeID      ((ProtocolIE_ID_t)172)
+#define ProtocolIE_ID_id_UE_ContextInformationRetrieve ((ProtocolIE_ID_t)173)
+#define ProtocolIE_ID_id_E_RABs_ToBeSetupRetrieve_Item ((ProtocolIE_ID_t)174)
+#define ProtocolIE_ID_id_NewEUTRANCellIdentifier       ((ProtocolIE_ID_t)175)
+#define ProtocolIE_ID_id_V2XServicesAuthorized ((ProtocolIE_ID_t)176)
+#define ProtocolIE_ID_id_OffsetOfNbiotChannelNumberToDL_EARFCN ((ProtocolIE_ID_t)177)
+#define ProtocolIE_ID_id_OffsetOfNbiotChannelNumberToUL_EARFCN ((ProtocolIE_ID_t)178)
+#define ProtocolIE_ID_id_AdditionalSpecialSubframeExtension_Info       ((ProtocolIE_ID_t)179)
+#define ProtocolIE_ID_id_BandwidthReducedSI    ((ProtocolIE_ID_t)180)
+#define ProtocolIE_ID_id_MakeBeforeBreakIndicator      ((ProtocolIE_ID_t)181)
+#define ProtocolIE_ID_id_UE_ContextReferenceAtWT       ((ProtocolIE_ID_t)182)
+#define ProtocolIE_ID_id_WT_UE_ContextKeptIndicator    ((ProtocolIE_ID_t)183)
+#define ProtocolIE_ID_id_UESidelinkAggregateMaximumBitRate     ((ProtocolIE_ID_t)184)
+#define ProtocolIE_ID_id_uL_GTPtunnelEndpoint  ((ProtocolIE_ID_t)185)
+#define ProtocolIE_ID_id_DL_scheduling_PDCCH_CCE_usage ((ProtocolIE_ID_t)193)
+#define ProtocolIE_ID_id_UL_scheduling_PDCCH_CCE_usage ((ProtocolIE_ID_t)194)
+#define ProtocolIE_ID_id_UEAppLayerMeasConfig  ((ProtocolIE_ID_t)195)
+#define ProtocolIE_ID_id_extended_e_RAB_MaximumBitrateDL       ((ProtocolIE_ID_t)196)
+#define ProtocolIE_ID_id_extended_e_RAB_MaximumBitrateUL       ((ProtocolIE_ID_t)197)
+#define ProtocolIE_ID_id_extended_e_RAB_GuaranteedBitrateDL    ((ProtocolIE_ID_t)198)
+#define ProtocolIE_ID_id_extended_e_RAB_GuaranteedBitrateUL    ((ProtocolIE_ID_t)199)
+#define ProtocolIE_ID_id_extended_uEaggregateMaximumBitRateDownlink    ((ProtocolIE_ID_t)200)
+#define ProtocolIE_ID_id_extended_uEaggregateMaximumBitRateUplink      ((ProtocolIE_ID_t)201)
+#define ProtocolIE_ID_id_NRrestrictioninEPSasSecondaryRAT      ((ProtocolIE_ID_t)202)
+#define ProtocolIE_ID_id_SgNBSecurityKey       ((ProtocolIE_ID_t)203)
+#define ProtocolIE_ID_id_SgNBUEAggregateMaximumBitRate ((ProtocolIE_ID_t)204)
+#define ProtocolIE_ID_id_E_RABs_ToBeAdded_SgNBAddReqList       ((ProtocolIE_ID_t)205)
+#define ProtocolIE_ID_id_MeNBtoSgNBContainer   ((ProtocolIE_ID_t)206)
+#define ProtocolIE_ID_id_SgNB_UE_X2AP_ID       ((ProtocolIE_ID_t)207)
+#define ProtocolIE_ID_id_RequestedSplitSRBs    ((ProtocolIE_ID_t)208)
+#define ProtocolIE_ID_id_E_RABs_ToBeAdded_SgNBAddReq_Item      ((ProtocolIE_ID_t)209)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList   ((ProtocolIE_ID_t)210)
+#define ProtocolIE_ID_id_SgNBtoMeNBContainer   ((ProtocolIE_ID_t)211)
+#define ProtocolIE_ID_id_AdmittedSplitSRBs     ((ProtocolIE_ID_t)212)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item  ((ProtocolIE_ID_t)213)
+#define ProtocolIE_ID_id_ResponseInformationSgNBReconfComp     ((ProtocolIE_ID_t)214)
+#define ProtocolIE_ID_id_UE_ContextInformation_SgNBModReq      ((ProtocolIE_ID_t)215)
+#define ProtocolIE_ID_id_E_RABs_ToBeAdded_SgNBModReq_Item      ((ProtocolIE_ID_t)216)
+#define ProtocolIE_ID_id_E_RABs_ToBeModified_SgNBModReq_Item   ((ProtocolIE_ID_t)217)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBModReq_Item   ((ProtocolIE_ID_t)218)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList      ((ProtocolIE_ID_t)219)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeModified_SgNBModAckList   ((ProtocolIE_ID_t)220)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList   ((ProtocolIE_ID_t)221)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item     ((ProtocolIE_ID_t)222)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item  ((ProtocolIE_ID_t)223)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item  ((ProtocolIE_ID_t)224)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBModReqdList   ((ProtocolIE_ID_t)225)
+#define ProtocolIE_ID_id_E_RABs_ToBeModified_SgNBModReqdList   ((ProtocolIE_ID_t)226)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBModReqd_Item  ((ProtocolIE_ID_t)227)
+#define ProtocolIE_ID_id_E_RABs_ToBeModified_SgNBModReqd_Item  ((ProtocolIE_ID_t)228)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBChaConfList   ((ProtocolIE_ID_t)229)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBChaConf_Item  ((ProtocolIE_ID_t)230)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBRelReqList    ((ProtocolIE_ID_t)231)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBRelReq_Item   ((ProtocolIE_ID_t)232)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBRelConfList   ((ProtocolIE_ID_t)233)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBRelConf_Item  ((ProtocolIE_ID_t)234)
+#define ProtocolIE_ID_id_E_RABs_SubjectToSgNBCounterCheck_List ((ProtocolIE_ID_t)235)
+#define ProtocolIE_ID_id_E_RABs_SubjectToSgNBCounterCheck_Item ((ProtocolIE_ID_t)236)
+#define ProtocolIE_ID_id_RRCContainer  ((ProtocolIE_ID_t)237)
+#define ProtocolIE_ID_id_SRBType       ((ProtocolIE_ID_t)238)
+#define ProtocolIE_ID_id_Target_SgNB_ID        ((ProtocolIE_ID_t)239)
+#define ProtocolIE_ID_id_HandoverRestrictionList       ((ProtocolIE_ID_t)240)
+#define ProtocolIE_ID_id_SCGConfigurationQuery ((ProtocolIE_ID_t)241)
+#define ProtocolIE_ID_id_SplitSRB      ((ProtocolIE_ID_t)242)
+#define ProtocolIE_ID_id_UENRMeasurement       ((ProtocolIE_ID_t)243)
+#define ProtocolIE_ID_id_InitiatingNodeType_EndcX2Setup        ((ProtocolIE_ID_t)244)
+#define ProtocolIE_ID_id_InitiatingNodeType_EndcConfigUpdate   ((ProtocolIE_ID_t)245)
+#define ProtocolIE_ID_id_RespondingNodeType_EndcX2Setup        ((ProtocolIE_ID_t)246)
+#define ProtocolIE_ID_id_RespondingNodeType_EndcConfigUpdate   ((ProtocolIE_ID_t)247)
+#define ProtocolIE_ID_id_NRUESecurityCapabilities      ((ProtocolIE_ID_t)248)
+#define ProtocolIE_ID_id_PDCPChangeIndication  ((ProtocolIE_ID_t)249)
+#define ProtocolIE_ID_id_ServedEUTRAcellsENDCX2ManagementList  ((ProtocolIE_ID_t)250)
+#define ProtocolIE_ID_id_CellAssistanceInformation     ((ProtocolIE_ID_t)251)
+#define ProtocolIE_ID_id_Globalen_gNB_ID       ((ProtocolIE_ID_t)252)
+#define ProtocolIE_ID_id_ServedNRcellsENDCX2ManagementList     ((ProtocolIE_ID_t)253)
+#define ProtocolIE_ID_id_UE_ContextReferenceAtSgNB     ((ProtocolIE_ID_t)254)
+#define ProtocolIE_ID_id_SecondaryRATUsageReport       ((ProtocolIE_ID_t)255)
+#define ProtocolIE_ID_id_ActivationID  ((ProtocolIE_ID_t)256)
+#define ProtocolIE_ID_id_MeNBResourceCoordinationInformation   ((ProtocolIE_ID_t)257)
+#define ProtocolIE_ID_id_SgNBResourceCoordinationInformation   ((ProtocolIE_ID_t)258)
+#define ProtocolIE_ID_id_ServedEUTRAcellsToModifyListENDCConfUpd       ((ProtocolIE_ID_t)259)
+#define ProtocolIE_ID_id_ServedEUTRAcellsToDeleteListENDCConfUpd       ((ProtocolIE_ID_t)260)
+#define ProtocolIE_ID_id_ServedNRcellsToModifyListENDCConfUpd  ((ProtocolIE_ID_t)261)
+#define ProtocolIE_ID_id_ServedNRcellsToDeleteListENDCConfUpd  ((ProtocolIE_ID_t)262)
+#define ProtocolIE_ID_id_E_RABUsageReport_Item ((ProtocolIE_ID_t)263)
+#define ProtocolIE_ID_id_Old_SgNB_UE_X2AP_ID   ((ProtocolIE_ID_t)264)
+#define ProtocolIE_ID_id_SecondaryRATUsageReportList   ((ProtocolIE_ID_t)265)
+#define ProtocolIE_ID_id_SecondaryRATUsageReport_Item  ((ProtocolIE_ID_t)266)
+#define ProtocolIE_ID_id_ServedNRCellsToActivate       ((ProtocolIE_ID_t)267)
+#define ProtocolIE_ID_id_ActivatedNRCellList   ((ProtocolIE_ID_t)268)
+#define ProtocolIE_ID_id_SelectedPLMN  ((ProtocolIE_ID_t)269)
+#define ProtocolIE_ID_id_UEs_ToBeReset ((ProtocolIE_ID_t)270)
+#define ProtocolIE_ID_id_UEs_Admitted_ToBeReset        ((ProtocolIE_ID_t)271)
+#define ProtocolIE_ID_id_RRCConfigIndication   ((ProtocolIE_ID_t)272)
+#define ProtocolIE_ID_id_DownlinkPacketLossRate        ((ProtocolIE_ID_t)273)
+#define ProtocolIE_ID_id_UplinkPacketLossRate  ((ProtocolIE_ID_t)274)
+#define ProtocolIE_ID_id_SubscriberProfileIDforRFP     ((ProtocolIE_ID_t)275)
+#define ProtocolIE_ID_id_serviceType   ((ProtocolIE_ID_t)276)
+#define ProtocolIE_ID_id_AerialUEsubscriptionInformation       ((ProtocolIE_ID_t)277)
+#define ProtocolIE_ID_id_SGNB_Addition_Trigger_Ind     ((ProtocolIE_ID_t)278)
+#define ProtocolIE_ID_id_MeNBCell_ID   ((ProtocolIE_ID_t)279)
+#define ProtocolIE_ID_id_RequestedSplitSRBsrelease     ((ProtocolIE_ID_t)280)
+#define ProtocolIE_ID_id_AdmittedSplitSRBsrelease      ((ProtocolIE_ID_t)281)
+#define ProtocolIE_ID_id_NRS_NSSS_PowerOffset  ((ProtocolIE_ID_t)282)
+#define ProtocolIE_ID_id_NSSS_NumOccasionDifferentPrecoder     ((ProtocolIE_ID_t)283)
+#define ProtocolIE_ID_id_ProtectedEUTRAResourceIndication      ((ProtocolIE_ID_t)284)
+#define ProtocolIE_ID_id_InitiatingNodeType_EutranrCellResourceCoordination    ((ProtocolIE_ID_t)285)
+#define ProtocolIE_ID_id_RespondingNodeType_EutranrCellResourceCoordination    ((ProtocolIE_ID_t)286)
+#define ProtocolIE_ID_id_DataTrafficResourceIndication ((ProtocolIE_ID_t)287)
+#define ProtocolIE_ID_id_SpectrumSharingGroupID        ((ProtocolIE_ID_t)288)
+#define ProtocolIE_ID_id_ListofEUTRACellsinEUTRACoordinationReq        ((ProtocolIE_ID_t)289)
+#define ProtocolIE_ID_id_ListofEUTRACellsinEUTRACoordinationResp       ((ProtocolIE_ID_t)290)
+#define ProtocolIE_ID_id_ListofEUTRACellsinNRCoordinationReq   ((ProtocolIE_ID_t)291)
+#define ProtocolIE_ID_id_ListofNRCellsinNRCoordinationReq      ((ProtocolIE_ID_t)292)
+#define ProtocolIE_ID_id_ListofNRCellsinNRCoordinationResp     ((ProtocolIE_ID_t)293)
+#define ProtocolIE_ID_id_E_RABs_AdmittedToBeModified_SgNBModConfList   ((ProtocolIE_ID_t)294)
+#define ProtocolIE_ID_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item  ((ProtocolIE_ID_t)295)
+#define ProtocolIE_ID_id_UEContextLevelUserPlaneActivity       ((ProtocolIE_ID_t)296)
+#define ProtocolIE_ID_id_ERABActivityNotifyItemList    ((ProtocolIE_ID_t)297)
+#define ProtocolIE_ID_id_InitiatingNodeType_EndcX2Removal      ((ProtocolIE_ID_t)298)
+#define ProtocolIE_ID_id_RespondingNodeType_EndcX2Removal      ((ProtocolIE_ID_t)299)
+#define ProtocolIE_ID_id_RLC_Status    ((ProtocolIE_ID_t)300)
+#define ProtocolIE_ID_id_CNTypeRestrictions    ((ProtocolIE_ID_t)301)
+#define ProtocolIE_ID_id_uLpDCPSnLength        ((ProtocolIE_ID_t)302)
+#define ProtocolIE_ID_id_BluetoothMeasurementConfiguration     ((ProtocolIE_ID_t)303)
+#define ProtocolIE_ID_id_WLANMeasurementConfiguration  ((ProtocolIE_ID_t)304)
+#define ProtocolIE_ID_id_NRrestrictionin5GS    ((ProtocolIE_ID_t)305)
+#define ProtocolIE_ID_id_dL_Forwarding ((ProtocolIE_ID_t)306)
+#define ProtocolIE_ID_id_E_RABs_DataForwardingAddress_List     ((ProtocolIE_ID_t)307)
+#define ProtocolIE_ID_id_E_RABs_DataForwardingAddress_Item     ((ProtocolIE_ID_t)308)
+#define ProtocolIE_ID_id_Subscription_Based_UE_DifferentiationInfo     ((ProtocolIE_ID_t)309)
+#define ProtocolIE_ID_id_GNBOverloadInformation        ((ProtocolIE_ID_t)310)
+#define ProtocolIE_ID_id_dLPDCPSnLength        ((ProtocolIE_ID_t)311)
+#define ProtocolIE_ID_id_secondarysgNBDLGTPTEIDatPDCP  ((ProtocolIE_ID_t)312)
+#define ProtocolIE_ID_id_secondarymeNBULGTPTEIDatPDCP  ((ProtocolIE_ID_t)313)
+#define ProtocolIE_ID_id_lCID  ((ProtocolIE_ID_t)314)
+#define ProtocolIE_ID_id_duplicationActivation ((ProtocolIE_ID_t)315)
+#define ProtocolIE_ID_id_ECGI  ((ProtocolIE_ID_t)316)
+#define ProtocolIE_ID_id_RLCMode_transferred   ((ProtocolIE_ID_t)317)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList        ((ProtocolIE_ID_t)318)
+#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item       ((ProtocolIE_ID_t)319)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBRelReqdList   ((ProtocolIE_ID_t)320)
+#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBRelReqd_Item  ((ProtocolIE_ID_t)321)
+#define ProtocolIE_ID_id_NRCGI ((ProtocolIE_ID_t)322)
+#define ProtocolIE_ID_id_MeNBCoordinationAssistanceInformation ((ProtocolIE_ID_t)323)
+#define ProtocolIE_ID_id_SgNBCoordinationAssistanceInformation ((ProtocolIE_ID_t)324)
+#define ProtocolIE_ID_id_new_drb_ID_req        ((ProtocolIE_ID_t)325)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolIE_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ProtocolIE-Single-Container.h b/e2ap/headers/ProtocolIE-Single-Container.h
new file mode 100644 (file)
index 0000000..ffad2cc
--- /dev/null
@@ -0,0 +1,765 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ProtocolIE_Single_Container_H_
+#define        _ProtocolIE_Single_Container_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Field.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ProtocolIE-Single-Container */
+typedef RICaction_ToBeSetup_ItemIEs_t   ProtocolIE_Single_Container_9518P0_t;
+typedef RICaction_Admitted_ItemIEs_t    ProtocolIE_Single_Container_9518P1_t;
+typedef RICaction_NotAdmitted_ItemIEs_t         ProtocolIE_Single_Container_9518P2_t;
+typedef RANfunction_ItemIEs_t   ProtocolIE_Single_Container_9518P3_t;
+typedef RANfunctionID_ItemIEs_t         ProtocolIE_Single_Container_9518P4_t;
+typedef RANfunctionIDcause_ItemIEs_t    ProtocolIE_Single_Container_9518P5_t;
+typedef E_RABs_ToBeSetup_ItemIEs_t      ProtocolIE_Single_Container_9518P6_t;
+typedef E_RABs_Admitted_ItemIEs_t       ProtocolIE_Single_Container_9518P7_t;
+typedef E_RABs_SubjectToStatusTransfer_ItemIEs_t        ProtocolIE_Single_Container_9518P8_t;
+typedef CellInformation_ItemIEs_t       ProtocolIE_Single_Container_9518P9_t;
+typedef CellToReport_ItemIEs_t  ProtocolIE_Single_Container_9518P10_t;
+typedef MeasurementInitiationResult_ItemIEs_t   ProtocolIE_Single_Container_9518P11_t;
+typedef MeasurementFailureCause_ItemIEs_t       ProtocolIE_Single_Container_9518P12_t;
+typedef CompleteFailureCauseInformation_ItemIEs_t       ProtocolIE_Single_Container_9518P13_t;
+typedef CellMeasurementResult_ItemIEs_t         ProtocolIE_Single_Container_9518P14_t;
+typedef E_RABs_ToBeAdded_ItemIEs_t      ProtocolIE_Single_Container_9518P15_t;
+typedef E_RABs_Admitted_ToBeAdded_ItemIEs_t     ProtocolIE_Single_Container_9518P16_t;
+typedef E_RABs_ToBeAdded_ModReqItemIEs_t        ProtocolIE_Single_Container_9518P17_t;
+typedef E_RABs_ToBeModified_ModReqItemIEs_t     ProtocolIE_Single_Container_9518P18_t;
+typedef E_RABs_ToBeReleased_ModReqItemIEs_t     ProtocolIE_Single_Container_9518P19_t;
+typedef E_RABs_Admitted_ToBeAdded_ModAckItemIEs_t       ProtocolIE_Single_Container_9518P20_t;
+typedef E_RABs_Admitted_ToBeModified_ModAckItemIEs_t    ProtocolIE_Single_Container_9518P21_t;
+typedef E_RABs_Admitted_ToBeReleased_ModAckItemIEs_t    ProtocolIE_Single_Container_9518P22_t;
+typedef E_RABs_ToBeReleased_ModReqdItemIEs_t    ProtocolIE_Single_Container_9518P23_t;
+typedef E_RABs_ToBeReleased_RelReqItemIEs_t     ProtocolIE_Single_Container_9518P24_t;
+typedef E_RABs_ToBeReleased_RelConfItemIEs_t    ProtocolIE_Single_Container_9518P25_t;
+typedef E_RABs_SubjectToCounterCheckItemIEs_t   ProtocolIE_Single_Container_9518P26_t;
+typedef E_RABs_ToBeSetupRetrieve_ItemIEs_t      ProtocolIE_Single_Container_9518P27_t;
+typedef E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t   ProtocolIE_Single_Container_9518P28_t;
+typedef E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_t       ProtocolIE_Single_Container_9518P29_t;
+typedef E_RABs_ToBeAdded_SgNBModReq_ItemIEs_t   ProtocolIE_Single_Container_9518P30_t;
+typedef E_RABs_ToBeModified_SgNBModReq_ItemIEs_t        ProtocolIE_Single_Container_9518P31_t;
+typedef E_RABs_ToBeReleased_SgNBModReq_ItemIEs_t        ProtocolIE_Single_Container_9518P32_t;
+typedef E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_t  ProtocolIE_Single_Container_9518P33_t;
+typedef E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_t       ProtocolIE_Single_Container_9518P34_t;
+typedef E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_t       ProtocolIE_Single_Container_9518P35_t;
+typedef E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_t       ProtocolIE_Single_Container_9518P36_t;
+typedef E_RABs_ToBeModified_SgNBModReqd_ItemIEs_t       ProtocolIE_Single_Container_9518P37_t;
+typedef E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_t       ProtocolIE_Single_Container_9518P38_t;
+typedef E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_t        ProtocolIE_Single_Container_9518P39_t;
+typedef E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_t    ProtocolIE_Single_Container_9518P40_t;
+typedef E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_t       ProtocolIE_Single_Container_9518P41_t;
+typedef E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_t       ProtocolIE_Single_Container_9518P42_t;
+typedef E_RABs_SubjectToSgNBCounterCheck_ItemIEs_t      ProtocolIE_Single_Container_9518P43_t;
+typedef E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_t       ProtocolIE_Single_Container_9518P44_t;
+typedef E_RABs_DataForwardingAddress_ItemIEs_t  ProtocolIE_Single_Container_9518P45_t;
+typedef E_RAB_ItemIEs_t         ProtocolIE_Single_Container_9518P46_t;
+typedef E_RABUsageReport_ItemIEs_t      ProtocolIE_Single_Container_9518P47_t;
+typedef SecondaryRATUsageReport_ItemIEs_t       ProtocolIE_Single_Container_9518P48_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P0;
+asn_struct_free_f ProtocolIE_Single_Container_9518P0_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P0_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P0_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P0_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P0_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P0_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P0_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P0_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P0_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P0_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P0_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P0_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P0_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P1;
+asn_struct_free_f ProtocolIE_Single_Container_9518P1_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P1_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P1_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P1_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P1_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P1_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P1_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P1_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P1_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P1_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P1_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P1_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P1_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P2;
+asn_struct_free_f ProtocolIE_Single_Container_9518P2_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P2_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P2_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P2_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P2_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P2_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P2_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P2_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P2_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P2_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P2_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P2_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P2_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P3;
+asn_struct_free_f ProtocolIE_Single_Container_9518P3_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P3_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P3_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P3_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P3_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P3_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P3_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P3_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P3_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P3_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P3_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P3_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P3_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P4;
+asn_struct_free_f ProtocolIE_Single_Container_9518P4_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P4_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P4_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P4_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P4_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P4_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P4_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P4_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P4_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P4_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P4_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P4_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P4_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P5;
+asn_struct_free_f ProtocolIE_Single_Container_9518P5_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P5_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P5_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P5_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P5_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P5_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P5_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P5_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P5_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P5_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P5_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P5_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P5_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P6;
+asn_struct_free_f ProtocolIE_Single_Container_9518P6_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P6_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P6_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P6_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P6_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P6_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P6_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P6_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P6_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P6_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P6_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P6_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P6_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P7;
+asn_struct_free_f ProtocolIE_Single_Container_9518P7_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P7_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P7_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P7_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P7_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P7_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P7_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P7_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P7_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P7_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P7_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P7_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P7_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P8;
+asn_struct_free_f ProtocolIE_Single_Container_9518P8_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P8_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P8_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P8_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P8_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P8_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P8_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P8_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P8_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P8_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P8_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P8_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P8_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P9;
+asn_struct_free_f ProtocolIE_Single_Container_9518P9_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P9_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P9_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P9_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P9_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P9_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P9_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P9_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P9_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P9_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P9_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P9_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P9_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P10;
+asn_struct_free_f ProtocolIE_Single_Container_9518P10_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P10_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P10_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P10_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P10_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P10_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P10_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P10_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P10_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P10_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P10_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P10_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P10_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P11;
+asn_struct_free_f ProtocolIE_Single_Container_9518P11_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P11_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P11_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P11_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P11_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P11_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P11_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P11_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P11_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P11_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P11_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P11_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P11_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P12;
+asn_struct_free_f ProtocolIE_Single_Container_9518P12_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P12_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P12_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P12_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P12_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P12_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P12_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P12_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P12_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P12_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P12_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P12_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P12_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P13;
+asn_struct_free_f ProtocolIE_Single_Container_9518P13_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P13_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P13_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P13_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P13_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P13_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P13_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P13_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P13_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P13_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P13_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P13_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P13_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P14;
+asn_struct_free_f ProtocolIE_Single_Container_9518P14_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P14_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P14_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P14_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P14_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P14_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P14_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P14_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P14_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P14_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P14_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P14_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P14_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P15;
+asn_struct_free_f ProtocolIE_Single_Container_9518P15_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P15_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P15_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P15_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P15_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P15_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P15_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P15_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P15_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P15_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P15_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P15_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P15_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P16;
+asn_struct_free_f ProtocolIE_Single_Container_9518P16_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P16_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P16_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P16_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P16_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P16_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P16_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P16_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P16_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P16_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P16_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P16_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P16_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P17;
+asn_struct_free_f ProtocolIE_Single_Container_9518P17_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P17_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P17_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P17_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P17_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P17_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P17_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P17_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P17_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P17_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P17_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P17_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P17_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P18;
+asn_struct_free_f ProtocolIE_Single_Container_9518P18_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P18_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P18_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P18_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P18_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P18_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P18_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P18_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P18_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P18_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P18_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P18_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P18_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P19;
+asn_struct_free_f ProtocolIE_Single_Container_9518P19_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P19_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P19_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P19_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P19_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P19_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P19_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P19_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P19_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P19_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P19_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P19_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P19_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P20;
+asn_struct_free_f ProtocolIE_Single_Container_9518P20_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P20_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P20_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P20_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P20_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P20_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P20_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P20_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P20_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P20_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P20_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P20_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P20_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P21;
+asn_struct_free_f ProtocolIE_Single_Container_9518P21_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P21_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P21_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P21_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P21_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P21_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P21_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P21_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P21_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P21_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P21_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P21_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P21_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P22;
+asn_struct_free_f ProtocolIE_Single_Container_9518P22_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P22_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P22_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P22_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P22_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P22_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P22_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P22_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P22_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P22_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P22_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P22_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P22_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P23;
+asn_struct_free_f ProtocolIE_Single_Container_9518P23_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P23_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P23_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P23_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P23_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P23_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P23_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P23_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P23_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P23_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P23_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P23_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P23_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P24;
+asn_struct_free_f ProtocolIE_Single_Container_9518P24_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P24_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P24_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P24_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P24_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P24_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P24_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P24_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P24_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P24_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P24_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P24_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P24_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P25;
+asn_struct_free_f ProtocolIE_Single_Container_9518P25_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P25_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P25_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P25_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P25_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P25_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P25_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P25_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P25_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P25_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P25_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P25_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P25_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P26;
+asn_struct_free_f ProtocolIE_Single_Container_9518P26_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P26_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P26_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P26_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P26_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P26_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P26_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P26_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P26_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P26_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P26_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P26_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P26_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P27;
+asn_struct_free_f ProtocolIE_Single_Container_9518P27_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P27_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P27_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P27_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P27_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P27_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P27_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P27_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P27_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P27_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P27_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P27_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P27_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P28;
+asn_struct_free_f ProtocolIE_Single_Container_9518P28_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P28_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P28_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P28_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P28_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P28_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P28_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P28_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P28_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P28_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P28_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P28_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P28_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P29;
+asn_struct_free_f ProtocolIE_Single_Container_9518P29_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P29_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P29_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P29_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P29_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P29_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P29_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P29_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P29_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P29_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P29_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P29_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P29_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P30;
+asn_struct_free_f ProtocolIE_Single_Container_9518P30_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P30_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P30_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P30_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P30_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P30_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P30_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P30_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P30_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P30_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P30_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P30_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P30_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P31;
+asn_struct_free_f ProtocolIE_Single_Container_9518P31_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P31_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P31_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P31_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P31_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P31_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P31_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P31_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P31_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P31_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P31_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P31_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P31_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P32;
+asn_struct_free_f ProtocolIE_Single_Container_9518P32_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P32_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P32_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P32_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P32_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P32_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P32_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P32_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P32_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P32_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P32_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P32_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P32_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P33;
+asn_struct_free_f ProtocolIE_Single_Container_9518P33_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P33_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P33_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P33_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P33_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P33_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P33_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P33_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P33_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P33_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P33_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P33_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P33_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P34;
+asn_struct_free_f ProtocolIE_Single_Container_9518P34_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P34_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P34_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P34_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P34_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P34_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P34_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P34_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P34_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P34_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P34_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P34_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P34_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P35;
+asn_struct_free_f ProtocolIE_Single_Container_9518P35_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P35_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P35_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P35_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P35_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P35_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P35_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P35_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P35_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P35_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P35_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P35_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P35_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P36;
+asn_struct_free_f ProtocolIE_Single_Container_9518P36_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P36_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P36_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P36_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P36_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P36_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P36_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P36_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P36_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P36_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P36_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P36_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P36_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P37;
+asn_struct_free_f ProtocolIE_Single_Container_9518P37_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P37_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P37_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P37_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P37_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P37_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P37_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P37_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P37_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P37_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P37_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P37_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P37_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P38;
+asn_struct_free_f ProtocolIE_Single_Container_9518P38_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P38_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P38_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P38_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P38_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P38_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P38_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P38_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P38_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P38_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P38_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P38_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P38_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P39;
+asn_struct_free_f ProtocolIE_Single_Container_9518P39_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P39_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P39_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P39_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P39_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P39_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P39_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P39_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P39_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P39_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P39_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P39_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P39_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P40;
+asn_struct_free_f ProtocolIE_Single_Container_9518P40_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P40_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P40_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P40_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P40_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P40_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P40_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P40_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P40_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P40_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P40_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P40_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P40_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P41;
+asn_struct_free_f ProtocolIE_Single_Container_9518P41_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P41_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P41_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P41_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P41_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P41_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P41_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P41_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P41_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P41_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P41_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P41_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P41_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P42;
+asn_struct_free_f ProtocolIE_Single_Container_9518P42_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P42_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P42_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P42_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P42_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P42_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P42_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P42_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P42_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P42_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P42_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P42_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P42_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P43;
+asn_struct_free_f ProtocolIE_Single_Container_9518P43_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P43_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P43_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P43_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P43_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P43_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P43_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P43_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P43_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P43_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P43_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P43_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P43_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P44;
+asn_struct_free_f ProtocolIE_Single_Container_9518P44_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P44_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P44_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P44_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P44_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P44_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P44_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P44_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P44_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P44_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P44_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P44_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P44_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P45;
+asn_struct_free_f ProtocolIE_Single_Container_9518P45_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P45_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P45_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P45_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P45_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P45_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P45_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P45_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P45_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P45_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P45_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P45_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P45_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P46;
+asn_struct_free_f ProtocolIE_Single_Container_9518P46_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P46_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P46_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P46_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P46_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P46_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P46_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P46_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P46_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P46_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P46_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P46_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P46_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P47;
+asn_struct_free_f ProtocolIE_Single_Container_9518P47_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P47_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P47_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P47_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P47_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P47_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P47_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P47_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P47_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P47_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P47_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P47_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P47_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P48;
+asn_struct_free_f ProtocolIE_Single_Container_9518P48_free;
+asn_struct_print_f ProtocolIE_Single_Container_9518P48_print;
+asn_constr_check_f ProtocolIE_Single_Container_9518P48_constraint;
+ber_type_decoder_f ProtocolIE_Single_Container_9518P48_decode_ber;
+der_type_encoder_f ProtocolIE_Single_Container_9518P48_encode_der;
+xer_type_decoder_f ProtocolIE_Single_Container_9518P48_decode_xer;
+xer_type_encoder_f ProtocolIE_Single_Container_9518P48_encode_xer;
+oer_type_decoder_f ProtocolIE_Single_Container_9518P48_decode_oer;
+oer_type_encoder_f ProtocolIE_Single_Container_9518P48_encode_oer;
+per_type_decoder_f ProtocolIE_Single_Container_9518P48_decode_uper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P48_encode_uper;
+per_type_decoder_f ProtocolIE_Single_Container_9518P48_decode_aper;
+per_type_encoder_f ProtocolIE_Single_Container_9518P48_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolIE_Single_Container_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/QCI.h b/e2ap/headers/QCI.h
new file mode 100644 (file)
index 0000000..94a0bd7
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _QCI_H_
+#define        _QCI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* QCI */
+typedef long    QCI_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_QCI_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_QCI;
+asn_struct_free_f QCI_free;
+asn_struct_print_f QCI_print;
+asn_constr_check_f QCI_constraint;
+ber_type_decoder_f QCI_decode_ber;
+der_type_encoder_f QCI_encode_der;
+xer_type_decoder_f QCI_decode_xer;
+xer_type_encoder_f QCI_encode_xer;
+oer_type_decoder_f QCI_decode_oer;
+oer_type_encoder_f QCI_encode_oer;
+per_type_decoder_f QCI_decode_uper;
+per_type_encoder_f QCI_encode_uper;
+per_type_decoder_f QCI_decode_aper;
+per_type_encoder_f QCI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _QCI_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RANfunction-Item.h b/e2ap/headers/RANfunction-Item.h
new file mode 100644 (file)
index 0000000..5949eef
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RANfunction_Item_H_
+#define        _RANfunction_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANfunctionID.h"
+#include "RANfunctionDefinition.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANfunction-Item */
+typedef struct RANfunction_Item {
+       RANfunctionID_t  ranFunctionID;
+       RANfunctionDefinition_t  ranFunctionDefinition;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RANfunction_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RANfunction_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RANfunctionDefinition.h b/e2ap/headers/RANfunctionDefinition.h
new file mode 100644 (file)
index 0000000..6d73fbd
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RANfunctionDefinition_H_
+#define        _RANfunctionDefinition_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANfunctionDefinition */
+typedef OCTET_STRING_t  RANfunctionDefinition_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition;
+asn_struct_free_f RANfunctionDefinition_free;
+asn_struct_print_f RANfunctionDefinition_print;
+asn_constr_check_f RANfunctionDefinition_constraint;
+ber_type_decoder_f RANfunctionDefinition_decode_ber;
+der_type_encoder_f RANfunctionDefinition_encode_der;
+xer_type_decoder_f RANfunctionDefinition_decode_xer;
+xer_type_encoder_f RANfunctionDefinition_encode_xer;
+oer_type_decoder_f RANfunctionDefinition_decode_oer;
+oer_type_encoder_f RANfunctionDefinition_encode_oer;
+per_type_decoder_f RANfunctionDefinition_decode_uper;
+per_type_encoder_f RANfunctionDefinition_encode_uper;
+per_type_decoder_f RANfunctionDefinition_decode_aper;
+per_type_encoder_f RANfunctionDefinition_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RANfunctionDefinition_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RANfunctionID-Item.h b/e2ap/headers/RANfunctionID-Item.h
new file mode 100644 (file)
index 0000000..ff42ce5
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RANfunctionID_Item_H_
+#define        _RANfunctionID_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANfunctionID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANfunctionID-Item */
+typedef struct RANfunctionID_Item {
+       RANfunctionID_t  ranFunctionID;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RANfunctionID_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RANfunctionID_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RANfunctionID.h b/e2ap/headers/RANfunctionID.h
new file mode 100644 (file)
index 0000000..fb211a3
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RANfunctionID_H_
+#define        _RANfunctionID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANfunctionID */
+typedef long    RANfunctionID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID;
+asn_struct_free_f RANfunctionID_free;
+asn_struct_print_f RANfunctionID_print;
+asn_constr_check_f RANfunctionID_constraint;
+ber_type_decoder_f RANfunctionID_decode_ber;
+der_type_encoder_f RANfunctionID_encode_der;
+xer_type_decoder_f RANfunctionID_decode_xer;
+xer_type_encoder_f RANfunctionID_encode_xer;
+oer_type_decoder_f RANfunctionID_decode_oer;
+oer_type_encoder_f RANfunctionID_encode_oer;
+per_type_decoder_f RANfunctionID_decode_uper;
+per_type_encoder_f RANfunctionID_encode_uper;
+per_type_decoder_f RANfunctionID_decode_aper;
+per_type_encoder_f RANfunctionID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RANfunctionID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RANfunctionIDcause-Item.h b/e2ap/headers/RANfunctionIDcause-Item.h
new file mode 100644 (file)
index 0000000..c4c6c82
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RANfunctionIDcause_Item_H_
+#define        _RANfunctionIDcause_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANfunctionID.h"
+#include "RICcause.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANfunctionIDcause-Item */
+typedef struct RANfunctionIDcause_Item {
+       RANfunctionID_t  ranFunctionID;
+       RICcause_t       ricCause;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RANfunctionIDcause_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RANfunctionIDcause_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RANfunctions-List.h b/e2ap/headers/RANfunctions-List.h
new file mode 100644 (file)
index 0000000..eb762d7
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RANfunctions_List_H_
+#define        _RANfunctions_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* RANfunctions-List */
+typedef struct RANfunctions_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RANfunctions_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANfunctions_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RANfunctions_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RANfunctionsID-List.h b/e2ap/headers/RANfunctionsID-List.h
new file mode 100644 (file)
index 0000000..8f2d3f4
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RANfunctionsID_List_H_
+#define        _RANfunctionsID_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* RANfunctionsID-List */
+typedef struct RANfunctionsID_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RANfunctionsID_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RANfunctionsID_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RANfunctionsIDcause-List.h b/e2ap/headers/RANfunctionsIDcause-List.h
new file mode 100644 (file)
index 0000000..e0ad6ee
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RANfunctionsIDcause_List_H_
+#define        _RANfunctionsIDcause_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* RANfunctionsIDcause-List */
+typedef struct RANfunctionsIDcause_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RANfunctionsIDcause_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RANfunctionsIDcause_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICaction-Admitted-Item.h b/e2ap/headers/RICaction-Admitted-Item.h
new file mode 100644 (file)
index 0000000..ca16ad0
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICaction_Admitted_Item_H_
+#define        _RICaction_Admitted_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RICactionID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICaction-Admitted-Item */
+typedef struct RICaction_Admitted_Item {
+       RICactionID_t    ricActionID;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICaction_Admitted_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICaction_Admitted_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICaction-Admitted-List.h b/e2ap/headers/RICaction-Admitted-List.h
new file mode 100644 (file)
index 0000000..5615f77
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICaction_Admitted_List_H_
+#define        _RICaction_Admitted_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* RICaction-Admitted-List */
+typedef struct RICaction_Admitted_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICaction_Admitted_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICaction_Admitted_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICaction-NotAdmitted-Item.h b/e2ap/headers/RICaction-NotAdmitted-Item.h
new file mode 100644 (file)
index 0000000..f491fea
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICaction_NotAdmitted_Item_H_
+#define        _RICaction_NotAdmitted_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RICactionID.h"
+#include "RICcause.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICaction-NotAdmitted-Item */
+typedef struct RICaction_NotAdmitted_Item {
+       RICactionID_t    ricActionID;
+       RICcause_t       ricCause;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICaction_NotAdmitted_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICaction_NotAdmitted_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICaction-NotAdmitted-List.h b/e2ap/headers/RICaction-NotAdmitted-List.h
new file mode 100644 (file)
index 0000000..089c262
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICaction_NotAdmitted_List_H_
+#define        _RICaction_NotAdmitted_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* RICaction-NotAdmitted-List */
+typedef struct RICaction_NotAdmitted_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICaction_NotAdmitted_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICaction_NotAdmitted_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICaction-ToBeSetup-Item.h b/e2ap/headers/RICaction-ToBeSetup-Item.h
new file mode 100644 (file)
index 0000000..88bdb07
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICaction_ToBeSetup_Item_H_
+#define        _RICaction_ToBeSetup_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RICactionID.h"
+#include "RICactionType.h"
+#include "RICactionDefinition.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RICsubsequentAction;
+
+/* RICaction-ToBeSetup-Item */
+typedef struct RICaction_ToBeSetup_Item {
+       RICactionID_t    ricActionID;
+       RICactionType_t  ricActionType;
+       RICactionDefinition_t   *ricActionDefinition;   /* OPTIONAL */
+       struct RICsubsequentAction      *ricSubsequentAction;   /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICaction_ToBeSetup_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICaction_ToBeSetup_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICactionDefinition.h b/e2ap/headers/RICactionDefinition.h
new file mode 100644 (file)
index 0000000..89135f9
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICactionDefinition_H_
+#define        _RICactionDefinition_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICactionDefinition */
+typedef OCTET_STRING_t  RICactionDefinition_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICactionDefinition;
+asn_struct_free_f RICactionDefinition_free;
+asn_struct_print_f RICactionDefinition_print;
+asn_constr_check_f RICactionDefinition_constraint;
+ber_type_decoder_f RICactionDefinition_decode_ber;
+der_type_encoder_f RICactionDefinition_encode_der;
+xer_type_decoder_f RICactionDefinition_decode_xer;
+xer_type_encoder_f RICactionDefinition_encode_xer;
+oer_type_decoder_f RICactionDefinition_decode_oer;
+oer_type_encoder_f RICactionDefinition_encode_oer;
+per_type_decoder_f RICactionDefinition_decode_uper;
+per_type_encoder_f RICactionDefinition_encode_uper;
+per_type_decoder_f RICactionDefinition_decode_aper;
+per_type_encoder_f RICactionDefinition_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICactionDefinition_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICactionID.h b/e2ap/headers/RICactionID.h
new file mode 100644 (file)
index 0000000..efaf6f3
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICactionID_H_
+#define        _RICactionID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICactionID */
+typedef long    RICactionID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RICactionID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RICactionID;
+asn_struct_free_f RICactionID_free;
+asn_struct_print_f RICactionID_print;
+asn_constr_check_f RICactionID_constraint;
+ber_type_decoder_f RICactionID_decode_ber;
+der_type_encoder_f RICactionID_encode_der;
+xer_type_decoder_f RICactionID_decode_xer;
+xer_type_encoder_f RICactionID_encode_xer;
+oer_type_decoder_f RICactionID_decode_oer;
+oer_type_encoder_f RICactionID_encode_oer;
+per_type_decoder_f RICactionID_decode_uper;
+per_type_encoder_f RICactionID_encode_uper;
+per_type_decoder_f RICactionID_decode_aper;
+per_type_encoder_f RICactionID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICactionID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICactionType.h b/e2ap/headers/RICactionType.h
new file mode 100644 (file)
index 0000000..7afe331
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICactionType_H_
+#define        _RICactionType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RICactionType {
+       RICactionType_report    = 0,
+       RICactionType_insert    = 1,
+       RICactionType_policy    = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_RICactionType;
+
+/* RICactionType */
+typedef long    RICactionType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RICactionType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RICactionType;
+extern const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1;
+asn_struct_free_f RICactionType_free;
+asn_struct_print_f RICactionType_print;
+asn_constr_check_f RICactionType_constraint;
+ber_type_decoder_f RICactionType_decode_ber;
+der_type_encoder_f RICactionType_encode_der;
+xer_type_decoder_f RICactionType_decode_xer;
+xer_type_encoder_f RICactionType_encode_xer;
+oer_type_decoder_f RICactionType_decode_oer;
+oer_type_encoder_f RICactionType_encode_oer;
+per_type_decoder_f RICactionType_decode_uper;
+per_type_encoder_f RICactionType_encode_uper;
+per_type_decoder_f RICactionType_decode_aper;
+per_type_encoder_f RICactionType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICactionType_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICactions-ToBeSetup-List.h b/e2ap/headers/RICactions-ToBeSetup-List.h
new file mode 100644 (file)
index 0000000..ea6450b
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICactions_ToBeSetup_List_H_
+#define        _RICactions_ToBeSetup_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* RICactions-ToBeSetup-List */
+typedef struct RICactions_ToBeSetup_List {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICactions_ToBeSetup_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List;
+extern asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[1];
+extern asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICactions_ToBeSetup_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICcallProcessID.h b/e2ap/headers/RICcallProcessID.h
new file mode 100644 (file)
index 0000000..252b2ec
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICcallProcessID_H_
+#define        _RICcallProcessID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICcallProcessID */
+typedef OCTET_STRING_t  RICcallProcessID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICcallProcessID;
+asn_struct_free_f RICcallProcessID_free;
+asn_struct_print_f RICcallProcessID_print;
+asn_constr_check_f RICcallProcessID_constraint;
+ber_type_decoder_f RICcallProcessID_decode_ber;
+der_type_encoder_f RICcallProcessID_encode_der;
+xer_type_decoder_f RICcallProcessID_decode_xer;
+xer_type_encoder_f RICcallProcessID_encode_xer;
+oer_type_decoder_f RICcallProcessID_decode_oer;
+oer_type_encoder_f RICcallProcessID_encode_oer;
+per_type_decoder_f RICcallProcessID_decode_uper;
+per_type_encoder_f RICcallProcessID_encode_uper;
+per_type_decoder_f RICcallProcessID_decode_aper;
+per_type_encoder_f RICcallProcessID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICcallProcessID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICcause.h b/e2ap/headers/RICcause.h
new file mode 100644 (file)
index 0000000..df928a4
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICcause_H_
+#define        _RICcause_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "CauseRadioNetwork.h"
+#include "CauseTransport.h"
+#include "CauseProtocol.h"
+#include "CauseMisc.h"
+#include "CauseRIC.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RICcause_PR {
+       RICcause_PR_NOTHING,    /* No components present */
+       RICcause_PR_radioNetwork,
+       RICcause_PR_transport,
+       RICcause_PR_protocol,
+       RICcause_PR_misc,
+       RICcause_PR_ric
+       /* Extensions may appear below */
+       
+} RICcause_PR;
+
+/* RICcause */
+typedef struct RICcause {
+       RICcause_PR present;
+       union RICcause_u {
+               CauseRadioNetwork_t      radioNetwork;
+               CauseTransport_t         transport;
+               CauseProtocol_t  protocol;
+               CauseMisc_t      misc;
+               CauseRIC_t       ric;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICcause_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICcause;
+extern asn_CHOICE_specifics_t asn_SPC_RICcause_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICcause_1[5];
+extern asn_per_constraints_t asn_PER_type_RICcause_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICcause_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICcontrolAckRequest.h b/e2ap/headers/RICcontrolAckRequest.h
new file mode 100644 (file)
index 0000000..b50eaf1
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICcontrolAckRequest_H_
+#define        _RICcontrolAckRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RICcontrolAckRequest {
+       RICcontrolAckRequest_noAck      = 0,
+       RICcontrolAckRequest_ack        = 1,
+       RICcontrolAckRequest_nAck       = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_RICcontrolAckRequest;
+
+/* RICcontrolAckRequest */
+typedef long    RICcontrolAckRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest;
+asn_struct_free_f RICcontrolAckRequest_free;
+asn_struct_print_f RICcontrolAckRequest_print;
+asn_constr_check_f RICcontrolAckRequest_constraint;
+ber_type_decoder_f RICcontrolAckRequest_decode_ber;
+der_type_encoder_f RICcontrolAckRequest_encode_der;
+xer_type_decoder_f RICcontrolAckRequest_decode_xer;
+xer_type_encoder_f RICcontrolAckRequest_encode_xer;
+oer_type_decoder_f RICcontrolAckRequest_decode_oer;
+oer_type_encoder_f RICcontrolAckRequest_encode_oer;
+per_type_decoder_f RICcontrolAckRequest_decode_uper;
+per_type_encoder_f RICcontrolAckRequest_encode_uper;
+per_type_decoder_f RICcontrolAckRequest_decode_aper;
+per_type_encoder_f RICcontrolAckRequest_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICcontrolAckRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICcontrolAcknowledge.h b/e2ap/headers/RICcontrolAcknowledge.h
new file mode 100644 (file)
index 0000000..40a488c
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICcontrolAcknowledge_H_
+#define        _RICcontrolAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICcontrolAcknowledge */
+typedef struct RICcontrolAcknowledge {
+       ProtocolIE_Container_9515P8_t    protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICcontrolAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICcontrolAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICcontrolFailure.h b/e2ap/headers/RICcontrolFailure.h
new file mode 100644 (file)
index 0000000..a5048ca
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICcontrolFailure_H_
+#define        _RICcontrolFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICcontrolFailure */
+typedef struct RICcontrolFailure {
+       ProtocolIE_Container_9515P9_t    protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICcontrolFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICcontrolFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICcontrolHeader.h b/e2ap/headers/RICcontrolHeader.h
new file mode 100644 (file)
index 0000000..920fd68
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICcontrolHeader_H_
+#define        _RICcontrolHeader_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICcontrolHeader */
+typedef OCTET_STRING_t  RICcontrolHeader_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader;
+asn_struct_free_f RICcontrolHeader_free;
+asn_struct_print_f RICcontrolHeader_print;
+asn_constr_check_f RICcontrolHeader_constraint;
+ber_type_decoder_f RICcontrolHeader_decode_ber;
+der_type_encoder_f RICcontrolHeader_encode_der;
+xer_type_decoder_f RICcontrolHeader_decode_xer;
+xer_type_encoder_f RICcontrolHeader_encode_xer;
+oer_type_decoder_f RICcontrolHeader_decode_oer;
+oer_type_encoder_f RICcontrolHeader_encode_oer;
+per_type_decoder_f RICcontrolHeader_decode_uper;
+per_type_encoder_f RICcontrolHeader_encode_uper;
+per_type_decoder_f RICcontrolHeader_decode_aper;
+per_type_encoder_f RICcontrolHeader_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICcontrolHeader_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICcontrolMessage.h b/e2ap/headers/RICcontrolMessage.h
new file mode 100644 (file)
index 0000000..3bc844f
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICcontrolMessage_H_
+#define        _RICcontrolMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICcontrolMessage */
+typedef OCTET_STRING_t  RICcontrolMessage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage;
+asn_struct_free_f RICcontrolMessage_free;
+asn_struct_print_f RICcontrolMessage_print;
+asn_constr_check_f RICcontrolMessage_constraint;
+ber_type_decoder_f RICcontrolMessage_decode_ber;
+der_type_encoder_f RICcontrolMessage_encode_der;
+xer_type_decoder_f RICcontrolMessage_decode_xer;
+xer_type_encoder_f RICcontrolMessage_encode_xer;
+oer_type_decoder_f RICcontrolMessage_decode_oer;
+oer_type_encoder_f RICcontrolMessage_encode_oer;
+per_type_decoder_f RICcontrolMessage_decode_uper;
+per_type_encoder_f RICcontrolMessage_encode_uper;
+per_type_decoder_f RICcontrolMessage_decode_aper;
+per_type_encoder_f RICcontrolMessage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICcontrolMessage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICcontrolRequest.h b/e2ap/headers/RICcontrolRequest.h
new file mode 100644 (file)
index 0000000..8fe206c
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICcontrolRequest_H_
+#define        _RICcontrolRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICcontrolRequest */
+typedef struct RICcontrolRequest {
+       ProtocolIE_Container_9515P7_t    protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICcontrolRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICcontrolRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICcontrolStatus.h b/e2ap/headers/RICcontrolStatus.h
new file mode 100644 (file)
index 0000000..8196939
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICcontrolStatus_H_
+#define        _RICcontrolStatus_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RICcontrolStatus {
+       RICcontrolStatus_success        = 0,
+       RICcontrolStatus_rejected       = 1,
+       RICcontrolStatus_failed = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_RICcontrolStatus;
+
+/* RICcontrolStatus */
+typedef long    RICcontrolStatus_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus;
+asn_struct_free_f RICcontrolStatus_free;
+asn_struct_print_f RICcontrolStatus_print;
+asn_constr_check_f RICcontrolStatus_constraint;
+ber_type_decoder_f RICcontrolStatus_decode_ber;
+der_type_encoder_f RICcontrolStatus_encode_der;
+xer_type_decoder_f RICcontrolStatus_decode_xer;
+xer_type_encoder_f RICcontrolStatus_encode_xer;
+oer_type_decoder_f RICcontrolStatus_decode_oer;
+oer_type_encoder_f RICcontrolStatus_encode_oer;
+per_type_decoder_f RICcontrolStatus_decode_uper;
+per_type_encoder_f RICcontrolStatus_encode_uper;
+per_type_decoder_f RICcontrolStatus_decode_aper;
+per_type_encoder_f RICcontrolStatus_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICcontrolStatus_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICeventTriggerDefinition.h b/e2ap/headers/RICeventTriggerDefinition.h
new file mode 100644 (file)
index 0000000..b24ddd5
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICeventTriggerDefinition_H_
+#define        _RICeventTriggerDefinition_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICeventTriggerDefinition */
+typedef OCTET_STRING_t  RICeventTriggerDefinition_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition;
+asn_struct_free_f RICeventTriggerDefinition_free;
+asn_struct_print_f RICeventTriggerDefinition_print;
+asn_constr_check_f RICeventTriggerDefinition_constraint;
+ber_type_decoder_f RICeventTriggerDefinition_decode_ber;
+der_type_encoder_f RICeventTriggerDefinition_encode_der;
+xer_type_decoder_f RICeventTriggerDefinition_decode_xer;
+xer_type_encoder_f RICeventTriggerDefinition_encode_xer;
+oer_type_decoder_f RICeventTriggerDefinition_decode_oer;
+oer_type_encoder_f RICeventTriggerDefinition_encode_oer;
+per_type_decoder_f RICeventTriggerDefinition_decode_uper;
+per_type_encoder_f RICeventTriggerDefinition_encode_uper;
+per_type_decoder_f RICeventTriggerDefinition_decode_aper;
+per_type_encoder_f RICeventTriggerDefinition_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICeventTriggerDefinition_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICindication.h b/e2ap/headers/RICindication.h
new file mode 100644 (file)
index 0000000..46b1d41
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICindication_H_
+#define        _RICindication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICindication */
+typedef struct RICindication {
+       ProtocolIE_Container_9515P6_t    protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICindication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICindication;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICindication_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICindication_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICindicationHeader.h b/e2ap/headers/RICindicationHeader.h
new file mode 100644 (file)
index 0000000..c5482b2
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICindicationHeader_H_
+#define        _RICindicationHeader_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICindicationHeader */
+typedef OCTET_STRING_t  RICindicationHeader_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICindicationHeader;
+asn_struct_free_f RICindicationHeader_free;
+asn_struct_print_f RICindicationHeader_print;
+asn_constr_check_f RICindicationHeader_constraint;
+ber_type_decoder_f RICindicationHeader_decode_ber;
+der_type_encoder_f RICindicationHeader_encode_der;
+xer_type_decoder_f RICindicationHeader_decode_xer;
+xer_type_encoder_f RICindicationHeader_encode_xer;
+oer_type_decoder_f RICindicationHeader_decode_oer;
+oer_type_encoder_f RICindicationHeader_encode_oer;
+per_type_decoder_f RICindicationHeader_decode_uper;
+per_type_encoder_f RICindicationHeader_encode_uper;
+per_type_decoder_f RICindicationHeader_decode_aper;
+per_type_encoder_f RICindicationHeader_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICindicationHeader_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICindicationMessage.h b/e2ap/headers/RICindicationMessage.h
new file mode 100644 (file)
index 0000000..4cebe92
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICindicationMessage_H_
+#define        _RICindicationMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICindicationMessage */
+typedef OCTET_STRING_t  RICindicationMessage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICindicationMessage;
+asn_struct_free_f RICindicationMessage_free;
+asn_struct_print_f RICindicationMessage_print;
+asn_constr_check_f RICindicationMessage_constraint;
+ber_type_decoder_f RICindicationMessage_decode_ber;
+der_type_encoder_f RICindicationMessage_encode_der;
+xer_type_decoder_f RICindicationMessage_decode_xer;
+xer_type_encoder_f RICindicationMessage_encode_xer;
+oer_type_decoder_f RICindicationMessage_decode_oer;
+oer_type_encoder_f RICindicationMessage_encode_oer;
+per_type_decoder_f RICindicationMessage_decode_uper;
+per_type_encoder_f RICindicationMessage_encode_uper;
+per_type_decoder_f RICindicationMessage_decode_aper;
+per_type_encoder_f RICindicationMessage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICindicationMessage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICindicationSN.h b/e2ap/headers/RICindicationSN.h
new file mode 100644 (file)
index 0000000..d3f23bf
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICindicationSN_H_
+#define        _RICindicationSN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICindicationSN */
+typedef long    RICindicationSN_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICindicationSN;
+asn_struct_free_f RICindicationSN_free;
+asn_struct_print_f RICindicationSN_print;
+asn_constr_check_f RICindicationSN_constraint;
+ber_type_decoder_f RICindicationSN_decode_ber;
+der_type_encoder_f RICindicationSN_encode_der;
+xer_type_decoder_f RICindicationSN_decode_xer;
+xer_type_encoder_f RICindicationSN_encode_xer;
+oer_type_decoder_f RICindicationSN_decode_oer;
+oer_type_encoder_f RICindicationSN_encode_oer;
+per_type_decoder_f RICindicationSN_decode_uper;
+per_type_encoder_f RICindicationSN_encode_uper;
+per_type_decoder_f RICindicationSN_decode_aper;
+per_type_encoder_f RICindicationSN_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICindicationSN_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICindicationType.h b/e2ap/headers/RICindicationType.h
new file mode 100644 (file)
index 0000000..7a42bb6
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICindicationType_H_
+#define        _RICindicationType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RICindicationType {
+       RICindicationType_report        = 0,
+       RICindicationType_insert        = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_RICindicationType;
+
+/* RICindicationType */
+typedef long    RICindicationType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICindicationType;
+asn_struct_free_f RICindicationType_free;
+asn_struct_print_f RICindicationType_print;
+asn_constr_check_f RICindicationType_constraint;
+ber_type_decoder_f RICindicationType_decode_ber;
+der_type_encoder_f RICindicationType_encode_der;
+xer_type_decoder_f RICindicationType_decode_xer;
+xer_type_encoder_f RICindicationType_encode_xer;
+oer_type_decoder_f RICindicationType_decode_oer;
+oer_type_encoder_f RICindicationType_encode_oer;
+per_type_decoder_f RICindicationType_decode_uper;
+per_type_encoder_f RICindicationType_encode_uper;
+per_type_decoder_f RICindicationType_decode_aper;
+per_type_encoder_f RICindicationType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICindicationType_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICrequestID.h b/e2ap/headers/RICrequestID.h
new file mode 100644 (file)
index 0000000..c35acf4
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICrequestID_H_
+#define        _RICrequestID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICrequestID */
+typedef struct RICrequestID {
+       long     ricRequestorID;
+       long     ricRequestSequenceNumber;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICrequestID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICrequestID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICrequestID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICserviceQuery.h b/e2ap/headers/RICserviceQuery.h
new file mode 100644 (file)
index 0000000..511456d
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICserviceQuery_H_
+#define        _RICserviceQuery_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICserviceQuery */
+typedef struct RICserviceQuery {
+       ProtocolIE_Container_9515P13_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICserviceQuery_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICserviceQuery_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICserviceQuery_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICserviceUpdate.h b/e2ap/headers/RICserviceUpdate.h
new file mode 100644 (file)
index 0000000..9d5ca7e
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICserviceUpdate_H_
+#define        _RICserviceUpdate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICserviceUpdate */
+typedef struct RICserviceUpdate {
+       ProtocolIE_Container_9515P10_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICserviceUpdate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICserviceUpdate_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICserviceUpdateAcknowledge.h b/e2ap/headers/RICserviceUpdateAcknowledge.h
new file mode 100644 (file)
index 0000000..f879c64
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICserviceUpdateAcknowledge_H_
+#define        _RICserviceUpdateAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICserviceUpdateAcknowledge */
+typedef struct RICserviceUpdateAcknowledge {
+       ProtocolIE_Container_9515P11_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICserviceUpdateAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICserviceUpdateAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICserviceUpdateFailure.h b/e2ap/headers/RICserviceUpdateFailure.h
new file mode 100644 (file)
index 0000000..9541dd7
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICserviceUpdateFailure_H_
+#define        _RICserviceUpdateFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICserviceUpdateFailure */
+typedef struct RICserviceUpdateFailure {
+       ProtocolIE_Container_9515P12_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICserviceUpdateFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICserviceUpdateFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICsubscription.h b/e2ap/headers/RICsubscription.h
new file mode 100644 (file)
index 0000000..bfb36d6
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICsubscription_H_
+#define        _RICsubscription_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RICeventTriggerDefinition.h"
+#include "RICactions-ToBeSetup-List.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICsubscription */
+typedef struct RICsubscription {
+       RICeventTriggerDefinition_t      ricEventTriggerDefinition;
+       RICactions_ToBeSetup_List_t      ricAction_ToBeSetup_List;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICsubscription_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscription;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICsubscription_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICsubscriptionDeleteFailure.h b/e2ap/headers/RICsubscriptionDeleteFailure.h
new file mode 100644 (file)
index 0000000..7da4220
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICsubscriptionDeleteFailure_H_
+#define        _RICsubscriptionDeleteFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICsubscriptionDeleteFailure */
+typedef struct RICsubscriptionDeleteFailure {
+       ProtocolIE_Container_9515P5_t    protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICsubscriptionDeleteFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICsubscriptionDeleteFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICsubscriptionDeleteRequest.h b/e2ap/headers/RICsubscriptionDeleteRequest.h
new file mode 100644 (file)
index 0000000..62cf2bd
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICsubscriptionDeleteRequest_H_
+#define        _RICsubscriptionDeleteRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICsubscriptionDeleteRequest */
+typedef struct RICsubscriptionDeleteRequest {
+       ProtocolIE_Container_9515P3_t    protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICsubscriptionDeleteRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICsubscriptionDeleteRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICsubscriptionDeleteResponse.h b/e2ap/headers/RICsubscriptionDeleteResponse.h
new file mode 100644 (file)
index 0000000..7d9c64c
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICsubscriptionDeleteResponse_H_
+#define        _RICsubscriptionDeleteResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICsubscriptionDeleteResponse */
+typedef struct RICsubscriptionDeleteResponse {
+       ProtocolIE_Container_9515P4_t    protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICsubscriptionDeleteResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICsubscriptionDeleteResponse_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICsubscriptionFailure.h b/e2ap/headers/RICsubscriptionFailure.h
new file mode 100644 (file)
index 0000000..0a80bb6
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICsubscriptionFailure_H_
+#define        _RICsubscriptionFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICsubscriptionFailure */
+typedef struct RICsubscriptionFailure {
+       ProtocolIE_Container_9515P2_t    protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICsubscriptionFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICsubscriptionFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICsubscriptionRequest.h b/e2ap/headers/RICsubscriptionRequest.h
new file mode 100644 (file)
index 0000000..6232c6f
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICsubscriptionRequest_H_
+#define        _RICsubscriptionRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICsubscriptionRequest */
+typedef struct RICsubscriptionRequest {
+       ProtocolIE_Container_9515P0_t    protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICsubscriptionRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICsubscriptionRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICsubscriptionResponse.h b/e2ap/headers/RICsubscriptionResponse.h
new file mode 100644 (file)
index 0000000..219de12
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICsubscriptionResponse_H_
+#define        _RICsubscriptionResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICsubscriptionResponse */
+typedef struct RICsubscriptionResponse {
+       ProtocolIE_Container_9515P1_t    protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICsubscriptionResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICsubscriptionResponse_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICsubsequentAction.h b/e2ap/headers/RICsubsequentAction.h
new file mode 100644 (file)
index 0000000..0f8e80c
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICsubsequentAction_H_
+#define        _RICsubsequentAction_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RICsubsequentActionType.h"
+#include "RICtimeToWait.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICsubsequentAction */
+typedef struct RICsubsequentAction {
+       RICsubsequentActionType_t        ricSubsequentActionType;
+       RICtimeToWait_t  ricTimeToWait;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RICsubsequentAction_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentAction;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICsubsequentAction_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICsubsequentActionType.h b/e2ap/headers/RICsubsequentActionType.h
new file mode 100644 (file)
index 0000000..6c4f403
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICsubsequentActionType_H_
+#define        _RICsubsequentActionType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RICsubsequentActionType {
+       RICsubsequentActionType_continue        = 0,
+       RICsubsequentActionType_wait    = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_RICsubsequentActionType;
+
+/* RICsubsequentActionType */
+typedef long    RICsubsequentActionType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RICsubsequentActionType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType;
+extern const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1;
+asn_struct_free_f RICsubsequentActionType_free;
+asn_struct_print_f RICsubsequentActionType_print;
+asn_constr_check_f RICsubsequentActionType_constraint;
+ber_type_decoder_f RICsubsequentActionType_decode_ber;
+der_type_encoder_f RICsubsequentActionType_encode_der;
+xer_type_decoder_f RICsubsequentActionType_decode_xer;
+xer_type_encoder_f RICsubsequentActionType_encode_xer;
+oer_type_decoder_f RICsubsequentActionType_decode_oer;
+oer_type_encoder_f RICsubsequentActionType_encode_oer;
+per_type_decoder_f RICsubsequentActionType_decode_uper;
+per_type_encoder_f RICsubsequentActionType_encode_uper;
+per_type_decoder_f RICsubsequentActionType_decode_aper;
+per_type_encoder_f RICsubsequentActionType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICsubsequentActionType_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICtimeToWait.h b/e2ap/headers/RICtimeToWait.h
new file mode 100644 (file)
index 0000000..fb289b0
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RICtimeToWait_H_
+#define        _RICtimeToWait_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RICtimeToWait {
+       RICtimeToWait_zero      = 0,
+       RICtimeToWait_w1ms      = 1,
+       RICtimeToWait_w2ms      = 2,
+       RICtimeToWait_w5ms      = 3,
+       RICtimeToWait_w10ms     = 4,
+       RICtimeToWait_w20ms     = 5,
+       RICtimeToWait_w30ms     = 6,
+       RICtimeToWait_w40ms     = 7,
+       RICtimeToWait_w50ms     = 8,
+       RICtimeToWait_w100ms    = 9,
+       RICtimeToWait_w200ms    = 10,
+       RICtimeToWait_w500ms    = 11,
+       RICtimeToWait_w1s       = 12,
+       RICtimeToWait_w2s       = 13,
+       RICtimeToWait_w5s       = 14,
+       RICtimeToWait_w10s      = 15,
+       RICtimeToWait_w20s      = 16,
+       RICtimeToWait_w60s      = 17
+       /*
+        * Enumeration is extensible
+        */
+} e_RICtimeToWait;
+
+/* RICtimeToWait */
+typedef long    RICtimeToWait_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RICtimeToWait;
+extern const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1;
+asn_struct_free_f RICtimeToWait_free;
+asn_struct_print_f RICtimeToWait_print;
+asn_constr_check_f RICtimeToWait_constraint;
+ber_type_decoder_f RICtimeToWait_decode_ber;
+der_type_encoder_f RICtimeToWait_encode_der;
+xer_type_decoder_f RICtimeToWait_decode_xer;
+xer_type_encoder_f RICtimeToWait_encode_xer;
+oer_type_decoder_f RICtimeToWait_decode_oer;
+oer_type_encoder_f RICtimeToWait_encode_oer;
+per_type_decoder_f RICtimeToWait_decode_uper;
+per_type_encoder_f RICtimeToWait_encode_uper;
+per_type_decoder_f RICtimeToWait_decode_aper;
+per_type_encoder_f RICtimeToWait_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RICtimeToWait_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RLC-Status.h b/e2ap/headers/RLC-Status.h
new file mode 100644 (file)
index 0000000..313c9bc
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RLC_Status_H_
+#define        _RLC_Status_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Reestablishment-Indication.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* RLC-Status */
+typedef struct RLC_Status {
+       Reestablishment_Indication_t     reestablishment_Indication;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RLC_Status_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RLC_Status;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RLC_Status_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RLCMode.h b/e2ap/headers/RLCMode.h
new file mode 100644 (file)
index 0000000..f308f3c
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RLCMode_H_
+#define        _RLCMode_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RLCMode {
+       RLCMode_rlc_am  = 0,
+       RLCMode_rlc_um_bidirectional    = 1,
+       RLCMode_rlc_um_unidirectional_ul        = 2,
+       RLCMode_rlc_um_unidirectional_dl        = 3
+       /*
+        * Enumeration is extensible
+        */
+} e_RLCMode;
+
+/* RLCMode */
+typedef long    RLCMode_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RLCMode_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RLCMode;
+extern const asn_INTEGER_specifics_t asn_SPC_RLCMode_specs_1;
+asn_struct_free_f RLCMode_free;
+asn_struct_print_f RLCMode_print;
+asn_constr_check_f RLCMode_constraint;
+ber_type_decoder_f RLCMode_decode_ber;
+der_type_encoder_f RLCMode_encode_der;
+xer_type_decoder_f RLCMode_decode_xer;
+xer_type_encoder_f RLCMode_encode_xer;
+oer_type_decoder_f RLCMode_decode_oer;
+oer_type_encoder_f RLCMode_encode_oer;
+per_type_decoder_f RLCMode_decode_uper;
+per_type_encoder_f RLCMode_encode_uper;
+per_type_decoder_f RLCMode_decode_aper;
+per_type_encoder_f RLCMode_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RLCMode_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RLFIndication.h b/e2ap/headers/RLFIndication.h
new file mode 100644 (file)
index 0000000..67ab6a1
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RLFIndication_H_
+#define        _RLFIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RLFIndication */
+typedef struct RLFIndication {
+       ProtocolIE_Container_9515P38_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RLFIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RLFIndication;
+extern asn_SEQUENCE_specifics_t asn_SPC_RLFIndication_specs_1;
+extern asn_TYPE_member_t asn_MBR_RLFIndication_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RLFIndication_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RNL-Header.h b/e2ap/headers/RNL-Header.h
new file mode 100644 (file)
index 0000000..c100a73
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RNL_Header_H_
+#define        _RNL_Header_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GlobalENB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GlobalENB_ID;
+struct ProtocolExtensionContainer;
+
+/* RNL-Header */
+typedef struct RNL_Header {
+       GlobalENB_ID_t   source_GlobalENB_ID;
+       struct GlobalENB_ID     *target_GlobalENB_ID;   /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RNL_Header_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RNL_Header;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RNL_Header_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RNTP-Threshold.h b/e2ap/headers/RNTP-Threshold.h
new file mode 100644 (file)
index 0000000..948ba6d
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RNTP_Threshold_H_
+#define        _RNTP_Threshold_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RNTP_Threshold {
+       RNTP_Threshold_minusInfinity    = 0,
+       RNTP_Threshold_minusEleven      = 1,
+       RNTP_Threshold_minusTen = 2,
+       RNTP_Threshold_minusNine        = 3,
+       RNTP_Threshold_minusEight       = 4,
+       RNTP_Threshold_minusSeven       = 5,
+       RNTP_Threshold_minusSix = 6,
+       RNTP_Threshold_minusFive        = 7,
+       RNTP_Threshold_minusFour        = 8,
+       RNTP_Threshold_minusThree       = 9,
+       RNTP_Threshold_minusTwo = 10,
+       RNTP_Threshold_minusOne = 11,
+       RNTP_Threshold_zero     = 12,
+       RNTP_Threshold_one      = 13,
+       RNTP_Threshold_two      = 14,
+       RNTP_Threshold_three    = 15
+       /*
+        * Enumeration is extensible
+        */
+} e_RNTP_Threshold;
+
+/* RNTP-Threshold */
+typedef long    RNTP_Threshold_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RNTP_Threshold_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RNTP_Threshold;
+extern const asn_INTEGER_specifics_t asn_SPC_RNTP_Threshold_specs_1;
+asn_struct_free_f RNTP_Threshold_free;
+asn_struct_print_f RNTP_Threshold_print;
+asn_constr_check_f RNTP_Threshold_constraint;
+ber_type_decoder_f RNTP_Threshold_decode_ber;
+der_type_encoder_f RNTP_Threshold_encode_der;
+xer_type_decoder_f RNTP_Threshold_decode_xer;
+xer_type_encoder_f RNTP_Threshold_encode_xer;
+oer_type_decoder_f RNTP_Threshold_decode_oer;
+oer_type_encoder_f RNTP_Threshold_encode_oer;
+per_type_decoder_f RNTP_Threshold_decode_uper;
+per_type_encoder_f RNTP_Threshold_encode_uper;
+per_type_decoder_f RNTP_Threshold_decode_aper;
+per_type_encoder_f RNTP_Threshold_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RNTP_Threshold_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RRC-Config-Ind.h b/e2ap/headers/RRC-Config-Ind.h
new file mode 100644 (file)
index 0000000..bf92962
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RRC_Config_Ind_H_
+#define        _RRC_Config_Ind_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RRC_Config_Ind {
+       RRC_Config_Ind_full_config      = 0,
+       RRC_Config_Ind_delta_config     = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_RRC_Config_Ind;
+
+/* RRC-Config-Ind */
+typedef long    RRC_Config_Ind_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RRC_Config_Ind;
+asn_struct_free_f RRC_Config_Ind_free;
+asn_struct_print_f RRC_Config_Ind_print;
+asn_constr_check_f RRC_Config_Ind_constraint;
+ber_type_decoder_f RRC_Config_Ind_decode_ber;
+der_type_encoder_f RRC_Config_Ind_encode_der;
+xer_type_decoder_f RRC_Config_Ind_decode_xer;
+xer_type_encoder_f RRC_Config_Ind_encode_xer;
+oer_type_decoder_f RRC_Config_Ind_decode_oer;
+oer_type_encoder_f RRC_Config_Ind_encode_oer;
+per_type_decoder_f RRC_Config_Ind_decode_uper;
+per_type_encoder_f RRC_Config_Ind_encode_uper;
+per_type_decoder_f RRC_Config_Ind_decode_aper;
+per_type_encoder_f RRC_Config_Ind_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RRC_Config_Ind_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RRC-Context.h b/e2ap/headers/RRC-Context.h
new file mode 100644 (file)
index 0000000..c71a5cd
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RRC_Context_H_
+#define        _RRC_Context_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RRC-Context */
+typedef OCTET_STRING_t  RRC_Context_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RRC_Context;
+asn_struct_free_f RRC_Context_free;
+asn_struct_print_f RRC_Context_print;
+asn_constr_check_f RRC_Context_constraint;
+ber_type_decoder_f RRC_Context_decode_ber;
+der_type_encoder_f RRC_Context_encode_der;
+xer_type_decoder_f RRC_Context_decode_xer;
+xer_type_encoder_f RRC_Context_encode_xer;
+oer_type_decoder_f RRC_Context_decode_oer;
+oer_type_encoder_f RRC_Context_encode_oer;
+per_type_decoder_f RRC_Context_decode_uper;
+per_type_encoder_f RRC_Context_encode_uper;
+per_type_decoder_f RRC_Context_decode_aper;
+per_type_encoder_f RRC_Context_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RRC_Context_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RRCConnReestabIndicator.h b/e2ap/headers/RRCConnReestabIndicator.h
new file mode 100644 (file)
index 0000000..17d6759
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RRCConnReestabIndicator_H_
+#define        _RRCConnReestabIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RRCConnReestabIndicator {
+       RRCConnReestabIndicator_reconfigurationFailure  = 0,
+       RRCConnReestabIndicator_handoverFailure = 1,
+       RRCConnReestabIndicator_otherFailure    = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_RRCConnReestabIndicator;
+
+/* RRCConnReestabIndicator */
+typedef long    RRCConnReestabIndicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RRCConnReestabIndicator;
+asn_struct_free_f RRCConnReestabIndicator_free;
+asn_struct_print_f RRCConnReestabIndicator_print;
+asn_constr_check_f RRCConnReestabIndicator_constraint;
+ber_type_decoder_f RRCConnReestabIndicator_decode_ber;
+der_type_encoder_f RRCConnReestabIndicator_encode_der;
+xer_type_decoder_f RRCConnReestabIndicator_decode_xer;
+xer_type_encoder_f RRCConnReestabIndicator_encode_xer;
+oer_type_decoder_f RRCConnReestabIndicator_decode_oer;
+oer_type_encoder_f RRCConnReestabIndicator_encode_oer;
+per_type_decoder_f RRCConnReestabIndicator_decode_uper;
+per_type_encoder_f RRCConnReestabIndicator_encode_uper;
+per_type_decoder_f RRCConnReestabIndicator_decode_aper;
+per_type_encoder_f RRCConnReestabIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RRCConnReestabIndicator_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RRCConnSetupIndicator.h b/e2ap/headers/RRCConnSetupIndicator.h
new file mode 100644 (file)
index 0000000..8fbe8af
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RRCConnSetupIndicator_H_
+#define        _RRCConnSetupIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RRCConnSetupIndicator {
+       RRCConnSetupIndicator_rrcConnSetup      = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_RRCConnSetupIndicator;
+
+/* RRCConnSetupIndicator */
+typedef long    RRCConnSetupIndicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RRCConnSetupIndicator;
+asn_struct_free_f RRCConnSetupIndicator_free;
+asn_struct_print_f RRCConnSetupIndicator_print;
+asn_constr_check_f RRCConnSetupIndicator_constraint;
+ber_type_decoder_f RRCConnSetupIndicator_decode_ber;
+der_type_encoder_f RRCConnSetupIndicator_encode_der;
+xer_type_decoder_f RRCConnSetupIndicator_decode_xer;
+xer_type_encoder_f RRCConnSetupIndicator_encode_xer;
+oer_type_decoder_f RRCConnSetupIndicator_decode_oer;
+oer_type_encoder_f RRCConnSetupIndicator_encode_oer;
+per_type_decoder_f RRCConnSetupIndicator_decode_uper;
+per_type_encoder_f RRCConnSetupIndicator_encode_uper;
+per_type_decoder_f RRCConnSetupIndicator_decode_aper;
+per_type_encoder_f RRCConnSetupIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RRCConnSetupIndicator_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RRCContainer.h b/e2ap/headers/RRCContainer.h
new file mode 100644 (file)
index 0000000..f237e32
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RRCContainer_H_
+#define        _RRCContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RRCContainer */
+typedef OCTET_STRING_t  RRCContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RRCContainer;
+asn_struct_free_f RRCContainer_free;
+asn_struct_print_f RRCContainer_print;
+asn_constr_check_f RRCContainer_constraint;
+ber_type_decoder_f RRCContainer_decode_ber;
+der_type_encoder_f RRCContainer_encode_der;
+xer_type_decoder_f RRCContainer_decode_xer;
+xer_type_encoder_f RRCContainer_encode_xer;
+oer_type_decoder_f RRCContainer_decode_oer;
+oer_type_encoder_f RRCContainer_encode_oer;
+per_type_decoder_f RRCContainer_decode_uper;
+per_type_encoder_f RRCContainer_encode_uper;
+per_type_decoder_f RRCContainer_decode_aper;
+per_type_encoder_f RRCContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RRCContainer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RRCTransfer.h b/e2ap/headers/RRCTransfer.h
new file mode 100644 (file)
index 0000000..a244b25
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RRCTransfer_H_
+#define        _RRCTransfer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RRCTransfer */
+typedef struct RRCTransfer {
+       ProtocolIE_Container_9515P82_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RRCTransfer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RRCTransfer;
+extern asn_SEQUENCE_specifics_t asn_SPC_RRCTransfer_specs_1;
+extern asn_TYPE_member_t asn_MBR_RRCTransfer_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RRCTransfer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RSRPMRList.h b/e2ap/headers/RSRPMRList.h
new file mode 100644 (file)
index 0000000..2ca8691
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RSRPMRList_H_
+#define        _RSRPMRList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "RSRPMeasurementResult.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* Forward definitions */
+typedef struct RSRPMRList__Member {
+       RSRPMeasurementResult_t  rSRPMeasurementResult;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RSRPMRList__Member;
+
+/* RSRPMRList */
+typedef struct RSRPMRList {
+       A_SEQUENCE_OF(RSRPMRList__Member) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RSRPMRList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RSRPMRList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RSRPMRList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RSRPMeasurementResult.h b/e2ap/headers/RSRPMeasurementResult.h
new file mode 100644 (file)
index 0000000..48a11d8
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RSRPMeasurementResult_H_
+#define        _RSRPMeasurementResult_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "ECGI.h"
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* Forward definitions */
+typedef struct RSRPMeasurementResult__Member {
+       ECGI_t   rSRPCellID;
+       long     rSRPMeasured;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RSRPMeasurementResult__Member;
+
+/* RSRPMeasurementResult */
+typedef struct RSRPMeasurementResult {
+       A_SEQUENCE_OF(RSRPMeasurementResult__Member) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RSRPMeasurementResult_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RSRPMeasurementResult;
+extern asn_SET_OF_specifics_t asn_SPC_RSRPMeasurementResult_specs_1;
+extern asn_TYPE_member_t asn_MBR_RSRPMeasurementResult_1[1];
+extern asn_per_constraints_t asn_PER_type_RSRPMeasurementResult_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RSRPMeasurementResult_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RadioResourceStatus.h b/e2ap/headers/RadioResourceStatus.h
new file mode 100644 (file)
index 0000000..14bb65c
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RadioResourceStatus_H_
+#define        _RadioResourceStatus_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "DL-GBR-PRB-usage.h"
+#include "UL-GBR-PRB-usage.h"
+#include "DL-non-GBR-PRB-usage.h"
+#include "UL-non-GBR-PRB-usage.h"
+#include "DL-Total-PRB-usage.h"
+#include "UL-Total-PRB-usage.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* RadioResourceStatus */
+typedef struct RadioResourceStatus {
+       DL_GBR_PRB_usage_t       dL_GBR_PRB_usage;
+       UL_GBR_PRB_usage_t       uL_GBR_PRB_usage;
+       DL_non_GBR_PRB_usage_t   dL_non_GBR_PRB_usage;
+       UL_non_GBR_PRB_usage_t   uL_non_GBR_PRB_usage;
+       DL_Total_PRB_usage_t     dL_Total_PRB_usage;
+       UL_Total_PRB_usage_t     uL_Total_PRB_usage;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RadioResourceStatus_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RadioResourceStatus;
+extern asn_SEQUENCE_specifics_t asn_SPC_RadioResourceStatus_specs_1;
+extern asn_TYPE_member_t asn_MBR_RadioResourceStatus_1[7];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RadioResourceStatus_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RadioframeAllocationOffset.h b/e2ap/headers/RadioframeAllocationOffset.h
new file mode 100644 (file)
index 0000000..37e9b26
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RadioframeAllocationOffset_H_
+#define        _RadioframeAllocationOffset_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RadioframeAllocationOffset */
+typedef long    RadioframeAllocationOffset_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RadioframeAllocationOffset_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RadioframeAllocationOffset;
+asn_struct_free_f RadioframeAllocationOffset_free;
+asn_struct_print_f RadioframeAllocationOffset_print;
+asn_constr_check_f RadioframeAllocationOffset_constraint;
+ber_type_decoder_f RadioframeAllocationOffset_decode_ber;
+der_type_encoder_f RadioframeAllocationOffset_encode_der;
+xer_type_decoder_f RadioframeAllocationOffset_decode_xer;
+xer_type_encoder_f RadioframeAllocationOffset_encode_xer;
+oer_type_decoder_f RadioframeAllocationOffset_decode_oer;
+oer_type_encoder_f RadioframeAllocationOffset_encode_oer;
+per_type_decoder_f RadioframeAllocationOffset_decode_uper;
+per_type_encoder_f RadioframeAllocationOffset_encode_uper;
+per_type_decoder_f RadioframeAllocationOffset_decode_aper;
+per_type_encoder_f RadioframeAllocationOffset_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RadioframeAllocationOffset_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RadioframeAllocationPeriod.h b/e2ap/headers/RadioframeAllocationPeriod.h
new file mode 100644 (file)
index 0000000..6058726
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RadioframeAllocationPeriod_H_
+#define        _RadioframeAllocationPeriod_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RadioframeAllocationPeriod {
+       RadioframeAllocationPeriod_n1   = 0,
+       RadioframeAllocationPeriod_n2   = 1,
+       RadioframeAllocationPeriod_n4   = 2,
+       RadioframeAllocationPeriod_n8   = 3,
+       RadioframeAllocationPeriod_n16  = 4,
+       RadioframeAllocationPeriod_n32  = 5
+       /*
+        * Enumeration is extensible
+        */
+} e_RadioframeAllocationPeriod;
+
+/* RadioframeAllocationPeriod */
+typedef long    RadioframeAllocationPeriod_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RadioframeAllocationPeriod_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RadioframeAllocationPeriod;
+extern const asn_INTEGER_specifics_t asn_SPC_RadioframeAllocationPeriod_specs_1;
+asn_struct_free_f RadioframeAllocationPeriod_free;
+asn_struct_print_f RadioframeAllocationPeriod_print;
+asn_constr_check_f RadioframeAllocationPeriod_constraint;
+ber_type_decoder_f RadioframeAllocationPeriod_decode_ber;
+der_type_encoder_f RadioframeAllocationPeriod_encode_der;
+xer_type_decoder_f RadioframeAllocationPeriod_decode_xer;
+xer_type_encoder_f RadioframeAllocationPeriod_encode_xer;
+oer_type_decoder_f RadioframeAllocationPeriod_decode_oer;
+oer_type_encoder_f RadioframeAllocationPeriod_encode_oer;
+per_type_decoder_f RadioframeAllocationPeriod_decode_uper;
+per_type_encoder_f RadioframeAllocationPeriod_encode_uper;
+per_type_decoder_f RadioframeAllocationPeriod_decode_aper;
+per_type_encoder_f RadioframeAllocationPeriod_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RadioframeAllocationPeriod_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ReceiveStatusOfULPDCPSDUsExtended.h b/e2ap/headers/ReceiveStatusOfULPDCPSDUsExtended.h
new file mode 100644 (file)
index 0000000..43b0906
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ReceiveStatusOfULPDCPSDUsExtended_H_
+#define        _ReceiveStatusOfULPDCPSDUsExtended_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ReceiveStatusOfULPDCPSDUsExtended */
+typedef BIT_STRING_t    ReceiveStatusOfULPDCPSDUsExtended_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ReceiveStatusOfULPDCPSDUsExtended;
+asn_struct_free_f ReceiveStatusOfULPDCPSDUsExtended_free;
+asn_struct_print_f ReceiveStatusOfULPDCPSDUsExtended_print;
+asn_constr_check_f ReceiveStatusOfULPDCPSDUsExtended_constraint;
+ber_type_decoder_f ReceiveStatusOfULPDCPSDUsExtended_decode_ber;
+der_type_encoder_f ReceiveStatusOfULPDCPSDUsExtended_encode_der;
+xer_type_decoder_f ReceiveStatusOfULPDCPSDUsExtended_decode_xer;
+xer_type_encoder_f ReceiveStatusOfULPDCPSDUsExtended_encode_xer;
+oer_type_decoder_f ReceiveStatusOfULPDCPSDUsExtended_decode_oer;
+oer_type_encoder_f ReceiveStatusOfULPDCPSDUsExtended_encode_oer;
+per_type_decoder_f ReceiveStatusOfULPDCPSDUsExtended_decode_uper;
+per_type_encoder_f ReceiveStatusOfULPDCPSDUsExtended_encode_uper;
+per_type_decoder_f ReceiveStatusOfULPDCPSDUsExtended_decode_aper;
+per_type_encoder_f ReceiveStatusOfULPDCPSDUsExtended_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReceiveStatusOfULPDCPSDUsExtended_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h b/e2ap/headers/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h
new file mode 100644 (file)
index 0000000..7c68ead
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_H_
+#define        _ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 */
+typedef BIT_STRING_t    ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18;
+asn_struct_free_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_free;
+asn_struct_print_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_print;
+asn_constr_check_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constraint;
+ber_type_decoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_decode_ber;
+der_type_encoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_encode_der;
+xer_type_decoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_decode_xer;
+xer_type_encoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_encode_xer;
+oer_type_decoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_decode_oer;
+oer_type_encoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_encode_oer;
+per_type_decoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_decode_uper;
+per_type_encoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_encode_uper;
+per_type_decoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_decode_aper;
+per_type_encoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ReceiveStatusofULPDCPSDUs.h b/e2ap/headers/ReceiveStatusofULPDCPSDUs.h
new file mode 100644 (file)
index 0000000..f923a35
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ReceiveStatusofULPDCPSDUs_H_
+#define        _ReceiveStatusofULPDCPSDUs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ReceiveStatusofULPDCPSDUs */
+typedef BIT_STRING_t    ReceiveStatusofULPDCPSDUs_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ReceiveStatusofULPDCPSDUs_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ReceiveStatusofULPDCPSDUs;
+asn_struct_free_f ReceiveStatusofULPDCPSDUs_free;
+asn_struct_print_f ReceiveStatusofULPDCPSDUs_print;
+asn_constr_check_f ReceiveStatusofULPDCPSDUs_constraint;
+ber_type_decoder_f ReceiveStatusofULPDCPSDUs_decode_ber;
+der_type_encoder_f ReceiveStatusofULPDCPSDUs_encode_der;
+xer_type_decoder_f ReceiveStatusofULPDCPSDUs_decode_xer;
+xer_type_encoder_f ReceiveStatusofULPDCPSDUs_encode_xer;
+oer_type_decoder_f ReceiveStatusofULPDCPSDUs_decode_oer;
+oer_type_encoder_f ReceiveStatusofULPDCPSDUs_encode_oer;
+per_type_decoder_f ReceiveStatusofULPDCPSDUs_decode_uper;
+per_type_encoder_f ReceiveStatusofULPDCPSDUs_encode_uper;
+per_type_decoder_f ReceiveStatusofULPDCPSDUs_decode_aper;
+per_type_encoder_f ReceiveStatusofULPDCPSDUs_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReceiveStatusofULPDCPSDUs_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Reestablishment-Indication.h b/e2ap/headers/Reestablishment-Indication.h
new file mode 100644 (file)
index 0000000..fd5e775
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Reestablishment_Indication_H_
+#define        _Reestablishment_Indication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Reestablishment_Indication {
+       Reestablishment_Indication_reestablished        = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_Reestablishment_Indication;
+
+/* Reestablishment-Indication */
+typedef long    Reestablishment_Indication_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Reestablishment_Indication_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Reestablishment_Indication;
+extern const asn_INTEGER_specifics_t asn_SPC_Reestablishment_Indication_specs_1;
+asn_struct_free_f Reestablishment_Indication_free;
+asn_struct_print_f Reestablishment_Indication_print;
+asn_constr_check_f Reestablishment_Indication_constraint;
+ber_type_decoder_f Reestablishment_Indication_decode_ber;
+der_type_encoder_f Reestablishment_Indication_encode_der;
+xer_type_decoder_f Reestablishment_Indication_decode_xer;
+xer_type_encoder_f Reestablishment_Indication_encode_xer;
+oer_type_decoder_f Reestablishment_Indication_decode_oer;
+oer_type_encoder_f Reestablishment_Indication_encode_oer;
+per_type_decoder_f Reestablishment_Indication_decode_uper;
+per_type_encoder_f Reestablishment_Indication_encode_uper;
+per_type_decoder_f Reestablishment_Indication_decode_aper;
+per_type_encoder_f Reestablishment_Indication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Reestablishment_Indication_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Registration-Request.h b/e2ap/headers/Registration-Request.h
new file mode 100644 (file)
index 0000000..fda2ca9
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Registration_Request_H_
+#define        _Registration_Request_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Registration_Request {
+       Registration_Request_start      = 0,
+       Registration_Request_stop       = 1,
+       /*
+        * Enumeration is extensible
+        */
+       Registration_Request_partial_stop       = 2,
+       Registration_Request_add        = 3
+} e_Registration_Request;
+
+/* Registration-Request */
+typedef long    Registration_Request_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Registration_Request;
+asn_struct_free_f Registration_Request_free;
+asn_struct_print_f Registration_Request_print;
+asn_constr_check_f Registration_Request_constraint;
+ber_type_decoder_f Registration_Request_decode_ber;
+der_type_encoder_f Registration_Request_encode_der;
+xer_type_decoder_f Registration_Request_decode_xer;
+xer_type_encoder_f Registration_Request_encode_xer;
+oer_type_decoder_f Registration_Request_decode_oer;
+oer_type_encoder_f Registration_Request_encode_oer;
+per_type_decoder_f Registration_Request_decode_uper;
+per_type_encoder_f Registration_Request_encode_uper;
+per_type_decoder_f Registration_Request_decode_aper;
+per_type_encoder_f Registration_Request_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Registration_Request_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RelativeNarrowbandTxPower.h b/e2ap/headers/RelativeNarrowbandTxPower.h
new file mode 100644 (file)
index 0000000..279b27e
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RelativeNarrowbandTxPower_H_
+#define        _RelativeNarrowbandTxPower_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include "RNTP-Threshold.h"
+#include <NativeEnumerated.h>
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RelativeNarrowbandTxPower__numberOfCellSpecificAntennaPorts {
+       RelativeNarrowbandTxPower__numberOfCellSpecificAntennaPorts_one = 0,
+       RelativeNarrowbandTxPower__numberOfCellSpecificAntennaPorts_two = 1,
+       RelativeNarrowbandTxPower__numberOfCellSpecificAntennaPorts_four        = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_RelativeNarrowbandTxPower__numberOfCellSpecificAntennaPorts;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* RelativeNarrowbandTxPower */
+typedef struct RelativeNarrowbandTxPower {
+       BIT_STRING_t     rNTP_PerPRB;
+       RNTP_Threshold_t         rNTP_Threshold;
+       long     numberOfCellSpecificAntennaPorts;
+       long     p_B;
+       long     pDCCH_InterferenceImpact;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RelativeNarrowbandTxPower_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_numberOfCellSpecificAntennaPorts_4;    // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_RelativeNarrowbandTxPower;
+extern asn_SEQUENCE_specifics_t asn_SPC_RelativeNarrowbandTxPower_specs_1;
+extern asn_TYPE_member_t asn_MBR_RelativeNarrowbandTxPower_1[6];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RelativeNarrowbandTxPower_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ReplacingCellsList-Item.h b/e2ap/headers/ReplacingCellsList-Item.h
new file mode 100644 (file)
index 0000000..387ce88
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ReplacingCellsList_Item_H_
+#define        _ReplacingCellsList_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ECGI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ReplacingCellsList-Item */
+typedef struct ReplacingCellsList_Item {
+       ECGI_t   eCGI;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ReplacingCellsList_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ReplacingCellsList_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_ReplacingCellsList_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_ReplacingCellsList_Item_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReplacingCellsList_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ReplacingCellsList.h b/e2ap/headers/ReplacingCellsList.h
new file mode 100644 (file)
index 0000000..bcff043
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ReplacingCellsList_H_
+#define        _ReplacingCellsList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ReplacingCellsList_Item;
+
+/* ReplacingCellsList */
+typedef struct ReplacingCellsList {
+       A_SEQUENCE_OF(struct ReplacingCellsList_Item) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ReplacingCellsList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ReplacingCellsList;
+extern asn_SET_OF_specifics_t asn_SPC_ReplacingCellsList_specs_1;
+extern asn_TYPE_member_t asn_MBR_ReplacingCellsList_1[1];
+extern asn_per_constraints_t asn_PER_type_ReplacingCellsList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReplacingCellsList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ReportAmountMDT.h b/e2ap/headers/ReportAmountMDT.h
new file mode 100644 (file)
index 0000000..0ac79af
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ReportAmountMDT_H_
+#define        _ReportAmountMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ReportAmountMDT {
+       ReportAmountMDT_r1      = 0,
+       ReportAmountMDT_r2      = 1,
+       ReportAmountMDT_r4      = 2,
+       ReportAmountMDT_r8      = 3,
+       ReportAmountMDT_r16     = 4,
+       ReportAmountMDT_r32     = 5,
+       ReportAmountMDT_r64     = 6,
+       ReportAmountMDT_rinfinity       = 7
+} e_ReportAmountMDT;
+
+/* ReportAmountMDT */
+typedef long    ReportAmountMDT_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ReportAmountMDT_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ReportAmountMDT;
+extern const asn_INTEGER_specifics_t asn_SPC_ReportAmountMDT_specs_1;
+asn_struct_free_f ReportAmountMDT_free;
+asn_struct_print_f ReportAmountMDT_print;
+asn_constr_check_f ReportAmountMDT_constraint;
+ber_type_decoder_f ReportAmountMDT_decode_ber;
+der_type_encoder_f ReportAmountMDT_encode_der;
+xer_type_decoder_f ReportAmountMDT_decode_xer;
+xer_type_encoder_f ReportAmountMDT_encode_xer;
+oer_type_decoder_f ReportAmountMDT_decode_oer;
+oer_type_encoder_f ReportAmountMDT_encode_oer;
+per_type_decoder_f ReportAmountMDT_decode_uper;
+per_type_encoder_f ReportAmountMDT_encode_uper;
+per_type_decoder_f ReportAmountMDT_decode_aper;
+per_type_encoder_f ReportAmountMDT_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReportAmountMDT_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ReportArea.h b/e2ap/headers/ReportArea.h
new file mode 100644 (file)
index 0000000..5a92cba
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ReportArea_H_
+#define        _ReportArea_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ReportArea {
+       ReportArea_ecgi = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_ReportArea;
+
+/* ReportArea */
+typedef long    ReportArea_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ReportArea_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ReportArea;
+extern const asn_INTEGER_specifics_t asn_SPC_ReportArea_specs_1;
+asn_struct_free_f ReportArea_free;
+asn_struct_print_f ReportArea_print;
+asn_constr_check_f ReportArea_constraint;
+ber_type_decoder_f ReportArea_decode_ber;
+der_type_encoder_f ReportArea_encode_der;
+xer_type_decoder_f ReportArea_decode_xer;
+xer_type_encoder_f ReportArea_encode_xer;
+oer_type_decoder_f ReportArea_decode_oer;
+oer_type_encoder_f ReportArea_encode_oer;
+per_type_decoder_f ReportArea_decode_uper;
+per_type_encoder_f ReportArea_encode_uper;
+per_type_decoder_f ReportArea_decode_aper;
+per_type_encoder_f ReportArea_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReportArea_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ReportCharacteristics.h b/e2ap/headers/ReportCharacteristics.h
new file mode 100644 (file)
index 0000000..489abc9
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ReportCharacteristics_H_
+#define        _ReportCharacteristics_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ReportCharacteristics */
+typedef BIT_STRING_t    ReportCharacteristics_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ReportCharacteristics_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ReportCharacteristics;
+asn_struct_free_f ReportCharacteristics_free;
+asn_struct_print_f ReportCharacteristics_print;
+asn_constr_check_f ReportCharacteristics_constraint;
+ber_type_decoder_f ReportCharacteristics_decode_ber;
+der_type_encoder_f ReportCharacteristics_encode_der;
+xer_type_decoder_f ReportCharacteristics_decode_xer;
+xer_type_encoder_f ReportCharacteristics_encode_xer;
+oer_type_decoder_f ReportCharacteristics_decode_oer;
+oer_type_encoder_f ReportCharacteristics_encode_oer;
+per_type_decoder_f ReportCharacteristics_decode_uper;
+per_type_encoder_f ReportCharacteristics_encode_uper;
+per_type_decoder_f ReportCharacteristics_decode_aper;
+per_type_encoder_f ReportCharacteristics_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReportCharacteristics_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ReportIntervalMDT.h b/e2ap/headers/ReportIntervalMDT.h
new file mode 100644 (file)
index 0000000..b223079
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ReportIntervalMDT_H_
+#define        _ReportIntervalMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ReportIntervalMDT {
+       ReportIntervalMDT_ms120 = 0,
+       ReportIntervalMDT_ms240 = 1,
+       ReportIntervalMDT_ms480 = 2,
+       ReportIntervalMDT_ms640 = 3,
+       ReportIntervalMDT_ms1024        = 4,
+       ReportIntervalMDT_ms2048        = 5,
+       ReportIntervalMDT_ms5120        = 6,
+       ReportIntervalMDT_ms10240       = 7,
+       ReportIntervalMDT_min1  = 8,
+       ReportIntervalMDT_min6  = 9,
+       ReportIntervalMDT_min12 = 10,
+       ReportIntervalMDT_min30 = 11,
+       ReportIntervalMDT_min60 = 12
+} e_ReportIntervalMDT;
+
+/* ReportIntervalMDT */
+typedef long    ReportIntervalMDT_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ReportIntervalMDT_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ReportIntervalMDT;
+extern const asn_INTEGER_specifics_t asn_SPC_ReportIntervalMDT_specs_1;
+asn_struct_free_f ReportIntervalMDT_free;
+asn_struct_print_f ReportIntervalMDT_print;
+asn_constr_check_f ReportIntervalMDT_constraint;
+ber_type_decoder_f ReportIntervalMDT_decode_ber;
+der_type_encoder_f ReportIntervalMDT_encode_der;
+xer_type_decoder_f ReportIntervalMDT_decode_xer;
+xer_type_encoder_f ReportIntervalMDT_encode_xer;
+oer_type_decoder_f ReportIntervalMDT_decode_oer;
+oer_type_encoder_f ReportIntervalMDT_encode_oer;
+per_type_decoder_f ReportIntervalMDT_decode_uper;
+per_type_encoder_f ReportIntervalMDT_encode_uper;
+per_type_decoder_f ReportIntervalMDT_decode_aper;
+per_type_encoder_f ReportIntervalMDT_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReportIntervalMDT_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ReportingPeriodicity.h b/e2ap/headers/ReportingPeriodicity.h
new file mode 100644 (file)
index 0000000..8285308
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ReportingPeriodicity_H_
+#define        _ReportingPeriodicity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ReportingPeriodicity {
+       ReportingPeriodicity_one_thousand_ms    = 0,
+       ReportingPeriodicity_two_thousand_ms    = 1,
+       ReportingPeriodicity_five_thousand_ms   = 2,
+       ReportingPeriodicity_ten_thousand_ms    = 3
+       /*
+        * Enumeration is extensible
+        */
+} e_ReportingPeriodicity;
+
+/* ReportingPeriodicity */
+typedef long    ReportingPeriodicity_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ReportingPeriodicity;
+asn_struct_free_f ReportingPeriodicity_free;
+asn_struct_print_f ReportingPeriodicity_print;
+asn_constr_check_f ReportingPeriodicity_constraint;
+ber_type_decoder_f ReportingPeriodicity_decode_ber;
+der_type_encoder_f ReportingPeriodicity_encode_der;
+xer_type_decoder_f ReportingPeriodicity_decode_xer;
+xer_type_encoder_f ReportingPeriodicity_encode_xer;
+oer_type_decoder_f ReportingPeriodicity_decode_oer;
+oer_type_encoder_f ReportingPeriodicity_encode_oer;
+per_type_decoder_f ReportingPeriodicity_decode_uper;
+per_type_encoder_f ReportingPeriodicity_encode_uper;
+per_type_decoder_f ReportingPeriodicity_decode_aper;
+per_type_encoder_f ReportingPeriodicity_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReportingPeriodicity_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ReportingPeriodicityCSIR.h b/e2ap/headers/ReportingPeriodicityCSIR.h
new file mode 100644 (file)
index 0000000..6bc2277
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ReportingPeriodicityCSIR_H_
+#define        _ReportingPeriodicityCSIR_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ReportingPeriodicityCSIR {
+       ReportingPeriodicityCSIR_ms5    = 0,
+       ReportingPeriodicityCSIR_ms10   = 1,
+       ReportingPeriodicityCSIR_ms20   = 2,
+       ReportingPeriodicityCSIR_ms40   = 3,
+       ReportingPeriodicityCSIR_ms80   = 4
+       /*
+        * Enumeration is extensible
+        */
+} e_ReportingPeriodicityCSIR;
+
+/* ReportingPeriodicityCSIR */
+typedef long    ReportingPeriodicityCSIR_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ReportingPeriodicityCSIR;
+asn_struct_free_f ReportingPeriodicityCSIR_free;
+asn_struct_print_f ReportingPeriodicityCSIR_print;
+asn_constr_check_f ReportingPeriodicityCSIR_constraint;
+ber_type_decoder_f ReportingPeriodicityCSIR_decode_ber;
+der_type_encoder_f ReportingPeriodicityCSIR_encode_der;
+xer_type_decoder_f ReportingPeriodicityCSIR_decode_xer;
+xer_type_encoder_f ReportingPeriodicityCSIR_encode_xer;
+oer_type_decoder_f ReportingPeriodicityCSIR_decode_oer;
+oer_type_encoder_f ReportingPeriodicityCSIR_encode_oer;
+per_type_decoder_f ReportingPeriodicityCSIR_decode_uper;
+per_type_encoder_f ReportingPeriodicityCSIR_encode_uper;
+per_type_decoder_f ReportingPeriodicityCSIR_decode_aper;
+per_type_encoder_f ReportingPeriodicityCSIR_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReportingPeriodicityCSIR_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ReportingPeriodicityRSRPMR.h b/e2ap/headers/ReportingPeriodicityRSRPMR.h
new file mode 100644 (file)
index 0000000..42c995b
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ReportingPeriodicityRSRPMR_H_
+#define        _ReportingPeriodicityRSRPMR_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ReportingPeriodicityRSRPMR {
+       ReportingPeriodicityRSRPMR_one_hundred_20_ms    = 0,
+       ReportingPeriodicityRSRPMR_two_hundred_40_ms    = 1,
+       ReportingPeriodicityRSRPMR_four_hundred_80_ms   = 2,
+       ReportingPeriodicityRSRPMR_six_hundred_40_ms    = 3
+       /*
+        * Enumeration is extensible
+        */
+} e_ReportingPeriodicityRSRPMR;
+
+/* ReportingPeriodicityRSRPMR */
+typedef long    ReportingPeriodicityRSRPMR_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ReportingPeriodicityRSRPMR;
+asn_struct_free_f ReportingPeriodicityRSRPMR_free;
+asn_struct_print_f ReportingPeriodicityRSRPMR_print;
+asn_constr_check_f ReportingPeriodicityRSRPMR_constraint;
+ber_type_decoder_f ReportingPeriodicityRSRPMR_decode_ber;
+der_type_encoder_f ReportingPeriodicityRSRPMR_encode_der;
+xer_type_decoder_f ReportingPeriodicityRSRPMR_decode_xer;
+xer_type_encoder_f ReportingPeriodicityRSRPMR_encode_xer;
+oer_type_decoder_f ReportingPeriodicityRSRPMR_decode_oer;
+oer_type_encoder_f ReportingPeriodicityRSRPMR_encode_oer;
+per_type_decoder_f ReportingPeriodicityRSRPMR_decode_uper;
+per_type_encoder_f ReportingPeriodicityRSRPMR_encode_uper;
+per_type_decoder_f ReportingPeriodicityRSRPMR_decode_aper;
+per_type_encoder_f ReportingPeriodicityRSRPMR_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReportingPeriodicityRSRPMR_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ReservedSubframePattern.h b/e2ap/headers/ReservedSubframePattern.h
new file mode 100644 (file)
index 0000000..c5f9df7
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ReservedSubframePattern_H_
+#define        _ReservedSubframePattern_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "SubframeType.h"
+#include <BIT_STRING.h>
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ReservedSubframePattern */
+typedef struct ReservedSubframePattern {
+       SubframeType_t   subframeType;
+       BIT_STRING_t     reservedSubframePattern;
+       long     mBSFNControlRegionLength;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ReservedSubframePattern_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ReservedSubframePattern;
+extern asn_SEQUENCE_specifics_t asn_SPC_ReservedSubframePattern_specs_1;
+extern asn_TYPE_member_t asn_MBR_ReservedSubframePattern_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReservedSubframePattern_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ResetRequest.h b/e2ap/headers/ResetRequest.h
new file mode 100644 (file)
index 0000000..3ee3beb
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ResetRequest_H_
+#define        _ResetRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ResetRequest */
+typedef struct ResetRequest {
+       ProtocolIE_Container_9515P22_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResetRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ResetRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_ResetRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ResetRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ResetResponse.h b/e2ap/headers/ResetResponse.h
new file mode 100644 (file)
index 0000000..00b342b
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ResetResponse_H_
+#define        _ResetResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ResetResponse */
+typedef struct ResetResponse {
+       ProtocolIE_Container_9515P23_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResetResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ResetResponse;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1;
+extern asn_TYPE_member_t asn_MBR_ResetResponse_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ResetResponse_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ResourceStatusFailure.h b/e2ap/headers/ResourceStatusFailure.h
new file mode 100644 (file)
index 0000000..c6cbd31
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ResourceStatusFailure_H_
+#define        _ResourceStatusFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ResourceStatusFailure */
+typedef struct ResourceStatusFailure {
+       ProtocolIE_Container_9515P33_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResourceStatusFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusFailure;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusFailure_specs_1;
+extern asn_TYPE_member_t asn_MBR_ResourceStatusFailure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ResourceStatusFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ResourceStatusRequest.h b/e2ap/headers/ResourceStatusRequest.h
new file mode 100644 (file)
index 0000000..5239048
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ResourceStatusRequest_H_
+#define        _ResourceStatusRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ResourceStatusRequest */
+typedef struct ResourceStatusRequest {
+       ProtocolIE_Container_9515P31_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResourceStatusRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_ResourceStatusRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ResourceStatusRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ResourceStatusResponse.h b/e2ap/headers/ResourceStatusResponse.h
new file mode 100644 (file)
index 0000000..06e7a1a
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ResourceStatusResponse_H_
+#define        _ResourceStatusResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ResourceStatusResponse */
+typedef struct ResourceStatusResponse {
+       ProtocolIE_Container_9515P32_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResourceStatusResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusResponse;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusResponse_specs_1;
+extern asn_TYPE_member_t asn_MBR_ResourceStatusResponse_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ResourceStatusResponse_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ResourceStatusUpdate.h b/e2ap/headers/ResourceStatusUpdate.h
new file mode 100644 (file)
index 0000000..5f9498b
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ResourceStatusUpdate_H_
+#define        _ResourceStatusUpdate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ResourceStatusUpdate */
+typedef struct ResourceStatusUpdate {
+       ProtocolIE_Container_9515P34_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResourceStatusUpdate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusUpdate;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusUpdate_specs_1;
+extern asn_TYPE_member_t asn_MBR_ResourceStatusUpdate_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ResourceStatusUpdate_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ResourceType.h b/e2ap/headers/ResourceType.h
new file mode 100644 (file)
index 0000000..2ebc201
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ResourceType_H_
+#define        _ResourceType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ResourceType {
+       ResourceType_downlinknonCRS     = 0,
+       ResourceType_cRS        = 1,
+       ResourceType_uplink     = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_ResourceType;
+
+/* ResourceType */
+typedef long    ResourceType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ResourceType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ResourceType;
+extern const asn_INTEGER_specifics_t asn_SPC_ResourceType_specs_1;
+asn_struct_free_f ResourceType_free;
+asn_struct_print_f ResourceType_print;
+asn_constr_check_f ResourceType_constraint;
+ber_type_decoder_f ResourceType_decode_ber;
+der_type_encoder_f ResourceType_encode_der;
+xer_type_decoder_f ResourceType_decode_xer;
+xer_type_encoder_f ResourceType_encode_xer;
+oer_type_decoder_f ResourceType_decode_oer;
+oer_type_encoder_f ResourceType_encode_oer;
+per_type_decoder_f ResourceType_decode_uper;
+per_type_encoder_f ResourceType_encode_uper;
+per_type_decoder_f ResourceType_decode_aper;
+per_type_encoder_f ResourceType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ResourceType_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RespondingNodeType-EndcConfigUpdate.h b/e2ap/headers/RespondingNodeType-EndcConfigUpdate.h
new file mode 100644 (file)
index 0000000..d479145
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RespondingNodeType_EndcConfigUpdate_H_
+#define        _RespondingNodeType_EndcConfigUpdate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RespondingNodeType_EndcConfigUpdate_PR {
+       RespondingNodeType_EndcConfigUpdate_PR_NOTHING, /* No components present */
+       RespondingNodeType_EndcConfigUpdate_PR_respond_eNB,
+       RespondingNodeType_EndcConfigUpdate_PR_respond_en_gNB
+       /* Extensions may appear below */
+       
+} RespondingNodeType_EndcConfigUpdate_PR;
+
+/* Forward declarations */
+struct ProtocolIE_Container;
+
+/* RespondingNodeType-EndcConfigUpdate */
+typedef struct RespondingNodeType_EndcConfigUpdate {
+       RespondingNodeType_EndcConfigUpdate_PR present;
+       union RespondingNodeType_EndcConfigUpdate_u {
+               struct ProtocolIE_Container     *respond_eNB;
+               struct ProtocolIE_Container     *respond_en_gNB;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RespondingNodeType_EndcConfigUpdate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RespondingNodeType_EndcConfigUpdate;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RespondingNodeType_EndcConfigUpdate_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RespondingNodeType-EndcX2Removal.h b/e2ap/headers/RespondingNodeType-EndcX2Removal.h
new file mode 100644 (file)
index 0000000..b9450d1
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RespondingNodeType_EndcX2Removal_H_
+#define        _RespondingNodeType_EndcX2Removal_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RespondingNodeType_EndcX2Removal_PR {
+       RespondingNodeType_EndcX2Removal_PR_NOTHING,    /* No components present */
+       RespondingNodeType_EndcX2Removal_PR_respond_eNB,
+       RespondingNodeType_EndcX2Removal_PR_respond_en_gNB
+       /* Extensions may appear below */
+       
+} RespondingNodeType_EndcX2Removal_PR;
+
+/* Forward declarations */
+struct ProtocolIE_Container;
+
+/* RespondingNodeType-EndcX2Removal */
+typedef struct RespondingNodeType_EndcX2Removal {
+       RespondingNodeType_EndcX2Removal_PR present;
+       union RespondingNodeType_EndcX2Removal_u {
+               struct ProtocolIE_Container     *respond_eNB;
+               struct ProtocolIE_Container     *respond_en_gNB;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RespondingNodeType_EndcX2Removal_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RespondingNodeType_EndcX2Removal;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RespondingNodeType_EndcX2Removal_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RespondingNodeType-EndcX2Setup.h b/e2ap/headers/RespondingNodeType-EndcX2Setup.h
new file mode 100644 (file)
index 0000000..23099dd
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RespondingNodeType_EndcX2Setup_H_
+#define        _RespondingNodeType_EndcX2Setup_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RespondingNodeType_EndcX2Setup_PR {
+       RespondingNodeType_EndcX2Setup_PR_NOTHING,      /* No components present */
+       RespondingNodeType_EndcX2Setup_PR_respond_eNB,
+       RespondingNodeType_EndcX2Setup_PR_respond_en_gNB
+       /* Extensions may appear below */
+       
+} RespondingNodeType_EndcX2Setup_PR;
+
+/* Forward declarations */
+struct ProtocolIE_Container;
+
+/* RespondingNodeType-EndcX2Setup */
+typedef struct RespondingNodeType_EndcX2Setup {
+       RespondingNodeType_EndcX2Setup_PR present;
+       union RespondingNodeType_EndcX2Setup_u {
+               struct ProtocolIE_Container     *respond_eNB;
+               struct ProtocolIE_Container     *respond_en_gNB;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RespondingNodeType_EndcX2Setup_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RespondingNodeType_EndcX2Setup;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RespondingNodeType_EndcX2Setup_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RespondingNodeType-EutranrCellResourceCoordination.h b/e2ap/headers/RespondingNodeType-EutranrCellResourceCoordination.h
new file mode 100644 (file)
index 0000000..7587acc
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RespondingNodeType_EutranrCellResourceCoordination_H_
+#define        _RespondingNodeType_EutranrCellResourceCoordination_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RespondingNodeType_EutranrCellResourceCoordination_PR {
+       RespondingNodeType_EutranrCellResourceCoordination_PR_NOTHING,  /* No components present */
+       RespondingNodeType_EutranrCellResourceCoordination_PR_respond_eNB,
+       RespondingNodeType_EutranrCellResourceCoordination_PR_respond_en_gNB
+       /* Extensions may appear below */
+       
+} RespondingNodeType_EutranrCellResourceCoordination_PR;
+
+/* Forward declarations */
+struct ProtocolIE_Container;
+
+/* RespondingNodeType-EutranrCellResourceCoordination */
+typedef struct RespondingNodeType_EutranrCellResourceCoordination {
+       RespondingNodeType_EutranrCellResourceCoordination_PR present;
+       union RespondingNodeType_EutranrCellResourceCoordination_u {
+               struct ProtocolIE_Container     *respond_eNB;
+               struct ProtocolIE_Container     *respond_en_gNB;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RespondingNodeType_EutranrCellResourceCoordination_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RespondingNodeType_EutranrCellResourceCoordination;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RespondingNodeType_EutranrCellResourceCoordination_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ResponseInformationSeNBReconfComp-RejectByMeNBItem.h b/e2ap/headers/ResponseInformationSeNBReconfComp-RejectByMeNBItem.h
new file mode 100644 (file)
index 0000000..f1ffd14
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ResponseInformationSeNBReconfComp_RejectByMeNBItem_H_
+#define        _ResponseInformationSeNBReconfComp_RejectByMeNBItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Cause.h"
+#include "MeNBtoSeNBContainer.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ResponseInformationSeNBReconfComp-RejectByMeNBItem */
+typedef struct ResponseInformationSeNBReconfComp_RejectByMeNBItem {
+       Cause_t  cause;
+       MeNBtoSeNBContainer_t   *meNBtoSeNBContainer;   /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResponseInformationSeNBReconfComp_RejectByMeNBItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_RejectByMeNBItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_RejectByMeNBItem_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ResponseInformationSeNBReconfComp_RejectByMeNBItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ResponseInformationSeNBReconfComp-SuccessItem.h b/e2ap/headers/ResponseInformationSeNBReconfComp-SuccessItem.h
new file mode 100644 (file)
index 0000000..6f768d7
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ResponseInformationSeNBReconfComp_SuccessItem_H_
+#define        _ResponseInformationSeNBReconfComp_SuccessItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "MeNBtoSeNBContainer.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ResponseInformationSeNBReconfComp-SuccessItem */
+typedef struct ResponseInformationSeNBReconfComp_SuccessItem {
+       MeNBtoSeNBContainer_t   *meNBtoSeNBContainer;   /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResponseInformationSeNBReconfComp_SuccessItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_SuccessItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_SuccessItem_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ResponseInformationSeNBReconfComp_SuccessItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ResponseInformationSeNBReconfComp.h b/e2ap/headers/ResponseInformationSeNBReconfComp.h
new file mode 100644 (file)
index 0000000..176dbdd
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ResponseInformationSeNBReconfComp_H_
+#define        _ResponseInformationSeNBReconfComp_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ResponseInformationSeNBReconfComp_PR {
+       ResponseInformationSeNBReconfComp_PR_NOTHING,   /* No components present */
+       ResponseInformationSeNBReconfComp_PR_success,
+       ResponseInformationSeNBReconfComp_PR_reject_by_MeNB
+       /* Extensions may appear below */
+       
+} ResponseInformationSeNBReconfComp_PR;
+
+/* Forward declarations */
+struct ResponseInformationSeNBReconfComp_SuccessItem;
+struct ResponseInformationSeNBReconfComp_RejectByMeNBItem;
+
+/* ResponseInformationSeNBReconfComp */
+typedef struct ResponseInformationSeNBReconfComp {
+       ResponseInformationSeNBReconfComp_PR present;
+       union ResponseInformationSeNBReconfComp_u {
+               struct ResponseInformationSeNBReconfComp_SuccessItem    *success;
+               struct ResponseInformationSeNBReconfComp_RejectByMeNBItem       *reject_by_MeNB;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResponseInformationSeNBReconfComp_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ResponseInformationSeNBReconfComp_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ResponseInformationSgNBReconfComp-RejectByMeNBItem.h b/e2ap/headers/ResponseInformationSgNBReconfComp-RejectByMeNBItem.h
new file mode 100644 (file)
index 0000000..9bf72c4
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ResponseInformationSgNBReconfComp_RejectByMeNBItem_H_
+#define        _ResponseInformationSgNBReconfComp_RejectByMeNBItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Cause.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ResponseInformationSgNBReconfComp-RejectByMeNBItem */
+typedef struct ResponseInformationSgNBReconfComp_RejectByMeNBItem {
+       Cause_t  cause;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResponseInformationSgNBReconfComp_RejectByMeNBItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_RejectByMeNBItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_RejectByMeNBItem_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ResponseInformationSgNBReconfComp_RejectByMeNBItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ResponseInformationSgNBReconfComp-SuccessItem.h b/e2ap/headers/ResponseInformationSgNBReconfComp-SuccessItem.h
new file mode 100644 (file)
index 0000000..62958ef
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ResponseInformationSgNBReconfComp_SuccessItem_H_
+#define        _ResponseInformationSgNBReconfComp_SuccessItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "MeNBtoSgNBContainer.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ResponseInformationSgNBReconfComp-SuccessItem */
+typedef struct ResponseInformationSgNBReconfComp_SuccessItem {
+       MeNBtoSgNBContainer_t   *meNBtoSgNBContainer;   /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResponseInformationSgNBReconfComp_SuccessItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_SuccessItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_SuccessItem_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ResponseInformationSgNBReconfComp_SuccessItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ResponseInformationSgNBReconfComp.h b/e2ap/headers/ResponseInformationSgNBReconfComp.h
new file mode 100644 (file)
index 0000000..03d0b94
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ResponseInformationSgNBReconfComp_H_
+#define        _ResponseInformationSgNBReconfComp_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ResponseInformationSgNBReconfComp_PR {
+       ResponseInformationSgNBReconfComp_PR_NOTHING,   /* No components present */
+       ResponseInformationSgNBReconfComp_PR_success_SgNBReconfComp,
+       ResponseInformationSgNBReconfComp_PR_reject_by_MeNB_SgNBReconfComp
+       /* Extensions may appear below */
+       
+} ResponseInformationSgNBReconfComp_PR;
+
+/* Forward declarations */
+struct ResponseInformationSgNBReconfComp_SuccessItem;
+struct ResponseInformationSgNBReconfComp_RejectByMeNBItem;
+
+/* ResponseInformationSgNBReconfComp */
+typedef struct ResponseInformationSgNBReconfComp {
+       ResponseInformationSgNBReconfComp_PR present;
+       union ResponseInformationSgNBReconfComp_u {
+               struct ResponseInformationSgNBReconfComp_SuccessItem    *success_SgNBReconfComp;
+               struct ResponseInformationSgNBReconfComp_RejectByMeNBItem       *reject_by_MeNB_SgNBReconfComp;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResponseInformationSgNBReconfComp_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ResponseInformationSgNBReconfComp_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ResumeID.h b/e2ap/headers/ResumeID.h
new file mode 100644 (file)
index 0000000..5c479cb
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ResumeID_H_
+#define        _ResumeID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ResumeID_PR {
+       ResumeID_PR_NOTHING,    /* No components present */
+       ResumeID_PR_non_truncated,
+       ResumeID_PR_truncated
+       /* Extensions may appear below */
+       
+} ResumeID_PR;
+
+/* ResumeID */
+typedef struct ResumeID {
+       ResumeID_PR present;
+       union ResumeID_u {
+               BIT_STRING_t     non_truncated;
+               BIT_STRING_t     truncated;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ResumeID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ResumeID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ResumeID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RetrieveUEContextFailure.h b/e2ap/headers/RetrieveUEContextFailure.h
new file mode 100644 (file)
index 0000000..bcade00
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RetrieveUEContextFailure_H_
+#define        _RetrieveUEContextFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RetrieveUEContextFailure */
+typedef struct RetrieveUEContextFailure {
+       ProtocolIE_Container_9515P63_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RetrieveUEContextFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextFailure;
+extern asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextFailure_specs_1;
+extern asn_TYPE_member_t asn_MBR_RetrieveUEContextFailure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RetrieveUEContextFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RetrieveUEContextRequest.h b/e2ap/headers/RetrieveUEContextRequest.h
new file mode 100644 (file)
index 0000000..62c5fc3
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RetrieveUEContextRequest_H_
+#define        _RetrieveUEContextRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RetrieveUEContextRequest */
+typedef struct RetrieveUEContextRequest {
+       ProtocolIE_Container_9515P61_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RetrieveUEContextRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_RetrieveUEContextRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RetrieveUEContextRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RetrieveUEContextResponse.h b/e2ap/headers/RetrieveUEContextResponse.h
new file mode 100644 (file)
index 0000000..07aff5b
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _RetrieveUEContextResponse_H_
+#define        _RetrieveUEContextResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RetrieveUEContextResponse */
+typedef struct RetrieveUEContextResponse {
+       ProtocolIE_Container_9515P62_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} RetrieveUEContextResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextResponse;
+extern asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextResponse_specs_1;
+extern asn_TYPE_member_t asn_MBR_RetrieveUEContextResponse_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RetrieveUEContextResponse_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/S1TNLLoadIndicator.h b/e2ap/headers/S1TNLLoadIndicator.h
new file mode 100644 (file)
index 0000000..49da1ca
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _S1TNLLoadIndicator_H_
+#define        _S1TNLLoadIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "LoadIndicator.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* S1TNLLoadIndicator */
+typedef struct S1TNLLoadIndicator {
+       LoadIndicator_t  dLS1TNLLoadIndicator;
+       LoadIndicator_t  uLS1TNLLoadIndicator;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} S1TNLLoadIndicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_S1TNLLoadIndicator;
+extern asn_SEQUENCE_specifics_t asn_SPC_S1TNLLoadIndicator_specs_1;
+extern asn_TYPE_member_t asn_MBR_S1TNLLoadIndicator_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _S1TNLLoadIndicator_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SCGChangeIndication.h b/e2ap/headers/SCGChangeIndication.h
new file mode 100644 (file)
index 0000000..58cb21c
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SCGChangeIndication_H_
+#define        _SCGChangeIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SCGChangeIndication {
+       SCGChangeIndication_pDCPCountWrapAround = 0,
+       SCGChangeIndication_pSCellChange        = 1,
+       SCGChangeIndication_other       = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_SCGChangeIndication;
+
+/* SCGChangeIndication */
+typedef long    SCGChangeIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SCGChangeIndication;
+asn_struct_free_f SCGChangeIndication_free;
+asn_struct_print_f SCGChangeIndication_print;
+asn_constr_check_f SCGChangeIndication_constraint;
+ber_type_decoder_f SCGChangeIndication_decode_ber;
+der_type_encoder_f SCGChangeIndication_encode_der;
+xer_type_decoder_f SCGChangeIndication_decode_xer;
+xer_type_encoder_f SCGChangeIndication_encode_xer;
+oer_type_decoder_f SCGChangeIndication_decode_oer;
+oer_type_encoder_f SCGChangeIndication_encode_oer;
+per_type_decoder_f SCGChangeIndication_decode_uper;
+per_type_encoder_f SCGChangeIndication_encode_uper;
+per_type_decoder_f SCGChangeIndication_decode_aper;
+per_type_encoder_f SCGChangeIndication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCGChangeIndication_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SCGConfigurationQuery.h b/e2ap/headers/SCGConfigurationQuery.h
new file mode 100644 (file)
index 0000000..fe0ed2b
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SCGConfigurationQuery_H_
+#define        _SCGConfigurationQuery_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SCGConfigurationQuery {
+       SCGConfigurationQuery_true      = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_SCGConfigurationQuery;
+
+/* SCGConfigurationQuery */
+typedef long    SCGConfigurationQuery_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SCGConfigurationQuery;
+asn_struct_free_f SCGConfigurationQuery_free;
+asn_struct_print_f SCGConfigurationQuery_print;
+asn_constr_check_f SCGConfigurationQuery_constraint;
+ber_type_decoder_f SCGConfigurationQuery_decode_ber;
+der_type_encoder_f SCGConfigurationQuery_encode_der;
+xer_type_decoder_f SCGConfigurationQuery_decode_xer;
+xer_type_encoder_f SCGConfigurationQuery_encode_xer;
+oer_type_decoder_f SCGConfigurationQuery_decode_oer;
+oer_type_encoder_f SCGConfigurationQuery_encode_oer;
+per_type_decoder_f SCGConfigurationQuery_decode_uper;
+per_type_encoder_f SCGConfigurationQuery_encode_uper;
+per_type_decoder_f SCGConfigurationQuery_decode_aper;
+per_type_encoder_f SCGConfigurationQuery_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCGConfigurationQuery_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SGNB-Addition-Trigger-Ind.h b/e2ap/headers/SGNB-Addition-Trigger-Ind.h
new file mode 100644 (file)
index 0000000..b04ddca
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SGNB_Addition_Trigger_Ind_H_
+#define        _SGNB_Addition_Trigger_Ind_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SGNB_Addition_Trigger_Ind {
+       SGNB_Addition_Trigger_Ind_sn_change     = 0,
+       SGNB_Addition_Trigger_Ind_inter_eNB_HO  = 1,
+       SGNB_Addition_Trigger_Ind_intra_eNB_HO  = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_SGNB_Addition_Trigger_Ind;
+
+/* SGNB-Addition-Trigger-Ind */
+typedef long    SGNB_Addition_Trigger_Ind_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SGNB_Addition_Trigger_Ind;
+asn_struct_free_f SGNB_Addition_Trigger_Ind_free;
+asn_struct_print_f SGNB_Addition_Trigger_Ind_print;
+asn_constr_check_f SGNB_Addition_Trigger_Ind_constraint;
+ber_type_decoder_f SGNB_Addition_Trigger_Ind_decode_ber;
+der_type_encoder_f SGNB_Addition_Trigger_Ind_encode_der;
+xer_type_decoder_f SGNB_Addition_Trigger_Ind_decode_xer;
+xer_type_encoder_f SGNB_Addition_Trigger_Ind_encode_xer;
+oer_type_decoder_f SGNB_Addition_Trigger_Ind_decode_oer;
+oer_type_encoder_f SGNB_Addition_Trigger_Ind_encode_oer;
+per_type_decoder_f SGNB_Addition_Trigger_Ind_decode_uper;
+per_type_encoder_f SGNB_Addition_Trigger_Ind_encode_uper;
+per_type_decoder_f SGNB_Addition_Trigger_Ind_decode_aper;
+per_type_encoder_f SGNB_Addition_Trigger_Ind_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SGNB_Addition_Trigger_Ind_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SIPTOBearerDeactivationIndication.h b/e2ap/headers/SIPTOBearerDeactivationIndication.h
new file mode 100644 (file)
index 0000000..8042b25
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SIPTOBearerDeactivationIndication_H_
+#define        _SIPTOBearerDeactivationIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SIPTOBearerDeactivationIndication {
+       SIPTOBearerDeactivationIndication_true  = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_SIPTOBearerDeactivationIndication;
+
+/* SIPTOBearerDeactivationIndication */
+typedef long    SIPTOBearerDeactivationIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SIPTOBearerDeactivationIndication;
+asn_struct_free_f SIPTOBearerDeactivationIndication_free;
+asn_struct_print_f SIPTOBearerDeactivationIndication_print;
+asn_constr_check_f SIPTOBearerDeactivationIndication_constraint;
+ber_type_decoder_f SIPTOBearerDeactivationIndication_decode_ber;
+der_type_encoder_f SIPTOBearerDeactivationIndication_encode_der;
+xer_type_decoder_f SIPTOBearerDeactivationIndication_decode_xer;
+xer_type_encoder_f SIPTOBearerDeactivationIndication_encode_xer;
+oer_type_decoder_f SIPTOBearerDeactivationIndication_decode_oer;
+oer_type_encoder_f SIPTOBearerDeactivationIndication_encode_oer;
+per_type_decoder_f SIPTOBearerDeactivationIndication_decode_uper;
+per_type_encoder_f SIPTOBearerDeactivationIndication_encode_uper;
+per_type_decoder_f SIPTOBearerDeactivationIndication_decode_aper;
+per_type_encoder_f SIPTOBearerDeactivationIndication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SIPTOBearerDeactivationIndication_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SNStatusTransfer.h b/e2ap/headers/SNStatusTransfer.h
new file mode 100644 (file)
index 0000000..643884f
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SNStatusTransfer_H_
+#define        _SNStatusTransfer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SNStatusTransfer */
+typedef struct SNStatusTransfer {
+       ProtocolIE_Container_9515P18_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SNStatusTransfer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SNStatusTransfer;
+extern asn_SEQUENCE_specifics_t asn_SPC_SNStatusTransfer_specs_1;
+extern asn_TYPE_member_t asn_MBR_SNStatusTransfer_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SNStatusTransfer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SRBType.h b/e2ap/headers/SRBType.h
new file mode 100644 (file)
index 0000000..34eadc1
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SRBType_H_
+#define        _SRBType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SRBType {
+       SRBType_srb1    = 0,
+       SRBType_srb2    = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_SRBType;
+
+/* SRBType */
+typedef long    SRBType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SRBType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SRBType;
+extern const asn_INTEGER_specifics_t asn_SPC_SRBType_specs_1;
+asn_struct_free_f SRBType_free;
+asn_struct_print_f SRBType_print;
+asn_constr_check_f SRBType_constraint;
+ber_type_decoder_f SRBType_decode_ber;
+der_type_encoder_f SRBType_encode_der;
+xer_type_decoder_f SRBType_decode_xer;
+xer_type_encoder_f SRBType_encode_xer;
+oer_type_decoder_f SRBType_decode_oer;
+oer_type_encoder_f SRBType_encode_oer;
+per_type_decoder_f SRBType_decode_uper;
+per_type_encoder_f SRBType_encode_uper;
+per_type_decoder_f SRBType_decode_aper;
+per_type_encoder_f SRBType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SRBType_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SRVCCOperationPossible.h b/e2ap/headers/SRVCCOperationPossible.h
new file mode 100644 (file)
index 0000000..fcd760f
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SRVCCOperationPossible_H_
+#define        _SRVCCOperationPossible_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SRVCCOperationPossible {
+       SRVCCOperationPossible_possible = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_SRVCCOperationPossible;
+
+/* SRVCCOperationPossible */
+typedef long    SRVCCOperationPossible_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SRVCCOperationPossible;
+asn_struct_free_f SRVCCOperationPossible_free;
+asn_struct_print_f SRVCCOperationPossible_print;
+asn_constr_check_f SRVCCOperationPossible_constraint;
+ber_type_decoder_f SRVCCOperationPossible_decode_ber;
+der_type_encoder_f SRVCCOperationPossible_encode_der;
+xer_type_decoder_f SRVCCOperationPossible_decode_xer;
+xer_type_encoder_f SRVCCOperationPossible_encode_xer;
+oer_type_decoder_f SRVCCOperationPossible_decode_oer;
+oer_type_encoder_f SRVCCOperationPossible_encode_oer;
+per_type_decoder_f SRVCCOperationPossible_decode_uper;
+per_type_encoder_f SRVCCOperationPossible_encode_uper;
+per_type_decoder_f SRVCCOperationPossible_decode_aper;
+per_type_encoder_f SRVCCOperationPossible_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SRVCCOperationPossible_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SULInformation.h b/e2ap/headers/SULInformation.h
new file mode 100644 (file)
index 0000000..befb8fc
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SULInformation_H_
+#define        _SULInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include "NR-TxBW.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* SULInformation */
+typedef struct SULInformation {
+       long     sUL_ARFCN;
+       NR_TxBW_t        sUL_TxBW;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SULInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SULInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_SULInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_SULInformation_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SULInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ScheduledCommunicationTime.h b/e2ap/headers/ScheduledCommunicationTime.h
new file mode 100644 (file)
index 0000000..9111ad8
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ScheduledCommunicationTime_H_
+#define        _ScheduledCommunicationTime_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ScheduledCommunicationTime */
+typedef struct ScheduledCommunicationTime {
+       BIT_STRING_t    *dayofWeek;     /* OPTIONAL */
+       long    *timeofDayStart;        /* OPTIONAL */
+       long    *timeofDayEnd;  /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ScheduledCommunicationTime_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ScheduledCommunicationTime;
+extern asn_SEQUENCE_specifics_t asn_SPC_ScheduledCommunicationTime_specs_1;
+extern asn_TYPE_member_t asn_MBR_ScheduledCommunicationTime_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ScheduledCommunicationTime_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SeNBAdditionRequest.h b/e2ap/headers/SeNBAdditionRequest.h
new file mode 100644 (file)
index 0000000..6198dd6
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SeNBAdditionRequest_H_
+#define        _SeNBAdditionRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SeNBAdditionRequest */
+typedef struct SeNBAdditionRequest {
+       ProtocolIE_Container_9515P44_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBAdditionRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_SeNBAdditionRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SeNBAdditionRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SeNBAdditionRequestAcknowledge.h b/e2ap/headers/SeNBAdditionRequestAcknowledge.h
new file mode 100644 (file)
index 0000000..9051427
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SeNBAdditionRequestAcknowledge_H_
+#define        _SeNBAdditionRequestAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SeNBAdditionRequestAcknowledge */
+typedef struct SeNBAdditionRequestAcknowledge {
+       ProtocolIE_Container_9515P45_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBAdditionRequestAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestAcknowledge;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequestAcknowledge_specs_1;
+extern asn_TYPE_member_t asn_MBR_SeNBAdditionRequestAcknowledge_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SeNBAdditionRequestAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SeNBAdditionRequestReject.h b/e2ap/headers/SeNBAdditionRequestReject.h
new file mode 100644 (file)
index 0000000..328326d
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SeNBAdditionRequestReject_H_
+#define        _SeNBAdditionRequestReject_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SeNBAdditionRequestReject */
+typedef struct SeNBAdditionRequestReject {
+       ProtocolIE_Container_9515P46_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBAdditionRequestReject_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestReject;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequestReject_specs_1;
+extern asn_TYPE_member_t asn_MBR_SeNBAdditionRequestReject_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SeNBAdditionRequestReject_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SeNBCounterCheckRequest.h b/e2ap/headers/SeNBCounterCheckRequest.h
new file mode 100644 (file)
index 0000000..f6e1d5d
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SeNBCounterCheckRequest_H_
+#define        _SeNBCounterCheckRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SeNBCounterCheckRequest */
+typedef struct SeNBCounterCheckRequest {
+       ProtocolIE_Container_9515P57_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBCounterCheckRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SeNBCounterCheckRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBCounterCheckRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_SeNBCounterCheckRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SeNBCounterCheckRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SeNBModificationConfirm.h b/e2ap/headers/SeNBModificationConfirm.h
new file mode 100644 (file)
index 0000000..8e705c4
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SeNBModificationConfirm_H_
+#define        _SeNBModificationConfirm_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SeNBModificationConfirm */
+typedef struct SeNBModificationConfirm {
+       ProtocolIE_Container_9515P52_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBModificationConfirm_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationConfirm;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationConfirm_specs_1;
+extern asn_TYPE_member_t asn_MBR_SeNBModificationConfirm_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SeNBModificationConfirm_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SeNBModificationRefuse.h b/e2ap/headers/SeNBModificationRefuse.h
new file mode 100644 (file)
index 0000000..b33d426
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SeNBModificationRefuse_H_
+#define        _SeNBModificationRefuse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SeNBModificationRefuse */
+typedef struct SeNBModificationRefuse {
+       ProtocolIE_Container_9515P53_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBModificationRefuse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRefuse;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRefuse_specs_1;
+extern asn_TYPE_member_t asn_MBR_SeNBModificationRefuse_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SeNBModificationRefuse_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SeNBModificationRequest.h b/e2ap/headers/SeNBModificationRequest.h
new file mode 100644 (file)
index 0000000..6773520
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SeNBModificationRequest_H_
+#define        _SeNBModificationRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SeNBModificationRequest */
+typedef struct SeNBModificationRequest {
+       ProtocolIE_Container_9515P48_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBModificationRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_SeNBModificationRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SeNBModificationRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SeNBModificationRequestAcknowledge.h b/e2ap/headers/SeNBModificationRequestAcknowledge.h
new file mode 100644 (file)
index 0000000..f5ef9a4
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SeNBModificationRequestAcknowledge_H_
+#define        _SeNBModificationRequestAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SeNBModificationRequestAcknowledge */
+typedef struct SeNBModificationRequestAcknowledge {
+       ProtocolIE_Container_9515P49_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBModificationRequestAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestAcknowledge;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequestAcknowledge_specs_1;
+extern asn_TYPE_member_t asn_MBR_SeNBModificationRequestAcknowledge_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SeNBModificationRequestAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SeNBModificationRequestReject.h b/e2ap/headers/SeNBModificationRequestReject.h
new file mode 100644 (file)
index 0000000..40c307b
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SeNBModificationRequestReject_H_
+#define        _SeNBModificationRequestReject_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SeNBModificationRequestReject */
+typedef struct SeNBModificationRequestReject {
+       ProtocolIE_Container_9515P50_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBModificationRequestReject_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestReject;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequestReject_specs_1;
+extern asn_TYPE_member_t asn_MBR_SeNBModificationRequestReject_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SeNBModificationRequestReject_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SeNBModificationRequired.h b/e2ap/headers/SeNBModificationRequired.h
new file mode 100644 (file)
index 0000000..f381b8f
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SeNBModificationRequired_H_
+#define        _SeNBModificationRequired_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SeNBModificationRequired */
+typedef struct SeNBModificationRequired {
+       ProtocolIE_Container_9515P51_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBModificationRequired_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequired;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequired_specs_1;
+extern asn_TYPE_member_t asn_MBR_SeNBModificationRequired_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SeNBModificationRequired_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SeNBReconfigurationComplete.h b/e2ap/headers/SeNBReconfigurationComplete.h
new file mode 100644 (file)
index 0000000..9e2bae0
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SeNBReconfigurationComplete_H_
+#define        _SeNBReconfigurationComplete_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SeNBReconfigurationComplete */
+typedef struct SeNBReconfigurationComplete {
+       ProtocolIE_Container_9515P47_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBReconfigurationComplete_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SeNBReconfigurationComplete;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBReconfigurationComplete_specs_1;
+extern asn_TYPE_member_t asn_MBR_SeNBReconfigurationComplete_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SeNBReconfigurationComplete_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SeNBReleaseConfirm.h b/e2ap/headers/SeNBReleaseConfirm.h
new file mode 100644 (file)
index 0000000..6c176e8
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SeNBReleaseConfirm_H_
+#define        _SeNBReleaseConfirm_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SeNBReleaseConfirm */
+typedef struct SeNBReleaseConfirm {
+       ProtocolIE_Container_9515P56_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBReleaseConfirm_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SeNBReleaseConfirm;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseConfirm_specs_1;
+extern asn_TYPE_member_t asn_MBR_SeNBReleaseConfirm_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SeNBReleaseConfirm_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SeNBReleaseRequest.h b/e2ap/headers/SeNBReleaseRequest.h
new file mode 100644 (file)
index 0000000..5469b20
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SeNBReleaseRequest_H_
+#define        _SeNBReleaseRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SeNBReleaseRequest */
+typedef struct SeNBReleaseRequest {
+       ProtocolIE_Container_9515P54_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBReleaseRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_SeNBReleaseRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SeNBReleaseRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SeNBReleaseRequired.h b/e2ap/headers/SeNBReleaseRequired.h
new file mode 100644 (file)
index 0000000..8d8ebf7
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SeNBReleaseRequired_H_
+#define        _SeNBReleaseRequired_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SeNBReleaseRequired */
+typedef struct SeNBReleaseRequired {
+       ProtocolIE_Container_9515P55_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SeNBReleaseRequired_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequired;
+extern asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseRequired_specs_1;
+extern asn_TYPE_member_t asn_MBR_SeNBReleaseRequired_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SeNBReleaseRequired_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SeNBSecurityKey.h b/e2ap/headers/SeNBSecurityKey.h
new file mode 100644 (file)
index 0000000..94a3ec7
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SeNBSecurityKey_H_
+#define        _SeNBSecurityKey_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SeNBSecurityKey */
+typedef BIT_STRING_t    SeNBSecurityKey_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SeNBSecurityKey_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SeNBSecurityKey;
+asn_struct_free_f SeNBSecurityKey_free;
+asn_struct_print_f SeNBSecurityKey_print;
+asn_constr_check_f SeNBSecurityKey_constraint;
+ber_type_decoder_f SeNBSecurityKey_decode_ber;
+der_type_encoder_f SeNBSecurityKey_encode_der;
+xer_type_decoder_f SeNBSecurityKey_decode_xer;
+xer_type_encoder_f SeNBSecurityKey_encode_xer;
+oer_type_decoder_f SeNBSecurityKey_decode_oer;
+oer_type_encoder_f SeNBSecurityKey_encode_oer;
+per_type_decoder_f SeNBSecurityKey_decode_uper;
+per_type_encoder_f SeNBSecurityKey_encode_uper;
+per_type_decoder_f SeNBSecurityKey_decode_aper;
+per_type_encoder_f SeNBSecurityKey_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SeNBSecurityKey_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SeNBtoMeNBContainer.h b/e2ap/headers/SeNBtoMeNBContainer.h
new file mode 100644 (file)
index 0000000..e8c53ae
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SeNBtoMeNBContainer_H_
+#define        _SeNBtoMeNBContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SeNBtoMeNBContainer */
+typedef OCTET_STRING_t  SeNBtoMeNBContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SeNBtoMeNBContainer;
+asn_struct_free_f SeNBtoMeNBContainer_free;
+asn_struct_print_f SeNBtoMeNBContainer_print;
+asn_constr_check_f SeNBtoMeNBContainer_constraint;
+ber_type_decoder_f SeNBtoMeNBContainer_decode_ber;
+der_type_encoder_f SeNBtoMeNBContainer_encode_der;
+xer_type_decoder_f SeNBtoMeNBContainer_decode_xer;
+xer_type_encoder_f SeNBtoMeNBContainer_encode_xer;
+oer_type_decoder_f SeNBtoMeNBContainer_decode_oer;
+oer_type_encoder_f SeNBtoMeNBContainer_encode_oer;
+per_type_decoder_f SeNBtoMeNBContainer_decode_uper;
+per_type_encoder_f SeNBtoMeNBContainer_encode_uper;
+per_type_decoder_f SeNBtoMeNBContainer_decode_aper;
+per_type_encoder_f SeNBtoMeNBContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SeNBtoMeNBContainer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SecondaryRATDataUsageReport.h b/e2ap/headers/SecondaryRATDataUsageReport.h
new file mode 100644 (file)
index 0000000..05a45dd
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SecondaryRATDataUsageReport_H_
+#define        _SecondaryRATDataUsageReport_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SecondaryRATDataUsageReport */
+typedef struct SecondaryRATDataUsageReport {
+       ProtocolIE_Container_9515P101_t  protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SecondaryRATDataUsageReport_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATDataUsageReport;
+extern asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATDataUsageReport_specs_1;
+extern asn_TYPE_member_t asn_MBR_SecondaryRATDataUsageReport_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SecondaryRATDataUsageReport_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SecondaryRATUsageReport-Item.h b/e2ap/headers/SecondaryRATUsageReport-Item.h
new file mode 100644 (file)
index 0000000..bc6d70c
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SecondaryRATUsageReport_Item_H_
+#define        _SecondaryRATUsageReport_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <NativeEnumerated.h>
+#include "E-RABUsageReportList.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SecondaryRATUsageReport_Item__secondaryRATType {
+       SecondaryRATUsageReport_Item__secondaryRATType_nr       = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_SecondaryRATUsageReport_Item__secondaryRATType;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* SecondaryRATUsageReport-Item */
+typedef struct SecondaryRATUsageReport_Item {
+       E_RAB_ID_t       e_RAB_ID;
+       long     secondaryRATType;
+       E_RABUsageReportList_t   e_RABUsageReportList;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SecondaryRATUsageReport_Item_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_secondaryRATType_3;    // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATUsageReport_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SecondaryRATUsageReport_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SecondaryRATUsageReportList.h b/e2ap/headers/SecondaryRATUsageReportList.h
new file mode 100644 (file)
index 0000000..421df51
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SecondaryRATUsageReportList_H_
+#define        _SecondaryRATUsageReportList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_Single_Container;
+
+/* SecondaryRATUsageReportList */
+typedef struct SecondaryRATUsageReportList {
+       A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SecondaryRATUsageReportList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATUsageReportList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SecondaryRATUsageReportList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ServedCell-Information.h b/e2ap/headers/ServedCell-Information.h
new file mode 100644 (file)
index 0000000..e693f27
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ServedCell_Information_H_
+#define        _ServedCell_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PCI.h"
+#include "ECGI.h"
+#include "TAC.h"
+#include "BroadcastPLMNs-Item.h"
+#include "EUTRA-Mode-Info.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ServedCell-Information */
+typedef struct ServedCell_Information {
+       PCI_t    pCI;
+       ECGI_t   cellId;
+       TAC_t    tAC;
+       BroadcastPLMNs_Item_t    broadcastPLMNs;
+       EUTRA_Mode_Info_t        eUTRA_Mode_Info;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedCell_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedCell_Information;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedCell_Information_specs_1;
+extern asn_TYPE_member_t asn_MBR_ServedCell_Information_1[6];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedCell_Information_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ServedCells.h b/e2ap/headers/ServedCells.h
new file mode 100644 (file)
index 0000000..e5cd854
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ServedCells_H_
+#define        _ServedCells_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "ServedCell-Information.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct Neighbour_Information;
+struct ProtocolExtensionContainer;
+
+/* Forward definitions */
+typedef struct ServedCells__Member {
+       ServedCell_Information_t         servedCellInfo;
+       struct Neighbour_Information    *neighbour_Info;        /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedCells__Member;
+
+/* ServedCells */
+typedef struct ServedCells {
+       A_SEQUENCE_OF(ServedCells__Member) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedCells_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedCells;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedCells_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ServedCellsToActivate-Item.h b/e2ap/headers/ServedCellsToActivate-Item.h
new file mode 100644 (file)
index 0000000..b7b4bd5
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ServedCellsToActivate_Item_H_
+#define        _ServedCellsToActivate_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ECGI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ServedCellsToActivate-Item */
+typedef struct ServedCellsToActivate_Item {
+       ECGI_t   ecgi;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedCellsToActivate_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedCellsToActivate_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedCellsToActivate_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_ServedCellsToActivate_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedCellsToActivate_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ServedCellsToActivate.h b/e2ap/headers/ServedCellsToActivate.h
new file mode 100644 (file)
index 0000000..4525863
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ServedCellsToActivate_H_
+#define        _ServedCellsToActivate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ServedCellsToActivate_Item;
+
+/* ServedCellsToActivate */
+typedef struct ServedCellsToActivate {
+       A_SEQUENCE_OF(struct ServedCellsToActivate_Item) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedCellsToActivate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedCellsToActivate;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedCellsToActivate_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ServedCellsToModify-Item.h b/e2ap/headers/ServedCellsToModify-Item.h
new file mode 100644 (file)
index 0000000..dec5e02
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ServedCellsToModify_Item_H_
+#define        _ServedCellsToModify_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ECGI.h"
+#include "ServedCell-Information.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct Neighbour_Information;
+struct ProtocolExtensionContainer;
+
+/* ServedCellsToModify-Item */
+typedef struct ServedCellsToModify_Item {
+       ECGI_t   old_ecgi;
+       ServedCell_Information_t         servedCellInfo;
+       struct Neighbour_Information    *neighbour_Info;        /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedCellsToModify_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedCellsToModify_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedCellsToModify_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_ServedCellsToModify_Item_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedCellsToModify_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ServedCellsToModify.h b/e2ap/headers/ServedCellsToModify.h
new file mode 100644 (file)
index 0000000..e10ffd6
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ServedCellsToModify_H_
+#define        _ServedCellsToModify_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ServedCellsToModify_Item;
+
+/* ServedCellsToModify */
+typedef struct ServedCellsToModify {
+       A_SEQUENCE_OF(struct ServedCellsToModify_Item) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedCellsToModify_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedCellsToModify;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedCellsToModify_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ServedEUTRAcellsENDCX2ManagementList.h b/e2ap/headers/ServedEUTRAcellsENDCX2ManagementList.h
new file mode 100644 (file)
index 0000000..6cb3faf
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ServedEUTRAcellsENDCX2ManagementList_H_
+#define        _ServedEUTRAcellsENDCX2ManagementList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "ServedCell-Information.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct NRNeighbour_Information;
+struct ProtocolExtensionContainer;
+
+/* Forward definitions */
+typedef struct ServedEUTRAcellsENDCX2ManagementList__Member {
+       ServedCell_Information_t         servedEUTRACellInfo;
+       struct NRNeighbour_Information  *nrNeighbourInfo;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedEUTRAcellsENDCX2ManagementList__Member;
+
+/* ServedEUTRAcellsENDCX2ManagementList */
+typedef struct ServedEUTRAcellsENDCX2ManagementList {
+       A_SEQUENCE_OF(ServedEUTRAcellsENDCX2ManagementList__Member) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedEUTRAcellsENDCX2ManagementList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsENDCX2ManagementList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedEUTRAcellsENDCX2ManagementList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ServedEUTRAcellsToDeleteListENDCConfUpd.h b/e2ap/headers/ServedEUTRAcellsToDeleteListENDCConfUpd.h
new file mode 100644 (file)
index 0000000..79b4278
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ServedEUTRAcellsToDeleteListENDCConfUpd_H_
+#define        _ServedEUTRAcellsToDeleteListENDCConfUpd_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ECGI;
+
+/* ServedEUTRAcellsToDeleteListENDCConfUpd */
+typedef struct ServedEUTRAcellsToDeleteListENDCConfUpd {
+       A_SEQUENCE_OF(struct ECGI) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedEUTRAcellsToDeleteListENDCConfUpd_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedEUTRAcellsToDeleteListENDCConfUpd_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ServedEUTRAcellsToModifyListENDCConfUpd.h b/e2ap/headers/ServedEUTRAcellsToModifyListENDCConfUpd.h
new file mode 100644 (file)
index 0000000..37d9836
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ServedEUTRAcellsToModifyListENDCConfUpd_H_
+#define        _ServedEUTRAcellsToModifyListENDCConfUpd_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "ECGI.h"
+#include "ServedCell-Information.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct NRNeighbour_Information;
+struct ProtocolExtensionContainer;
+
+/* Forward definitions */
+typedef struct ServedEUTRAcellsToModifyListENDCConfUpd__Member {
+       ECGI_t   old_ECGI;
+       ServedCell_Information_t         servedEUTRACellInfo;
+       struct NRNeighbour_Information  *nrNeighbourInfo;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedEUTRAcellsToModifyListENDCConfUpd__Member;
+
+/* ServedEUTRAcellsToModifyListENDCConfUpd */
+typedef struct ServedEUTRAcellsToModifyListENDCConfUpd {
+       A_SEQUENCE_OF(ServedEUTRAcellsToModifyListENDCConfUpd__Member) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedEUTRAcellsToModifyListENDCConfUpd_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedEUTRAcellsToModifyListENDCConfUpd_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ServedNRCell-Information.h b/e2ap/headers/ServedNRCell-Information.h
new file mode 100644 (file)
index 0000000..6412071
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ServedNRCell_Information_H_
+#define        _ServedNRCell_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NRPCI.h"
+#include "NRCGI.h"
+#include "FiveGS-TAC.h"
+#include "TAC.h"
+#include "BroadcastPLMNs-Item.h"
+#include <OCTET_STRING.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ServedNRCell_Information__nrModeInfo_PR {
+       ServedNRCell_Information__nrModeInfo_PR_NOTHING,        /* No components present */
+       ServedNRCell_Information__nrModeInfo_PR_fdd,
+       ServedNRCell_Information__nrModeInfo_PR_tdd
+       /* Extensions may appear below */
+       
+} ServedNRCell_Information__nrModeInfo_PR;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+struct FDD_InfoServedNRCell_Information;
+struct TDD_InfoServedNRCell_Information;
+
+/* ServedNRCell-Information */
+typedef struct ServedNRCell_Information {
+       NRPCI_t  nrpCI;
+       NRCGI_t  nrCellID;
+       FiveGS_TAC_t    *fiveGS_TAC;    /* OPTIONAL */
+       TAC_t   *configured_TAC;        /* OPTIONAL */
+       BroadcastPLMNs_Item_t    broadcastPLMNs;
+       struct ServedNRCell_Information__nrModeInfo {
+               ServedNRCell_Information__nrModeInfo_PR present;
+               union ServedNRCell_Information__nrModeInfo_u {
+                       struct FDD_InfoServedNRCell_Information *fdd;
+                       struct TDD_InfoServedNRCell_Information *tdd;
+                       /*
+                        * This type is extensible,
+                        * possible extensions are below.
+                        */
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } nrModeInfo;
+       OCTET_STRING_t   measurementTimingConfiguration;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedNRCell_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedNRCell_Information;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedNRCell_Information_specs_1;
+extern asn_TYPE_member_t asn_MBR_ServedNRCell_Information_1[8];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedNRCell_Information_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ServedNRCellsToActivate-Item.h b/e2ap/headers/ServedNRCellsToActivate-Item.h
new file mode 100644 (file)
index 0000000..baa5e96
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ServedNRCellsToActivate_Item_H_
+#define        _ServedNRCellsToActivate_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NRCGI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ServedNRCellsToActivate-Item */
+typedef struct ServedNRCellsToActivate_Item {
+       NRCGI_t  nrCellID;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedNRCellsToActivate_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToActivate_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedNRCellsToActivate_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_ServedNRCellsToActivate_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedNRCellsToActivate_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ServedNRCellsToActivate.h b/e2ap/headers/ServedNRCellsToActivate.h
new file mode 100644 (file)
index 0000000..501db41
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ServedNRCellsToActivate_H_
+#define        _ServedNRCellsToActivate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ServedNRCellsToActivate_Item;
+
+/* ServedNRCellsToActivate */
+typedef struct ServedNRCellsToActivate {
+       A_SEQUENCE_OF(struct ServedNRCellsToActivate_Item) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedNRCellsToActivate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToActivate;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedNRCellsToActivate_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ServedNRCellsToModify-Item.h b/e2ap/headers/ServedNRCellsToModify-Item.h
new file mode 100644 (file)
index 0000000..a16d014
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ServedNRCellsToModify_Item_H_
+#define        _ServedNRCellsToModify_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NRCGI.h"
+#include "ServedNRCell-Information.h"
+#include "DeactivationIndication.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct NRNeighbour_Information;
+struct ProtocolExtensionContainer;
+
+/* ServedNRCellsToModify-Item */
+typedef struct ServedNRCellsToModify_Item {
+       NRCGI_t  old_nrcgi;
+       ServedNRCell_Information_t       servedNRCellInformation;
+       struct NRNeighbour_Information  *nrNeighbourInformation;        /* OPTIONAL */
+       DeactivationIndication_t        *nrDeactivationIndication;      /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedNRCellsToModify_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToModify_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedNRCellsToModify_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_ServedNRCellsToModify_Item_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedNRCellsToModify_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ServedNRcellsENDCX2ManagementList.h b/e2ap/headers/ServedNRcellsENDCX2ManagementList.h
new file mode 100644 (file)
index 0000000..2fb451f
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ServedNRcellsENDCX2ManagementList_H_
+#define        _ServedNRcellsENDCX2ManagementList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "ServedNRCell-Information.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct NRNeighbour_Information;
+struct ProtocolExtensionContainer;
+
+/* Forward definitions */
+typedef struct ServedNRcellsENDCX2ManagementList__Member {
+       ServedNRCell_Information_t       servedNRCellInfo;
+       struct NRNeighbour_Information  *nRNeighbourInfo;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedNRcellsENDCX2ManagementList__Member;
+
+/* ServedNRcellsENDCX2ManagementList */
+typedef struct ServedNRcellsENDCX2ManagementList {
+       A_SEQUENCE_OF(ServedNRcellsENDCX2ManagementList__Member) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedNRcellsENDCX2ManagementList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedNRcellsENDCX2ManagementList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedNRcellsENDCX2ManagementList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ServedNRcellsToDeleteENDCConfUpdList.h b/e2ap/headers/ServedNRcellsToDeleteENDCConfUpdList.h
new file mode 100644 (file)
index 0000000..b0e1581
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ServedNRcellsToDeleteENDCConfUpdList_H_
+#define        _ServedNRcellsToDeleteENDCConfUpdList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct NRCGI;
+
+/* ServedNRcellsToDeleteENDCConfUpdList */
+typedef struct ServedNRcellsToDeleteENDCConfUpdList {
+       A_SEQUENCE_OF(struct NRCGI) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedNRcellsToDeleteENDCConfUpdList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedNRcellsToDeleteENDCConfUpdList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedNRcellsToDeleteENDCConfUpdList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ServedNRcellsToModifyENDCConfUpdList.h b/e2ap/headers/ServedNRcellsToModifyENDCConfUpdList.h
new file mode 100644 (file)
index 0000000..52f83c6
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ServedNRcellsToModifyENDCConfUpdList_H_
+#define        _ServedNRcellsToModifyENDCConfUpdList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ServedNRCellsToModify_Item;
+
+/* ServedNRcellsToModifyENDCConfUpdList */
+typedef struct ServedNRcellsToModifyENDCConfUpdList {
+       A_SEQUENCE_OF(struct ServedNRCellsToModify_Item) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ServedNRcellsToModifyENDCConfUpdList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedNRcellsToModifyENDCConfUpdList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedNRcellsToModifyENDCConfUpdList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ServiceType.h b/e2ap/headers/ServiceType.h
new file mode 100644 (file)
index 0000000..295e8cc
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ServiceType_H_
+#define        _ServiceType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ServiceType {
+       ServiceType_qMC_for_streaming_service   = 0,
+       ServiceType_qMC_for_MTSI_service        = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_ServiceType;
+
+/* ServiceType */
+typedef long    ServiceType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServiceType;
+asn_struct_free_f ServiceType_free;
+asn_struct_print_f ServiceType_print;
+asn_constr_check_f ServiceType_constraint;
+ber_type_decoder_f ServiceType_decode_ber;
+der_type_encoder_f ServiceType_encode_der;
+xer_type_decoder_f ServiceType_decode_xer;
+xer_type_encoder_f ServiceType_encode_xer;
+oer_type_decoder_f ServiceType_decode_oer;
+oer_type_encoder_f ServiceType_encode_oer;
+per_type_decoder_f ServiceType_decode_uper;
+per_type_encoder_f ServiceType_encode_uper;
+per_type_decoder_f ServiceType_decode_aper;
+per_type_encoder_f ServiceType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServiceType_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNB-UE-X2AP-ID.h b/e2ap/headers/SgNB-UE-X2AP-ID.h
new file mode 100644 (file)
index 0000000..7fe992c
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNB_UE_X2AP_ID_H_
+#define        _SgNB_UE_X2AP_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNB-UE-X2AP-ID */
+typedef unsigned long   SgNB_UE_X2AP_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SgNB_UE_X2AP_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SgNB_UE_X2AP_ID;
+extern const asn_INTEGER_specifics_t asn_SPC_SgNB_UE_X2AP_ID_specs_1;
+asn_struct_free_f SgNB_UE_X2AP_ID_free;
+asn_struct_print_f SgNB_UE_X2AP_ID_print;
+asn_constr_check_f SgNB_UE_X2AP_ID_constraint;
+ber_type_decoder_f SgNB_UE_X2AP_ID_decode_ber;
+der_type_encoder_f SgNB_UE_X2AP_ID_encode_der;
+xer_type_decoder_f SgNB_UE_X2AP_ID_decode_xer;
+xer_type_encoder_f SgNB_UE_X2AP_ID_encode_xer;
+oer_type_decoder_f SgNB_UE_X2AP_ID_decode_oer;
+oer_type_encoder_f SgNB_UE_X2AP_ID_encode_oer;
+per_type_decoder_f SgNB_UE_X2AP_ID_decode_uper;
+per_type_encoder_f SgNB_UE_X2AP_ID_encode_uper;
+per_type_decoder_f SgNB_UE_X2AP_ID_decode_aper;
+per_type_encoder_f SgNB_UE_X2AP_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNB_UE_X2AP_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBActivityNotification.h b/e2ap/headers/SgNBActivityNotification.h
new file mode 100644 (file)
index 0000000..aa58fee
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBActivityNotification_H_
+#define        _SgNBActivityNotification_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBActivityNotification */
+typedef struct SgNBActivityNotification {
+       ProtocolIE_Container_9515P102_t  protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBActivityNotification_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBActivityNotification;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBActivityNotification_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBActivityNotification_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBActivityNotification_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBAdditionRequest.h b/e2ap/headers/SgNBAdditionRequest.h
new file mode 100644 (file)
index 0000000..d64559a
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBAdditionRequest_H_
+#define        _SgNBAdditionRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBAdditionRequest */
+typedef struct SgNBAdditionRequest {
+       ProtocolIE_Container_9515P64_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBAdditionRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBAdditionRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBAdditionRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBAdditionRequestAcknowledge.h b/e2ap/headers/SgNBAdditionRequestAcknowledge.h
new file mode 100644 (file)
index 0000000..d2b1099
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBAdditionRequestAcknowledge_H_
+#define        _SgNBAdditionRequestAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBAdditionRequestAcknowledge */
+typedef struct SgNBAdditionRequestAcknowledge {
+       ProtocolIE_Container_9515P65_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBAdditionRequestAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestAcknowledge;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequestAcknowledge_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBAdditionRequestAcknowledge_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBAdditionRequestAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBAdditionRequestReject.h b/e2ap/headers/SgNBAdditionRequestReject.h
new file mode 100644 (file)
index 0000000..6835519
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBAdditionRequestReject_H_
+#define        _SgNBAdditionRequestReject_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBAdditionRequestReject */
+typedef struct SgNBAdditionRequestReject {
+       ProtocolIE_Container_9515P66_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBAdditionRequestReject_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestReject;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequestReject_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBAdditionRequestReject_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBAdditionRequestReject_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBChangeConfirm.h b/e2ap/headers/SgNBChangeConfirm.h
new file mode 100644 (file)
index 0000000..c245493
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBChangeConfirm_H_
+#define        _SgNBChangeConfirm_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBChangeConfirm */
+typedef struct SgNBChangeConfirm {
+       ProtocolIE_Container_9515P81_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBChangeConfirm_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBChangeConfirm;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeConfirm_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBChangeConfirm_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBChangeConfirm_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBChangeRefuse.h b/e2ap/headers/SgNBChangeRefuse.h
new file mode 100644 (file)
index 0000000..d1b2fe2
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBChangeRefuse_H_
+#define        _SgNBChangeRefuse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBChangeRefuse */
+typedef struct SgNBChangeRefuse {
+       ProtocolIE_Container_9515P83_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBChangeRefuse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBChangeRefuse;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeRefuse_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBChangeRefuse_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBChangeRefuse_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBChangeRequired.h b/e2ap/headers/SgNBChangeRequired.h
new file mode 100644 (file)
index 0000000..a560e8b
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBChangeRequired_H_
+#define        _SgNBChangeRequired_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBChangeRequired */
+typedef struct SgNBChangeRequired {
+       ProtocolIE_Container_9515P80_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBChangeRequired_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBChangeRequired;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeRequired_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBChangeRequired_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBChangeRequired_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBCoordinationAssistanceInformation.h b/e2ap/headers/SgNBCoordinationAssistanceInformation.h
new file mode 100644 (file)
index 0000000..17782dd
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBCoordinationAssistanceInformation_H_
+#define        _SgNBCoordinationAssistanceInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SgNBCoordinationAssistanceInformation {
+       SgNBCoordinationAssistanceInformation_coordination_not_required = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_SgNBCoordinationAssistanceInformation;
+
+/* SgNBCoordinationAssistanceInformation */
+typedef long    SgNBCoordinationAssistanceInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBCoordinationAssistanceInformation;
+asn_struct_free_f SgNBCoordinationAssistanceInformation_free;
+asn_struct_print_f SgNBCoordinationAssistanceInformation_print;
+asn_constr_check_f SgNBCoordinationAssistanceInformation_constraint;
+ber_type_decoder_f SgNBCoordinationAssistanceInformation_decode_ber;
+der_type_encoder_f SgNBCoordinationAssistanceInformation_encode_der;
+xer_type_decoder_f SgNBCoordinationAssistanceInformation_decode_xer;
+xer_type_encoder_f SgNBCoordinationAssistanceInformation_encode_xer;
+oer_type_decoder_f SgNBCoordinationAssistanceInformation_decode_oer;
+oer_type_encoder_f SgNBCoordinationAssistanceInformation_encode_oer;
+per_type_decoder_f SgNBCoordinationAssistanceInformation_decode_uper;
+per_type_encoder_f SgNBCoordinationAssistanceInformation_encode_uper;
+per_type_decoder_f SgNBCoordinationAssistanceInformation_decode_aper;
+per_type_encoder_f SgNBCoordinationAssistanceInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBCoordinationAssistanceInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBCounterCheckRequest.h b/e2ap/headers/SgNBCounterCheckRequest.h
new file mode 100644 (file)
index 0000000..d011e1a
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBCounterCheckRequest_H_
+#define        _SgNBCounterCheckRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBCounterCheckRequest */
+typedef struct SgNBCounterCheckRequest {
+       ProtocolIE_Container_9515P79_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBCounterCheckRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBCounterCheckRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBCounterCheckRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBCounterCheckRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBCounterCheckRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBModificationConfirm.h b/e2ap/headers/SgNBModificationConfirm.h
new file mode 100644 (file)
index 0000000..c521696
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBModificationConfirm_H_
+#define        _SgNBModificationConfirm_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBModificationConfirm */
+typedef struct SgNBModificationConfirm {
+       ProtocolIE_Container_9515P72_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBModificationConfirm_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationConfirm;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationConfirm_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBModificationConfirm_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBModificationConfirm_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBModificationRefuse.h b/e2ap/headers/SgNBModificationRefuse.h
new file mode 100644 (file)
index 0000000..243b788
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBModificationRefuse_H_
+#define        _SgNBModificationRefuse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBModificationRefuse */
+typedef struct SgNBModificationRefuse {
+       ProtocolIE_Container_9515P73_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBModificationRefuse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRefuse;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRefuse_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBModificationRefuse_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBModificationRefuse_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBModificationRequest.h b/e2ap/headers/SgNBModificationRequest.h
new file mode 100644 (file)
index 0000000..fc0ced3
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBModificationRequest_H_
+#define        _SgNBModificationRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBModificationRequest */
+typedef struct SgNBModificationRequest {
+       ProtocolIE_Container_9515P68_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBModificationRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBModificationRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBModificationRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBModificationRequestAcknowledge.h b/e2ap/headers/SgNBModificationRequestAcknowledge.h
new file mode 100644 (file)
index 0000000..31bcede
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBModificationRequestAcknowledge_H_
+#define        _SgNBModificationRequestAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBModificationRequestAcknowledge */
+typedef struct SgNBModificationRequestAcknowledge {
+       ProtocolIE_Container_9515P69_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBModificationRequestAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestAcknowledge;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequestAcknowledge_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBModificationRequestAcknowledge_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBModificationRequestAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBModificationRequestReject.h b/e2ap/headers/SgNBModificationRequestReject.h
new file mode 100644 (file)
index 0000000..84497f2
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBModificationRequestReject_H_
+#define        _SgNBModificationRequestReject_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBModificationRequestReject */
+typedef struct SgNBModificationRequestReject {
+       ProtocolIE_Container_9515P70_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBModificationRequestReject_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestReject;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequestReject_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBModificationRequestReject_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBModificationRequestReject_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBModificationRequired.h b/e2ap/headers/SgNBModificationRequired.h
new file mode 100644 (file)
index 0000000..da2f6d8
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBModificationRequired_H_
+#define        _SgNBModificationRequired_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBModificationRequired */
+typedef struct SgNBModificationRequired {
+       ProtocolIE_Container_9515P71_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBModificationRequired_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequired;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequired_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBModificationRequired_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBModificationRequired_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBReconfigurationComplete.h b/e2ap/headers/SgNBReconfigurationComplete.h
new file mode 100644 (file)
index 0000000..d9a1428
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBReconfigurationComplete_H_
+#define        _SgNBReconfigurationComplete_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBReconfigurationComplete */
+typedef struct SgNBReconfigurationComplete {
+       ProtocolIE_Container_9515P67_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBReconfigurationComplete_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBReconfigurationComplete;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReconfigurationComplete_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBReconfigurationComplete_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBReconfigurationComplete_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBReleaseConfirm.h b/e2ap/headers/SgNBReleaseConfirm.h
new file mode 100644 (file)
index 0000000..4021ada
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBReleaseConfirm_H_
+#define        _SgNBReleaseConfirm_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBReleaseConfirm */
+typedef struct SgNBReleaseConfirm {
+       ProtocolIE_Container_9515P78_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBReleaseConfirm_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseConfirm;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseConfirm_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBReleaseConfirm_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBReleaseConfirm_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBReleaseRequest.h b/e2ap/headers/SgNBReleaseRequest.h
new file mode 100644 (file)
index 0000000..5a60115
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBReleaseRequest_H_
+#define        _SgNBReleaseRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBReleaseRequest */
+typedef struct SgNBReleaseRequest {
+       ProtocolIE_Container_9515P74_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBReleaseRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBReleaseRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBReleaseRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBReleaseRequestAcknowledge.h b/e2ap/headers/SgNBReleaseRequestAcknowledge.h
new file mode 100644 (file)
index 0000000..477ae59
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBReleaseRequestAcknowledge_H_
+#define        _SgNBReleaseRequestAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBReleaseRequestAcknowledge */
+typedef struct SgNBReleaseRequestAcknowledge {
+       ProtocolIE_Container_9515P75_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBReleaseRequestAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestAcknowledge;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequestAcknowledge_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBReleaseRequestAcknowledge_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBReleaseRequestAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBReleaseRequestReject.h b/e2ap/headers/SgNBReleaseRequestReject.h
new file mode 100644 (file)
index 0000000..451a678
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBReleaseRequestReject_H_
+#define        _SgNBReleaseRequestReject_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBReleaseRequestReject */
+typedef struct SgNBReleaseRequestReject {
+       ProtocolIE_Container_9515P76_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBReleaseRequestReject_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestReject;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequestReject_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBReleaseRequestReject_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBReleaseRequestReject_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBReleaseRequired.h b/e2ap/headers/SgNBReleaseRequired.h
new file mode 100644 (file)
index 0000000..f6e39fb
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBReleaseRequired_H_
+#define        _SgNBReleaseRequired_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBReleaseRequired */
+typedef struct SgNBReleaseRequired {
+       ProtocolIE_Container_9515P77_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBReleaseRequired_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequired;
+extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequired_specs_1;
+extern asn_TYPE_member_t asn_MBR_SgNBReleaseRequired_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBReleaseRequired_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBResourceCoordinationInformation.h b/e2ap/headers/SgNBResourceCoordinationInformation.h
new file mode 100644 (file)
index 0000000..9b53077
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBResourceCoordinationInformation_H_
+#define        _SgNBResourceCoordinationInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NRCGI.h"
+#include <BIT_STRING.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* SgNBResourceCoordinationInformation */
+typedef struct SgNBResourceCoordinationInformation {
+       NRCGI_t  nR_CGI;
+       BIT_STRING_t     uLCoordinationInformation;
+       BIT_STRING_t    *dLCoordinationInformation;     /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SgNBResourceCoordinationInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBResourceCoordinationInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBResourceCoordinationInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBSecurityKey.h b/e2ap/headers/SgNBSecurityKey.h
new file mode 100644 (file)
index 0000000..090974c
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBSecurityKey_H_
+#define        _SgNBSecurityKey_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBSecurityKey */
+typedef BIT_STRING_t    SgNBSecurityKey_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SgNBSecurityKey_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SgNBSecurityKey;
+asn_struct_free_f SgNBSecurityKey_free;
+asn_struct_print_f SgNBSecurityKey_print;
+asn_constr_check_f SgNBSecurityKey_constraint;
+ber_type_decoder_f SgNBSecurityKey_decode_ber;
+der_type_encoder_f SgNBSecurityKey_encode_der;
+xer_type_decoder_f SgNBSecurityKey_decode_xer;
+xer_type_encoder_f SgNBSecurityKey_encode_xer;
+oer_type_decoder_f SgNBSecurityKey_decode_oer;
+oer_type_encoder_f SgNBSecurityKey_encode_oer;
+per_type_decoder_f SgNBSecurityKey_decode_uper;
+per_type_encoder_f SgNBSecurityKey_encode_uper;
+per_type_decoder_f SgNBSecurityKey_decode_aper;
+per_type_encoder_f SgNBSecurityKey_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBSecurityKey_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SgNBtoMeNBContainer.h b/e2ap/headers/SgNBtoMeNBContainer.h
new file mode 100644 (file)
index 0000000..0176bdf
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SgNBtoMeNBContainer_H_
+#define        _SgNBtoMeNBContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SgNBtoMeNBContainer */
+typedef OCTET_STRING_t  SgNBtoMeNBContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SgNBtoMeNBContainer;
+asn_struct_free_f SgNBtoMeNBContainer_free;
+asn_struct_print_f SgNBtoMeNBContainer_print;
+asn_constr_check_f SgNBtoMeNBContainer_constraint;
+ber_type_decoder_f SgNBtoMeNBContainer_decode_ber;
+der_type_encoder_f SgNBtoMeNBContainer_encode_der;
+xer_type_decoder_f SgNBtoMeNBContainer_decode_xer;
+xer_type_encoder_f SgNBtoMeNBContainer_encode_xer;
+oer_type_decoder_f SgNBtoMeNBContainer_decode_oer;
+oer_type_encoder_f SgNBtoMeNBContainer_encode_oer;
+per_type_decoder_f SgNBtoMeNBContainer_decode_uper;
+per_type_encoder_f SgNBtoMeNBContainer_encode_uper;
+per_type_decoder_f SgNBtoMeNBContainer_decode_aper;
+per_type_encoder_f SgNBtoMeNBContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SgNBtoMeNBContainer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SharedResourceType.h b/e2ap/headers/SharedResourceType.h
new file mode 100644 (file)
index 0000000..1512799
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SharedResourceType_H_
+#define        _SharedResourceType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SharedResourceType_PR {
+       SharedResourceType_PR_NOTHING,  /* No components present */
+       SharedResourceType_PR_uLOnlySharing,
+       SharedResourceType_PR_uLandDLSharing
+       /* Extensions may appear below */
+       
+} SharedResourceType_PR;
+
+/* Forward declarations */
+struct ULOnlySharing;
+struct ULandDLSharing;
+
+/* SharedResourceType */
+typedef struct SharedResourceType {
+       SharedResourceType_PR present;
+       union SharedResourceType_u {
+               struct ULOnlySharing    *uLOnlySharing;
+               struct ULandDLSharing   *uLandDLSharing;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SharedResourceType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SharedResourceType;
+extern asn_CHOICE_specifics_t asn_SPC_SharedResourceType_specs_1;
+extern asn_TYPE_member_t asn_MBR_SharedResourceType_1[2];
+extern asn_per_constraints_t asn_PER_type_SharedResourceType_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SharedResourceType_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ShortMAC-I.h b/e2ap/headers/ShortMAC-I.h
new file mode 100644 (file)
index 0000000..0df085a
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ShortMAC_I_H_
+#define        _ShortMAC_I_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ShortMAC-I */
+typedef BIT_STRING_t    ShortMAC_I_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ShortMAC_I;
+asn_struct_free_f ShortMAC_I_free;
+asn_struct_print_f ShortMAC_I_print;
+asn_constr_check_f ShortMAC_I_constraint;
+ber_type_decoder_f ShortMAC_I_decode_ber;
+der_type_encoder_f ShortMAC_I_encode_der;
+xer_type_decoder_f ShortMAC_I_decode_xer;
+xer_type_encoder_f ShortMAC_I_encode_xer;
+oer_type_decoder_f ShortMAC_I_decode_oer;
+oer_type_encoder_f ShortMAC_I_encode_oer;
+per_type_decoder_f ShortMAC_I_decode_uper;
+per_type_encoder_f ShortMAC_I_encode_uper;
+per_type_decoder_f ShortMAC_I_decode_aper;
+per_type_encoder_f ShortMAC_I_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ShortMAC_I_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SourceOfUEActivityBehaviourInformation.h b/e2ap/headers/SourceOfUEActivityBehaviourInformation.h
new file mode 100644 (file)
index 0000000..7cd48c4
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SourceOfUEActivityBehaviourInformation_H_
+#define        _SourceOfUEActivityBehaviourInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SourceOfUEActivityBehaviourInformation {
+       SourceOfUEActivityBehaviourInformation_subscription_information = 0,
+       SourceOfUEActivityBehaviourInformation_statistics       = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_SourceOfUEActivityBehaviourInformation;
+
+/* SourceOfUEActivityBehaviourInformation */
+typedef long    SourceOfUEActivityBehaviourInformation_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SourceOfUEActivityBehaviourInformation_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SourceOfUEActivityBehaviourInformation;
+extern const asn_INTEGER_specifics_t asn_SPC_SourceOfUEActivityBehaviourInformation_specs_1;
+asn_struct_free_f SourceOfUEActivityBehaviourInformation_free;
+asn_struct_print_f SourceOfUEActivityBehaviourInformation_print;
+asn_constr_check_f SourceOfUEActivityBehaviourInformation_constraint;
+ber_type_decoder_f SourceOfUEActivityBehaviourInformation_decode_ber;
+der_type_encoder_f SourceOfUEActivityBehaviourInformation_encode_der;
+xer_type_decoder_f SourceOfUEActivityBehaviourInformation_decode_xer;
+xer_type_encoder_f SourceOfUEActivityBehaviourInformation_encode_xer;
+oer_type_decoder_f SourceOfUEActivityBehaviourInformation_decode_oer;
+oer_type_encoder_f SourceOfUEActivityBehaviourInformation_encode_oer;
+per_type_decoder_f SourceOfUEActivityBehaviourInformation_decode_uper;
+per_type_encoder_f SourceOfUEActivityBehaviourInformation_encode_uper;
+per_type_decoder_f SourceOfUEActivityBehaviourInformation_decode_aper;
+per_type_encoder_f SourceOfUEActivityBehaviourInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SourceOfUEActivityBehaviourInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SpecialSubframe-Info.h b/e2ap/headers/SpecialSubframe-Info.h
new file mode 100644 (file)
index 0000000..111990a
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SpecialSubframe_Info_H_
+#define        _SpecialSubframe_Info_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "SpecialSubframePatterns.h"
+#include "CyclicPrefixDL.h"
+#include "CyclicPrefixUL.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* SpecialSubframe-Info */
+typedef struct SpecialSubframe_Info {
+       SpecialSubframePatterns_t        specialSubframePatterns;
+       CyclicPrefixDL_t         cyclicPrefixDL;
+       CyclicPrefixUL_t         cyclicPrefixUL;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SpecialSubframe_Info_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SpecialSubframe_Info;
+extern asn_SEQUENCE_specifics_t asn_SPC_SpecialSubframe_Info_specs_1;
+extern asn_TYPE_member_t asn_MBR_SpecialSubframe_Info_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SpecialSubframe_Info_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SpecialSubframePatterns.h b/e2ap/headers/SpecialSubframePatterns.h
new file mode 100644 (file)
index 0000000..486102b
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SpecialSubframePatterns_H_
+#define        _SpecialSubframePatterns_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SpecialSubframePatterns {
+       SpecialSubframePatterns_ssp0    = 0,
+       SpecialSubframePatterns_ssp1    = 1,
+       SpecialSubframePatterns_ssp2    = 2,
+       SpecialSubframePatterns_ssp3    = 3,
+       SpecialSubframePatterns_ssp4    = 4,
+       SpecialSubframePatterns_ssp5    = 5,
+       SpecialSubframePatterns_ssp6    = 6,
+       SpecialSubframePatterns_ssp7    = 7,
+       SpecialSubframePatterns_ssp8    = 8
+       /*
+        * Enumeration is extensible
+        */
+} e_SpecialSubframePatterns;
+
+/* SpecialSubframePatterns */
+typedef long    SpecialSubframePatterns_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SpecialSubframePatterns_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SpecialSubframePatterns;
+extern const asn_INTEGER_specifics_t asn_SPC_SpecialSubframePatterns_specs_1;
+asn_struct_free_f SpecialSubframePatterns_free;
+asn_struct_print_f SpecialSubframePatterns_print;
+asn_constr_check_f SpecialSubframePatterns_constraint;
+ber_type_decoder_f SpecialSubframePatterns_decode_ber;
+der_type_encoder_f SpecialSubframePatterns_encode_der;
+xer_type_decoder_f SpecialSubframePatterns_decode_xer;
+xer_type_encoder_f SpecialSubframePatterns_encode_xer;
+oer_type_decoder_f SpecialSubframePatterns_decode_oer;
+oer_type_encoder_f SpecialSubframePatterns_encode_oer;
+per_type_decoder_f SpecialSubframePatterns_decode_uper;
+per_type_encoder_f SpecialSubframePatterns_encode_uper;
+per_type_decoder_f SpecialSubframePatterns_decode_aper;
+per_type_encoder_f SpecialSubframePatterns_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SpecialSubframePatterns_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SpectrumSharingGroupID.h b/e2ap/headers/SpectrumSharingGroupID.h
new file mode 100644 (file)
index 0000000..984d9d0
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SpectrumSharingGroupID_H_
+#define        _SpectrumSharingGroupID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SpectrumSharingGroupID */
+typedef long    SpectrumSharingGroupID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SpectrumSharingGroupID;
+asn_struct_free_f SpectrumSharingGroupID_free;
+asn_struct_print_f SpectrumSharingGroupID_print;
+asn_constr_check_f SpectrumSharingGroupID_constraint;
+ber_type_decoder_f SpectrumSharingGroupID_decode_ber;
+der_type_encoder_f SpectrumSharingGroupID_encode_der;
+xer_type_decoder_f SpectrumSharingGroupID_decode_xer;
+xer_type_encoder_f SpectrumSharingGroupID_encode_xer;
+oer_type_decoder_f SpectrumSharingGroupID_decode_oer;
+oer_type_encoder_f SpectrumSharingGroupID_encode_oer;
+per_type_decoder_f SpectrumSharingGroupID_decode_uper;
+per_type_encoder_f SpectrumSharingGroupID_encode_uper;
+per_type_decoder_f SpectrumSharingGroupID_decode_aper;
+per_type_encoder_f SpectrumSharingGroupID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SpectrumSharingGroupID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SplitSRB.h b/e2ap/headers/SplitSRB.h
new file mode 100644 (file)
index 0000000..8d296bd
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SplitSRB_H_
+#define        _SplitSRB_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RRCContainer.h"
+#include "SRBType.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct DeliveryStatus;
+struct ProtocolExtensionContainer;
+
+/* SplitSRB */
+typedef struct SplitSRB {
+       RRCContainer_t  *rrcContainer;  /* OPTIONAL */
+       SRBType_t        srbType;
+       struct DeliveryStatus   *deliveryStatus;        /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SplitSRB_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SplitSRB;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SplitSRB_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SplitSRBs.h b/e2ap/headers/SplitSRBs.h
new file mode 100644 (file)
index 0000000..d697bb0
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SplitSRBs_H_
+#define        _SplitSRBs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SplitSRBs {
+       SplitSRBs_srb1  = 0,
+       SplitSRBs_srb2  = 1,
+       SplitSRBs_srb1and2      = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_SplitSRBs;
+
+/* SplitSRBs */
+typedef long    SplitSRBs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SplitSRBs;
+asn_struct_free_f SplitSRBs_free;
+asn_struct_print_f SplitSRBs_print;
+asn_constr_check_f SplitSRBs_constraint;
+ber_type_decoder_f SplitSRBs_decode_ber;
+der_type_encoder_f SplitSRBs_encode_der;
+xer_type_decoder_f SplitSRBs_decode_xer;
+xer_type_encoder_f SplitSRBs_encode_xer;
+oer_type_decoder_f SplitSRBs_decode_oer;
+oer_type_encoder_f SplitSRBs_encode_oer;
+per_type_decoder_f SplitSRBs_decode_uper;
+per_type_encoder_f SplitSRBs_encode_uper;
+per_type_decoder_f SplitSRBs_decode_aper;
+per_type_encoder_f SplitSRBs_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SplitSRBs_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Style-ID.h b/e2ap/headers/Style-ID.h
new file mode 100644 (file)
index 0000000..7137ef2
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Style_ID_H_
+#define        _Style_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Style-ID */
+typedef long    Style_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Style_ID;
+asn_struct_free_f Style_ID_free;
+asn_struct_print_f Style_ID_print;
+asn_constr_check_f Style_ID_constraint;
+ber_type_decoder_f Style_ID_decode_ber;
+der_type_encoder_f Style_ID_encode_der;
+xer_type_decoder_f Style_ID_decode_xer;
+xer_type_encoder_f Style_ID_encode_xer;
+oer_type_decoder_f Style_ID_decode_oer;
+oer_type_encoder_f Style_ID_encode_oer;
+per_type_decoder_f Style_ID_decode_uper;
+per_type_encoder_f Style_ID_encode_uper;
+per_type_decoder_f Style_ID_decode_aper;
+per_type_encoder_f Style_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Style_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SubbandCQI.h b/e2ap/headers/SubbandCQI.h
new file mode 100644 (file)
index 0000000..0f9f28c
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SubbandCQI_H_
+#define        _SubbandCQI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "SubbandCQICodeword0.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct SubbandCQICodeword1;
+struct ProtocolExtensionContainer;
+
+/* SubbandCQI */
+typedef struct SubbandCQI {
+       SubbandCQICodeword0_t    subbandCQICodeword0;
+       struct SubbandCQICodeword1      *subbandCQICodeword1;   /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SubbandCQI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SubbandCQI;
+extern asn_SEQUENCE_specifics_t asn_SPC_SubbandCQI_specs_1;
+extern asn_TYPE_member_t asn_MBR_SubbandCQI_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SubbandCQI_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SubbandCQICodeword0.h b/e2ap/headers/SubbandCQICodeword0.h
new file mode 100644 (file)
index 0000000..6231002
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SubbandCQICodeword0_H_
+#define        _SubbandCQICodeword0_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SubbandCQICodeword0_PR {
+       SubbandCQICodeword0_PR_NOTHING, /* No components present */
+       SubbandCQICodeword0_PR_four_bitCQI,
+       SubbandCQICodeword0_PR_two_bitSubbandDifferentialCQI,
+       SubbandCQICodeword0_PR_two_bitDifferentialCQI
+       /* Extensions may appear below */
+       
+} SubbandCQICodeword0_PR;
+
+/* SubbandCQICodeword0 */
+typedef struct SubbandCQICodeword0 {
+       SubbandCQICodeword0_PR present;
+       union SubbandCQICodeword0_u {
+               long     four_bitCQI;
+               long     two_bitSubbandDifferentialCQI;
+               long     two_bitDifferentialCQI;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SubbandCQICodeword0_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SubbandCQICodeword0;
+extern asn_CHOICE_specifics_t asn_SPC_SubbandCQICodeword0_specs_1;
+extern asn_TYPE_member_t asn_MBR_SubbandCQICodeword0_1[3];
+extern asn_per_constraints_t asn_PER_type_SubbandCQICodeword0_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SubbandCQICodeword0_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SubbandCQICodeword1.h b/e2ap/headers/SubbandCQICodeword1.h
new file mode 100644 (file)
index 0000000..7a3d932
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SubbandCQICodeword1_H_
+#define        _SubbandCQICodeword1_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SubbandCQICodeword1_PR {
+       SubbandCQICodeword1_PR_NOTHING, /* No components present */
+       SubbandCQICodeword1_PR_four_bitCQI,
+       SubbandCQICodeword1_PR_three_bitSpatialDifferentialCQI,
+       SubbandCQICodeword1_PR_two_bitSubbandDifferentialCQI,
+       SubbandCQICodeword1_PR_two_bitDifferentialCQI
+       /* Extensions may appear below */
+       
+} SubbandCQICodeword1_PR;
+
+/* SubbandCQICodeword1 */
+typedef struct SubbandCQICodeword1 {
+       SubbandCQICodeword1_PR present;
+       union SubbandCQICodeword1_u {
+               long     four_bitCQI;
+               long     three_bitSpatialDifferentialCQI;
+               long     two_bitSubbandDifferentialCQI;
+               long     two_bitDifferentialCQI;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SubbandCQICodeword1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SubbandCQICodeword1;
+extern asn_CHOICE_specifics_t asn_SPC_SubbandCQICodeword1_specs_1;
+extern asn_TYPE_member_t asn_MBR_SubbandCQICodeword1_1[4];
+extern asn_per_constraints_t asn_PER_type_SubbandCQICodeword1_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SubbandCQICodeword1_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SubbandCQIItem.h b/e2ap/headers/SubbandCQIItem.h
new file mode 100644 (file)
index 0000000..1a755c9
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SubbandCQIItem_H_
+#define        _SubbandCQIItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "SubbandCQI.h"
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* SubbandCQIItem */
+typedef struct SubbandCQIItem {
+       SubbandCQI_t     subbandCQI;
+       long     subbandIndex;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SubbandCQIItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SubbandCQIItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_SubbandCQIItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_SubbandCQIItem_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SubbandCQIItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SubbandCQIList.h b/e2ap/headers/SubbandCQIList.h
new file mode 100644 (file)
index 0000000..0d3045a
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SubbandCQIList_H_
+#define        _SubbandCQIList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct SubbandCQIItem;
+
+/* SubbandCQIList */
+typedef struct SubbandCQIList {
+       A_SEQUENCE_OF(struct SubbandCQIItem) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SubbandCQIList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SubbandCQIList;
+extern asn_SET_OF_specifics_t asn_SPC_SubbandCQIList_specs_1;
+extern asn_TYPE_member_t asn_MBR_SubbandCQIList_1[1];
+extern asn_per_constraints_t asn_PER_type_SubbandCQIList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SubbandCQIList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SubbandSize.h b/e2ap/headers/SubbandSize.h
new file mode 100644 (file)
index 0000000..49ff29c
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SubbandSize_H_
+#define        _SubbandSize_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SubbandSize {
+       SubbandSize_size2       = 0,
+       SubbandSize_size3       = 1,
+       SubbandSize_size4       = 2,
+       SubbandSize_size6       = 3,
+       SubbandSize_size8       = 4
+       /*
+        * Enumeration is extensible
+        */
+} e_SubbandSize;
+
+/* SubbandSize */
+typedef long    SubbandSize_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SubbandSize_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SubbandSize;
+extern const asn_INTEGER_specifics_t asn_SPC_SubbandSize_specs_1;
+asn_struct_free_f SubbandSize_free;
+asn_struct_print_f SubbandSize_print;
+asn_constr_check_f SubbandSize_constraint;
+ber_type_decoder_f SubbandSize_decode_ber;
+der_type_encoder_f SubbandSize_encode_der;
+xer_type_decoder_f SubbandSize_decode_xer;
+xer_type_encoder_f SubbandSize_encode_xer;
+oer_type_decoder_f SubbandSize_decode_oer;
+oer_type_encoder_f SubbandSize_encode_oer;
+per_type_decoder_f SubbandSize_decode_uper;
+per_type_encoder_f SubbandSize_encode_uper;
+per_type_decoder_f SubbandSize_decode_aper;
+per_type_encoder_f SubbandSize_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SubbandSize_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SubframeAllocation.h b/e2ap/headers/SubframeAllocation.h
new file mode 100644 (file)
index 0000000..c6672eb
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SubframeAllocation_H_
+#define        _SubframeAllocation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Oneframe.h"
+#include "Fourframes.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SubframeAllocation_PR {
+       SubframeAllocation_PR_NOTHING,  /* No components present */
+       SubframeAllocation_PR_oneframe,
+       SubframeAllocation_PR_fourframes
+       /* Extensions may appear below */
+       
+} SubframeAllocation_PR;
+
+/* SubframeAllocation */
+typedef struct SubframeAllocation {
+       SubframeAllocation_PR present;
+       union SubframeAllocation_u {
+               Oneframe_t       oneframe;
+               Fourframes_t     fourframes;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SubframeAllocation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SubframeAllocation;
+extern asn_CHOICE_specifics_t asn_SPC_SubframeAllocation_specs_1;
+extern asn_TYPE_member_t asn_MBR_SubframeAllocation_1[2];
+extern asn_per_constraints_t asn_PER_type_SubframeAllocation_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SubframeAllocation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SubframeAssignment.h b/e2ap/headers/SubframeAssignment.h
new file mode 100644 (file)
index 0000000..5fc5e10
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SubframeAssignment_H_
+#define        _SubframeAssignment_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SubframeAssignment {
+       SubframeAssignment_sa0  = 0,
+       SubframeAssignment_sa1  = 1,
+       SubframeAssignment_sa2  = 2,
+       SubframeAssignment_sa3  = 3,
+       SubframeAssignment_sa4  = 4,
+       SubframeAssignment_sa5  = 5,
+       SubframeAssignment_sa6  = 6
+       /*
+        * Enumeration is extensible
+        */
+} e_SubframeAssignment;
+
+/* SubframeAssignment */
+typedef long    SubframeAssignment_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SubframeAssignment_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SubframeAssignment;
+extern const asn_INTEGER_specifics_t asn_SPC_SubframeAssignment_specs_1;
+asn_struct_free_f SubframeAssignment_free;
+asn_struct_print_f SubframeAssignment_print;
+asn_constr_check_f SubframeAssignment_constraint;
+ber_type_decoder_f SubframeAssignment_decode_ber;
+der_type_encoder_f SubframeAssignment_encode_der;
+xer_type_decoder_f SubframeAssignment_decode_xer;
+xer_type_encoder_f SubframeAssignment_encode_xer;
+oer_type_decoder_f SubframeAssignment_decode_oer;
+oer_type_encoder_f SubframeAssignment_encode_oer;
+per_type_decoder_f SubframeAssignment_decode_uper;
+per_type_encoder_f SubframeAssignment_encode_uper;
+per_type_decoder_f SubframeAssignment_decode_aper;
+per_type_encoder_f SubframeAssignment_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SubframeAssignment_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SubframeType.h b/e2ap/headers/SubframeType.h
new file mode 100644 (file)
index 0000000..b43bd66
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SubframeType_H_
+#define        _SubframeType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SubframeType {
+       SubframeType_mbsfn      = 0,
+       SubframeType_nonmbsfn   = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_SubframeType;
+
+/* SubframeType */
+typedef long    SubframeType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SubframeType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SubframeType;
+extern const asn_INTEGER_specifics_t asn_SPC_SubframeType_specs_1;
+asn_struct_free_f SubframeType_free;
+asn_struct_print_f SubframeType_print;
+asn_constr_check_f SubframeType_constraint;
+ber_type_decoder_f SubframeType_decode_ber;
+der_type_encoder_f SubframeType_encode_der;
+xer_type_decoder_f SubframeType_decode_xer;
+xer_type_encoder_f SubframeType_encode_xer;
+oer_type_decoder_f SubframeType_decode_oer;
+oer_type_encoder_f SubframeType_encode_oer;
+per_type_decoder_f SubframeType_decode_uper;
+per_type_encoder_f SubframeType_encode_uper;
+per_type_decoder_f SubframeType_decode_aper;
+per_type_encoder_f SubframeType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SubframeType_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SubscriberProfileIDforRFP.h b/e2ap/headers/SubscriberProfileIDforRFP.h
new file mode 100644 (file)
index 0000000..c0d7817
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SubscriberProfileIDforRFP_H_
+#define        _SubscriberProfileIDforRFP_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SubscriberProfileIDforRFP */
+typedef long    SubscriberProfileIDforRFP_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SubscriberProfileIDforRFP_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SubscriberProfileIDforRFP;
+asn_struct_free_f SubscriberProfileIDforRFP_free;
+asn_struct_print_f SubscriberProfileIDforRFP_print;
+asn_constr_check_f SubscriberProfileIDforRFP_constraint;
+ber_type_decoder_f SubscriberProfileIDforRFP_decode_ber;
+der_type_encoder_f SubscriberProfileIDforRFP_encode_der;
+xer_type_decoder_f SubscriberProfileIDforRFP_decode_xer;
+xer_type_encoder_f SubscriberProfileIDforRFP_encode_xer;
+oer_type_decoder_f SubscriberProfileIDforRFP_decode_oer;
+oer_type_encoder_f SubscriberProfileIDforRFP_encode_oer;
+per_type_decoder_f SubscriberProfileIDforRFP_decode_uper;
+per_type_encoder_f SubscriberProfileIDforRFP_encode_uper;
+per_type_decoder_f SubscriberProfileIDforRFP_decode_aper;
+per_type_encoder_f SubscriberProfileIDforRFP_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SubscriberProfileIDforRFP_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Subscription-Based-UE-DifferentiationInfo.h b/e2ap/headers/Subscription-Based-UE-DifferentiationInfo.h
new file mode 100644 (file)
index 0000000..c98418c
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Subscription_Based_UE_DifferentiationInfo_H_
+#define        _Subscription_Based_UE_DifferentiationInfo_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 Subscription_Based_UE_DifferentiationInfo__periodicCommunicationIndicator {
+       Subscription_Based_UE_DifferentiationInfo__periodicCommunicationIndicator_periodically  = 0,
+       Subscription_Based_UE_DifferentiationInfo__periodicCommunicationIndicator_ondemand      = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_Subscription_Based_UE_DifferentiationInfo__periodicCommunicationIndicator;
+typedef enum Subscription_Based_UE_DifferentiationInfo__stationaryIndication {
+       Subscription_Based_UE_DifferentiationInfo__stationaryIndication_stationary      = 0,
+       Subscription_Based_UE_DifferentiationInfo__stationaryIndication_mobile  = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_Subscription_Based_UE_DifferentiationInfo__stationaryIndication;
+typedef enum Subscription_Based_UE_DifferentiationInfo__trafficProfile {
+       Subscription_Based_UE_DifferentiationInfo__trafficProfile_single_packet = 0,
+       Subscription_Based_UE_DifferentiationInfo__trafficProfile_dual_packets  = 1,
+       Subscription_Based_UE_DifferentiationInfo__trafficProfile_multiple_packets      = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_Subscription_Based_UE_DifferentiationInfo__trafficProfile;
+typedef enum Subscription_Based_UE_DifferentiationInfo__batteryIndication {
+       Subscription_Based_UE_DifferentiationInfo__batteryIndication_battery_powered    = 0,
+       Subscription_Based_UE_DifferentiationInfo__batteryIndication_battery_powered_not_rechargeable_or_replaceable    = 1,
+       Subscription_Based_UE_DifferentiationInfo__batteryIndication_not_battery_powered        = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_Subscription_Based_UE_DifferentiationInfo__batteryIndication;
+
+/* Forward declarations */
+struct ScheduledCommunicationTime;
+struct ProtocolExtensionContainer;
+
+/* Subscription-Based-UE-DifferentiationInfo */
+typedef struct Subscription_Based_UE_DifferentiationInfo {
+       long    *periodicCommunicationIndicator;        /* OPTIONAL */
+       long    *periodicTime;  /* OPTIONAL */
+       struct ScheduledCommunicationTime       *scheduledCommunicationTime;    /* OPTIONAL */
+       long    *stationaryIndication;  /* OPTIONAL */
+       long    *trafficProfile;        /* OPTIONAL */
+       long    *batteryIndication;     /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} Subscription_Based_UE_DifferentiationInfo_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_periodicCommunicationIndicator_2;      // (Use -fall-defs-global to expose) */
+/* extern asn_TYPE_descriptor_t asn_DEF_stationaryIndication_8;        // (Use -fall-defs-global to expose) */
+/* extern asn_TYPE_descriptor_t asn_DEF_trafficProfile_12;     // (Use -fall-defs-global to expose) */
+/* extern asn_TYPE_descriptor_t asn_DEF_batteryIndication_17;  // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_Subscription_Based_UE_DifferentiationInfo;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Subscription_Based_UE_DifferentiationInfo_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SuccessfulOutcome.h b/e2ap/headers/SuccessfulOutcome.h
new file mode 100644 (file)
index 0000000..9f35b6d
--- /dev/null
@@ -0,0 +1,200 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Descriptions"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SuccessfulOutcome_H_
+#define        _SuccessfulOutcome_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProcedureCode.h"
+#include "Criticality.h"
+#include <ANY.h>
+#include <asn_ioc.h>
+#include "HandoverRequest.h"
+#include "HandoverRequestAcknowledge.h"
+#include "HandoverPreparationFailure.h"
+#include "ResetRequest.h"
+#include "ResetResponse.h"
+#include "X2SetupRequest.h"
+#include "X2SetupResponse.h"
+#include "X2SetupFailure.h"
+#include "ResourceStatusRequest.h"
+#include "ResourceStatusResponse.h"
+#include "ResourceStatusFailure.h"
+#include "ENBConfigurationUpdate.h"
+#include "ENBConfigurationUpdateAcknowledge.h"
+#include "ENBConfigurationUpdateFailure.h"
+#include "MobilityChangeRequest.h"
+#include "MobilityChangeAcknowledge.h"
+#include "MobilityChangeFailure.h"
+#include "CellActivationRequest.h"
+#include "CellActivationResponse.h"
+#include "CellActivationFailure.h"
+#include "SeNBAdditionRequest.h"
+#include "SeNBAdditionRequestAcknowledge.h"
+#include "SeNBAdditionRequestReject.h"
+#include "SeNBModificationRequest.h"
+#include "SeNBModificationRequestAcknowledge.h"
+#include "SeNBModificationRequestReject.h"
+#include "SeNBModificationRequired.h"
+#include "SeNBModificationConfirm.h"
+#include "SeNBModificationRefuse.h"
+#include "SeNBReleaseRequired.h"
+#include "SeNBReleaseConfirm.h"
+#include "X2RemovalRequest.h"
+#include "X2RemovalResponse.h"
+#include "X2RemovalFailure.h"
+#include "RetrieveUEContextRequest.h"
+#include "RetrieveUEContextResponse.h"
+#include "RetrieveUEContextFailure.h"
+#include "SgNBAdditionRequest.h"
+#include "SgNBAdditionRequestAcknowledge.h"
+#include "SgNBAdditionRequestReject.h"
+#include "SgNBModificationRequest.h"
+#include "SgNBModificationRequestAcknowledge.h"
+#include "SgNBModificationRequestReject.h"
+#include "SgNBModificationRequired.h"
+#include "SgNBModificationConfirm.h"
+#include "SgNBModificationRefuse.h"
+#include "SgNBReleaseRequest.h"
+#include "SgNBReleaseRequestAcknowledge.h"
+#include "SgNBReleaseRequestReject.h"
+#include "SgNBReleaseRequired.h"
+#include "SgNBReleaseConfirm.h"
+#include "SgNBChangeRequired.h"
+#include "SgNBChangeConfirm.h"
+#include "SgNBChangeRefuse.h"
+#include "ENDCX2SetupRequest.h"
+#include "ENDCX2SetupResponse.h"
+#include "ENDCX2SetupFailure.h"
+#include "ENDCConfigurationUpdate.h"
+#include "ENDCConfigurationUpdateAcknowledge.h"
+#include "ENDCConfigurationUpdateFailure.h"
+#include "ENDCCellActivationRequest.h"
+#include "ENDCCellActivationResponse.h"
+#include "ENDCCellActivationFailure.h"
+#include "ENDCPartialResetRequired.h"
+#include "ENDCPartialResetConfirm.h"
+#include "EUTRANRCellResourceCoordinationRequest.h"
+#include "EUTRANRCellResourceCoordinationResponse.h"
+#include "ENDCX2RemovalRequest.h"
+#include "ENDCX2RemovalResponse.h"
+#include "ENDCX2RemovalFailure.h"
+#include "SNStatusTransfer.h"
+#include "UEContextRelease.h"
+#include "HandoverCancel.h"
+#include "ErrorIndication.h"
+#include "ResourceStatusUpdate.h"
+#include "LoadInformation.h"
+#include "PrivateMessage.h"
+#include "RLFIndication.h"
+#include "HandoverReport.h"
+#include "X2Release.h"
+#include "X2APMessageTransfer.h"
+#include "SeNBReconfigurationComplete.h"
+#include "SeNBReleaseRequest.h"
+#include "SeNBCounterCheckRequest.h"
+#include "SgNBReconfigurationComplete.h"
+#include "SgNBCounterCheckRequest.h"
+#include "RRCTransfer.h"
+#include "SecondaryRATDataUsageReport.h"
+#include "SgNBActivityNotification.h"
+#include "DataForwardingAddressIndication.h"
+#include "GNBStatusIndication.h"
+#include <OPEN_TYPE.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SuccessfulOutcome__value_PR {
+       SuccessfulOutcome__value_PR_NOTHING,    /* No components present */
+       SuccessfulOutcome__value_PR_HandoverRequestAcknowledge,
+       SuccessfulOutcome__value_PR_ResetResponse,
+       SuccessfulOutcome__value_PR_X2SetupResponse,
+       SuccessfulOutcome__value_PR_ResourceStatusResponse,
+       SuccessfulOutcome__value_PR_ENBConfigurationUpdateAcknowledge,
+       SuccessfulOutcome__value_PR_MobilityChangeAcknowledge,
+       SuccessfulOutcome__value_PR_CellActivationResponse,
+       SuccessfulOutcome__value_PR_SeNBAdditionRequestAcknowledge,
+       SuccessfulOutcome__value_PR_SeNBModificationRequestAcknowledge,
+       SuccessfulOutcome__value_PR_SeNBModificationConfirm,
+       SuccessfulOutcome__value_PR_SeNBReleaseConfirm,
+       SuccessfulOutcome__value_PR_X2RemovalResponse,
+       SuccessfulOutcome__value_PR_RetrieveUEContextResponse,
+       SuccessfulOutcome__value_PR_SgNBAdditionRequestAcknowledge,
+       SuccessfulOutcome__value_PR_SgNBModificationRequestAcknowledge,
+       SuccessfulOutcome__value_PR_SgNBModificationConfirm,
+       SuccessfulOutcome__value_PR_SgNBReleaseRequestAcknowledge,
+       SuccessfulOutcome__value_PR_SgNBReleaseConfirm,
+       SuccessfulOutcome__value_PR_SgNBChangeConfirm,
+       SuccessfulOutcome__value_PR_ENDCX2SetupResponse,
+       SuccessfulOutcome__value_PR_ENDCConfigurationUpdateAcknowledge,
+       SuccessfulOutcome__value_PR_ENDCCellActivationResponse,
+       SuccessfulOutcome__value_PR_ENDCPartialResetConfirm,
+       SuccessfulOutcome__value_PR_EUTRANRCellResourceCoordinationResponse,
+       SuccessfulOutcome__value_PR_ENDCX2RemovalResponse
+} SuccessfulOutcome__value_PR;
+
+/* SuccessfulOutcome */
+typedef struct SuccessfulOutcome {
+       ProcedureCode_t  procedureCode;
+       Criticality_t    criticality;
+       struct SuccessfulOutcome__value {
+               SuccessfulOutcome__value_PR present;
+               union SuccessfulOutcome__value_u {
+                       HandoverRequestAcknowledge_t     HandoverRequestAcknowledge;
+                       ResetResponse_t  ResetResponse;
+                       X2SetupResponse_t        X2SetupResponse;
+                       ResourceStatusResponse_t         ResourceStatusResponse;
+                       ENBConfigurationUpdateAcknowledge_t      ENBConfigurationUpdateAcknowledge;
+                       MobilityChangeAcknowledge_t      MobilityChangeAcknowledge;
+                       CellActivationResponse_t         CellActivationResponse;
+                       SeNBAdditionRequestAcknowledge_t         SeNBAdditionRequestAcknowledge;
+                       SeNBModificationRequestAcknowledge_t     SeNBModificationRequestAcknowledge;
+                       SeNBModificationConfirm_t        SeNBModificationConfirm;
+                       SeNBReleaseConfirm_t     SeNBReleaseConfirm;
+                       X2RemovalResponse_t      X2RemovalResponse;
+                       RetrieveUEContextResponse_t      RetrieveUEContextResponse;
+                       SgNBAdditionRequestAcknowledge_t         SgNBAdditionRequestAcknowledge;
+                       SgNBModificationRequestAcknowledge_t     SgNBModificationRequestAcknowledge;
+                       SgNBModificationConfirm_t        SgNBModificationConfirm;
+                       SgNBReleaseRequestAcknowledge_t  SgNBReleaseRequestAcknowledge;
+                       SgNBReleaseConfirm_t     SgNBReleaseConfirm;
+                       SgNBChangeConfirm_t      SgNBChangeConfirm;
+                       ENDCX2SetupResponse_t    ENDCX2SetupResponse;
+                       ENDCConfigurationUpdateAcknowledge_t     ENDCConfigurationUpdateAcknowledge;
+                       ENDCCellActivationResponse_t     ENDCCellActivationResponse;
+                       ENDCPartialResetConfirm_t        ENDCPartialResetConfirm;
+                       EUTRANRCellResourceCoordinationResponse_t        EUTRANRCellResourceCoordinationResponse;
+                       ENDCX2RemovalResponse_t  ENDCX2RemovalResponse;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SuccessfulOutcome_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcome;
+extern asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcome_specs_1;
+extern asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SuccessfulOutcome_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SuccessfulOutcomeE2.h b/e2ap/headers/SuccessfulOutcomeE2.h
new file mode 100644 (file)
index 0000000..6a3d138
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Descriptions"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SuccessfulOutcomeE2_H_
+#define        _SuccessfulOutcomeE2_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProcedureCode.h"
+#include "Criticality.h"
+#include <ANY.h>
+#include <asn_ioc.h>
+#include "RICsubscriptionRequest.h"
+#include "RICsubscriptionResponse.h"
+#include "RICsubscriptionFailure.h"
+#include "RICsubscriptionDeleteRequest.h"
+#include "RICsubscriptionDeleteResponse.h"
+#include "RICsubscriptionDeleteFailure.h"
+#include "RICserviceUpdate.h"
+#include "RICserviceUpdateAcknowledge.h"
+#include "RICserviceUpdateFailure.h"
+#include "RICcontrolRequest.h"
+#include "RICcontrolAcknowledge.h"
+#include "RICcontrolFailure.h"
+#include "RICindication.h"
+#include "RICserviceQuery.h"
+#include <OPEN_TYPE.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SuccessfulOutcomeE2__value_PR {
+       SuccessfulOutcomeE2__value_PR_NOTHING,  /* No components present */
+       SuccessfulOutcomeE2__value_PR_RICsubscriptionResponse,
+       SuccessfulOutcomeE2__value_PR_RICsubscriptionDeleteResponse,
+       SuccessfulOutcomeE2__value_PR_RICserviceUpdateAcknowledge,
+       SuccessfulOutcomeE2__value_PR_RICcontrolAcknowledge
+} SuccessfulOutcomeE2__value_PR;
+
+/* SuccessfulOutcomeE2 */
+typedef struct SuccessfulOutcomeE2 {
+       ProcedureCode_t  procedureCode;
+       Criticality_t    criticality;
+       struct SuccessfulOutcomeE2__value {
+               SuccessfulOutcomeE2__value_PR present;
+               union SuccessfulOutcomeE2__value_u {
+                       RICsubscriptionResponse_t        RICsubscriptionResponse;
+                       RICsubscriptionDeleteResponse_t  RICsubscriptionDeleteResponse;
+                       RICserviceUpdateAcknowledge_t    RICserviceUpdateAcknowledge;
+                       RICcontrolAcknowledge_t  RICcontrolAcknowledge;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SuccessfulOutcomeE2_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcomeE2;
+extern asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcomeE2_specs_1;
+extern asn_TYPE_member_t asn_MBR_SuccessfulOutcomeE2_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SuccessfulOutcomeE2_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/SupportedSULFreqBandItem.h b/e2ap/headers/SupportedSULFreqBandItem.h
new file mode 100644 (file)
index 0000000..ce26c20
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _SupportedSULFreqBandItem_H_
+#define        _SupportedSULFreqBandItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* SupportedSULFreqBandItem */
+typedef struct SupportedSULFreqBandItem {
+       long     freqBandIndicatorNr;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} SupportedSULFreqBandItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SupportedSULFreqBandItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_SupportedSULFreqBandItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_SupportedSULFreqBandItem_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SupportedSULFreqBandItem_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TABasedMDT.h b/e2ap/headers/TABasedMDT.h
new file mode 100644 (file)
index 0000000..e68c188
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TABasedMDT_H_
+#define        _TABasedMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAListforMDT.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TABasedMDT */
+typedef struct TABasedMDT {
+       TAListforMDT_t   tAListforMDT;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TABasedMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TABasedMDT;
+extern asn_SEQUENCE_specifics_t asn_SPC_TABasedMDT_specs_1;
+extern asn_TYPE_member_t asn_MBR_TABasedMDT_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TABasedMDT_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TABasedQMC.h b/e2ap/headers/TABasedQMC.h
new file mode 100644 (file)
index 0000000..eb4a2ae
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TABasedQMC_H_
+#define        _TABasedQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAListforQMC.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TABasedQMC */
+typedef struct TABasedQMC {
+       TAListforQMC_t   tAListforQMC;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TABasedQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TABasedQMC;
+extern asn_SEQUENCE_specifics_t asn_SPC_TABasedQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_TABasedQMC_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TABasedQMC_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TAC.h b/e2ap/headers/TAC.h
new file mode 100644 (file)
index 0000000..37f4e3e
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TAC_H_
+#define        _TAC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TAC */
+typedef OCTET_STRING_t  TAC_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_TAC_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_TAC;
+asn_struct_free_f TAC_free;
+asn_struct_print_f TAC_print;
+asn_constr_check_f TAC_constraint;
+ber_type_decoder_f TAC_decode_ber;
+der_type_encoder_f TAC_encode_der;
+xer_type_decoder_f TAC_decode_xer;
+xer_type_encoder_f TAC_encode_xer;
+oer_type_decoder_f TAC_decode_oer;
+oer_type_encoder_f TAC_encode_oer;
+per_type_decoder_f TAC_decode_uper;
+per_type_encoder_f TAC_encode_uper;
+per_type_decoder_f TAC_decode_aper;
+per_type_encoder_f TAC_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAC_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TAI-Item.h b/e2ap/headers/TAI-Item.h
new file mode 100644 (file)
index 0000000..fb56844
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TAI_Item_H_
+#define        _TAI_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAC.h"
+#include "PLMN-Identity.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TAI-Item */
+typedef struct TAI_Item {
+       TAC_t    tAC;
+       PLMN_Identity_t  pLMN_Identity;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TAI_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAI_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAI_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAI_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAI_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TAIBasedMDT.h b/e2ap/headers/TAIBasedMDT.h
new file mode 100644 (file)
index 0000000..a80c504
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TAIBasedMDT_H_
+#define        _TAIBasedMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAIListforMDT.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TAIBasedMDT */
+typedef struct TAIBasedMDT {
+       TAIListforMDT_t  tAIListforMDT;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TAIBasedMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAIBasedMDT;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAIBasedMDT_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAIBasedMDT_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAIBasedMDT_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TAIBasedQMC.h b/e2ap/headers/TAIBasedQMC.h
new file mode 100644 (file)
index 0000000..a2de263
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TAIBasedQMC_H_
+#define        _TAIBasedQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAIListforQMC.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TAIBasedQMC */
+typedef struct TAIBasedQMC {
+       TAIListforQMC_t  tAIListforQMC;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TAIBasedQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAIBasedQMC;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAIBasedQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAIBasedQMC_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAIBasedQMC_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TAIListforMDT.h b/e2ap/headers/TAIListforMDT.h
new file mode 100644 (file)
index 0000000..a599ac0
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TAIListforMDT_H_
+#define        _TAIListforMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct TAI_Item;
+
+/* TAIListforMDT */
+typedef struct TAIListforMDT {
+       A_SEQUENCE_OF(struct TAI_Item) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TAIListforMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAIListforMDT;
+extern asn_SET_OF_specifics_t asn_SPC_TAIListforMDT_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAIListforMDT_1[1];
+extern asn_per_constraints_t asn_PER_type_TAIListforMDT_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAIListforMDT_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TAIListforQMC.h b/e2ap/headers/TAIListforQMC.h
new file mode 100644 (file)
index 0000000..fe902b6
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TAIListforQMC_H_
+#define        _TAIListforQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct TAI_Item;
+
+/* TAIListforQMC */
+typedef struct TAIListforQMC {
+       A_SEQUENCE_OF(struct TAI_Item) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TAIListforQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAIListforQMC;
+extern asn_SET_OF_specifics_t asn_SPC_TAIListforQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAIListforQMC_1[1];
+extern asn_per_constraints_t asn_PER_type_TAIListforQMC_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAIListforQMC_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TAListforMDT.h b/e2ap/headers/TAListforMDT.h
new file mode 100644 (file)
index 0000000..d0e26c3
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TAListforMDT_H_
+#define        _TAListforMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAC.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TAListforMDT */
+typedef struct TAListforMDT {
+       A_SEQUENCE_OF(TAC_t) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TAListforMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAListforMDT;
+extern asn_SET_OF_specifics_t asn_SPC_TAListforMDT_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAListforMDT_1[1];
+extern asn_per_constraints_t asn_PER_type_TAListforMDT_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAListforMDT_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TAListforQMC.h b/e2ap/headers/TAListforQMC.h
new file mode 100644 (file)
index 0000000..4b02b73
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TAListforQMC_H_
+#define        _TAListforQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAC.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TAListforQMC */
+typedef struct TAListforQMC {
+       A_SEQUENCE_OF(TAC_t) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TAListforQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAListforQMC;
+extern asn_SET_OF_specifics_t asn_SPC_TAListforQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAListforQMC_1[1];
+extern asn_per_constraints_t asn_PER_type_TAListforQMC_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAListforQMC_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TDD-Info.h b/e2ap/headers/TDD-Info.h
new file mode 100644 (file)
index 0000000..d0bb109
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TDD_Info_H_
+#define        _TDD_Info_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EARFCN.h"
+#include "Transmission-Bandwidth.h"
+#include "SubframeAssignment.h"
+#include "SpecialSubframe-Info.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TDD-Info */
+typedef struct TDD_Info {
+       EARFCN_t         eARFCN;
+       Transmission_Bandwidth_t         transmission_Bandwidth;
+       SubframeAssignment_t     subframeAssignment;
+       SpecialSubframe_Info_t   specialSubframe_Info;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TDD_Info_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TDD_Info;
+extern asn_SEQUENCE_specifics_t asn_SPC_TDD_Info_specs_1;
+extern asn_TYPE_member_t asn_MBR_TDD_Info_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TDD_Info_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TDD-InfoNeighbourServedNRCell-Information.h b/e2ap/headers/TDD-InfoNeighbourServedNRCell-Information.h
new file mode 100644 (file)
index 0000000..2043e21
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TDD_InfoNeighbourServedNRCell_Information_H_
+#define        _TDD_InfoNeighbourServedNRCell_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NRFreqInfo.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TDD-InfoNeighbourServedNRCell-Information */
+typedef struct TDD_InfoNeighbourServedNRCell_Information {
+       NRFreqInfo_t     nRFreqInfo;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TDD_InfoNeighbourServedNRCell_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TDD_InfoNeighbourServedNRCell_Information;
+extern asn_SEQUENCE_specifics_t asn_SPC_TDD_InfoNeighbourServedNRCell_Information_specs_1;
+extern asn_TYPE_member_t asn_MBR_TDD_InfoNeighbourServedNRCell_Information_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TDD_InfoNeighbourServedNRCell_Information_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TDD-InfoServedNRCell-Information.h b/e2ap/headers/TDD-InfoServedNRCell-Information.h
new file mode 100644 (file)
index 0000000..315b36d
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TDD_InfoServedNRCell_Information_H_
+#define        _TDD_InfoServedNRCell_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NRFreqInfo.h"
+#include "NR-TxBW.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TDD-InfoServedNRCell-Information */
+typedef struct TDD_InfoServedNRCell_Information {
+       NRFreqInfo_t     nRFreqInfo;
+       NR_TxBW_t        nR_TxBW;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TDD_InfoServedNRCell_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TDD_InfoServedNRCell_Information;
+extern asn_SEQUENCE_specifics_t asn_SPC_TDD_InfoServedNRCell_Information_specs_1;
+extern asn_TYPE_member_t asn_MBR_TDD_InfoServedNRCell_Information_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TDD_InfoServedNRCell_Information_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TargetCellInUTRAN.h b/e2ap/headers/TargetCellInUTRAN.h
new file mode 100644 (file)
index 0000000..add6ff6
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TargetCellInUTRAN_H_
+#define        _TargetCellInUTRAN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TargetCellInUTRAN */
+typedef OCTET_STRING_t  TargetCellInUTRAN_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TargetCellInUTRAN;
+asn_struct_free_f TargetCellInUTRAN_free;
+asn_struct_print_f TargetCellInUTRAN_print;
+asn_constr_check_f TargetCellInUTRAN_constraint;
+ber_type_decoder_f TargetCellInUTRAN_decode_ber;
+der_type_encoder_f TargetCellInUTRAN_encode_der;
+xer_type_decoder_f TargetCellInUTRAN_decode_xer;
+xer_type_encoder_f TargetCellInUTRAN_encode_xer;
+oer_type_decoder_f TargetCellInUTRAN_decode_oer;
+oer_type_encoder_f TargetCellInUTRAN_encode_oer;
+per_type_decoder_f TargetCellInUTRAN_decode_uper;
+per_type_encoder_f TargetCellInUTRAN_encode_uper;
+per_type_decoder_f TargetCellInUTRAN_decode_aper;
+per_type_encoder_f TargetCellInUTRAN_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TargetCellInUTRAN_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TargeteNBtoSource-eNBTransparentContainer.h b/e2ap/headers/TargeteNBtoSource-eNBTransparentContainer.h
new file mode 100644 (file)
index 0000000..e477604
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TargeteNBtoSource_eNBTransparentContainer_H_
+#define        _TargeteNBtoSource_eNBTransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TargeteNBtoSource-eNBTransparentContainer */
+typedef OCTET_STRING_t  TargeteNBtoSource_eNBTransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TargeteNBtoSource_eNBTransparentContainer;
+asn_struct_free_f TargeteNBtoSource_eNBTransparentContainer_free;
+asn_struct_print_f TargeteNBtoSource_eNBTransparentContainer_print;
+asn_constr_check_f TargeteNBtoSource_eNBTransparentContainer_constraint;
+ber_type_decoder_f TargeteNBtoSource_eNBTransparentContainer_decode_ber;
+der_type_encoder_f TargeteNBtoSource_eNBTransparentContainer_encode_der;
+xer_type_decoder_f TargeteNBtoSource_eNBTransparentContainer_decode_xer;
+xer_type_encoder_f TargeteNBtoSource_eNBTransparentContainer_encode_xer;
+oer_type_decoder_f TargeteNBtoSource_eNBTransparentContainer_decode_oer;
+oer_type_encoder_f TargeteNBtoSource_eNBTransparentContainer_encode_oer;
+per_type_decoder_f TargeteNBtoSource_eNBTransparentContainer_decode_uper;
+per_type_encoder_f TargeteNBtoSource_eNBTransparentContainer_encode_uper;
+per_type_decoder_f TargeteNBtoSource_eNBTransparentContainer_decode_aper;
+per_type_encoder_f TargeteNBtoSource_eNBTransparentContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TargeteNBtoSource_eNBTransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Threshold-RSRP.h b/e2ap/headers/Threshold-RSRP.h
new file mode 100644 (file)
index 0000000..f99a702
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Threshold_RSRP_H_
+#define        _Threshold_RSRP_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Threshold-RSRP */
+typedef long    Threshold_RSRP_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Threshold_RSRP_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Threshold_RSRP;
+asn_struct_free_f Threshold_RSRP_free;
+asn_struct_print_f Threshold_RSRP_print;
+asn_constr_check_f Threshold_RSRP_constraint;
+ber_type_decoder_f Threshold_RSRP_decode_ber;
+der_type_encoder_f Threshold_RSRP_encode_der;
+xer_type_decoder_f Threshold_RSRP_decode_xer;
+xer_type_encoder_f Threshold_RSRP_encode_xer;
+oer_type_decoder_f Threshold_RSRP_decode_oer;
+oer_type_encoder_f Threshold_RSRP_encode_oer;
+per_type_decoder_f Threshold_RSRP_decode_uper;
+per_type_encoder_f Threshold_RSRP_encode_uper;
+per_type_decoder_f Threshold_RSRP_decode_aper;
+per_type_encoder_f Threshold_RSRP_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Threshold_RSRP_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Threshold-RSRQ.h b/e2ap/headers/Threshold-RSRQ.h
new file mode 100644 (file)
index 0000000..c4f8407
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Threshold_RSRQ_H_
+#define        _Threshold_RSRQ_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Threshold-RSRQ */
+typedef long    Threshold_RSRQ_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Threshold_RSRQ_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Threshold_RSRQ;
+asn_struct_free_f Threshold_RSRQ_free;
+asn_struct_print_f Threshold_RSRQ_print;
+asn_constr_check_f Threshold_RSRQ_constraint;
+ber_type_decoder_f Threshold_RSRQ_decode_ber;
+der_type_encoder_f Threshold_RSRQ_encode_der;
+xer_type_decoder_f Threshold_RSRQ_decode_xer;
+xer_type_encoder_f Threshold_RSRQ_encode_xer;
+oer_type_decoder_f Threshold_RSRQ_decode_oer;
+oer_type_encoder_f Threshold_RSRQ_encode_oer;
+per_type_decoder_f Threshold_RSRQ_decode_uper;
+per_type_encoder_f Threshold_RSRQ_encode_uper;
+per_type_decoder_f Threshold_RSRQ_decode_aper;
+per_type_encoder_f Threshold_RSRQ_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Threshold_RSRQ_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Time-UE-StayedInCell-EnhancedGranularity.h b/e2ap/headers/Time-UE-StayedInCell-EnhancedGranularity.h
new file mode 100644 (file)
index 0000000..c0f9c74
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Time_UE_StayedInCell_EnhancedGranularity_H_
+#define        _Time_UE_StayedInCell_EnhancedGranularity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Time-UE-StayedInCell-EnhancedGranularity */
+typedef long    Time_UE_StayedInCell_EnhancedGranularity_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Time_UE_StayedInCell_EnhancedGranularity;
+asn_struct_free_f Time_UE_StayedInCell_EnhancedGranularity_free;
+asn_struct_print_f Time_UE_StayedInCell_EnhancedGranularity_print;
+asn_constr_check_f Time_UE_StayedInCell_EnhancedGranularity_constraint;
+ber_type_decoder_f Time_UE_StayedInCell_EnhancedGranularity_decode_ber;
+der_type_encoder_f Time_UE_StayedInCell_EnhancedGranularity_encode_der;
+xer_type_decoder_f Time_UE_StayedInCell_EnhancedGranularity_decode_xer;
+xer_type_encoder_f Time_UE_StayedInCell_EnhancedGranularity_encode_xer;
+oer_type_decoder_f Time_UE_StayedInCell_EnhancedGranularity_decode_oer;
+oer_type_encoder_f Time_UE_StayedInCell_EnhancedGranularity_encode_oer;
+per_type_decoder_f Time_UE_StayedInCell_EnhancedGranularity_decode_uper;
+per_type_encoder_f Time_UE_StayedInCell_EnhancedGranularity_encode_uper;
+per_type_decoder_f Time_UE_StayedInCell_EnhancedGranularity_decode_aper;
+per_type_encoder_f Time_UE_StayedInCell_EnhancedGranularity_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Time_UE_StayedInCell_EnhancedGranularity_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Time-UE-StayedInCell.h b/e2ap/headers/Time-UE-StayedInCell.h
new file mode 100644 (file)
index 0000000..9b0c85e
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Time_UE_StayedInCell_H_
+#define        _Time_UE_StayedInCell_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Time-UE-StayedInCell */
+typedef long    Time_UE_StayedInCell_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Time_UE_StayedInCell_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Time_UE_StayedInCell;
+asn_struct_free_f Time_UE_StayedInCell_free;
+asn_struct_print_f Time_UE_StayedInCell_print;
+asn_constr_check_f Time_UE_StayedInCell_constraint;
+ber_type_decoder_f Time_UE_StayedInCell_decode_ber;
+der_type_encoder_f Time_UE_StayedInCell_encode_der;
+xer_type_decoder_f Time_UE_StayedInCell_decode_xer;
+xer_type_encoder_f Time_UE_StayedInCell_encode_xer;
+oer_type_decoder_f Time_UE_StayedInCell_decode_oer;
+oer_type_encoder_f Time_UE_StayedInCell_encode_oer;
+per_type_decoder_f Time_UE_StayedInCell_decode_uper;
+per_type_encoder_f Time_UE_StayedInCell_encode_uper;
+per_type_decoder_f Time_UE_StayedInCell_decode_aper;
+per_type_encoder_f Time_UE_StayedInCell_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Time_UE_StayedInCell_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TimeStamp.h b/e2ap/headers/TimeStamp.h
new file mode 100644 (file)
index 0000000..02887c7
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TimeStamp_H_
+#define        _TimeStamp_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TimeStamp */
+typedef OCTET_STRING_t  TimeStamp_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_TimeStamp_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_TimeStamp;
+asn_struct_free_f TimeStamp_free;
+asn_struct_print_f TimeStamp_print;
+asn_constr_check_f TimeStamp_constraint;
+ber_type_decoder_f TimeStamp_decode_ber;
+der_type_encoder_f TimeStamp_encode_der;
+xer_type_decoder_f TimeStamp_decode_xer;
+xer_type_encoder_f TimeStamp_encode_xer;
+oer_type_decoder_f TimeStamp_decode_oer;
+oer_type_encoder_f TimeStamp_encode_oer;
+per_type_decoder_f TimeStamp_decode_uper;
+per_type_encoder_f TimeStamp_encode_uper;
+per_type_decoder_f TimeStamp_decode_aper;
+per_type_encoder_f TimeStamp_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TimeStamp_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TimeToWait.h b/e2ap/headers/TimeToWait.h
new file mode 100644 (file)
index 0000000..80a7187
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TimeToWait_H_
+#define        _TimeToWait_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum TimeToWait {
+       TimeToWait_v1s  = 0,
+       TimeToWait_v2s  = 1,
+       TimeToWait_v5s  = 2,
+       TimeToWait_v10s = 3,
+       TimeToWait_v20s = 4,
+       TimeToWait_v60s = 5
+       /*
+        * Enumeration is extensible
+        */
+} e_TimeToWait;
+
+/* TimeToWait */
+typedef long    TimeToWait_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TimeToWait;
+asn_struct_free_f TimeToWait_free;
+asn_struct_print_f TimeToWait_print;
+asn_constr_check_f TimeToWait_constraint;
+ber_type_decoder_f TimeToWait_decode_ber;
+der_type_encoder_f TimeToWait_encode_der;
+xer_type_decoder_f TimeToWait_decode_xer;
+xer_type_encoder_f TimeToWait_encode_xer;
+oer_type_decoder_f TimeToWait_decode_oer;
+oer_type_encoder_f TimeToWait_encode_oer;
+per_type_decoder_f TimeToWait_decode_uper;
+per_type_encoder_f TimeToWait_encode_uper;
+per_type_decoder_f TimeToWait_decode_aper;
+per_type_encoder_f TimeToWait_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TimeToWait_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TraceActivation.h b/e2ap/headers/TraceActivation.h
new file mode 100644 (file)
index 0000000..fa32a36
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TraceActivation_H_
+#define        _TraceActivation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EUTRANTraceID.h"
+#include "InterfacesToTrace.h"
+#include "TraceDepth.h"
+#include "TraceCollectionEntityIPAddress.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TraceActivation */
+typedef struct TraceActivation {
+       EUTRANTraceID_t  eUTRANTraceID;
+       InterfacesToTrace_t      interfacesToTrace;
+       TraceDepth_t     traceDepth;
+       TraceCollectionEntityIPAddress_t         traceCollectionEntityIPAddress;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TraceActivation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TraceActivation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TraceActivation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TraceCollectionEntityIPAddress.h b/e2ap/headers/TraceCollectionEntityIPAddress.h
new file mode 100644 (file)
index 0000000..14b75ea
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TraceCollectionEntityIPAddress_H_
+#define        _TraceCollectionEntityIPAddress_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TraceCollectionEntityIPAddress */
+typedef BIT_STRING_t    TraceCollectionEntityIPAddress_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_TraceCollectionEntityIPAddress_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_TraceCollectionEntityIPAddress;
+asn_struct_free_f TraceCollectionEntityIPAddress_free;
+asn_struct_print_f TraceCollectionEntityIPAddress_print;
+asn_constr_check_f TraceCollectionEntityIPAddress_constraint;
+ber_type_decoder_f TraceCollectionEntityIPAddress_decode_ber;
+der_type_encoder_f TraceCollectionEntityIPAddress_encode_der;
+xer_type_decoder_f TraceCollectionEntityIPAddress_decode_xer;
+xer_type_encoder_f TraceCollectionEntityIPAddress_encode_xer;
+oer_type_decoder_f TraceCollectionEntityIPAddress_decode_oer;
+oer_type_encoder_f TraceCollectionEntityIPAddress_encode_oer;
+per_type_decoder_f TraceCollectionEntityIPAddress_decode_uper;
+per_type_encoder_f TraceCollectionEntityIPAddress_encode_uper;
+per_type_decoder_f TraceCollectionEntityIPAddress_decode_aper;
+per_type_encoder_f TraceCollectionEntityIPAddress_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TraceCollectionEntityIPAddress_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TraceDepth.h b/e2ap/headers/TraceDepth.h
new file mode 100644 (file)
index 0000000..050af69
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TraceDepth_H_
+#define        _TraceDepth_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum TraceDepth {
+       TraceDepth_minimum      = 0,
+       TraceDepth_medium       = 1,
+       TraceDepth_maximum      = 2,
+       TraceDepth_minimumWithoutVendorSpecificExtension        = 3,
+       TraceDepth_mediumWithoutVendorSpecificExtension = 4,
+       TraceDepth_maximumWithoutVendorSpecificExtension        = 5
+       /*
+        * Enumeration is extensible
+        */
+} e_TraceDepth;
+
+/* TraceDepth */
+typedef long    TraceDepth_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_TraceDepth_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_TraceDepth;
+extern const asn_INTEGER_specifics_t asn_SPC_TraceDepth_specs_1;
+asn_struct_free_f TraceDepth_free;
+asn_struct_print_f TraceDepth_print;
+asn_constr_check_f TraceDepth_constraint;
+ber_type_decoder_f TraceDepth_decode_ber;
+der_type_encoder_f TraceDepth_encode_der;
+xer_type_decoder_f TraceDepth_decode_xer;
+xer_type_encoder_f TraceDepth_encode_xer;
+oer_type_decoder_f TraceDepth_decode_oer;
+oer_type_encoder_f TraceDepth_encode_oer;
+per_type_decoder_f TraceDepth_decode_uper;
+per_type_encoder_f TraceDepth_encode_uper;
+per_type_decoder_f TraceDepth_decode_aper;
+per_type_encoder_f TraceDepth_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TraceDepth_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Transmission-Bandwidth.h b/e2ap/headers/Transmission-Bandwidth.h
new file mode 100644 (file)
index 0000000..c178402
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _Transmission_Bandwidth_H_
+#define        _Transmission_Bandwidth_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Transmission_Bandwidth {
+       Transmission_Bandwidth_bw6      = 0,
+       Transmission_Bandwidth_bw15     = 1,
+       Transmission_Bandwidth_bw25     = 2,
+       Transmission_Bandwidth_bw50     = 3,
+       Transmission_Bandwidth_bw75     = 4,
+       Transmission_Bandwidth_bw100    = 5,
+       /*
+        * Enumeration is extensible
+        */
+       Transmission_Bandwidth_bw1      = 6
+} e_Transmission_Bandwidth;
+
+/* Transmission-Bandwidth */
+typedef long    Transmission_Bandwidth_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Transmission_Bandwidth_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Transmission_Bandwidth;
+extern const asn_INTEGER_specifics_t asn_SPC_Transmission_Bandwidth_specs_1;
+asn_struct_free_f Transmission_Bandwidth_free;
+asn_struct_print_f Transmission_Bandwidth_print;
+asn_constr_check_f Transmission_Bandwidth_constraint;
+ber_type_decoder_f Transmission_Bandwidth_decode_ber;
+der_type_encoder_f Transmission_Bandwidth_encode_der;
+xer_type_decoder_f Transmission_Bandwidth_decode_xer;
+xer_type_encoder_f Transmission_Bandwidth_encode_xer;
+oer_type_decoder_f Transmission_Bandwidth_decode_oer;
+oer_type_encoder_f Transmission_Bandwidth_encode_oer;
+per_type_decoder_f Transmission_Bandwidth_decode_uper;
+per_type_encoder_f Transmission_Bandwidth_encode_uper;
+per_type_decoder_f Transmission_Bandwidth_decode_aper;
+per_type_encoder_f Transmission_Bandwidth_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Transmission_Bandwidth_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TransportLayerAddress.h b/e2ap/headers/TransportLayerAddress.h
new file mode 100644 (file)
index 0000000..4f8ead6
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TransportLayerAddress_H_
+#define        _TransportLayerAddress_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TransportLayerAddress */
+typedef BIT_STRING_t    TransportLayerAddress_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_TransportLayerAddress_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_TransportLayerAddress;
+asn_struct_free_f TransportLayerAddress_free;
+asn_struct_print_f TransportLayerAddress_print;
+asn_constr_check_f TransportLayerAddress_constraint;
+ber_type_decoder_f TransportLayerAddress_decode_ber;
+der_type_encoder_f TransportLayerAddress_encode_der;
+xer_type_decoder_f TransportLayerAddress_decode_xer;
+xer_type_encoder_f TransportLayerAddress_encode_xer;
+oer_type_decoder_f TransportLayerAddress_decode_oer;
+oer_type_encoder_f TransportLayerAddress_encode_oer;
+per_type_decoder_f TransportLayerAddress_decode_uper;
+per_type_encoder_f TransportLayerAddress_encode_uper;
+per_type_decoder_f TransportLayerAddress_decode_aper;
+per_type_encoder_f TransportLayerAddress_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TransportLayerAddress_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TriggeringMessage.h b/e2ap/headers/TriggeringMessage.h
new file mode 100644 (file)
index 0000000..a1da265
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-CommonDataTypes"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TriggeringMessage_H_
+#define        _TriggeringMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum TriggeringMessage {
+       TriggeringMessage_initiating_message    = 0,
+       TriggeringMessage_successful_outcome    = 1,
+       TriggeringMessage_unsuccessful_outcome  = 2
+} e_TriggeringMessage;
+
+/* TriggeringMessage */
+typedef long    TriggeringMessage_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_TriggeringMessage;
+extern const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1;
+asn_struct_free_f TriggeringMessage_free;
+asn_struct_print_f TriggeringMessage_print;
+asn_constr_check_f TriggeringMessage_constraint;
+ber_type_decoder_f TriggeringMessage_decode_ber;
+der_type_encoder_f TriggeringMessage_encode_der;
+xer_type_decoder_f TriggeringMessage_decode_xer;
+xer_type_encoder_f TriggeringMessage_encode_xer;
+oer_type_decoder_f TriggeringMessage_decode_oer;
+oer_type_encoder_f TriggeringMessage_encode_oer;
+per_type_decoder_f TriggeringMessage_decode_uper;
+per_type_encoder_f TriggeringMessage_encode_uper;
+per_type_decoder_f TriggeringMessage_decode_aper;
+per_type_encoder_f TriggeringMessage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TriggeringMessage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TunnelInformation.h b/e2ap/headers/TunnelInformation.h
new file mode 100644 (file)
index 0000000..6a89983
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TunnelInformation_H_
+#define        _TunnelInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TransportLayerAddress.h"
+#include "Port-Number.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TunnelInformation */
+typedef struct TunnelInformation {
+       TransportLayerAddress_t  transportLayerAddress;
+       Port_Number_t   *uDP_Port_Number;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} TunnelInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TunnelInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TunnelInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TypeOfError.h b/e2ap/headers/TypeOfError.h
new file mode 100644 (file)
index 0000000..aafd52e
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TypeOfError_H_
+#define        _TypeOfError_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum TypeOfError {
+       TypeOfError_not_understood      = 0,
+       TypeOfError_missing     = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_TypeOfError;
+
+/* TypeOfError */
+typedef long    TypeOfError_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_TypeOfError_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_TypeOfError;
+extern const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1;
+asn_struct_free_f TypeOfError_free;
+asn_struct_print_f TypeOfError_print;
+asn_constr_check_f TypeOfError_constraint;
+ber_type_decoder_f TypeOfError_decode_ber;
+der_type_encoder_f TypeOfError_encode_der;
+xer_type_decoder_f TypeOfError_decode_xer;
+xer_type_encoder_f TypeOfError_encode_xer;
+oer_type_decoder_f TypeOfError_decode_oer;
+oer_type_encoder_f TypeOfError_encode_oer;
+per_type_decoder_f TypeOfError_decode_uper;
+per_type_encoder_f TypeOfError_encode_uper;
+per_type_decoder_f TypeOfError_decode_aper;
+per_type_encoder_f TypeOfError_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TypeOfError_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TypeOfMessage.h b/e2ap/headers/TypeOfMessage.h
new file mode 100644 (file)
index 0000000..b58c385
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _TypeOfMessage_H_
+#define        _TypeOfMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum TypeOfMessage {
+       TypeOfMessage_nothing   = 0,
+       TypeOfMessage_initiating_message        = 1,
+       TypeOfMessage_successful_outcome        = 2,
+       TypeOfMessage_unsuccessful_outcome      = 3
+} e_TypeOfMessage;
+
+/* TypeOfMessage */
+typedef long    TypeOfMessage_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_TypeOfMessage_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_TypeOfMessage;
+extern const asn_INTEGER_specifics_t asn_SPC_TypeOfMessage_specs_1;
+asn_struct_free_f TypeOfMessage_free;
+asn_struct_print_f TypeOfMessage_print;
+asn_constr_check_f TypeOfMessage_constraint;
+ber_type_decoder_f TypeOfMessage_decode_ber;
+der_type_encoder_f TypeOfMessage_encode_der;
+xer_type_decoder_f TypeOfMessage_decode_xer;
+xer_type_encoder_f TypeOfMessage_encode_xer;
+oer_type_decoder_f TypeOfMessage_decode_oer;
+oer_type_encoder_f TypeOfMessage_encode_oer;
+per_type_decoder_f TypeOfMessage_decode_uper;
+per_type_encoder_f TypeOfMessage_encode_uper;
+per_type_decoder_f TypeOfMessage_decode_aper;
+per_type_encoder_f TypeOfMessage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TypeOfMessage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UE-ContextInformation-SgNBModReq.h b/e2ap/headers/UE-ContextInformation-SgNBModReq.h
new file mode 100644 (file)
index 0000000..b27297f
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UE_ContextInformation_SgNBModReq_H_
+#define        _UE_ContextInformation_SgNBModReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "SgNBSecurityKey.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct NRUESecurityCapabilities;
+struct UEAggregateMaximumBitRate;
+struct E_RABs_ToBeAdded_SgNBModReq_List;
+struct E_RABs_ToBeModified_SgNBModReq_List;
+struct E_RABs_ToBeReleased_SgNBModReq_List;
+struct ProtocolExtensionContainer;
+
+/* UE-ContextInformation-SgNBModReq */
+typedef struct UE_ContextInformation_SgNBModReq {
+       struct NRUESecurityCapabilities *nRUE_SecurityCapabilities;     /* OPTIONAL */
+       SgNBSecurityKey_t       *sgNB_SecurityKey;      /* OPTIONAL */
+       struct UEAggregateMaximumBitRate        *sgNBUEAggregateMaximumBitRate; /* OPTIONAL */
+       struct E_RABs_ToBeAdded_SgNBModReq_List *e_RABs_ToBeAdded;      /* OPTIONAL */
+       struct E_RABs_ToBeModified_SgNBModReq_List      *e_RABs_ToBeModified;   /* OPTIONAL */
+       struct E_RABs_ToBeReleased_SgNBModReq_List      *e_RABs_ToBeReleased;   /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UE_ContextInformation_SgNBModReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_ContextInformation_SgNBModReq;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_ContextInformation_SgNBModReq_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UE-ContextInformation.h b/e2ap/headers/UE-ContextInformation.h
new file mode 100644 (file)
index 0000000..74f4a82
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UE_ContextInformation_H_
+#define        _UE_ContextInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "UE-S1AP-ID.h"
+#include "UESecurityCapabilities.h"
+#include "AS-SecurityInformation.h"
+#include "UEAggregateMaximumBitRate.h"
+#include "SubscriberProfileIDforRFP.h"
+#include "E-RABs-ToBeSetup-List.h"
+#include "RRC-Context.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct HandoverRestrictionList;
+struct LocationReportingInformation;
+struct ProtocolExtensionContainer;
+
+/* UE-ContextInformation */
+typedef struct UE_ContextInformation {
+       UE_S1AP_ID_t     mME_UE_S1AP_ID;
+       UESecurityCapabilities_t         uESecurityCapabilities;
+       AS_SecurityInformation_t         aS_SecurityInformation;
+       UEAggregateMaximumBitRate_t      uEaggregateMaximumBitRate;
+       SubscriberProfileIDforRFP_t     *subscriberProfileIDforRFP;     /* OPTIONAL */
+       E_RABs_ToBeSetup_List_t  e_RABs_ToBeSetup_List;
+       RRC_Context_t    rRC_Context;
+       struct HandoverRestrictionList  *handoverRestrictionList;       /* OPTIONAL */
+       struct LocationReportingInformation     *locationReportingInformation;  /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UE_ContextInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_ContextInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_ContextInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UE-ContextInformationRetrieve.h b/e2ap/headers/UE-ContextInformationRetrieve.h
new file mode 100644 (file)
index 0000000..6b806bf
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UE_ContextInformationRetrieve_H_
+#define        _UE_ContextInformationRetrieve_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "UE-S1AP-ID.h"
+#include "UESecurityCapabilities.h"
+#include "AS-SecurityInformation.h"
+#include "UEAggregateMaximumBitRate.h"
+#include "SubscriberProfileIDforRFP.h"
+#include "E-RABs-ToBeSetup-ListRetrieve.h"
+#include "RRC-Context.h"
+#include "ManagementBasedMDTallowed.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct HandoverRestrictionList;
+struct LocationReportingInformation;
+struct MDTPLMNList;
+struct ProtocolExtensionContainer;
+
+/* UE-ContextInformationRetrieve */
+typedef struct UE_ContextInformationRetrieve {
+       UE_S1AP_ID_t     mME_UE_S1AP_ID;
+       UESecurityCapabilities_t         uESecurityCapabilities;
+       AS_SecurityInformation_t         aS_SecurityInformation;
+       UEAggregateMaximumBitRate_t      uEaggregateMaximumBitRate;
+       SubscriberProfileIDforRFP_t     *subscriberProfileIDforRFP;     /* OPTIONAL */
+       E_RABs_ToBeSetup_ListRetrieve_t  e_RABs_ToBeSetup_ListRetrieve;
+       RRC_Context_t    rRC_Context;
+       struct HandoverRestrictionList  *handoverRestrictionList;       /* OPTIONAL */
+       struct LocationReportingInformation     *locationReportingInformation;  /* OPTIONAL */
+       ManagementBasedMDTallowed_t     *managBasedMDTallowed;  /* OPTIONAL */
+       struct MDTPLMNList      *managBasedMDTPLMNList; /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UE_ContextInformationRetrieve_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationRetrieve;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_ContextInformationRetrieve_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UE-ContextInformationSeNBModReq.h b/e2ap/headers/UE-ContextInformationSeNBModReq.h
new file mode 100644 (file)
index 0000000..cd656d9
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UE_ContextInformationSeNBModReq_H_
+#define        _UE_ContextInformationSeNBModReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "SeNBSecurityKey.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct UESecurityCapabilities;
+struct UEAggregateMaximumBitRate;
+struct E_RABs_ToBeAdded_List_ModReq;
+struct E_RABs_ToBeModified_List_ModReq;
+struct E_RABs_ToBeReleased_List_ModReq;
+struct ProtocolExtensionContainer;
+
+/* UE-ContextInformationSeNBModReq */
+typedef struct UE_ContextInformationSeNBModReq {
+       struct UESecurityCapabilities   *uE_SecurityCapabilities;       /* OPTIONAL */
+       SeNBSecurityKey_t       *seNB_SecurityKey;      /* OPTIONAL */
+       struct UEAggregateMaximumBitRate        *seNBUEAggregateMaximumBitRate; /* OPTIONAL */
+       struct E_RABs_ToBeAdded_List_ModReq     *e_RABs_ToBeAdded;      /* OPTIONAL */
+       struct E_RABs_ToBeModified_List_ModReq  *e_RABs_ToBeModified;   /* OPTIONAL */
+       struct E_RABs_ToBeReleased_List_ModReq  *e_RABs_ToBeReleased;   /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UE_ContextInformationSeNBModReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationSeNBModReq;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_ContextInformationSeNBModReq_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UE-ContextKeptIndicator.h b/e2ap/headers/UE-ContextKeptIndicator.h
new file mode 100644 (file)
index 0000000..99382d9
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UE_ContextKeptIndicator_H_
+#define        _UE_ContextKeptIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum UE_ContextKeptIndicator {
+       UE_ContextKeptIndicator_true    = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_UE_ContextKeptIndicator;
+
+/* UE-ContextKeptIndicator */
+typedef long    UE_ContextKeptIndicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_ContextKeptIndicator;
+asn_struct_free_f UE_ContextKeptIndicator_free;
+asn_struct_print_f UE_ContextKeptIndicator_print;
+asn_constr_check_f UE_ContextKeptIndicator_constraint;
+ber_type_decoder_f UE_ContextKeptIndicator_decode_ber;
+der_type_encoder_f UE_ContextKeptIndicator_encode_der;
+xer_type_decoder_f UE_ContextKeptIndicator_decode_xer;
+xer_type_encoder_f UE_ContextKeptIndicator_encode_xer;
+oer_type_decoder_f UE_ContextKeptIndicator_decode_oer;
+oer_type_encoder_f UE_ContextKeptIndicator_encode_oer;
+per_type_decoder_f UE_ContextKeptIndicator_decode_uper;
+per_type_encoder_f UE_ContextKeptIndicator_encode_uper;
+per_type_decoder_f UE_ContextKeptIndicator_decode_aper;
+per_type_encoder_f UE_ContextKeptIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_ContextKeptIndicator_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UE-ContextReferenceAtSeNB.h b/e2ap/headers/UE-ContextReferenceAtSeNB.h
new file mode 100644 (file)
index 0000000..a275914
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UE_ContextReferenceAtSeNB_H_
+#define        _UE_ContextReferenceAtSeNB_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GlobalENB-ID.h"
+#include "UE-X2AP-ID.h"
+#include "UE-X2AP-ID-Extension.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UE-ContextReferenceAtSeNB */
+typedef struct UE_ContextReferenceAtSeNB {
+       GlobalENB_ID_t   source_GlobalSeNB_ID;
+       UE_X2AP_ID_t     seNB_UE_X2AP_ID;
+       UE_X2AP_ID_Extension_t   seNB_UE_X2AP_ID_Extension;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UE_ContextReferenceAtSeNB_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtSeNB;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_ContextReferenceAtSeNB_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UE-ContextReferenceAtSgNB.h b/e2ap/headers/UE-ContextReferenceAtSgNB.h
new file mode 100644 (file)
index 0000000..402998e
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UE_ContextReferenceAtSgNB_H_
+#define        _UE_ContextReferenceAtSgNB_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GlobalGNB-ID.h"
+#include "SgNB-UE-X2AP-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UE-ContextReferenceAtSgNB */
+typedef struct UE_ContextReferenceAtSgNB {
+       GlobalGNB_ID_t   source_GlobalSgNB_ID;
+       SgNB_UE_X2AP_ID_t        sgNB_UE_X2AP_ID;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UE_ContextReferenceAtSgNB_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtSgNB;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_ContextReferenceAtSgNB_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UE-ContextReferenceAtWT.h b/e2ap/headers/UE-ContextReferenceAtWT.h
new file mode 100644 (file)
index 0000000..0717cf5
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UE_ContextReferenceAtWT_H_
+#define        _UE_ContextReferenceAtWT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "WTID.h"
+#include "WT-UE-XwAP-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UE-ContextReferenceAtWT */
+typedef struct UE_ContextReferenceAtWT {
+       WTID_t   wTID;
+       WT_UE_XwAP_ID_t  wT_UE_XwAP_ID;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UE_ContextReferenceAtWT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtWT;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_ContextReferenceAtWT_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UE-HistoryInformation.h b/e2ap/headers/UE-HistoryInformation.h
new file mode 100644 (file)
index 0000000..1ad718d
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UE_HistoryInformation_H_
+#define        _UE_HistoryInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct LastVisitedCell_Item;
+
+/* UE-HistoryInformation */
+typedef struct UE_HistoryInformation {
+       A_SEQUENCE_OF(struct LastVisitedCell_Item) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UE_HistoryInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_HistoryInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_HistoryInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UE-HistoryInformationFromTheUE.h b/e2ap/headers/UE-HistoryInformationFromTheUE.h
new file mode 100644 (file)
index 0000000..36b1f08
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UE_HistoryInformationFromTheUE_H_
+#define        _UE_HistoryInformationFromTheUE_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UE-HistoryInformationFromTheUE */
+typedef OCTET_STRING_t  UE_HistoryInformationFromTheUE_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_HistoryInformationFromTheUE;
+asn_struct_free_f UE_HistoryInformationFromTheUE_free;
+asn_struct_print_f UE_HistoryInformationFromTheUE_print;
+asn_constr_check_f UE_HistoryInformationFromTheUE_constraint;
+ber_type_decoder_f UE_HistoryInformationFromTheUE_decode_ber;
+der_type_encoder_f UE_HistoryInformationFromTheUE_encode_der;
+xer_type_decoder_f UE_HistoryInformationFromTheUE_decode_xer;
+xer_type_encoder_f UE_HistoryInformationFromTheUE_encode_xer;
+oer_type_decoder_f UE_HistoryInformationFromTheUE_decode_oer;
+oer_type_encoder_f UE_HistoryInformationFromTheUE_encode_oer;
+per_type_decoder_f UE_HistoryInformationFromTheUE_decode_uper;
+per_type_encoder_f UE_HistoryInformationFromTheUE_encode_uper;
+per_type_decoder_f UE_HistoryInformationFromTheUE_decode_aper;
+per_type_encoder_f UE_HistoryInformationFromTheUE_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_HistoryInformationFromTheUE_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UE-RLF-Report-Container-for-extended-bands.h b/e2ap/headers/UE-RLF-Report-Container-for-extended-bands.h
new file mode 100644 (file)
index 0000000..b463b5b
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UE_RLF_Report_Container_for_extended_bands_H_
+#define        _UE_RLF_Report_Container_for_extended_bands_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UE-RLF-Report-Container-for-extended-bands */
+typedef OCTET_STRING_t  UE_RLF_Report_Container_for_extended_bands_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_RLF_Report_Container_for_extended_bands;
+asn_struct_free_f UE_RLF_Report_Container_for_extended_bands_free;
+asn_struct_print_f UE_RLF_Report_Container_for_extended_bands_print;
+asn_constr_check_f UE_RLF_Report_Container_for_extended_bands_constraint;
+ber_type_decoder_f UE_RLF_Report_Container_for_extended_bands_decode_ber;
+der_type_encoder_f UE_RLF_Report_Container_for_extended_bands_encode_der;
+xer_type_decoder_f UE_RLF_Report_Container_for_extended_bands_decode_xer;
+xer_type_encoder_f UE_RLF_Report_Container_for_extended_bands_encode_xer;
+oer_type_decoder_f UE_RLF_Report_Container_for_extended_bands_decode_oer;
+oer_type_encoder_f UE_RLF_Report_Container_for_extended_bands_encode_oer;
+per_type_decoder_f UE_RLF_Report_Container_for_extended_bands_decode_uper;
+per_type_encoder_f UE_RLF_Report_Container_for_extended_bands_encode_uper;
+per_type_decoder_f UE_RLF_Report_Container_for_extended_bands_decode_aper;
+per_type_encoder_f UE_RLF_Report_Container_for_extended_bands_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_RLF_Report_Container_for_extended_bands_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UE-RLF-Report-Container.h b/e2ap/headers/UE-RLF-Report-Container.h
new file mode 100644 (file)
index 0000000..12ea846
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UE_RLF_Report_Container_H_
+#define        _UE_RLF_Report_Container_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UE-RLF-Report-Container */
+typedef OCTET_STRING_t  UE_RLF_Report_Container_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_RLF_Report_Container;
+asn_struct_free_f UE_RLF_Report_Container_free;
+asn_struct_print_f UE_RLF_Report_Container_print;
+asn_constr_check_f UE_RLF_Report_Container_constraint;
+ber_type_decoder_f UE_RLF_Report_Container_decode_ber;
+der_type_encoder_f UE_RLF_Report_Container_encode_der;
+xer_type_decoder_f UE_RLF_Report_Container_decode_xer;
+xer_type_encoder_f UE_RLF_Report_Container_encode_xer;
+oer_type_decoder_f UE_RLF_Report_Container_decode_oer;
+oer_type_encoder_f UE_RLF_Report_Container_encode_oer;
+per_type_decoder_f UE_RLF_Report_Container_decode_uper;
+per_type_encoder_f UE_RLF_Report_Container_encode_uper;
+per_type_decoder_f UE_RLF_Report_Container_decode_aper;
+per_type_encoder_f UE_RLF_Report_Container_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_RLF_Report_Container_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UE-S1AP-ID.h b/e2ap/headers/UE-S1AP-ID.h
new file mode 100644 (file)
index 0000000..d567a37
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UE_S1AP_ID_H_
+#define        _UE_S1AP_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UE-S1AP-ID */
+typedef unsigned long   UE_S1AP_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UE_S1AP_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UE_S1AP_ID;
+extern const asn_INTEGER_specifics_t asn_SPC_UE_S1AP_ID_specs_1;
+asn_struct_free_f UE_S1AP_ID_free;
+asn_struct_print_f UE_S1AP_ID_print;
+asn_constr_check_f UE_S1AP_ID_constraint;
+ber_type_decoder_f UE_S1AP_ID_decode_ber;
+der_type_encoder_f UE_S1AP_ID_encode_der;
+xer_type_decoder_f UE_S1AP_ID_decode_xer;
+xer_type_encoder_f UE_S1AP_ID_encode_xer;
+oer_type_decoder_f UE_S1AP_ID_decode_oer;
+oer_type_encoder_f UE_S1AP_ID_encode_oer;
+per_type_decoder_f UE_S1AP_ID_decode_uper;
+per_type_encoder_f UE_S1AP_ID_encode_uper;
+per_type_decoder_f UE_S1AP_ID_decode_aper;
+per_type_encoder_f UE_S1AP_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_S1AP_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UE-X2AP-ID-Extension.h b/e2ap/headers/UE-X2AP-ID-Extension.h
new file mode 100644 (file)
index 0000000..de32e92
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UE_X2AP_ID_Extension_H_
+#define        _UE_X2AP_ID_Extension_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UE-X2AP-ID-Extension */
+typedef long    UE_X2AP_ID_Extension_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UE_X2AP_ID_Extension_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UE_X2AP_ID_Extension;
+asn_struct_free_f UE_X2AP_ID_Extension_free;
+asn_struct_print_f UE_X2AP_ID_Extension_print;
+asn_constr_check_f UE_X2AP_ID_Extension_constraint;
+ber_type_decoder_f UE_X2AP_ID_Extension_decode_ber;
+der_type_encoder_f UE_X2AP_ID_Extension_encode_der;
+xer_type_decoder_f UE_X2AP_ID_Extension_decode_xer;
+xer_type_encoder_f UE_X2AP_ID_Extension_encode_xer;
+oer_type_decoder_f UE_X2AP_ID_Extension_decode_oer;
+oer_type_encoder_f UE_X2AP_ID_Extension_encode_oer;
+per_type_decoder_f UE_X2AP_ID_Extension_decode_uper;
+per_type_encoder_f UE_X2AP_ID_Extension_encode_uper;
+per_type_decoder_f UE_X2AP_ID_Extension_decode_aper;
+per_type_encoder_f UE_X2AP_ID_Extension_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_X2AP_ID_Extension_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UE-X2AP-ID.h b/e2ap/headers/UE-X2AP-ID.h
new file mode 100644 (file)
index 0000000..273ae08
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UE_X2AP_ID_H_
+#define        _UE_X2AP_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UE-X2AP-ID */
+typedef long    UE_X2AP_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UE_X2AP_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UE_X2AP_ID;
+asn_struct_free_f UE_X2AP_ID_free;
+asn_struct_print_f UE_X2AP_ID_print;
+asn_constr_check_f UE_X2AP_ID_constraint;
+ber_type_decoder_f UE_X2AP_ID_decode_ber;
+der_type_encoder_f UE_X2AP_ID_encode_der;
+xer_type_decoder_f UE_X2AP_ID_decode_xer;
+xer_type_encoder_f UE_X2AP_ID_encode_xer;
+oer_type_decoder_f UE_X2AP_ID_decode_oer;
+oer_type_encoder_f UE_X2AP_ID_encode_oer;
+per_type_decoder_f UE_X2AP_ID_decode_uper;
+per_type_encoder_f UE_X2AP_ID_encode_uper;
+per_type_decoder_f UE_X2AP_ID_decode_aper;
+per_type_encoder_f UE_X2AP_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_X2AP_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UEAggregateMaximumBitRate.h b/e2ap/headers/UEAggregateMaximumBitRate.h
new file mode 100644 (file)
index 0000000..299cab5
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UEAggregateMaximumBitRate_H_
+#define        _UEAggregateMaximumBitRate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "BitRate.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UEAggregateMaximumBitRate */
+typedef struct UEAggregateMaximumBitRate {
+       BitRate_t        uEaggregateMaximumBitRateDownlink;
+       BitRate_t        uEaggregateMaximumBitRateUplink;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UEAggregateMaximumBitRate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEAggregateMaximumBitRate;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEAggregateMaximumBitRate_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEAggregateMaximumBitRate_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEAggregateMaximumBitRate_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UEAppLayerMeasConfig.h b/e2ap/headers/UEAppLayerMeasConfig.h
new file mode 100644 (file)
index 0000000..4cfcd71
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UEAppLayerMeasConfig_H_
+#define        _UEAppLayerMeasConfig_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+#include "AreaScopeOfQMC.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UEAppLayerMeasConfig */
+typedef struct UEAppLayerMeasConfig {
+       OCTET_STRING_t   containerForAppLayerMeasConfig;
+       AreaScopeOfQMC_t         areaScopeOfQMC;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UEAppLayerMeasConfig_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEAppLayerMeasConfig;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEAppLayerMeasConfig_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UEContextRelease.h b/e2ap/headers/UEContextRelease.h
new file mode 100644 (file)
index 0000000..c8bbb4e
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UEContextRelease_H_
+#define        _UEContextRelease_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEContextRelease */
+typedef struct UEContextRelease {
+       ProtocolIE_Container_9515P19_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UEContextRelease_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEContextRelease;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEContextRelease_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEContextRelease_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEContextRelease_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UEID.h b/e2ap/headers/UEID.h
new file mode 100644 (file)
index 0000000..a86b455
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UEID_H_
+#define        _UEID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEID */
+typedef BIT_STRING_t    UEID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UEID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UEID;
+asn_struct_free_f UEID_free;
+asn_struct_print_f UEID_print;
+asn_constr_check_f UEID_constraint;
+ber_type_decoder_f UEID_decode_ber;
+der_type_encoder_f UEID_encode_der;
+xer_type_decoder_f UEID_decode_xer;
+xer_type_encoder_f UEID_encode_xer;
+oer_type_decoder_f UEID_decode_oer;
+oer_type_encoder_f UEID_encode_oer;
+per_type_decoder_f UEID_decode_uper;
+per_type_encoder_f UEID_encode_uper;
+per_type_decoder_f UEID_decode_aper;
+per_type_encoder_f UEID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UENRMeasurement.h b/e2ap/headers/UENRMeasurement.h
new file mode 100644 (file)
index 0000000..bf10649
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UENRMeasurement_H_
+#define        _UENRMeasurement_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RRCContainer.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UENRMeasurement */
+typedef struct UENRMeasurement {
+       RRCContainer_t   uENRMeasurements;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UENRMeasurement_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UENRMeasurement;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UENRMeasurement_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UESecurityCapabilities.h b/e2ap/headers/UESecurityCapabilities.h
new file mode 100644 (file)
index 0000000..f712b01
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UESecurityCapabilities_H_
+#define        _UESecurityCapabilities_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EncryptionAlgorithms.h"
+#include "IntegrityProtectionAlgorithms.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UESecurityCapabilities */
+typedef struct UESecurityCapabilities {
+       EncryptionAlgorithms_t   encryptionAlgorithms;
+       IntegrityProtectionAlgorithms_t  integrityProtectionAlgorithms;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UESecurityCapabilities_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UESecurityCapabilities;
+extern asn_SEQUENCE_specifics_t asn_SPC_UESecurityCapabilities_specs_1;
+extern asn_TYPE_member_t asn_MBR_UESecurityCapabilities_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UESecurityCapabilities_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UESidelinkAggregateMaximumBitRate.h b/e2ap/headers/UESidelinkAggregateMaximumBitRate.h
new file mode 100644 (file)
index 0000000..d5949bd
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UESidelinkAggregateMaximumBitRate_H_
+#define        _UESidelinkAggregateMaximumBitRate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "BitRate.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UESidelinkAggregateMaximumBitRate */
+typedef struct UESidelinkAggregateMaximumBitRate {
+       BitRate_t        uESidelinkAggregateMaximumBitRate;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UESidelinkAggregateMaximumBitRate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UESidelinkAggregateMaximumBitRate;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UESidelinkAggregateMaximumBitRate_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UEsToBeResetList-Item.h b/e2ap/headers/UEsToBeResetList-Item.h
new file mode 100644 (file)
index 0000000..bbf028e
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UEsToBeResetList_Item_H_
+#define        _UEsToBeResetList_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "UE-X2AP-ID.h"
+#include "UE-X2AP-ID-Extension.h"
+#include "SgNB-UE-X2AP-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UEsToBeResetList-Item */
+typedef struct UEsToBeResetList_Item {
+       UE_X2AP_ID_t     meNB_ID;
+       UE_X2AP_ID_Extension_t  *meNB_ID_ext;   /* OPTIONAL */
+       SgNB_UE_X2AP_ID_t       *sgNB_ID;       /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UEsToBeResetList_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEsToBeResetList_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEsToBeResetList_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEsToBeResetList_Item_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEsToBeResetList_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UEsToBeResetList.h b/e2ap/headers/UEsToBeResetList.h
new file mode 100644 (file)
index 0000000..cbe7cc2
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UEsToBeResetList_H_
+#define        _UEsToBeResetList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct UEsToBeResetList_Item;
+
+/* UEsToBeResetList */
+typedef struct UEsToBeResetList {
+       A_SEQUENCE_OF(struct UEsToBeResetList_Item) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UEsToBeResetList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEsToBeResetList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEsToBeResetList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UL-GBR-PRB-usage.h b/e2ap/headers/UL-GBR-PRB-usage.h
new file mode 100644 (file)
index 0000000..7b4af6d
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UL_GBR_PRB_usage_H_
+#define        _UL_GBR_PRB_usage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UL-GBR-PRB-usage */
+typedef long    UL_GBR_PRB_usage_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UL_GBR_PRB_usage_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UL_GBR_PRB_usage;
+asn_struct_free_f UL_GBR_PRB_usage_free;
+asn_struct_print_f UL_GBR_PRB_usage_print;
+asn_constr_check_f UL_GBR_PRB_usage_constraint;
+ber_type_decoder_f UL_GBR_PRB_usage_decode_ber;
+der_type_encoder_f UL_GBR_PRB_usage_encode_der;
+xer_type_decoder_f UL_GBR_PRB_usage_decode_xer;
+xer_type_encoder_f UL_GBR_PRB_usage_encode_xer;
+oer_type_decoder_f UL_GBR_PRB_usage_decode_oer;
+oer_type_encoder_f UL_GBR_PRB_usage_encode_oer;
+per_type_decoder_f UL_GBR_PRB_usage_decode_uper;
+per_type_encoder_f UL_GBR_PRB_usage_encode_uper;
+per_type_decoder_f UL_GBR_PRB_usage_decode_aper;
+per_type_encoder_f UL_GBR_PRB_usage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UL_GBR_PRB_usage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UL-HighInterferenceIndication.h b/e2ap/headers/UL-HighInterferenceIndication.h
new file mode 100644 (file)
index 0000000..464487f
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UL_HighInterferenceIndication_H_
+#define        _UL_HighInterferenceIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UL-HighInterferenceIndication */
+typedef BIT_STRING_t    UL_HighInterferenceIndication_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UL_HighInterferenceIndication_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UL_HighInterferenceIndication;
+asn_struct_free_f UL_HighInterferenceIndication_free;
+asn_struct_print_f UL_HighInterferenceIndication_print;
+asn_constr_check_f UL_HighInterferenceIndication_constraint;
+ber_type_decoder_f UL_HighInterferenceIndication_decode_ber;
+der_type_encoder_f UL_HighInterferenceIndication_encode_der;
+xer_type_decoder_f UL_HighInterferenceIndication_decode_xer;
+xer_type_encoder_f UL_HighInterferenceIndication_encode_xer;
+oer_type_decoder_f UL_HighInterferenceIndication_decode_oer;
+oer_type_encoder_f UL_HighInterferenceIndication_encode_oer;
+per_type_decoder_f UL_HighInterferenceIndication_decode_uper;
+per_type_encoder_f UL_HighInterferenceIndication_encode_uper;
+per_type_decoder_f UL_HighInterferenceIndication_decode_aper;
+per_type_encoder_f UL_HighInterferenceIndication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UL_HighInterferenceIndication_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UL-HighInterferenceIndicationInfo-Item.h b/e2ap/headers/UL-HighInterferenceIndicationInfo-Item.h
new file mode 100644 (file)
index 0000000..7ecfe68
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UL_HighInterferenceIndicationInfo_Item_H_
+#define        _UL_HighInterferenceIndicationInfo_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ECGI.h"
+#include "UL-HighInterferenceIndication.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UL-HighInterferenceIndicationInfo-Item */
+typedef struct UL_HighInterferenceIndicationInfo_Item {
+       ECGI_t   target_Cell_ID;
+       UL_HighInterferenceIndication_t  ul_interferenceindication;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UL_HighInterferenceIndicationInfo_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UL_HighInterferenceIndicationInfo_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_UL_HighInterferenceIndicationInfo_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_UL_HighInterferenceIndicationInfo_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UL_HighInterferenceIndicationInfo_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UL-HighInterferenceIndicationInfo.h b/e2ap/headers/UL-HighInterferenceIndicationInfo.h
new file mode 100644 (file)
index 0000000..60f0743
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UL_HighInterferenceIndicationInfo_H_
+#define        _UL_HighInterferenceIndicationInfo_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct UL_HighInterferenceIndicationInfo_Item;
+
+/* UL-HighInterferenceIndicationInfo */
+typedef struct UL_HighInterferenceIndicationInfo {
+       A_SEQUENCE_OF(struct UL_HighInterferenceIndicationInfo_Item) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UL_HighInterferenceIndicationInfo_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UL_HighInterferenceIndicationInfo;
+extern asn_SET_OF_specifics_t asn_SPC_UL_HighInterferenceIndicationInfo_specs_1;
+extern asn_TYPE_member_t asn_MBR_UL_HighInterferenceIndicationInfo_1[1];
+extern asn_per_constraints_t asn_PER_type_UL_HighInterferenceIndicationInfo_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UL_HighInterferenceIndicationInfo_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UL-InterferenceOverloadIndication-Item.h b/e2ap/headers/UL-InterferenceOverloadIndication-Item.h
new file mode 100644 (file)
index 0000000..bc51496
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UL_InterferenceOverloadIndication_Item_H_
+#define        _UL_InterferenceOverloadIndication_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum UL_InterferenceOverloadIndication_Item {
+       UL_InterferenceOverloadIndication_Item_high_interference        = 0,
+       UL_InterferenceOverloadIndication_Item_medium_interference      = 1,
+       UL_InterferenceOverloadIndication_Item_low_interference = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_UL_InterferenceOverloadIndication_Item;
+
+/* UL-InterferenceOverloadIndication-Item */
+typedef long    UL_InterferenceOverloadIndication_Item_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UL_InterferenceOverloadIndication_Item_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UL_InterferenceOverloadIndication_Item;
+extern const asn_INTEGER_specifics_t asn_SPC_UL_InterferenceOverloadIndication_Item_specs_1;
+asn_struct_free_f UL_InterferenceOverloadIndication_Item_free;
+asn_struct_print_f UL_InterferenceOverloadIndication_Item_print;
+asn_constr_check_f UL_InterferenceOverloadIndication_Item_constraint;
+ber_type_decoder_f UL_InterferenceOverloadIndication_Item_decode_ber;
+der_type_encoder_f UL_InterferenceOverloadIndication_Item_encode_der;
+xer_type_decoder_f UL_InterferenceOverloadIndication_Item_decode_xer;
+xer_type_encoder_f UL_InterferenceOverloadIndication_Item_encode_xer;
+oer_type_decoder_f UL_InterferenceOverloadIndication_Item_decode_oer;
+oer_type_encoder_f UL_InterferenceOverloadIndication_Item_encode_oer;
+per_type_decoder_f UL_InterferenceOverloadIndication_Item_decode_uper;
+per_type_encoder_f UL_InterferenceOverloadIndication_Item_encode_uper;
+per_type_decoder_f UL_InterferenceOverloadIndication_Item_decode_aper;
+per_type_encoder_f UL_InterferenceOverloadIndication_Item_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UL_InterferenceOverloadIndication_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UL-InterferenceOverloadIndication.h b/e2ap/headers/UL-InterferenceOverloadIndication.h
new file mode 100644 (file)
index 0000000..0e23b36
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UL_InterferenceOverloadIndication_H_
+#define        _UL_InterferenceOverloadIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "UL-InterferenceOverloadIndication-Item.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UL-InterferenceOverloadIndication */
+typedef struct UL_InterferenceOverloadIndication {
+       A_SEQUENCE_OF(UL_InterferenceOverloadIndication_Item_t) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UL_InterferenceOverloadIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UL_InterferenceOverloadIndication;
+extern asn_SET_OF_specifics_t asn_SPC_UL_InterferenceOverloadIndication_specs_1;
+extern asn_TYPE_member_t asn_MBR_UL_InterferenceOverloadIndication_1[1];
+extern asn_per_constraints_t asn_PER_type_UL_InterferenceOverloadIndication_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UL_InterferenceOverloadIndication_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UL-Total-PRB-usage.h b/e2ap/headers/UL-Total-PRB-usage.h
new file mode 100644 (file)
index 0000000..bb80489
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UL_Total_PRB_usage_H_
+#define        _UL_Total_PRB_usage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UL-Total-PRB-usage */
+typedef long    UL_Total_PRB_usage_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UL_Total_PRB_usage_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UL_Total_PRB_usage;
+asn_struct_free_f UL_Total_PRB_usage_free;
+asn_struct_print_f UL_Total_PRB_usage_print;
+asn_constr_check_f UL_Total_PRB_usage_constraint;
+ber_type_decoder_f UL_Total_PRB_usage_decode_ber;
+der_type_encoder_f UL_Total_PRB_usage_encode_der;
+xer_type_decoder_f UL_Total_PRB_usage_decode_xer;
+xer_type_encoder_f UL_Total_PRB_usage_encode_xer;
+oer_type_decoder_f UL_Total_PRB_usage_decode_oer;
+oer_type_encoder_f UL_Total_PRB_usage_encode_oer;
+per_type_decoder_f UL_Total_PRB_usage_decode_uper;
+per_type_encoder_f UL_Total_PRB_usage_encode_uper;
+per_type_decoder_f UL_Total_PRB_usage_decode_aper;
+per_type_encoder_f UL_Total_PRB_usage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UL_Total_PRB_usage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UL-UE-Configuration.h b/e2ap/headers/UL-UE-Configuration.h
new file mode 100644 (file)
index 0000000..adef939
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UL_UE_Configuration_H_
+#define        _UL_UE_Configuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum UL_UE_Configuration {
+       UL_UE_Configuration_no_data     = 0,
+       UL_UE_Configuration_shared      = 1,
+       UL_UE_Configuration_only        = 2
+       /*
+        * Enumeration is extensible
+        */
+} e_UL_UE_Configuration;
+
+/* UL-UE-Configuration */
+typedef long    UL_UE_Configuration_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UL_UE_Configuration_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UL_UE_Configuration;
+extern const asn_INTEGER_specifics_t asn_SPC_UL_UE_Configuration_specs_1;
+asn_struct_free_f UL_UE_Configuration_free;
+asn_struct_print_f UL_UE_Configuration_print;
+asn_constr_check_f UL_UE_Configuration_constraint;
+ber_type_decoder_f UL_UE_Configuration_decode_ber;
+der_type_encoder_f UL_UE_Configuration_encode_der;
+xer_type_decoder_f UL_UE_Configuration_decode_xer;
+xer_type_encoder_f UL_UE_Configuration_encode_xer;
+oer_type_decoder_f UL_UE_Configuration_decode_oer;
+oer_type_encoder_f UL_UE_Configuration_encode_oer;
+per_type_decoder_f UL_UE_Configuration_decode_uper;
+per_type_encoder_f UL_UE_Configuration_encode_uper;
+per_type_decoder_f UL_UE_Configuration_decode_aper;
+per_type_encoder_f UL_UE_Configuration_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UL_UE_Configuration_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UL-non-GBR-PRB-usage.h b/e2ap/headers/UL-non-GBR-PRB-usage.h
new file mode 100644 (file)
index 0000000..d6b6b51
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UL_non_GBR_PRB_usage_H_
+#define        _UL_non_GBR_PRB_usage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UL-non-GBR-PRB-usage */
+typedef long    UL_non_GBR_PRB_usage_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UL_non_GBR_PRB_usage_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UL_non_GBR_PRB_usage;
+asn_struct_free_f UL_non_GBR_PRB_usage_free;
+asn_struct_print_f UL_non_GBR_PRB_usage_print;
+asn_constr_check_f UL_non_GBR_PRB_usage_constraint;
+ber_type_decoder_f UL_non_GBR_PRB_usage_decode_ber;
+der_type_encoder_f UL_non_GBR_PRB_usage_encode_der;
+xer_type_decoder_f UL_non_GBR_PRB_usage_decode_xer;
+xer_type_encoder_f UL_non_GBR_PRB_usage_encode_xer;
+oer_type_decoder_f UL_non_GBR_PRB_usage_decode_oer;
+oer_type_encoder_f UL_non_GBR_PRB_usage_encode_oer;
+per_type_decoder_f UL_non_GBR_PRB_usage_decode_uper;
+per_type_encoder_f UL_non_GBR_PRB_usage_encode_uper;
+per_type_decoder_f UL_non_GBR_PRB_usage_decode_aper;
+per_type_encoder_f UL_non_GBR_PRB_usage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UL_non_GBR_PRB_usage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UL-scheduling-PDCCH-CCE-usage.h b/e2ap/headers/UL-scheduling-PDCCH-CCE-usage.h
new file mode 100644 (file)
index 0000000..e28112c
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UL_scheduling_PDCCH_CCE_usage_H_
+#define        _UL_scheduling_PDCCH_CCE_usage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UL-scheduling-PDCCH-CCE-usage */
+typedef long    UL_scheduling_PDCCH_CCE_usage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UL_scheduling_PDCCH_CCE_usage;
+asn_struct_free_f UL_scheduling_PDCCH_CCE_usage_free;
+asn_struct_print_f UL_scheduling_PDCCH_CCE_usage_print;
+asn_constr_check_f UL_scheduling_PDCCH_CCE_usage_constraint;
+ber_type_decoder_f UL_scheduling_PDCCH_CCE_usage_decode_ber;
+der_type_encoder_f UL_scheduling_PDCCH_CCE_usage_encode_der;
+xer_type_decoder_f UL_scheduling_PDCCH_CCE_usage_decode_xer;
+xer_type_encoder_f UL_scheduling_PDCCH_CCE_usage_encode_xer;
+oer_type_decoder_f UL_scheduling_PDCCH_CCE_usage_decode_oer;
+oer_type_encoder_f UL_scheduling_PDCCH_CCE_usage_encode_oer;
+per_type_decoder_f UL_scheduling_PDCCH_CCE_usage_decode_uper;
+per_type_encoder_f UL_scheduling_PDCCH_CCE_usage_encode_uper;
+per_type_decoder_f UL_scheduling_PDCCH_CCE_usage_decode_aper;
+per_type_encoder_f UL_scheduling_PDCCH_CCE_usage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UL_scheduling_PDCCH_CCE_usage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ULConfiguration.h b/e2ap/headers/ULConfiguration.h
new file mode 100644 (file)
index 0000000..6c1750a
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ULConfiguration_H_
+#define        _ULConfiguration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "UL-UE-Configuration.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ULConfiguration */
+typedef struct ULConfiguration {
+       UL_UE_Configuration_t    uL_PDCP;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ULConfiguration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ULConfiguration;
+extern asn_SEQUENCE_specifics_t asn_SPC_ULConfiguration_specs_1;
+extern asn_TYPE_member_t asn_MBR_ULConfiguration_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ULConfiguration_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ULOnlySharing.h b/e2ap/headers/ULOnlySharing.h
new file mode 100644 (file)
index 0000000..f86e4f4
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ULOnlySharing_H_
+#define        _ULOnlySharing_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "DataTrafficResources.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ULOnlySharing */
+typedef struct ULOnlySharing {
+       DataTrafficResources_t   uLResourceBitmapULOnlySharing;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ULOnlySharing_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ULOnlySharing;
+extern asn_SEQUENCE_specifics_t asn_SPC_ULOnlySharing_specs_1;
+extern asn_TYPE_member_t asn_MBR_ULOnlySharing_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ULOnlySharing_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ULResourceBitmapULandDLSharing.h b/e2ap/headers/ULResourceBitmapULandDLSharing.h
new file mode 100644 (file)
index 0000000..e9d6da6
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ULResourceBitmapULandDLSharing_H_
+#define        _ULResourceBitmapULandDLSharing_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "DataTrafficResources.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ULResourceBitmapULandDLSharing */
+typedef DataTrafficResources_t  ULResourceBitmapULandDLSharing_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ULResourceBitmapULandDLSharing_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ULResourceBitmapULandDLSharing;
+asn_struct_free_f ULResourceBitmapULandDLSharing_free;
+asn_struct_print_f ULResourceBitmapULandDLSharing_print;
+asn_constr_check_f ULResourceBitmapULandDLSharing_constraint;
+ber_type_decoder_f ULResourceBitmapULandDLSharing_decode_ber;
+der_type_encoder_f ULResourceBitmapULandDLSharing_encode_der;
+xer_type_decoder_f ULResourceBitmapULandDLSharing_decode_xer;
+xer_type_encoder_f ULResourceBitmapULandDLSharing_encode_xer;
+oer_type_decoder_f ULResourceBitmapULandDLSharing_decode_oer;
+oer_type_encoder_f ULResourceBitmapULandDLSharing_encode_oer;
+per_type_decoder_f ULResourceBitmapULandDLSharing_decode_uper;
+per_type_encoder_f ULResourceBitmapULandDLSharing_encode_uper;
+per_type_decoder_f ULResourceBitmapULandDLSharing_decode_aper;
+per_type_encoder_f ULResourceBitmapULandDLSharing_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ULResourceBitmapULandDLSharing_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ULResourcesULandDLSharing.h b/e2ap/headers/ULResourcesULandDLSharing.h
new file mode 100644 (file)
index 0000000..1a9f8a0
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ULResourcesULandDLSharing_H_
+#define        _ULResourcesULandDLSharing_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NULL.h>
+#include "ULResourceBitmapULandDLSharing.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ULResourcesULandDLSharing_PR {
+       ULResourcesULandDLSharing_PR_NOTHING,   /* No components present */
+       ULResourcesULandDLSharing_PR_unchanged,
+       ULResourcesULandDLSharing_PR_changed
+       /* Extensions may appear below */
+       
+} ULResourcesULandDLSharing_PR;
+
+/* ULResourcesULandDLSharing */
+typedef struct ULResourcesULandDLSharing {
+       ULResourcesULandDLSharing_PR present;
+       union ULResourcesULandDLSharing_u {
+               NULL_t   unchanged;
+               ULResourceBitmapULandDLSharing_t         changed;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ULResourcesULandDLSharing_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ULResourcesULandDLSharing;
+extern asn_CHOICE_specifics_t asn_SPC_ULResourcesULandDLSharing_specs_1;
+extern asn_TYPE_member_t asn_MBR_ULResourcesULandDLSharing_1[2];
+extern asn_per_constraints_t asn_PER_type_ULResourcesULandDLSharing_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ULResourcesULandDLSharing_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/ULandDLSharing.h b/e2ap/headers/ULandDLSharing.h
new file mode 100644 (file)
index 0000000..b65daba
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _ULandDLSharing_H_
+#define        _ULandDLSharing_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ULResourcesULandDLSharing.h"
+#include "DLResourcesULandDLSharing.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ULandDLSharing */
+typedef struct ULandDLSharing {
+       ULResourcesULandDLSharing_t      uLResourcesULandDLSharing;
+       DLResourcesULandDLSharing_t      dLResourcesULandDLSharing;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} ULandDLSharing_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ULandDLSharing;
+extern asn_SEQUENCE_specifics_t asn_SPC_ULandDLSharing_specs_1;
+extern asn_TYPE_member_t asn_MBR_ULandDLSharing_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ULandDLSharing_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UnsuccessfulOutcome.h b/e2ap/headers/UnsuccessfulOutcome.h
new file mode 100644 (file)
index 0000000..040c8b2
--- /dev/null
@@ -0,0 +1,190 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Descriptions"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UnsuccessfulOutcome_H_
+#define        _UnsuccessfulOutcome_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProcedureCode.h"
+#include "Criticality.h"
+#include <ANY.h>
+#include <asn_ioc.h>
+#include "HandoverRequest.h"
+#include "HandoverRequestAcknowledge.h"
+#include "HandoverPreparationFailure.h"
+#include "ResetRequest.h"
+#include "ResetResponse.h"
+#include "X2SetupRequest.h"
+#include "X2SetupResponse.h"
+#include "X2SetupFailure.h"
+#include "ResourceStatusRequest.h"
+#include "ResourceStatusResponse.h"
+#include "ResourceStatusFailure.h"
+#include "ENBConfigurationUpdate.h"
+#include "ENBConfigurationUpdateAcknowledge.h"
+#include "ENBConfigurationUpdateFailure.h"
+#include "MobilityChangeRequest.h"
+#include "MobilityChangeAcknowledge.h"
+#include "MobilityChangeFailure.h"
+#include "CellActivationRequest.h"
+#include "CellActivationResponse.h"
+#include "CellActivationFailure.h"
+#include "SeNBAdditionRequest.h"
+#include "SeNBAdditionRequestAcknowledge.h"
+#include "SeNBAdditionRequestReject.h"
+#include "SeNBModificationRequest.h"
+#include "SeNBModificationRequestAcknowledge.h"
+#include "SeNBModificationRequestReject.h"
+#include "SeNBModificationRequired.h"
+#include "SeNBModificationConfirm.h"
+#include "SeNBModificationRefuse.h"
+#include "SeNBReleaseRequired.h"
+#include "SeNBReleaseConfirm.h"
+#include "X2RemovalRequest.h"
+#include "X2RemovalResponse.h"
+#include "X2RemovalFailure.h"
+#include "RetrieveUEContextRequest.h"
+#include "RetrieveUEContextResponse.h"
+#include "RetrieveUEContextFailure.h"
+#include "SgNBAdditionRequest.h"
+#include "SgNBAdditionRequestAcknowledge.h"
+#include "SgNBAdditionRequestReject.h"
+#include "SgNBModificationRequest.h"
+#include "SgNBModificationRequestAcknowledge.h"
+#include "SgNBModificationRequestReject.h"
+#include "SgNBModificationRequired.h"
+#include "SgNBModificationConfirm.h"
+#include "SgNBModificationRefuse.h"
+#include "SgNBReleaseRequest.h"
+#include "SgNBReleaseRequestAcknowledge.h"
+#include "SgNBReleaseRequestReject.h"
+#include "SgNBReleaseRequired.h"
+#include "SgNBReleaseConfirm.h"
+#include "SgNBChangeRequired.h"
+#include "SgNBChangeConfirm.h"
+#include "SgNBChangeRefuse.h"
+#include "ENDCX2SetupRequest.h"
+#include "ENDCX2SetupResponse.h"
+#include "ENDCX2SetupFailure.h"
+#include "ENDCConfigurationUpdate.h"
+#include "ENDCConfigurationUpdateAcknowledge.h"
+#include "ENDCConfigurationUpdateFailure.h"
+#include "ENDCCellActivationRequest.h"
+#include "ENDCCellActivationResponse.h"
+#include "ENDCCellActivationFailure.h"
+#include "ENDCPartialResetRequired.h"
+#include "ENDCPartialResetConfirm.h"
+#include "EUTRANRCellResourceCoordinationRequest.h"
+#include "EUTRANRCellResourceCoordinationResponse.h"
+#include "ENDCX2RemovalRequest.h"
+#include "ENDCX2RemovalResponse.h"
+#include "ENDCX2RemovalFailure.h"
+#include "SNStatusTransfer.h"
+#include "UEContextRelease.h"
+#include "HandoverCancel.h"
+#include "ErrorIndication.h"
+#include "ResourceStatusUpdate.h"
+#include "LoadInformation.h"
+#include "PrivateMessage.h"
+#include "RLFIndication.h"
+#include "HandoverReport.h"
+#include "X2Release.h"
+#include "X2APMessageTransfer.h"
+#include "SeNBReconfigurationComplete.h"
+#include "SeNBReleaseRequest.h"
+#include "SeNBCounterCheckRequest.h"
+#include "SgNBReconfigurationComplete.h"
+#include "SgNBCounterCheckRequest.h"
+#include "RRCTransfer.h"
+#include "SecondaryRATDataUsageReport.h"
+#include "SgNBActivityNotification.h"
+#include "DataForwardingAddressIndication.h"
+#include "GNBStatusIndication.h"
+#include <OPEN_TYPE.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum UnsuccessfulOutcome__value_PR {
+       UnsuccessfulOutcome__value_PR_NOTHING,  /* No components present */
+       UnsuccessfulOutcome__value_PR_HandoverPreparationFailure,
+       UnsuccessfulOutcome__value_PR_X2SetupFailure,
+       UnsuccessfulOutcome__value_PR_ResourceStatusFailure,
+       UnsuccessfulOutcome__value_PR_ENBConfigurationUpdateFailure,
+       UnsuccessfulOutcome__value_PR_MobilityChangeFailure,
+       UnsuccessfulOutcome__value_PR_CellActivationFailure,
+       UnsuccessfulOutcome__value_PR_SeNBAdditionRequestReject,
+       UnsuccessfulOutcome__value_PR_SeNBModificationRequestReject,
+       UnsuccessfulOutcome__value_PR_SeNBModificationRefuse,
+       UnsuccessfulOutcome__value_PR_X2RemovalFailure,
+       UnsuccessfulOutcome__value_PR_RetrieveUEContextFailure,
+       UnsuccessfulOutcome__value_PR_SgNBAdditionRequestReject,
+       UnsuccessfulOutcome__value_PR_SgNBModificationRequestReject,
+       UnsuccessfulOutcome__value_PR_SgNBModificationRefuse,
+       UnsuccessfulOutcome__value_PR_SgNBReleaseRequestReject,
+       UnsuccessfulOutcome__value_PR_SgNBChangeRefuse,
+       UnsuccessfulOutcome__value_PR_ENDCX2SetupFailure,
+       UnsuccessfulOutcome__value_PR_ENDCConfigurationUpdateFailure,
+       UnsuccessfulOutcome__value_PR_ENDCCellActivationFailure,
+       UnsuccessfulOutcome__value_PR_ENDCX2RemovalFailure
+} UnsuccessfulOutcome__value_PR;
+
+/* UnsuccessfulOutcome */
+typedef struct UnsuccessfulOutcome {
+       ProcedureCode_t  procedureCode;
+       Criticality_t    criticality;
+       struct UnsuccessfulOutcome__value {
+               UnsuccessfulOutcome__value_PR present;
+               union UnsuccessfulOutcome__value_u {
+                       HandoverPreparationFailure_t     HandoverPreparationFailure;
+                       X2SetupFailure_t         X2SetupFailure;
+                       ResourceStatusFailure_t  ResourceStatusFailure;
+                       ENBConfigurationUpdateFailure_t  ENBConfigurationUpdateFailure;
+                       MobilityChangeFailure_t  MobilityChangeFailure;
+                       CellActivationFailure_t  CellActivationFailure;
+                       SeNBAdditionRequestReject_t      SeNBAdditionRequestReject;
+                       SeNBModificationRequestReject_t  SeNBModificationRequestReject;
+                       SeNBModificationRefuse_t         SeNBModificationRefuse;
+                       X2RemovalFailure_t       X2RemovalFailure;
+                       RetrieveUEContextFailure_t       RetrieveUEContextFailure;
+                       SgNBAdditionRequestReject_t      SgNBAdditionRequestReject;
+                       SgNBModificationRequestReject_t  SgNBModificationRequestReject;
+                       SgNBModificationRefuse_t         SgNBModificationRefuse;
+                       SgNBReleaseRequestReject_t       SgNBReleaseRequestReject;
+                       SgNBChangeRefuse_t       SgNBChangeRefuse;
+                       ENDCX2SetupFailure_t     ENDCX2SetupFailure;
+                       ENDCConfigurationUpdateFailure_t         ENDCConfigurationUpdateFailure;
+                       ENDCCellActivationFailure_t      ENDCCellActivationFailure;
+                       ENDCX2RemovalFailure_t   ENDCX2RemovalFailure;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UnsuccessfulOutcome_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcome;
+extern asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcome_specs_1;
+extern asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UnsuccessfulOutcome_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UnsuccessfulOutcomeE2.h b/e2ap/headers/UnsuccessfulOutcomeE2.h
new file mode 100644 (file)
index 0000000..e50ac03
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Descriptions"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UnsuccessfulOutcomeE2_H_
+#define        _UnsuccessfulOutcomeE2_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProcedureCode.h"
+#include "Criticality.h"
+#include <ANY.h>
+#include <asn_ioc.h>
+#include "RICsubscriptionRequest.h"
+#include "RICsubscriptionResponse.h"
+#include "RICsubscriptionFailure.h"
+#include "RICsubscriptionDeleteRequest.h"
+#include "RICsubscriptionDeleteResponse.h"
+#include "RICsubscriptionDeleteFailure.h"
+#include "RICserviceUpdate.h"
+#include "RICserviceUpdateAcknowledge.h"
+#include "RICserviceUpdateFailure.h"
+#include "RICcontrolRequest.h"
+#include "RICcontrolAcknowledge.h"
+#include "RICcontrolFailure.h"
+#include "RICindication.h"
+#include "RICserviceQuery.h"
+#include <OPEN_TYPE.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum UnsuccessfulOutcomeE2__value_PR {
+       UnsuccessfulOutcomeE2__value_PR_NOTHING,        /* No components present */
+       UnsuccessfulOutcomeE2__value_PR_RICsubscriptionFailure,
+       UnsuccessfulOutcomeE2__value_PR_RICsubscriptionDeleteFailure,
+       UnsuccessfulOutcomeE2__value_PR_RICserviceUpdateFailure,
+       UnsuccessfulOutcomeE2__value_PR_RICcontrolFailure
+} UnsuccessfulOutcomeE2__value_PR;
+
+/* UnsuccessfulOutcomeE2 */
+typedef struct UnsuccessfulOutcomeE2 {
+       ProcedureCode_t  procedureCode;
+       Criticality_t    criticality;
+       struct UnsuccessfulOutcomeE2__value {
+               UnsuccessfulOutcomeE2__value_PR present;
+               union UnsuccessfulOutcomeE2__value_u {
+                       RICsubscriptionFailure_t         RICsubscriptionFailure;
+                       RICsubscriptionDeleteFailure_t   RICsubscriptionDeleteFailure;
+                       RICserviceUpdateFailure_t        RICserviceUpdateFailure;
+                       RICcontrolFailure_t      RICcontrolFailure;
+               } choice;
+               
+               /* Context for parsing across buffer boundaries */
+               asn_struct_ctx_t _asn_ctx;
+       } value;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UnsuccessfulOutcomeE2_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcomeE2;
+extern asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcomeE2_specs_1;
+extern asn_TYPE_member_t asn_MBR_UnsuccessfulOutcomeE2_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UnsuccessfulOutcomeE2_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UsableABSInformation.h b/e2ap/headers/UsableABSInformation.h
new file mode 100644 (file)
index 0000000..eb7bce9
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UsableABSInformation_H_
+#define        _UsableABSInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum UsableABSInformation_PR {
+       UsableABSInformation_PR_NOTHING,        /* No components present */
+       UsableABSInformation_PR_fdd,
+       UsableABSInformation_PR_tdd
+       /* Extensions may appear below */
+       
+} UsableABSInformation_PR;
+
+/* Forward declarations */
+struct UsableABSInformationFDD;
+struct UsableABSInformationTDD;
+
+/* UsableABSInformation */
+typedef struct UsableABSInformation {
+       UsableABSInformation_PR present;
+       union UsableABSInformation_u {
+               struct UsableABSInformationFDD  *fdd;
+               struct UsableABSInformationTDD  *tdd;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UsableABSInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UsableABSInformation;
+extern asn_CHOICE_specifics_t asn_SPC_UsableABSInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_UsableABSInformation_1[2];
+extern asn_per_constraints_t asn_PER_type_UsableABSInformation_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UsableABSInformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UsableABSInformationFDD.h b/e2ap/headers/UsableABSInformationFDD.h
new file mode 100644 (file)
index 0000000..79d5a84
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UsableABSInformationFDD_H_
+#define        _UsableABSInformationFDD_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UsableABSInformationFDD */
+typedef struct UsableABSInformationFDD {
+       BIT_STRING_t     usable_abs_pattern_info;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UsableABSInformationFDD_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UsableABSInformationFDD;
+extern asn_SEQUENCE_specifics_t asn_SPC_UsableABSInformationFDD_specs_1;
+extern asn_TYPE_member_t asn_MBR_UsableABSInformationFDD_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UsableABSInformationFDD_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UsableABSInformationTDD.h b/e2ap/headers/UsableABSInformationTDD.h
new file mode 100644 (file)
index 0000000..ade3c26
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UsableABSInformationTDD_H_
+#define        _UsableABSInformationTDD_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UsableABSInformationTDD */
+typedef struct UsableABSInformationTDD {
+       BIT_STRING_t     usaable_abs_pattern_info;
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} UsableABSInformationTDD_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UsableABSInformationTDD;
+extern asn_SEQUENCE_specifics_t asn_SPC_UsableABSInformationTDD_specs_1;
+extern asn_TYPE_member_t asn_MBR_UsableABSInformationTDD_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UsableABSInformationTDD_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/UserPlaneTrafficActivityReport.h b/e2ap/headers/UserPlaneTrafficActivityReport.h
new file mode 100644 (file)
index 0000000..dc8f536
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _UserPlaneTrafficActivityReport_H_
+#define        _UserPlaneTrafficActivityReport_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum UserPlaneTrafficActivityReport {
+       UserPlaneTrafficActivityReport_inactive = 0,
+       UserPlaneTrafficActivityReport_re_activated     = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_UserPlaneTrafficActivityReport;
+
+/* UserPlaneTrafficActivityReport */
+typedef long    UserPlaneTrafficActivityReport_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UserPlaneTrafficActivityReport_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UserPlaneTrafficActivityReport;
+extern const asn_INTEGER_specifics_t asn_SPC_UserPlaneTrafficActivityReport_specs_1;
+asn_struct_free_f UserPlaneTrafficActivityReport_free;
+asn_struct_print_f UserPlaneTrafficActivityReport_print;
+asn_constr_check_f UserPlaneTrafficActivityReport_constraint;
+ber_type_decoder_f UserPlaneTrafficActivityReport_decode_ber;
+der_type_encoder_f UserPlaneTrafficActivityReport_encode_der;
+xer_type_decoder_f UserPlaneTrafficActivityReport_decode_xer;
+xer_type_encoder_f UserPlaneTrafficActivityReport_encode_xer;
+oer_type_decoder_f UserPlaneTrafficActivityReport_decode_oer;
+oer_type_encoder_f UserPlaneTrafficActivityReport_encode_oer;
+per_type_decoder_f UserPlaneTrafficActivityReport_decode_uper;
+per_type_encoder_f UserPlaneTrafficActivityReport_encode_uper;
+per_type_decoder_f UserPlaneTrafficActivityReport_decode_aper;
+per_type_encoder_f UserPlaneTrafficActivityReport_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UserPlaneTrafficActivityReport_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/V2XServicesAuthorized.h b/e2ap/headers/V2XServicesAuthorized.h
new file mode 100644 (file)
index 0000000..881e6b5
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _V2XServicesAuthorized_H_
+#define        _V2XServicesAuthorized_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "VehicleUE.h"
+#include "PedestrianUE.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* V2XServicesAuthorized */
+typedef struct V2XServicesAuthorized {
+       VehicleUE_t     *vehicleUE;     /* OPTIONAL */
+       PedestrianUE_t  *pedestrianUE;  /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} V2XServicesAuthorized_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_V2XServicesAuthorized;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _V2XServicesAuthorized_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/VehicleUE.h b/e2ap/headers/VehicleUE.h
new file mode 100644 (file)
index 0000000..c21ae74
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _VehicleUE_H_
+#define        _VehicleUE_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum VehicleUE {
+       VehicleUE_authorized    = 0,
+       VehicleUE_not_authorized        = 1
+       /*
+        * Enumeration is extensible
+        */
+} e_VehicleUE;
+
+/* VehicleUE */
+typedef long    VehicleUE_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_VehicleUE_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_VehicleUE;
+extern const asn_INTEGER_specifics_t asn_SPC_VehicleUE_specs_1;
+asn_struct_free_f VehicleUE_free;
+asn_struct_print_f VehicleUE_print;
+asn_constr_check_f VehicleUE_constraint;
+ber_type_decoder_f VehicleUE_decode_ber;
+der_type_encoder_f VehicleUE_encode_der;
+xer_type_decoder_f VehicleUE_decode_xer;
+xer_type_encoder_f VehicleUE_encode_xer;
+oer_type_decoder_f VehicleUE_decode_oer;
+oer_type_encoder_f VehicleUE_encode_oer;
+per_type_decoder_f VehicleUE_decode_uper;
+per_type_encoder_f VehicleUE_encode_uper;
+per_type_decoder_f VehicleUE_decode_aper;
+per_type_encoder_f VehicleUE_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VehicleUE_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/WLANMeasConfig.h b/e2ap/headers/WLANMeasConfig.h
new file mode 100644 (file)
index 0000000..79d7dd2
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _WLANMeasConfig_H_
+#define        _WLANMeasConfig_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum WLANMeasConfig {
+       WLANMeasConfig_setup    = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_WLANMeasConfig;
+
+/* WLANMeasConfig */
+typedef long    WLANMeasConfig_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_WLANMeasConfig_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_WLANMeasConfig;
+extern const asn_INTEGER_specifics_t asn_SPC_WLANMeasConfig_specs_1;
+asn_struct_free_f WLANMeasConfig_free;
+asn_struct_print_f WLANMeasConfig_print;
+asn_constr_check_f WLANMeasConfig_constraint;
+ber_type_decoder_f WLANMeasConfig_decode_ber;
+der_type_encoder_f WLANMeasConfig_encode_der;
+xer_type_decoder_f WLANMeasConfig_decode_xer;
+xer_type_encoder_f WLANMeasConfig_encode_xer;
+oer_type_decoder_f WLANMeasConfig_decode_oer;
+oer_type_encoder_f WLANMeasConfig_encode_oer;
+per_type_decoder_f WLANMeasConfig_decode_uper;
+per_type_encoder_f WLANMeasConfig_encode_uper;
+per_type_decoder_f WLANMeasConfig_decode_aper;
+per_type_encoder_f WLANMeasConfig_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WLANMeasConfig_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/WLANMeasConfigNameList.h b/e2ap/headers/WLANMeasConfigNameList.h
new file mode 100644 (file)
index 0000000..d4627ea
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _WLANMeasConfigNameList_H_
+#define        _WLANMeasConfigNameList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "WLANName.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* WLANMeasConfigNameList */
+typedef struct WLANMeasConfigNameList {
+       A_SEQUENCE_OF(WLANName_t) list;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} WLANMeasConfigNameList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_WLANMeasConfigNameList;
+extern asn_SET_OF_specifics_t asn_SPC_WLANMeasConfigNameList_specs_1;
+extern asn_TYPE_member_t asn_MBR_WLANMeasConfigNameList_1[1];
+extern asn_per_constraints_t asn_PER_type_WLANMeasConfigNameList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WLANMeasConfigNameList_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/WLANMeasurementConfiguration.h b/e2ap/headers/WLANMeasurementConfiguration.h
new file mode 100644 (file)
index 0000000..dc71604
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _WLANMeasurementConfiguration_H_
+#define        _WLANMeasurementConfiguration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "WLANMeasConfig.h"
+#include <NativeEnumerated.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum WLANMeasurementConfiguration__wlan_rssi {
+       WLANMeasurementConfiguration__wlan_rssi_true    = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_WLANMeasurementConfiguration__wlan_rssi;
+typedef enum WLANMeasurementConfiguration__wlan_rtt {
+       WLANMeasurementConfiguration__wlan_rtt_true     = 0
+       /*
+        * Enumeration is extensible
+        */
+} e_WLANMeasurementConfiguration__wlan_rtt;
+
+/* Forward declarations */
+struct WLANMeasConfigNameList;
+struct ProtocolExtensionContainer;
+
+/* WLANMeasurementConfiguration */
+typedef struct WLANMeasurementConfiguration {
+       WLANMeasConfig_t         wlanMeasConfig;
+       struct WLANMeasConfigNameList   *wlanMeasConfigNameList;        /* OPTIONAL */
+       long    *wlan_rssi;     /* OPTIONAL */
+       long    *wlan_rtt;      /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} WLANMeasurementConfiguration_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_wlan_rssi_4;   // (Use -fall-defs-global to expose) */
+/* extern asn_TYPE_descriptor_t asn_DEF_wlan_rtt_7;    // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_WLANMeasurementConfiguration;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WLANMeasurementConfiguration_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/WLANName.h b/e2ap/headers/WLANName.h
new file mode 100644 (file)
index 0000000..6c84faf
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _WLANName_H_
+#define        _WLANName_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* WLANName */
+typedef OCTET_STRING_t  WLANName_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_WLANName_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_WLANName;
+asn_struct_free_f WLANName_free;
+asn_struct_print_f WLANName_print;
+asn_constr_check_f WLANName_constraint;
+ber_type_decoder_f WLANName_decode_ber;
+der_type_encoder_f WLANName_encode_der;
+xer_type_decoder_f WLANName_decode_xer;
+xer_type_encoder_f WLANName_encode_xer;
+oer_type_decoder_f WLANName_decode_oer;
+oer_type_encoder_f WLANName_encode_oer;
+per_type_decoder_f WLANName_decode_uper;
+per_type_encoder_f WLANName_encode_uper;
+per_type_decoder_f WLANName_decode_aper;
+per_type_encoder_f WLANName_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WLANName_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/WT-UE-XwAP-ID.h b/e2ap/headers/WT-UE-XwAP-ID.h
new file mode 100644 (file)
index 0000000..39dbbea
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _WT_UE_XwAP_ID_H_
+#define        _WT_UE_XwAP_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* WT-UE-XwAP-ID */
+typedef OCTET_STRING_t  WT_UE_XwAP_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_WT_UE_XwAP_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_WT_UE_XwAP_ID;
+asn_struct_free_f WT_UE_XwAP_ID_free;
+asn_struct_print_f WT_UE_XwAP_ID_print;
+asn_constr_check_f WT_UE_XwAP_ID_constraint;
+ber_type_decoder_f WT_UE_XwAP_ID_decode_ber;
+der_type_encoder_f WT_UE_XwAP_ID_encode_der;
+xer_type_decoder_f WT_UE_XwAP_ID_decode_xer;
+xer_type_encoder_f WT_UE_XwAP_ID_encode_xer;
+oer_type_decoder_f WT_UE_XwAP_ID_decode_oer;
+oer_type_encoder_f WT_UE_XwAP_ID_encode_oer;
+per_type_decoder_f WT_UE_XwAP_ID_decode_uper;
+per_type_encoder_f WT_UE_XwAP_ID_encode_uper;
+per_type_decoder_f WT_UE_XwAP_ID_decode_aper;
+per_type_encoder_f WT_UE_XwAP_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WT_UE_XwAP_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/WTID-Long-Type2.h b/e2ap/headers/WTID-Long-Type2.h
new file mode 100644 (file)
index 0000000..2140e2c
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _WTID_Long_Type2_H_
+#define        _WTID_Long_Type2_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* WTID-Long-Type2 */
+typedef BIT_STRING_t    WTID_Long_Type2_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_WTID_Long_Type2_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_WTID_Long_Type2;
+asn_struct_free_f WTID_Long_Type2_free;
+asn_struct_print_f WTID_Long_Type2_print;
+asn_constr_check_f WTID_Long_Type2_constraint;
+ber_type_decoder_f WTID_Long_Type2_decode_ber;
+der_type_encoder_f WTID_Long_Type2_encode_der;
+xer_type_decoder_f WTID_Long_Type2_decode_xer;
+xer_type_encoder_f WTID_Long_Type2_encode_xer;
+oer_type_decoder_f WTID_Long_Type2_decode_oer;
+oer_type_encoder_f WTID_Long_Type2_encode_oer;
+per_type_decoder_f WTID_Long_Type2_decode_uper;
+per_type_encoder_f WTID_Long_Type2_encode_uper;
+per_type_decoder_f WTID_Long_Type2_decode_aper;
+per_type_encoder_f WTID_Long_Type2_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WTID_Long_Type2_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/WTID-Type1.h b/e2ap/headers/WTID-Type1.h
new file mode 100644 (file)
index 0000000..efe45b1
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _WTID_Type1_H_
+#define        _WTID_Type1_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMN-Identity.h"
+#include <BIT_STRING.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* WTID-Type1 */
+typedef struct WTID_Type1 {
+       PLMN_Identity_t  pLMN_Identity;
+       BIT_STRING_t     shortWTID;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} WTID_Type1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_WTID_Type1;
+extern asn_SEQUENCE_specifics_t asn_SPC_WTID_Type1_specs_1;
+extern asn_TYPE_member_t asn_MBR_WTID_Type1_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WTID_Type1_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/WTID.h b/e2ap/headers/WTID.h
new file mode 100644 (file)
index 0000000..8114c27
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _WTID_H_
+#define        _WTID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "WTID-Long-Type2.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum WTID_PR {
+       WTID_PR_NOTHING,        /* No components present */
+       WTID_PR_wTID_Type1,
+       WTID_PR_wTID_Type2
+       /* Extensions may appear below */
+       
+} WTID_PR;
+
+/* Forward declarations */
+struct WTID_Type1;
+
+/* WTID */
+typedef struct WTID {
+       WTID_PR present;
+       union WTID_u {
+               struct WTID_Type1       *wTID_Type1;
+               WTID_Long_Type2_t        wTID_Type2;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} WTID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_WTID;
+extern asn_CHOICE_specifics_t asn_SPC_WTID_specs_1;
+extern asn_TYPE_member_t asn_MBR_WTID_1[2];
+extern asn_per_constraints_t asn_PER_type_WTID_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WTID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/WidebandCQI.h b/e2ap/headers/WidebandCQI.h
new file mode 100644 (file)
index 0000000..132fddb
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _WidebandCQI_H_
+#define        _WidebandCQI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct WidebandCQICodeword1;
+struct ProtocolExtensionContainer;
+
+/* WidebandCQI */
+typedef struct WidebandCQI {
+       long     widebandCQICodeword0;
+       struct WidebandCQICodeword1     *widebandCQICodeword1;  /* OPTIONAL */
+       struct ProtocolExtensionContainer       *iE_Extensions; /* OPTIONAL */
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} WidebandCQI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_WidebandCQI;
+extern asn_SEQUENCE_specifics_t asn_SPC_WidebandCQI_specs_1;
+extern asn_TYPE_member_t asn_MBR_WidebandCQI_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WidebandCQI_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/WidebandCQICodeword1.h b/e2ap/headers/WidebandCQICodeword1.h
new file mode 100644 (file)
index 0000000..b747814
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _WidebandCQICodeword1_H_
+#define        _WidebandCQICodeword1_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum WidebandCQICodeword1_PR {
+       WidebandCQICodeword1_PR_NOTHING,        /* No components present */
+       WidebandCQICodeword1_PR_four_bitCQI,
+       WidebandCQICodeword1_PR_three_bitSpatialDifferentialCQI
+       /* Extensions may appear below */
+       
+} WidebandCQICodeword1_PR;
+
+/* WidebandCQICodeword1 */
+typedef struct WidebandCQICodeword1 {
+       WidebandCQICodeword1_PR present;
+       union WidebandCQICodeword1_u {
+               long     four_bitCQI;
+               long     three_bitSpatialDifferentialCQI;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} WidebandCQICodeword1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_WidebandCQICodeword1;
+extern asn_CHOICE_specifics_t asn_SPC_WidebandCQICodeword1_specs_1;
+extern asn_TYPE_member_t asn_MBR_WidebandCQICodeword1_1[2];
+extern asn_per_constraints_t asn_PER_type_WidebandCQICodeword1_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WidebandCQICodeword1_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/X2AP-Message.h b/e2ap/headers/X2AP-Message.h
new file mode 100644 (file)
index 0000000..f6a9e6c
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _X2AP_Message_H_
+#define        _X2AP_Message_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* X2AP-Message */
+typedef OCTET_STRING_t  X2AP_Message_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_X2AP_Message;
+asn_struct_free_f X2AP_Message_free;
+asn_struct_print_f X2AP_Message_print;
+asn_constr_check_f X2AP_Message_constraint;
+ber_type_decoder_f X2AP_Message_decode_ber;
+der_type_encoder_f X2AP_Message_encode_der;
+xer_type_decoder_f X2AP_Message_decode_xer;
+xer_type_encoder_f X2AP_Message_encode_xer;
+oer_type_decoder_f X2AP_Message_decode_oer;
+oer_type_encoder_f X2AP_Message_encode_oer;
+per_type_decoder_f X2AP_Message_decode_uper;
+per_type_encoder_f X2AP_Message_encode_uper;
+per_type_decoder_f X2AP_Message_decode_aper;
+per_type_encoder_f X2AP_Message_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _X2AP_Message_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/X2AP-PDU.h b/e2ap/headers/X2AP-PDU.h
new file mode 100644 (file)
index 0000000..a5402d0
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Descriptions"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _X2AP_PDU_H_
+#define        _X2AP_PDU_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum X2AP_PDU_PR {
+       X2AP_PDU_PR_NOTHING,    /* No components present */
+       X2AP_PDU_PR_initiatingMessage,
+       X2AP_PDU_PR_successfulOutcome,
+       X2AP_PDU_PR_unsuccessfulOutcome
+       /* Extensions may appear below */
+       
+} X2AP_PDU_PR;
+
+/* Forward declarations */
+struct InitiatingMessage;
+struct SuccessfulOutcome;
+struct UnsuccessfulOutcome;
+
+/* X2AP-PDU */
+typedef struct X2AP_PDU {
+       X2AP_PDU_PR present;
+       union X2AP_PDU_u {
+               struct InitiatingMessage        *initiatingMessage;
+               struct SuccessfulOutcome        *successfulOutcome;
+               struct UnsuccessfulOutcome      *unsuccessfulOutcome;
+               /*
+                * This type is extensible,
+                * possible extensions are below.
+                */
+       } choice;
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} X2AP_PDU_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_X2AP_PDU;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _X2AP_PDU_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/X2APMessageTransfer.h b/e2ap/headers/X2APMessageTransfer.h
new file mode 100644 (file)
index 0000000..19fe6fb
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _X2APMessageTransfer_H_
+#define        _X2APMessageTransfer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* X2APMessageTransfer */
+typedef struct X2APMessageTransfer {
+       ProtocolIE_Container_9515P43_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} X2APMessageTransfer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_X2APMessageTransfer;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2APMessageTransfer_specs_1;
+extern asn_TYPE_member_t asn_MBR_X2APMessageTransfer_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _X2APMessageTransfer_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/X2BenefitValue.h b/e2ap/headers/X2BenefitValue.h
new file mode 100644 (file)
index 0000000..5bef8c0
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _X2BenefitValue_H_
+#define        _X2BenefitValue_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* X2BenefitValue */
+typedef long    X2BenefitValue_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_X2BenefitValue;
+asn_struct_free_f X2BenefitValue_free;
+asn_struct_print_f X2BenefitValue_print;
+asn_constr_check_f X2BenefitValue_constraint;
+ber_type_decoder_f X2BenefitValue_decode_ber;
+der_type_encoder_f X2BenefitValue_encode_der;
+xer_type_decoder_f X2BenefitValue_decode_xer;
+xer_type_encoder_f X2BenefitValue_encode_xer;
+oer_type_decoder_f X2BenefitValue_decode_oer;
+oer_type_encoder_f X2BenefitValue_encode_oer;
+per_type_decoder_f X2BenefitValue_decode_uper;
+per_type_encoder_f X2BenefitValue_encode_uper;
+per_type_decoder_f X2BenefitValue_decode_aper;
+per_type_encoder_f X2BenefitValue_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _X2BenefitValue_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/X2Release.h b/e2ap/headers/X2Release.h
new file mode 100644 (file)
index 0000000..ac24867
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _X2Release_H_
+#define        _X2Release_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* X2Release */
+typedef struct X2Release {
+       ProtocolIE_Container_9515P42_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} X2Release_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_X2Release;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2Release_specs_1;
+extern asn_TYPE_member_t asn_MBR_X2Release_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _X2Release_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/X2RemovalFailure.h b/e2ap/headers/X2RemovalFailure.h
new file mode 100644 (file)
index 0000000..382bfa8
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _X2RemovalFailure_H_
+#define        _X2RemovalFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* X2RemovalFailure */
+typedef struct X2RemovalFailure {
+       ProtocolIE_Container_9515P60_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} X2RemovalFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_X2RemovalFailure;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2RemovalFailure_specs_1;
+extern asn_TYPE_member_t asn_MBR_X2RemovalFailure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _X2RemovalFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/X2RemovalRequest.h b/e2ap/headers/X2RemovalRequest.h
new file mode 100644 (file)
index 0000000..82e1491
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _X2RemovalRequest_H_
+#define        _X2RemovalRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* X2RemovalRequest */
+typedef struct X2RemovalRequest {
+       ProtocolIE_Container_9515P58_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} X2RemovalRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_X2RemovalRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2RemovalRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_X2RemovalRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _X2RemovalRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/X2RemovalResponse.h b/e2ap/headers/X2RemovalResponse.h
new file mode 100644 (file)
index 0000000..9995b0a
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _X2RemovalResponse_H_
+#define        _X2RemovalResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* X2RemovalResponse */
+typedef struct X2RemovalResponse {
+       ProtocolIE_Container_9515P59_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} X2RemovalResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_X2RemovalResponse;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2RemovalResponse_specs_1;
+extern asn_TYPE_member_t asn_MBR_X2RemovalResponse_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _X2RemovalResponse_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/X2SetupFailure.h b/e2ap/headers/X2SetupFailure.h
new file mode 100644 (file)
index 0000000..1c7c1b3
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _X2SetupFailure_H_
+#define        _X2SetupFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* X2SetupFailure */
+typedef struct X2SetupFailure {
+       ProtocolIE_Container_9515P26_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} X2SetupFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_X2SetupFailure;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2SetupFailure_specs_1;
+extern asn_TYPE_member_t asn_MBR_X2SetupFailure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _X2SetupFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/X2SetupRequest.h b/e2ap/headers/X2SetupRequest.h
new file mode 100644 (file)
index 0000000..bfb2850
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _X2SetupRequest_H_
+#define        _X2SetupRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* X2SetupRequest */
+typedef struct X2SetupRequest {
+       ProtocolIE_Container_9515P24_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} X2SetupRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_X2SetupRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2SetupRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_X2SetupRequest_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _X2SetupRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/X2SetupResponse.h b/e2ap/headers/X2SetupResponse.h
new file mode 100644 (file)
index 0000000..e4ce807
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#ifndef        _X2SetupResponse_H_
+#define        _X2SetupResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* X2SetupResponse */
+typedef struct X2SetupResponse {
+       ProtocolIE_Container_9515P25_t   protocolIEs;
+       /*
+        * This type is extensible,
+        * possible extensions are below.
+        */
+       
+       /* Context for parsing across buffer boundaries */
+       asn_struct_ctx_t _asn_ctx;
+} X2SetupResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_X2SetupResponse;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2SetupResponse_specs_1;
+extern asn_TYPE_member_t asn_MBR_X2SetupResponse_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _X2SetupResponse_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/asn_SEQUENCE_OF.h b/e2ap/headers/asn_SEQUENCE_OF.h
new file mode 100644 (file)
index 0000000..e35bc44
--- /dev/null
@@ -0,0 +1,52 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        ASN_SEQUENCE_OF_H
+#define        ASN_SEQUENCE_OF_H
+
+#include <asn_SET_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * SEQUENCE OF is the same as SET OF with a tiny difference:
+ * the delete operation preserves the initial order of elements
+ * and thus MAY operate in non-constant time.
+ */
+#define        A_SEQUENCE_OF(type)     A_SET_OF(type)
+
+#define        ASN_SEQUENCE_ADD(headptr, ptr)          \
+       asn_sequence_add((headptr), (ptr))
+
+/***********************************************
+ * Implementation of the SEQUENCE OF structure.
+ */
+
+#define        asn_sequence_add        asn_set_add
+#define        asn_sequence_empty      asn_set_empty
+
+/*
+ * Delete the element from the set by its number (base 0).
+ * This is NOT a constant-time operation.
+ * The order of elements is preserved.
+ * If _do_free is given AND the (*free) is initialized, the element
+ * will be freed using the custom (*free) function as well.
+ */
+void asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free);
+
+/*
+ * Cope with different conversions requirements to/from void in C and C++.
+ * This is mostly useful for support library.
+ */
+typedef A_SEQUENCE_OF(void) asn_anonymous_sequence_;
+#define _A_SEQUENCE_FROM_VOID(ptr)     ((asn_anonymous_sequence_ *)(ptr))
+#define _A_CSEQUENCE_FROM_VOID(ptr)    ((const asn_anonymous_sequence_ *)(ptr))
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ASN_SEQUENCE_OF_H */
diff --git a/e2ap/headers/asn_SET_OF.h b/e2ap/headers/asn_SET_OF.h
new file mode 100644 (file)
index 0000000..882e1a4
--- /dev/null
@@ -0,0 +1,72 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        ASN_SET_OF_H
+#define        ASN_SET_OF_H
+
+#ifdef __cplusplus
+#define A_SET_OF(type)                   \
+    struct {                             \
+        type **array;                    \
+        int count; /* Meaningful size */ \
+        int size;  /* Allocated size */  \
+        void (*free)(decltype(*array));  \
+    }
+#else   /* C */
+#define A_SET_OF(type)                   \
+    struct {                             \
+        type **array;                    \
+        int count; /* Meaningful size */ \
+        int size;  /* Allocated size */  \
+        void (*free)(type *);    \
+    }
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define        ASN_SET_ADD(headptr, ptr)               \
+       asn_set_add((headptr), (ptr))
+
+/*******************************************
+ * Implementation of the SET OF structure.
+ */
+
+/*
+ * Add another structure into the set by its pointer.
+ * RETURN VALUES:
+ * 0 for success and -1/errno for failure.
+ */
+int  asn_set_add(void *asn_set_of_x, void *ptr);
+
+/*
+ * Delete the element from the set by its number (base 0).
+ * This is a constant-time operation. The order of elements before the
+ * deleted ones is guaranteed, the order of elements after the deleted
+ * one is NOT guaranteed.
+ * If _do_free is given AND the (*free) is initialized, the element
+ * will be freed using the custom (*free) function as well.
+ */
+void asn_set_del(void *asn_set_of_x, int number, int _do_free);
+
+/*
+ * Empty the contents of the set. Will free the elements, if (*free) is given.
+ * Will NOT free the set itself.
+ */
+void asn_set_empty(void *asn_set_of_x);
+
+/*
+ * Cope with different conversions requirements to/from void in C and C++.
+ * This is mostly useful for support library.
+ */
+typedef A_SET_OF(void) asn_anonymous_set_;
+#define _A_SET_FROM_VOID(ptr)          ((asn_anonymous_set_ *)(ptr))
+#define _A_CSET_FROM_VOID(ptr)         ((const asn_anonymous_set_ *)(ptr))
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ASN_SET_OF_H */
diff --git a/e2ap/headers/asn_application.h b/e2ap/headers/asn_application.h
new file mode 100644 (file)
index 0000000..034f646
--- /dev/null
@@ -0,0 +1,171 @@
+/*-
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+/*
+ * Application-level ASN.1 callbacks.
+ */
+#ifndef        ASN_APPLICATION_H
+#define        ASN_APPLICATION_H
+
+#include "asn_system.h"                /* for platform-dependent types */
+#include "asn_codecs.h"                /* for ASN.1 codecs specifics */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * A selection of ASN.1 Transfer Syntaxes to use with generalized
+ * encoders and decoders declared further in this .h file.
+ */
+enum asn_transfer_syntax {
+    /* Avoid appearance of a default transfer syntax. */
+    ATS_INVALID = 0,
+    /* Plaintext output (not conforming to any standard), for debugging. */
+    ATS_NONSTANDARD_PLAINTEXT,
+    /* Returns a randomly generated structure. */
+    ATS_RANDOM,
+    /*
+     * X.690:
+     * BER: Basic Encoding Rules.
+     * DER: Distinguished Encoding Rules.
+     * CER: Canonical Encoding Rules.
+     * DER and CER are more strict variants of BER.
+     */
+    ATS_BER,
+    ATS_DER,
+    ATS_CER, /* Only decoding is supported */
+    /*
+     * X.696:
+     * OER: Octet Encoding Rules.
+     * CANONICAL-OER is a more strict variant of BASIC-OER.
+     */
+    ATS_BASIC_OER,
+    ATS_CANONICAL_OER,
+    /*
+     * X.691:
+     * PER: Packed Encoding Rules.
+     * CANONICAL-PER is a more strict variant of BASIC-PER.
+     * NOTE: Produces or consumes a complete encoding (X.691 (08/2015) #11.1).
+     */
+    ATS_UNALIGNED_BASIC_PER,
+    ATS_UNALIGNED_CANONICAL_PER,
+    ATS_ALIGNED_BASIC_PER,
+    ATS_ALIGNED_CANONICAL_PER,
+    /*
+     * X.693:
+     * XER: XML Encoding Rules.
+     * CANONICAL-XER is a more strict variant of BASIC-XER.
+     */
+    ATS_BASIC_XER,
+    ATS_CANONICAL_XER
+};
+
+/*
+ * A generic encoder for any supported transfer syntax.
+ * RETURN VALUES:
+ * The (.encoded) field of the return value is REDEFINED to mean the following:
+ * >=0: The computed size of the encoded data. Can exceed the (buffer_size).
+ *  -1: Error encoding the structure. See the error code in (errno):
+ *      EINVAL: Incorrect parameters to the function, such as NULLs.
+ *      ENOENT: Encoding transfer syntax is not defined (for this type).
+ *      EBADF:  The structure has invalid form or content constraint failed.
+ *      The (.failed_type) and (.structure_ptr) MIGHT be set to the appropriate
+ *      values at the place of failure, if at all possible.
+ * WARNING: The (.encoded) field of the return value can exceed the buffer_size.
+ * This is similar to snprintf(3) contract which might return values
+ * greater than the buffer size.
+ */
+asn_enc_rval_t asn_encode_to_buffer(
+    const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */
+    enum asn_transfer_syntax,
+    const struct asn_TYPE_descriptor_s *type_to_encode,
+    const void *structure_to_encode, void *buffer, size_t buffer_size);
+
+/*
+ * A variant of asn_encode_to_buffer() with automatically allocated buffer.
+ * RETURN VALUES:
+ * On success, returns a newly allocated (.buffer) containing the whole message.
+ * The message size is returned in (.result.encoded).
+ * On failure:
+ *  (.buffer) is NULL,
+ *  (.result.encoded) as in asn_encode_to_buffer(),
+ *  The errno codes as in asn_encode_to_buffer(), plus the following:
+ *      ENOMEM: Memory allocation failed due to system or internal limits.
+ * The user is responsible for freeing the (.buffer).
+ */
+typedef struct asn_encode_to_new_buffer_result_s {
+    void *buffer;   /* NULL if failed to encode. */
+    asn_enc_rval_t result;
+} asn_encode_to_new_buffer_result_t;
+asn_encode_to_new_buffer_result_t asn_encode_to_new_buffer(
+    const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */
+    enum asn_transfer_syntax,
+    const struct asn_TYPE_descriptor_s *type_to_encode,
+    const void *structure_to_encode);
+
+
+/*
+ * Generic type of an application-defined callback to return various
+ * types of data to the application.
+ * EXPECTED RETURN VALUES:
+ *  -1: Failed to consume bytes. Abort the mission.
+ * Non-negative return values indicate success, and ignored.
+ */
+typedef int(asn_app_consume_bytes_f)(const void *buffer, size_t size,
+                                     void *application_specific_key);
+
+
+/*
+ * A generic encoder for any supported transfer syntax.
+ * Returns the comprehensive encoding result descriptor (see asn_codecs.h).
+ * RETURN VALUES:
+ * The negative (.encoded) field of the return values is accompanied with the
+ * following error codes (errno):
+ *      EINVAL: Incorrect parameters to the function, such as NULLs.
+ *      ENOENT: Encoding transfer syntax is not defined (for this type).
+ *      EBADF:  The structure has invalid form or content constraint failed.
+ *      EIO:    The (callback) has returned negative value during encoding.
+ */
+asn_enc_rval_t asn_encode(
+    const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */
+    enum asn_transfer_syntax,
+    const struct asn_TYPE_descriptor_s *type_to_encode,
+    const void *structure_to_encode,
+    asn_app_consume_bytes_f *callback, void *callback_key);
+
+
+/*
+ * A generic decoder for any supported transfer syntax.
+ */
+asn_dec_rval_t asn_decode(
+    const asn_codec_ctx_t *opt_codec_parameters, enum asn_transfer_syntax,
+    const struct asn_TYPE_descriptor_s *type_to_decode,
+    void **structure_ptr, /* Pointer to a target structure's pointer */
+    const void *buffer,   /* Data to be decoded */
+    size_t size           /* Size of that buffer */
+);
+
+
+/*
+ * A callback of this type is called whenever constraint validation fails
+ * on some ASN.1 type. See "constraints.h" for more details on constraint
+ * validation.
+ * This callback specifies a descriptor of the ASN.1 type which failed
+ * the constraint check, as well as human readable message on what
+ * particular constraint has failed.
+ */
+typedef void (asn_app_constraint_failed_f)(void *application_specific_key,
+       const struct asn_TYPE_descriptor_s *type_descriptor_which_failed,
+       const void *structure_which_failed_ptr,
+       const char *error_message_format, ...) CC_PRINTFLIKE(4, 5);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#include "constr_TYPE.h"       /* for asn_TYPE_descriptor_t */
+
+#endif /* ASN_APPLICATION_H */
diff --git a/e2ap/headers/asn_bit_data.h b/e2ap/headers/asn_bit_data.h
new file mode 100644 (file)
index 0000000..59de7af
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2005-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        ASN_BIT_DATA
+#define        ASN_BIT_DATA
+
+#include <asn_system.h>                /* Platform-specific types */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * This structure describes a position inside an incoming PER bit stream.
+ */
+typedef struct asn_bit_data_s {
+  const uint8_t *buffer;  /* Pointer to the octet stream */
+         size_t  nboff;   /* Bit offset to the meaningful bit */
+         size_t  nbits;   /* Number of bits in the stream */
+         size_t  moved;   /* Number of bits moved through this bit stream */
+  int (*refill)(struct asn_bit_data_s *);
+  void *refill_key;
+} asn_bit_data_t;
+
+/*
+ * Create a contiguous non-refillable bit data structure.
+ * Can be freed by FREEMEM().
+ */
+asn_bit_data_t *asn_bit_data_new_contiguous(const void *data, size_t size_bits);
+
+/*
+ * Extract a small number of bits (<= 31) from the specified PER data pointer.
+ * This function returns -1 if the specified number of bits could not be
+ * extracted due to EOD or other conditions.
+ */
+int32_t asn_get_few_bits(asn_bit_data_t *, int get_nbits);
+
+/* Undo the immediately preceeding "get_few_bits" operation */
+void asn_get_undo(asn_bit_data_t *, int get_nbits);
+
+/*
+ * Extract a large number of bits from the specified PER data pointer.
+ * This function returns -1 if the specified number of bits could not be
+ * extracted due to EOD or other conditions.
+ */
+int asn_get_many_bits(asn_bit_data_t *, uint8_t *dst, int right_align,
+                       int get_nbits);
+
+/* Non-thread-safe debugging function, don't use it */
+char *asn_bit_data_string(asn_bit_data_t *);
+
+/*
+ * This structure supports forming bit output.
+ */
+typedef struct asn_bit_outp_s {
+       uint8_t *buffer;        /* Pointer into the (tmpspace) */
+       size_t nboff;           /* Bit offset to the meaningful bit */
+       size_t nbits;           /* Number of bits left in (tmpspace) */
+       uint8_t tmpspace[32];   /* Preliminary storage to hold data */
+       int (*output)(const void *data, size_t size, void *op_key);
+       void *op_key;           /* Key for (output) data callback */
+       size_t flushed_bytes;   /* Bytes already flushed through (output) */
+} asn_bit_outp_t;
+
+/* Output a small number of bits (<= 31) */
+int asn_put_few_bits(asn_bit_outp_t *, uint32_t bits, int obits);
+
+/* Output a large number of bits */
+int asn_put_many_bits(asn_bit_outp_t *, const uint8_t *src, int put_nbits);
+
+/*
+ * Flush whole bytes (0 or more) through (outper) member.
+ * The least significant bits which are not used are guaranteed to be set to 0.
+ * Returns -1 if callback returns -1. Otherwise, 0.
+ */
+int asn_put_aligned_flush(asn_bit_outp_t *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ASN_BIT_DATA */
diff --git a/e2ap/headers/asn_codecs.h b/e2ap/headers/asn_codecs.h
new file mode 100644 (file)
index 0000000..e75c270
--- /dev/null
@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        ASN_CODECS_H
+#define        ASN_CODECS_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct asn_TYPE_descriptor_s;  /* Forward declaration */
+
+/*
+ * This structure defines a set of parameters that may be passed
+ * to every ASN.1 encoder or decoder function.
+ * WARNING: if max_stack_size member is set, and you are calling the
+ *   function pointers of the asn_TYPE_descriptor_t directly,
+ *   this structure must be ALLOCATED ON THE STACK!
+ *   If you can't always satisfy this requirement, use ber_decode(),
+ *   xer_decode() and uper_decode() functions instead.
+ */
+typedef struct asn_codec_ctx_s {
+       /*
+        * Limit the decoder routines to use no (much) more stack than a given
+        * number of bytes. Most of decoders are stack-based, and this
+        * would protect against stack overflows if the number of nested
+        * encodings is high.
+        * The OCTET STRING, BIT STRING and ANY BER decoders are heap-based,
+        * and are safe from this kind of overflow.
+        * A value from getrlimit(RLIMIT_STACK) may be used to initialize
+        * this variable. Be careful in multithreaded environments, as the
+        * stack size is rather limited.
+        */
+       size_t  max_stack_size; /* 0 disables stack bounds checking */
+} asn_codec_ctx_t;
+
+/*
+ * Type of the return value of the encoding functions (der_encode, xer_encode).
+ */
+typedef struct asn_enc_rval_s {
+       /*
+        * Number of bytes encoded.
+        * -1 indicates failure to encode the structure.
+        * In this case, the members below this one are meaningful.
+        */
+       ssize_t encoded;
+
+       /*
+        * Members meaningful when (encoded == -1), for post mortem analysis.
+        */
+
+       /* Type which cannot be encoded */
+       const struct asn_TYPE_descriptor_s *failed_type;
+
+       /* Pointer to the structure of that type */
+       const void *structure_ptr;
+} asn_enc_rval_t;
+#define        ASN__ENCODE_FAILED do {                                 \
+       asn_enc_rval_t tmp_error;                               \
+       tmp_error.encoded = -1;                                 \
+       tmp_error.failed_type = td;                             \
+       tmp_error.structure_ptr = sptr;                         \
+       ASN_DEBUG("Failed to encode element %s", td ? td->name : "");   \
+       return tmp_error;                                       \
+} while(0)
+#define        ASN__ENCODED_OK(rval) do {                              \
+       rval.structure_ptr = 0;                                 \
+       rval.failed_type = 0;                                   \
+       return rval;                                            \
+} while(0)
+
+/*
+ * Type of the return value of the decoding functions (ber_decode, xer_decode)
+ * 
+ * Please note that the number of consumed bytes is ALWAYS meaningful,
+ * even if code==RC_FAIL. This is to indicate the number of successfully
+ * decoded bytes, hence providing a possibility to fail with more diagnostics
+ * (i.e., print the offending remainder of the buffer).
+ */
+enum asn_dec_rval_code_e {
+       RC_OK,          /* Decoded successfully */
+       RC_WMORE,       /* More data expected, call again */
+       RC_FAIL         /* Failure to decode data */
+};
+typedef struct asn_dec_rval_s {
+       enum asn_dec_rval_code_e code;  /* Result code */
+       size_t consumed;                /* Number of bytes consumed */
+} asn_dec_rval_t;
+#define        ASN__DECODE_FAILED do {                                 \
+       asn_dec_rval_t tmp_error;                               \
+       tmp_error.code = RC_FAIL;                               \
+       tmp_error.consumed = 0;                                 \
+       ASN_DEBUG("Failed to decode element %s", td ? td->name : "");   \
+       return tmp_error;                                       \
+} while(0)
+#define        ASN__DECODE_STARVED do {                                \
+       asn_dec_rval_t tmp_error;                               \
+       tmp_error.code = RC_WMORE;                              \
+       tmp_error.consumed = 0;                                 \
+       return tmp_error;                                       \
+} while(0)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ASN_CODECS_H */
diff --git a/e2ap/headers/asn_codecs_prim.h b/e2ap/headers/asn_codecs_prim.h
new file mode 100644 (file)
index 0000000..fbc5576
--- /dev/null
@@ -0,0 +1,51 @@
+/*-
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        ASN_CODECS_PRIM_H
+#define        ASN_CODECS_PRIM_H
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct ASN__PRIMITIVE_TYPE_s {
+    uint8_t *buf;   /* Buffer with consecutive primitive encoding bytes */
+    size_t size;    /* Size of the buffer */
+} ASN__PRIMITIVE_TYPE_t;       /* Do not use this type directly! */
+
+asn_struct_free_f ASN__PRIMITIVE_TYPE_free;
+ber_type_decoder_f ber_decode_primitive;
+der_type_encoder_f der_encode_primitive;
+
+/*
+ * A callback specification for the xer_decode_primitive() function below.
+ */
+enum xer_pbd_rval {
+    XPBD_SYSTEM_FAILURE,  /* System failure (memory shortage, etc) */
+    XPBD_DECODER_LIMIT,   /* Hit some decoder limitation or deficiency */
+    XPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */
+    XPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */
+    XPBD_BODY_CONSUMED    /* Body is recognized and consumed */
+};
+typedef enum xer_pbd_rval(xer_primitive_body_decoder_f)(
+    const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf,
+    size_t chunk_size);
+
+/*
+ * Specific function to decode simple primitive types.
+ * Also see xer_decode_general() in xer_decoder.h
+ */
+asn_dec_rval_t xer_decode_primitive(
+    const asn_codec_ctx_t *opt_codec_ctx,
+    const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr,
+    size_t struct_size, const char *opt_mname, const void *buf_ptr, size_t size,
+    xer_primitive_body_decoder_f *prim_body_decoder);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ASN_CODECS_PRIM_H */
diff --git a/e2ap/headers/asn_constant.h b/e2ap/headers/asn_constant.h
new file mode 100644 (file)
index 0000000..6b35b4d
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ */
+
+#ifndef _ASN_CONSTANT_H
+#define _ASN_CONSTANT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define maxofRANfunctionID (256)
+#define maxofRICactionID (16)
+#define maxofInterfaceProtocolIE (15)
+#define maxofActionParameters (255)
+#define maxPrivateIEs (65535)
+#define maxProtocolExtensions (65535)
+#define maxProtocolIEs (65535)
+#define maxEARFCN (65535)
+#define maxEARFCNPlusOne (65536)
+#define newmaxEARFCN (262143)
+#define maxInterfaces (16)
+#define maxCellineNB (256)
+#define maxnoofBands (16)
+#define maxnoofBearers (256)
+#define maxNrOfErrors (256)
+#define maxnoofPDCP_SN (16)
+#define maxnoofEPLMNs (15)
+#define maxnoofEPLMNsPlusOne (16)
+#define maxnoofForbLACs (4096)
+#define maxnoofForbTACs (4096)
+#define maxnoofBPLMNs (6)
+#define maxnoofNeighbours (512)
+#define maxnoofPRBs (110)
+#define maxPools (16)
+#define maxnoofCells (16)
+#define maxnoofMBSFN (8)
+#define maxFailedMeasObjects (32)
+#define maxnoofCellIDforMDT (32)
+#define maxnoofTAforMDT (8)
+#define maxnoofMBMSServiceAreaIdentities (256)
+#define maxnoofMDTPLMNs (16)
+#define maxnoofCoMPHypothesisSet (256)
+#define maxnoofCoMPCells (32)
+#define maxUEReport (128)
+#define maxCellReport (9)
+#define maxnoofPA (3)
+#define maxCSIProcess (4)
+#define maxCSIReport (2)
+#define maxSubband (14)
+#define maxofNRNeighbours (1024)
+#define maxCellinengNB (16384)
+#define maxnooftimeperiods (2)
+#define maxnoofCellIDforQMC (32)
+#define maxnoofTAforQMC (8)
+#define maxnoofPLMNforQMC (16)
+#define maxUEsinengNBDU (8192)
+#define maxnoofProtectedResourcePatterns (16)
+#define maxnoNRcellsSpectrumSharingWithE_UTRA (64)
+#define maxnoofNrCellBands (32)
+#define maxnoofBluetoothName (4)
+#define maxnoofWLANName (4)
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ASN_CONSTANT_H */
diff --git a/e2ap/headers/asn_internal.h b/e2ap/headers/asn_internal.h
new file mode 100644 (file)
index 0000000..c4105ad
--- /dev/null
@@ -0,0 +1,159 @@
+/*
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+/*
+ * Declarations internally useful for the ASN.1 support code.
+ */
+#ifndef        ASN_INTERNAL_H
+#define        ASN_INTERNAL_H
+#define __EXTENSIONS__          /* for Sun */
+
+#include "asn_application.h"   /* Application-visible API */
+
+#ifndef        __NO_ASSERT_H__         /* Include assert.h only for internal use. */
+#include <assert.h>            /* for assert() macro */
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Environment version might be used to avoid running with the old library */
+#define        ASN1C_ENVIRONMENT_VERSION       923     /* Compile-time version */
+int get_asn1c_environment_version(void);       /* Run-time version */
+
+#define        CALLOC(nmemb, size)     calloc(nmemb, size)
+#define        MALLOC(size)            malloc(size)
+#define        REALLOC(oldptr, size)   realloc(oldptr, size)
+#define        FREEMEM(ptr)            free(ptr)
+
+#define        asn_debug_indent        0
+#define ASN_DEBUG_INDENT_ADD(i) do{}while(0)
+
+#ifdef  EMIT_ASN_DEBUG
+#warning "Use ASN_EMIT_DEBUG instead of EMIT_ASN_DEBUG"
+#define ASN_EMIT_DEBUG  EMIT_ASN_DEBUG
+#endif
+
+/*
+ * A macro for debugging the ASN.1 internals.
+ * You may enable or override it.
+ */
+#ifndef        ASN_DEBUG       /* If debugging code is not defined elsewhere... */
+#if    ASN_EMIT_DEBUG == 1     /* And it was asked to emit this code... */
+#if !defined(BELL_LABS) /* Bell Labs */
+  //#if __STDC_VERSION__ >= 199901L
+#ifdef ASN_THREAD_SAFE
+/* Thread safety requires sacrifice in output indentation:
+ * Retain empty definition of ASN_DEBUG_INDENT_ADD. */
+#else  /* !ASN_THREAD_SAFE */
+#undef  ASN_DEBUG_INDENT_ADD
+#undef  asn_debug_indent
+int asn_debug_indent;
+#define ASN_DEBUG_INDENT_ADD(i) do { asn_debug_indent += i; } while(0)
+#endif /* ASN_THREAD_SAFE */
+#if defined(BELL_LABS) /* Bell Labs version */
+extern int logAsn1c(const char *filename, int linenumber, const char *format, ...);  
+#define        ASN_DEBUG(fmt, args...) do {                    \
+    (void) logAsn1c(__FILE__, __LINE__, fmt, ##args);  \
+  } while(0)
+#else  
+#define        ASN_DEBUG(fmt, args...) do {                    \
+               int adi = asn_debug_indent;             \
+               while(adi--) fprintf(stderr, " ");      \
+               fprintf(stderr, fmt, ##args);           \
+               fprintf(stderr, " (%s:%d)\n",           \
+                       __FILE__, __LINE__);            \
+       } while(0)
+#endif /* BELL_LABS */  
+#else  /* !C99 */
+void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...);
+#define        ASN_DEBUG       ASN_DEBUG_f
+#endif /* C99 */
+#else  /* ASN_EMIT_DEBUG != 1 */
+#if __STDC_VERSION__ >= 199901L
+#define ASN_DEBUG(...) do{}while(0)
+#else   /* not C99 */
+static void CC_PRINTFLIKE(1, 2) ASN_DEBUG(const char *fmt, ...) { (void)fmt; }
+#endif  /* C99 or better */
+#endif /* ASN_EMIT_DEBUG */
+#endif /* ASN_DEBUG */
+
+/*
+ * Print to a callback.
+ * The callback is expected to return negative values on error.
+ * 0 and positive values are treated as success.
+ * RETURN VALUES:
+ *  -1: Failed to format or invoke the callback.
+ *  >0: Size of the data that got delivered to the callback.
+ */
+ssize_t CC_PRINTFLIKE(3, 4)
+asn__format_to_callback(
+    int (*callback)(const void *, size_t, void *key), void *key,
+    const char *fmt, ...);
+
+/*
+ * Invoke the application-supplied callback and fail, if something is wrong.
+ */
+#define ASN__E_cbc(buf, size) (cb((buf), (size), app_key) < 0)
+#define ASN__E_CALLBACK(size, foo) \
+    do {                           \
+        if(foo) goto cb_failed;    \
+        er.encoded += (size);      \
+    } while(0)
+#define ASN__CALLBACK(buf, size) ASN__E_CALLBACK(size, ASN__E_cbc(buf, size))
+#define ASN__CALLBACK2(buf1, size1, buf2, size2) \
+    ASN__E_CALLBACK((size1) + (size2),           \
+                    ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2))
+#define ASN__CALLBACK3(buf1, size1, buf2, size2, buf3, size3)          \
+    ASN__E_CALLBACK((size1) + (size2) + (size3),                       \
+                    ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2) \
+                        || ASN__E_cbc(buf3, size3))
+
+#define ASN__TEXT_INDENT(nl, level)                                          \
+    do {                                                                     \
+        int tmp_level = (level);                                             \
+        int tmp_nl = ((nl) != 0);                                            \
+        int tmp_i;                                                           \
+        if(tmp_nl) ASN__CALLBACK("\n", 1);                                   \
+        if(tmp_level < 0) tmp_level = 0;                                     \
+        for(tmp_i = 0; tmp_i < tmp_level; tmp_i++) ASN__CALLBACK("    ", 4); \
+    } while(0)
+
+#define        _i_INDENT(nl)   do {                        \
+        int tmp_i;                                  \
+        if((nl) && cb("\n", 1, app_key) < 0)        \
+            return -1;                              \
+        for(tmp_i = 0; tmp_i < ilevel; tmp_i++)     \
+            if(cb("    ", 4, app_key) < 0)          \
+                return -1;                          \
+    } while(0)
+
+/*
+ * Check stack against overflow, if limit is set.
+ */
+#define        ASN__DEFAULT_STACK_MAX  (30000)
+static int CC_NOTUSED
+ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) {
+       if(ctx && ctx->max_stack_size) {
+
+               /* ctx MUST be allocated on the stack */
+               ptrdiff_t usedstack = ((const char *)ctx - (const char *)&ctx);
+               if(usedstack > 0) usedstack = -usedstack; /* grows up! */
+
+               /* double negative required to avoid int wrap-around */
+               if(usedstack < -(ptrdiff_t)ctx->max_stack_size) {
+                       ASN_DEBUG("Stack limit %ld reached",
+                               (long)ctx->max_stack_size);
+                       return -1;
+               }
+       }
+       return 0;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ASN_INTERNAL_H */
diff --git a/e2ap/headers/asn_ioc.h b/e2ap/headers/asn_ioc.h
new file mode 100644 (file)
index 0000000..7de210e
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Run-time support for Information Object Classes.
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        ASN_IOC_H
+#define        ASN_IOC_H
+
+#include <asn_system.h>                /* Platform-specific types */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct asn_TYPE_descriptor_s;
+struct asn_ioc_cell_s;
+
+/*
+ * X.681, #13
+ */
+typedef struct asn_ioc_set_s {
+    size_t rows_count;
+    size_t columns_count;
+    const struct asn_ioc_cell_s *rows;
+} asn_ioc_set_t;
+
+
+typedef struct asn_ioc_cell_s {
+    const char *field_name; /* Is equal to corresponding column_name */
+    enum {
+        aioc__undefined = 0,
+        aioc__value,
+        aioc__type,
+        aioc__open_type,
+    } cell_kind;
+    struct asn_TYPE_descriptor_s *type_descriptor;
+    const void *value_sptr;
+    struct {
+        size_t types_count;
+        struct {
+            unsigned choice_position;
+        } *types;
+    } open_type;
+} asn_ioc_cell_t;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ASN_IOC_H */
diff --git a/e2ap/headers/asn_random_fill.h b/e2ap/headers/asn_random_fill.h
new file mode 100644 (file)
index 0000000..47f9b8a
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        ASN_RANDOM_FILL
+#define        ASN_RANDOM_FILL
+
+/* Forward declarations */
+struct asn_TYPE_descriptor_s;
+struct asn_encoding_constraints_s;
+
+/*
+ * Initialize a structure with random data according to the type specification
+ * and optional member constraints.
+ * ARGUMENTS:
+ *  (max_length)        - See (approx_max_length_limit).
+ *  (memb_constraints)  - Member constraints, if exist.
+ *                        The type can be constrained differently according
+ *                        to PER and OER specifications, so we find a value
+ *                        at the intersection of these constraints.
+ * In case the return differs from ARFILL_OK, the (struct_ptr) contents
+ * and (current_length) value remain in their original state.
+ */
+typedef struct asn_random_fill_result_s {
+    enum {
+        ARFILL_FAILED = -1, /* System error (memory?) */
+        ARFILL_OK = 0,      /* Initialization succeeded */
+        ARFILL_SKIPPED = 1  /* Not done due to (length?) constraint */
+    } code;
+    size_t length; /* Approximate number of bytes created. */
+} asn_random_fill_result_t;
+typedef asn_random_fill_result_t(asn_random_fill_f)(
+    const struct asn_TYPE_descriptor_s *td, void **struct_ptr,
+    const struct asn_encoding_constraints_s *memb_constraints,
+    size_t max_length);
+
+/*
+ * Returns 0 if the structure was properly initialized, -1 otherwise.
+ * The (approx_max_length_limit) specifies the approximate limit of the
+ * resulting structure in units closely resembling bytes. The actual result
+ * might be several times larger or smaller than the length limit.
+ */
+int asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr,
+                    size_t approx_max_length_limit);
+
+/*
+ * Returns a random number between min and max.
+ */
+intmax_t asn_random_between(intmax_t min, intmax_t max);
+
+#endif /* ASN_RANDOM_FILL */
diff --git a/e2ap/headers/asn_system.h b/e2ap/headers/asn_system.h
new file mode 100644 (file)
index 0000000..fa8cf11
--- /dev/null
@@ -0,0 +1,150 @@
+/*
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+/*
+ * Miscellaneous system-dependent types.
+ */
+#ifndef        ASN_SYSTEM_H
+#define        ASN_SYSTEM_H
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifndef _DEFAULT_SOURCE
+#define _DEFAULT_SOURCE 1
+#endif
+
+#ifndef _BSD_SOURCE
+#define _BSD_SOURCE /* for snprintf() on some linux systems  */
+#endif
+
+#include <stdio.h>     /* For snprintf(3) */
+#include <stdlib.h>    /* For *alloc(3) */
+#include <string.h>    /* For memcpy(3) */
+#include <sys/types.h> /* For size_t */
+#include <limits.h>    /* For LONG_MAX */
+#include <stdarg.h>    /* For va_start */
+#include <stddef.h>    /* for offsetof and ptrdiff_t */
+
+#ifdef _WIN32
+
+#include <malloc.h>
+#define         snprintf       _snprintf
+#define         vsnprintf      _vsnprintf
+
+/* To avoid linking with ws2_32.lib, here's the definition of ntohl() */
+#define sys_ntohl(l)   ((((l) << 24)  & 0xff000000)    \
+                       | (((l) << 8) & 0xff0000)       \
+                       | (((l) >> 8)  & 0xff00)        \
+                       | ((l >> 24) & 0xff))
+
+#ifdef _MSC_VER                        /* MSVS.Net */
+#ifndef __cplusplus
+#define inline __inline
+#endif
+#ifndef        ASSUMESTDTYPES  /* Standard types have been defined elsewhere */
+#define        ssize_t         SSIZE_T
+#if _MSC_VER < 1600
+typedef        char            int8_t;
+typedef        short           int16_t;
+typedef        int             int32_t;
+typedef        unsigned char   uint8_t;
+typedef        unsigned short  uint16_t;
+typedef        unsigned int    uint32_t;
+#else /* _MSC_VER >= 1600 */
+#include <stdint.h>
+#endif /* _MSC_VER < 1600 */
+#endif /* ASSUMESTDTYPES */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <float.h>
+#define isnan _isnan
+#define finite _finite
+#define copysign _copysign
+#define        ilogb   _logb
+#else  /* !_MSC_VER */
+#include <stdint.h>
+#endif /* _MSC_VER */
+
+#else  /* !_WIN32 */
+
+#if defined(__vxworks)
+#include <types/vxTypes.h>
+#else  /* !defined(__vxworks) */
+
+#include <inttypes.h>  /* C99 specifies this file */
+#include <netinet/in.h> /* for ntohl() */
+#define        sys_ntohl(foo)  ntohl(foo)
+#endif /* defined(__vxworks) */
+
+#endif /* _WIN32 */
+
+#if    __GNUC__ >= 3 || defined(__clang__)
+#define CC_ATTRIBUTE(attr)    __attribute__((attr))
+#else
+#define CC_ATTRIBUTE(attr)
+#endif
+#define CC_PRINTFLIKE(fmt, var)     CC_ATTRIBUTE(format(printf, fmt, var))
+#define        CC_NOTUSED                  CC_ATTRIBUTE(unused)
+#ifndef CC_ATTR_NO_SANITIZE
+#define CC_ATTR_NO_SANITIZE(what)   CC_ATTRIBUTE(no_sanitize(what))
+#endif
+
+/* Figure out if thread safety is requested */
+#if !defined(ASN_THREAD_SAFE) && (defined(THREAD_SAFE) || defined(_REENTRANT))
+#define        ASN_THREAD_SAFE
+#endif /* Thread safety */
+
+#ifndef        offsetof        /* If not defined by <stddef.h> */
+#define        offsetof(s, m)  ((ptrdiff_t)&(((s *)0)->m) - (ptrdiff_t)((s *)0))
+#endif /* offsetof */
+
+#ifndef        MIN             /* Suitable for comparing primitive types (integers) */
+#if defined(__GNUC__)
+#define        MIN(a,b)        ({ __typeof a _a = a; __typeof b _b = b;        \
+       ((_a)<(_b)?(_a):(_b)); })
+#else  /* !__GNUC__ */
+#define        MIN(a,b)        ((a)<(b)?(a):(b))       /* Unsafe variant */
+#endif /* __GNUC__ */
+#endif /* MIN */
+
+#if __STDC_VERSION__ >= 199901L
+#ifndef SIZE_MAX
+#define SIZE_MAX   ((~((size_t)0)) >> 1)
+#endif
+
+#ifndef RSIZE_MAX   /* C11, Annex K */
+#define RSIZE_MAX   (SIZE_MAX >> 1)
+#endif
+#ifndef RSSIZE_MAX   /* Halve signed size even further than unsigned */
+#define RSSIZE_MAX   ((ssize_t)(RSIZE_MAX >> 1))
+#endif
+#else   /* Old compiler */
+#undef  SIZE_MAX
+#undef  RSIZE_MAX
+#undef  RSSIZE_MAX
+#define SIZE_MAX   ((~((size_t)0)) >> 1)
+#define RSIZE_MAX   (SIZE_MAX >> 1)
+#define RSSIZE_MAX   ((ssize_t)(RSIZE_MAX >> 1))
+#endif
+
+#if __STDC_VERSION__ >= 199901L
+#define ASN_PRI_SIZE "zu"
+#define ASN_PRI_SSIZE "zd"
+#define ASN_PRIuMAX PRIuMAX
+#define ASN_PRIdMAX PRIdMAX
+#else
+#define ASN_PRI_SIZE "lu"
+#define ASN_PRI_SSIZE "ld"
+#if LLONG_MAX > LONG_MAX
+#define ASN_PRIuMAX "llu"
+#define ASN_PRIdMAX "lld"
+#else
+#define ASN_PRIuMAX "lu"
+#define ASN_PRIdMAX "ld"
+#endif
+#endif
+
+#endif /* ASN_SYSTEM_H */
diff --git a/e2ap/headers/ber_decoder.h b/e2ap/headers/ber_decoder.h
new file mode 100644 (file)
index 0000000..1ac2a5e
--- /dev/null
@@ -0,0 +1,66 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _BER_DECODER_H_
+#define        _BER_DECODER_H_
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct asn_TYPE_descriptor_s;  /* Forward declaration */
+struct asn_codec_ctx_s;                /* Forward declaration */
+
+/*
+ * The BER decoder of any type.
+ * This function may be invoked directly from the application.
+ * Decodes BER, DER and CER data (DER and CER are different subsets of BER).
+ *
+ * NOTE: Use the der_encode() function (der_encoder.h) to produce encoding
+ * which is compliant with ber_decode().
+ */
+asn_dec_rval_t ber_decode(
+    const struct asn_codec_ctx_s *opt_codec_ctx,
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    void **struct_ptr,  /* Pointer to a target structure's pointer */
+    const void *buffer, /* Data to be decoded */
+    size_t size         /* Size of that buffer */
+);
+
+/*
+ * Type of generic function which decodes the byte stream into the structure.
+ */
+typedef asn_dec_rval_t(ber_type_decoder_f)(
+    const struct asn_codec_ctx_s *opt_codec_ctx,
+    const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr,
+    const void *buf_ptr, size_t size, int tag_mode);
+
+/*******************************
+ * INTERNALLY USEFUL FUNCTIONS *
+ *******************************/
+
+/*
+ * Check that all tags correspond to the type definition (as given in head).
+ * On return, last_length would contain either a non-negative length of the
+ * value part of the last TLV, or the negative number of expected
+ * "end of content" sequences. The number may only be negative if the
+ * head->last_tag_form is non-zero.
+ */
+asn_dec_rval_t ber_check_tags(
+    const struct asn_codec_ctx_s *opt_codec_ctx, /* codec options */
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    asn_struct_ctx_t *opt_ctx, /* saved decoding context */
+    const void *ptr, size_t size,
+    int tag_mode,      /* {-1,0,1}: IMPLICIT, no, EXPLICIT */
+    int last_tag_form, /* {-1,0:1}: any, primitive, constr */
+    ber_tlv_len_t *last_length, int *opt_tlv_form /* optional tag form */
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BER_DECODER_H_ */
diff --git a/e2ap/headers/ber_tlv_length.h b/e2ap/headers/ber_tlv_length.h
new file mode 100644 (file)
index 0000000..d1e4d48
--- /dev/null
@@ -0,0 +1,50 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _BER_TLV_LENGTH_H_
+#define        _BER_TLV_LENGTH_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef ssize_t ber_tlv_len_t;
+
+/*
+ * This function tries to fetch the length of the BER TLV value and place it
+ * in *len_r.
+ * RETURN VALUES:
+ *      0:     More data expected than bufptr contains.
+ *     -1:     Fatal error deciphering length.
+ *     >0:     Number of bytes used from bufptr.
+ * On return with >0, len_r is constrained as -1..MAX, where -1 mean
+ * that the value is of indefinite length.
+ */
+ssize_t ber_fetch_length(int _is_constructed, const void *bufptr, size_t size,
+       ber_tlv_len_t *len_r);
+
+/*
+ * This function expects bufptr to be positioned over L in TLV.
+ * It returns number of bytes occupied by L and V together, suitable
+ * for skipping. The function properly handles indefinite length.
+ * RETURN VALUES:
+ *     Standard {-1,0,>0} convention.
+ */
+ssize_t ber_skip_length(
+       const struct asn_codec_ctx_s *opt_codec_ctx,    /* optional context */
+       int _is_constructed, const void *bufptr, size_t size);
+
+/*
+ * This function serializes the length (L from TLV) in DER format.
+ * It always returns number of bytes necessary to represent the length,
+ * it is a caller's responsibility to check the return value
+ * against the supplied buffer's size.
+ */
+size_t der_tlv_length_serialize(ber_tlv_len_t len, void *bufptr, size_t size);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BER_TLV_LENGTH_H_ */
diff --git a/e2ap/headers/ber_tlv_tag.h b/e2ap/headers/ber_tlv_tag.h
new file mode 100644 (file)
index 0000000..ce227ad
--- /dev/null
@@ -0,0 +1,60 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _BER_TLV_TAG_H_
+#define        _BER_TLV_TAG_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum asn_tag_class {
+       ASN_TAG_CLASS_UNIVERSAL         = 0,    /* 0b00 */
+       ASN_TAG_CLASS_APPLICATION       = 1,    /* 0b01 */
+       ASN_TAG_CLASS_CONTEXT           = 2,    /* 0b10 */
+       ASN_TAG_CLASS_PRIVATE           = 3     /* 0b11 */
+};
+typedef unsigned ber_tlv_tag_t;        /* BER TAG from Tag-Length-Value */
+
+/*
+ * Tag class is encoded together with tag value for optimization purposes.
+ */
+#define        BER_TAG_CLASS(tag)      ((tag) & 0x3)
+#define        BER_TAG_VALUE(tag)      ((tag) >> 2)
+#define        BER_TLV_CONSTRUCTED(tagptr)     (((*(const uint8_t *)tagptr)&0x20)?1:0)
+
+#define        BER_TAGS_EQUAL(tag1, tag2)      ((tag1) == (tag2))
+
+/*
+ * Several functions for printing the TAG in the canonical form
+ * (i.e. "[PRIVATE 0]").
+ * Return values correspond to their libc counterparts (if any).
+ */
+ssize_t ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t buflen);
+ssize_t ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *);
+char *ber_tlv_tag_string(ber_tlv_tag_t tag);
+
+
+/*
+ * This function tries to fetch the tag from the input stream.
+ * RETURN VALUES:
+ *      0:     More data expected than bufptr contains.
+ *     -1:     Fatal error deciphering tag.
+ *     >0:     Number of bytes used from bufptr. tag_r will contain the tag.
+ */
+ssize_t ber_fetch_tag(const void *bufptr, size_t size, ber_tlv_tag_t *tag_r);
+
+/*
+ * This function serializes the tag (T from TLV) in BER format.
+ * It always returns number of bytes necessary to represent the tag,
+ * it is a caller's responsibility to check the return value
+ * against the supplied buffer's size.
+ */
+size_t ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufptr, size_t size);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BER_TLV_TAG_H_ */
diff --git a/e2ap/headers/constr_CHOICE.h b/e2ap/headers/constr_CHOICE.h
new file mode 100644 (file)
index 0000000..a1999ed
--- /dev/null
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _CONSTR_CHOICE_H_
+#define        _CONSTR_CHOICE_H_
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct asn_CHOICE_specifics_s {
+       /*
+        * Target structure description.
+        */
+       unsigned struct_size;       /* Size of the target structure. */
+       unsigned ctx_offset;        /* Offset of the asn_codec_ctx_t member */
+       unsigned pres_offset;       /* Identifier of the present member */
+       unsigned pres_size;         /* Size of the identifier (enum) */
+
+       /*
+        * Tags to members mapping table.
+        */
+       const asn_TYPE_tag2member_t *tag2el;
+       unsigned tag2el_count;
+
+       /* Canonical ordering of CHOICE elements, for PER */
+       const unsigned *to_canonical_order;
+       const unsigned *from_canonical_order;
+
+       /*
+        * Extensions-related stuff.
+        */
+       signed ext_start; /* First member of extensions, or -1 */
+} asn_CHOICE_specifics_t;
+
+/*
+ * A set specialized functions dealing with the CHOICE type.
+ */
+asn_struct_free_f CHOICE_free;
+asn_struct_print_f CHOICE_print;
+asn_struct_compare_f CHOICE_compare;
+asn_constr_check_f CHOICE_constraint;
+ber_type_decoder_f CHOICE_decode_ber;
+der_type_encoder_f CHOICE_encode_der;
+xer_type_decoder_f CHOICE_decode_xer;
+xer_type_encoder_f CHOICE_encode_xer;
+oer_type_decoder_f CHOICE_decode_oer;
+oer_type_encoder_f CHOICE_encode_oer;
+per_type_decoder_f CHOICE_decode_uper;
+per_type_encoder_f CHOICE_encode_uper;
+per_type_decoder_f CHOICE_decode_aper;
+per_type_encoder_f CHOICE_encode_aper;
+asn_outmost_tag_f CHOICE_outmost_tag;
+asn_random_fill_f CHOICE_random_fill;
+extern asn_TYPE_operation_t asn_OP_CHOICE;
+
+/*
+ * Return the 1-based choice variant presence index.
+ * Returns 0 in case of error.
+ */
+unsigned CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td,
+                                     const void *structure_ptr);
+
+/*
+ * Sets or resets the 1-based choice variant presence index.
+ * In case a previous index is not zero, the currently selected structure
+ * member is freed and zeroed-out first.
+ * Returns 0 on success and -1 on error.
+ */
+int CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td,
+                                void *structure_ptr, unsigned present);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CONSTR_CHOICE_H_ */
diff --git a/e2ap/headers/constr_SEQUENCE.h b/e2ap/headers/constr_SEQUENCE.h
new file mode 100644 (file)
index 0000000..a22ed3a
--- /dev/null
@@ -0,0 +1,68 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _CONSTR_SEQUENCE_H_
+#define        _CONSTR_SEQUENCE_H_
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct asn_SEQUENCE_specifics_s {
+       /*
+        * Target structure description.
+        */
+       unsigned struct_size;   /* Size of the target structure. */
+       unsigned ctx_offset;    /* Offset of the asn_struct_ctx_t member */
+
+       /*
+        * Tags to members mapping table (sorted).
+        */
+       const asn_TYPE_tag2member_t *tag2el;
+       unsigned tag2el_count;
+
+       /*
+        * Optional members of the extensions root (roms) or additions (aoms).
+        * Meaningful for PER.
+        */
+       const int *oms;         /* Optional MemberS */
+       unsigned roms_count;    /* Root optional members count */
+       unsigned aoms_count;    /* Additions optional members count */
+
+       /*
+        * Description of an extensions group.
+        * Root components are clustered at the beginning of the structure,
+        * whereas extensions are clustered at the end. -1 means not extensible.
+        */
+       signed first_extension;       /* First extension addition */
+} asn_SEQUENCE_specifics_t;
+
+
+/*
+ * A set specialized functions dealing with the SEQUENCE type.
+ */
+asn_struct_free_f SEQUENCE_free;
+asn_struct_print_f SEQUENCE_print;
+asn_struct_compare_f SEQUENCE_compare;
+asn_constr_check_f SEQUENCE_constraint;
+ber_type_decoder_f SEQUENCE_decode_ber;
+der_type_encoder_f SEQUENCE_encode_der;
+xer_type_decoder_f SEQUENCE_decode_xer;
+xer_type_encoder_f SEQUENCE_encode_xer;
+oer_type_decoder_f SEQUENCE_decode_oer;
+oer_type_encoder_f SEQUENCE_encode_oer;
+per_type_decoder_f SEQUENCE_decode_uper;
+per_type_encoder_f SEQUENCE_encode_uper;
+per_type_decoder_f SEQUENCE_decode_aper;
+per_type_encoder_f SEQUENCE_encode_aper;
+asn_random_fill_f  SEQUENCE_random_fill;
+extern asn_TYPE_operation_t asn_OP_SEQUENCE;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CONSTR_SEQUENCE_H_ */
diff --git a/e2ap/headers/constr_SEQUENCE_OF.h b/e2ap/headers/constr_SEQUENCE_OF.h
new file mode 100644 (file)
index 0000000..6857f0f
--- /dev/null
@@ -0,0 +1,41 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _CONSTR_SEQUENCE_OF_H_
+#define        _CONSTR_SEQUENCE_OF_H_
+
+#include <asn_application.h>
+#include <constr_SET_OF.h>             /* Implemented using SET OF */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * A set specialized functions dealing with the SEQUENCE OF type.
+ * Generally implemented using SET OF.
+ */
+asn_struct_compare_f SEQUENCE_OF_compare;
+der_type_encoder_f SEQUENCE_OF_encode_der;
+xer_type_encoder_f SEQUENCE_OF_encode_xer;
+per_type_encoder_f SEQUENCE_OF_encode_uper;
+per_type_encoder_f SEQUENCE_OF_encode_aper;
+extern asn_TYPE_operation_t asn_OP_SEQUENCE_OF;
+
+#define        SEQUENCE_OF_free        SET_OF_free
+#define        SEQUENCE_OF_print       SET_OF_print
+#define        SEQUENCE_OF_constraint  SET_OF_constraint
+#define        SEQUENCE_OF_decode_ber  SET_OF_decode_ber
+#define        SEQUENCE_OF_decode_xer  SET_OF_decode_xer
+#define        SEQUENCE_OF_decode_oer  SET_OF_decode_oer
+#define        SEQUENCE_OF_encode_oer  SET_OF_encode_oer
+#define        SEQUENCE_OF_decode_uper SET_OF_decode_uper
+#define        SEQUENCE_OF_decode_aper SET_OF_decode_aper
+#define        SEQUENCE_OF_random_fill SET_OF_random_fill
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CONSTR_SET_OF_H_ */
diff --git a/e2ap/headers/constr_SET_OF.h b/e2ap/headers/constr_SET_OF.h
new file mode 100644 (file)
index 0000000..7681062
--- /dev/null
@@ -0,0 +1,49 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        CONSTR_SET_OF_H
+#define        CONSTR_SET_OF_H
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct asn_SET_OF_specifics_s {
+    /*
+     * Target structure description.
+     */
+    unsigned struct_size;       /* Size of the target structure. */
+    unsigned ctx_offset;        /* Offset of the asn_struct_ctx_t member */
+
+    /* XER-specific stuff */
+    int as_XMLValueList; /* The member type must be encoded like this */
+} asn_SET_OF_specifics_t;
+
+/*
+ * A set specialized functions dealing with the SET OF type.
+ */
+asn_struct_free_f SET_OF_free;
+asn_struct_print_f SET_OF_print;
+asn_struct_compare_f SET_OF_compare;
+asn_constr_check_f SET_OF_constraint;
+ber_type_decoder_f SET_OF_decode_ber;
+der_type_encoder_f SET_OF_encode_der;
+xer_type_decoder_f SET_OF_decode_xer;
+xer_type_encoder_f SET_OF_encode_xer;
+oer_type_decoder_f SET_OF_decode_oer;
+oer_type_encoder_f SET_OF_encode_oer;
+per_type_decoder_f SET_OF_decode_uper;
+per_type_encoder_f SET_OF_encode_uper;
+per_type_decoder_f SET_OF_decode_aper;
+per_type_encoder_f SET_OF_encode_aper;
+asn_random_fill_f  SET_OF_random_fill;
+extern asn_TYPE_operation_t asn_OP_SET_OF;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* CONSTR_SET_OF_H */
diff --git a/e2ap/headers/constr_TYPE.h b/e2ap/headers/constr_TYPE.h
new file mode 100644 (file)
index 0000000..d80dea5
--- /dev/null
@@ -0,0 +1,262 @@
+/*
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+/*
+ * This file contains the declaration structure called "ASN.1 Type Definition",
+ * which holds all information necessary for encoding and decoding routines.
+ * This structure even contains pointer to these encoding and decoding routines
+ * for each defined ASN.1 type.
+ */
+#ifndef        _CONSTR_TYPE_H_
+#define        _CONSTR_TYPE_H_
+
+#include <ber_tlv_length.h>
+#include <ber_tlv_tag.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct asn_TYPE_descriptor_s;  /* Forward declaration */
+struct asn_TYPE_member_s;      /* Forward declaration */
+
+/*
+ * This type provides the context information for various ASN.1 routines,
+ * primarily ones doing decoding. A member _asn_ctx of this type must be
+ * included into certain target language's structures, such as compound types.
+ */
+typedef struct asn_struct_ctx_s {
+       short phase;            /* Decoding phase */
+       short step;             /* Elementary step of a phase */
+       int context;            /* Other context information */
+       void *ptr;              /* Decoder-specific stuff (stack elements) */
+       ber_tlv_len_t left;     /* Number of bytes left, -1 for indefinite */
+} asn_struct_ctx_t;
+
+#include <ber_decoder.h>       /* Basic Encoding Rules decoder */
+#include <der_encoder.h>       /* Distinguished Encoding Rules encoder */
+#include <xer_decoder.h>       /* Decoder of XER (XML, text) */
+#include <xer_encoder.h>       /* Encoder into XER (XML, text) */
+#include <per_decoder.h>       /* Packet Encoding Rules decoder */
+#include <per_encoder.h>       /* Packet Encoding Rules encoder */
+#include <constraints.h>       /* Subtype constraints support */
+#include <asn_random_fill.h>   /* Random structures support */
+
+#ifdef  ASN_DISABLE_OER_SUPPORT
+typedef void (oer_type_decoder_f)(void);
+typedef void (oer_type_encoder_f)(void);
+typedef void asn_oer_constraints_t;
+#else
+#include <oer_decoder.h>       /* Octet Encoding Rules encoder */
+#include <oer_encoder.h>       /* Octet Encoding Rules encoder */
+#endif
+
+/*
+ * Free the structure according to its specification.
+ * Use one of ASN_STRUCT_{FREE,RESET,CONTENTS_ONLY} macros instead.
+ * Do not use directly.
+ */
+enum asn_struct_free_method {
+    ASFM_FREE_EVERYTHING,   /* free(struct_ptr) and underlying members */
+    ASFM_FREE_UNDERLYING,   /* free underlying members */
+    ASFM_FREE_UNDERLYING_AND_RESET   /* FREE_UNDERLYING + memset(0) */
+};
+typedef void (asn_struct_free_f)(
+               const struct asn_TYPE_descriptor_s *type_descriptor,
+               void *struct_ptr, enum asn_struct_free_method);
+
+/*
+ * Free the structure including freeing the memory pointed to by ptr itself.
+ */
+#define ASN_STRUCT_FREE(asn_DEF, ptr) \
+    (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_EVERYTHING)
+
+/*
+ * Free the memory used by the members of the structure without freeing the
+ * the structure pointer itself.
+ * ZERO-OUT the structure to the safe clean state.
+ * (Retaining the pointer may be useful in case the structure is allocated
+ *  statically or arranged on the stack, yet its elements are dynamic.)
+ */
+#define ASN_STRUCT_RESET(asn_DEF, ptr) \
+    (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING_AND_RESET)
+
+/*
+ * Free memory used by the members of the structure without freeing
+ * the structure pointer itself.
+ * (Retaining the pointer may be useful in case the structure is allocated
+ *  statically or arranged on the stack, yet its elements are dynamic.)
+ * AVOID using it in the application code;
+ * Use a safer ASN_STRUCT_RESET() instead.
+ */
+#define ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF, ptr) \
+    (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING)
+
+/*
+ * Print the structure according to its specification.
+ */
+typedef int(asn_struct_print_f)(
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    const void *struct_ptr,
+    int level, /* Indentation level */
+    asn_app_consume_bytes_f *callback, void *app_key);
+
+/*
+ * Compare two structs between each other.
+ * Returns <0 if struct_A is "smaller" than struct_B, >0 if "greater",
+ * and =0 if "equal to", for some type-specific, stable definition of
+ * "smaller", "greater" and "equal to".
+ */
+typedef int (asn_struct_compare_f)(
+               const struct asn_TYPE_descriptor_s *type_descriptor,
+               const void *struct_A,
+               const void *struct_B);
+
+/*
+ * Return the outmost tag of the type.
+ * If the type is untagged CHOICE, the dynamic operation is performed.
+ * NOTE: This function pointer type is only useful internally.
+ * Do not use it in your application.
+ */
+typedef ber_tlv_tag_t (asn_outmost_tag_f)(
+               const struct asn_TYPE_descriptor_s *type_descriptor,
+               const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag);
+/* The instance of the above function type; used internally. */
+asn_outmost_tag_f asn_TYPE_outmost_tag;
+
+/*
+ * Fetch the desired type of the Open Type based on the
+ * Information Object Set driven constraints.
+ */
+typedef struct asn_type_selector_result_s {
+    const struct asn_TYPE_descriptor_s *type_descriptor; /* Type encoded. */
+    unsigned presence_index; /* Associated choice variant. */
+} asn_type_selector_result_t;
+typedef asn_type_selector_result_t(asn_type_selector_f)(
+    const struct asn_TYPE_descriptor_s *parent_type_descriptor,
+    const void *parent_structure_ptr);
+
+/*
+ * Generalized functions for dealing with the speciic type.
+ * May be directly invoked by applications.
+ */
+typedef struct asn_TYPE_operation_s {
+    asn_struct_free_f *free_struct;     /* Free the structure */
+    asn_struct_print_f *print_struct;   /* Human readable output */
+    asn_struct_compare_f *compare_struct; /* Compare two structures */
+    ber_type_decoder_f *ber_decoder;      /* Generic BER decoder */
+    der_type_encoder_f *der_encoder;      /* Canonical DER encoder */
+    xer_type_decoder_f *xer_decoder;      /* Generic XER decoder */
+    xer_type_encoder_f *xer_encoder;      /* [Canonical] XER encoder */
+    oer_type_decoder_f *oer_decoder;      /* Generic OER decoder */
+    oer_type_encoder_f *oer_encoder;      /* Canonical OER encoder */
+    per_type_decoder_f *uper_decoder;     /* Unaligned PER decoder */
+    per_type_encoder_f *uper_encoder;     /* Unaligned PER encoder */
+    per_type_decoder_f *aper_decoder;     /* Aligned PER decoder */
+    per_type_encoder_f *aper_encoder;     /* Aligned PER encoder */
+    asn_random_fill_f *random_fill;       /* Initialize with a random value */
+    asn_outmost_tag_f *outmost_tag;       /* <optional, internal> */
+} asn_TYPE_operation_t;
+
+/*
+ * A constraints tuple specifying both the OER and PER constraints.
+ */
+typedef struct asn_encoding_constraints_s {
+    const struct asn_oer_constraints_s *oer_constraints;
+    const struct asn_per_constraints_s *per_constraints;
+    asn_constr_check_f *general_constraints;
+} asn_encoding_constraints_t;
+
+/*
+ * The definitive description of the destination language's structure.
+ */
+typedef struct asn_TYPE_descriptor_s {
+    const char *name;       /* A name of the ASN.1 type. "" in some cases. */
+    const char *xml_tag;    /* Name used in XML tag */
+
+    /*
+     * Generalized functions for dealing with the specific type.
+     * May be directly invoked by applications.
+     */
+    asn_TYPE_operation_t *op;
+
+    /***********************************************************************
+     * Internally useful members. Not to be used by applications directly. *
+     **********************************************************************/
+
+    /*
+     * Tags that are expected to occur.
+     */
+    const ber_tlv_tag_t *tags;      /* Effective tags sequence for this type */
+    unsigned tags_count;            /* Number of tags which are expected */
+    const ber_tlv_tag_t *all_tags;  /* Every tag for BER/containment */
+    unsigned all_tags_count;        /* Number of tags */
+
+    /* OER, PER, and general constraints */
+    asn_encoding_constraints_t encoding_constraints;
+
+    /*
+     * An ASN.1 production type members (members of SEQUENCE, SET, CHOICE).
+     */
+    struct asn_TYPE_member_s *elements;
+    unsigned elements_count;
+
+    /*
+     * Additional information describing the type, used by appropriate
+     * functions above.
+     */
+    const void *specifics;
+} asn_TYPE_descriptor_t;
+
+/*
+ * This type describes an element of the constructed type,
+ * i.e. SEQUENCE, SET, CHOICE, etc.
+ */
+  enum asn_TYPE_flags_e {
+    ATF_NOFLAGS,
+    ATF_POINTER = 0x01,   /* Represented by the pointer */
+    ATF_OPEN_TYPE = 0x02, /* Open Type */
+    ATF_ANY_TYPE = 0x04   /* ANY type (deprecated!) */
+  };
+typedef struct asn_TYPE_member_s {
+    enum asn_TYPE_flags_e flags; /* Element's presentation flags */
+    unsigned optional;      /* Following optional members, including current */
+    unsigned memb_offset;   /* Offset of the element */
+    ber_tlv_tag_t tag;      /* Outmost (most immediate) tag */
+    int tag_mode;           /* IMPLICIT/no/EXPLICIT tag at current level */
+    asn_TYPE_descriptor_t *type;            /* Member type descriptor */
+    asn_type_selector_f *type_selector;     /* IoS runtime type selector */
+    asn_encoding_constraints_t encoding_constraints;
+    int (*default_value_cmp)(const void *sptr); /* Compare DEFAULT <value> */
+    int (*default_value_set)(void **sptr);      /* Set DEFAULT <value> */
+    const char *name; /* ASN.1 identifier of the element */
+} asn_TYPE_member_t;
+
+/*
+ * BER tag to element number mapping.
+ */
+typedef struct asn_TYPE_tag2member_s {
+    ber_tlv_tag_t el_tag;   /* Outmost tag of the member */
+    unsigned el_no;         /* Index of the associated member, base 0 */
+    int toff_first;         /* First occurence of the el_tag, relative */
+    int toff_last;          /* Last occurence of the el_tag, relative */
+} asn_TYPE_tag2member_t;
+
+/*
+ * This function prints out the contents of the target language's structure
+ * (struct_ptr) into the file pointer (stream) in human readable form.
+ * RETURN VALUES:
+ *      0: The structure is printed.
+ *     -1: Problem dumping the structure.
+ * (See also xer_fprint() in xer_encoder.h)
+ */
+int asn_fprint(FILE *stream, /* Destination stream descriptor */
+               const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */
+               const void *struct_ptr);         /* Structure to be printed */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CONSTR_TYPE_H_ */
diff --git a/e2ap/headers/constraints.h b/e2ap/headers/constraints.h
new file mode 100644 (file)
index 0000000..0bd86a9
--- /dev/null
@@ -0,0 +1,62 @@
+/*-
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        ASN1_CONSTRAINTS_VALIDATOR_H
+#define        ASN1_CONSTRAINTS_VALIDATOR_H
+
+#include <asn_system.h>                /* Platform-dependent types */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct asn_TYPE_descriptor_s;          /* Forward declaration */
+
+/*
+ * Validate the structure according to the ASN.1 constraints.
+ * If errbuf and errlen are given, they shall be pointing to the appropriate
+ * buffer space and its length before calling this function. Alternatively,
+ * they could be passed as NULL's. If constraints validation fails,
+ * errlen will contain the actual number of bytes taken from the errbuf
+ * to encode an error message (properly 0-terminated).
+ * 
+ * RETURN VALUES:
+ * This function returns 0 in case all ASN.1 constraints are met
+ * and -1 if one or more constraints were failed.
+ */
+int asn_check_constraints(
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    const void *struct_ptr, /* Target language's structure */
+    char *errbuf,           /* Returned error description */
+    size_t *errlen          /* Length of the error description */
+);
+
+
+/*
+ * Generic type for constraint checking callback,
+ * associated with every type descriptor.
+ */
+typedef int(asn_constr_check_f)(
+    const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct_ptr,
+    asn_app_constraint_failed_f *optional_callback, /* Log the error */
+    void *optional_app_key /* Opaque key passed to a callback */
+);
+
+/*******************************
+ * INTERNALLY USEFUL FUNCTIONS *
+ *******************************/
+
+asn_constr_check_f asn_generic_no_constraint;  /* No constraint whatsoever */
+asn_constr_check_f asn_generic_unknown_constraint; /* Not fully supported */
+
+/*
+ * Invoke the callback with a complete error message.
+ */
+#define        ASN__CTFAIL     if(ctfailcb) ctfailcb
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ASN1_CONSTRAINTS_VALIDATOR_H */
diff --git a/e2ap/headers/der_encoder.h b/e2ap/headers/der_encoder.h
new file mode 100644 (file)
index 0000000..e93944e
--- /dev/null
@@ -0,0 +1,68 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _DER_ENCODER_H_
+#define        _DER_ENCODER_H_
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct asn_TYPE_descriptor_s;  /* Forward declaration */
+
+/*
+ * The DER encoder of any type. May be invoked by the application.
+ * Produces DER- and BER-compliant encoding. (DER is a subset of BER).
+ *
+ * NOTE: Use the ber_decode() function (ber_decoder.h) to decode data
+ * produced by der_encode().
+ */
+asn_enc_rval_t der_encode(const struct asn_TYPE_descriptor_s *type_descriptor,
+                          const void *struct_ptr, /* Structure to be encoded */
+                          asn_app_consume_bytes_f *consume_bytes_cb,
+                          void *app_key /* Arbitrary callback argument */
+);
+
+/* A variant of der_encode() which encodes data into the pre-allocated buffer */
+asn_enc_rval_t der_encode_to_buffer(
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    const void *struct_ptr, /* Structure to be encoded */
+    void *buffer,           /* Pre-allocated buffer */
+    size_t buffer_size      /* Initial buffer size (maximum) */
+);
+
+/*
+ * Type of the generic DER encoder.
+ */
+typedef asn_enc_rval_t(der_type_encoder_f)(
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    const void *struct_ptr, /* Structure to be encoded */
+    int tag_mode,           /* {-1,0,1}: IMPLICIT, no, EXPLICIT */
+    ber_tlv_tag_t tag, asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */
+    void *app_key /* Arbitrary callback argument */
+);
+
+
+/*******************************
+ * INTERNALLY USEFUL FUNCTIONS *
+ *******************************/
+
+/*
+ * Write out leading TL[v] sequence according to the type definition.
+ */
+ssize_t der_write_tags(const struct asn_TYPE_descriptor_s *type_descriptor,
+                       size_t struct_length,
+                       int tag_mode,      /* {-1,0,1}: IMPLICIT, no, EXPLICIT */
+                       int last_tag_form, /* {0,!0}: prim, constructed */
+                       ber_tlv_tag_t tag,
+                       asn_app_consume_bytes_f *consume_bytes_cb,
+                       void *app_key);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DER_ENCODER_H_ */
diff --git a/e2ap/headers/oer_decoder.h b/e2ap/headers/oer_decoder.h
new file mode 100644 (file)
index 0000000..40992e9
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        OER_DECODER_H
+#define        OER_DECODER_H
+
+#include <asn_application.h>
+#include <oer_support.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct asn_TYPE_descriptor_s;  /* Forward declaration */
+struct asn_codec_ctx_s;                /* Forward declaration */
+
+/*
+ * The Octet Encoding Rules (OER, X.696 08/2015) decoder for any given type.
+ * This function may be invoked directly by the application.
+ * Parses CANONICAL-OER and BASIC-OER.
+ */
+asn_dec_rval_t oer_decode(const struct asn_codec_ctx_s *opt_codec_ctx,
+       const struct asn_TYPE_descriptor_s *type_descriptor,
+       void **struct_ptr,      /* Pointer to a target structure's pointer */
+       const void *buffer,     /* Data to be decoded */
+       size_t size             /* Size of that buffer */
+       );
+
+/*
+ * Type of generic function which decodes the byte stream into the structure.
+ */
+typedef asn_dec_rval_t(oer_type_decoder_f)(
+    const struct asn_codec_ctx_s *opt_codec_ctx,
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    const asn_oer_constraints_t *constraints,
+    void **struct_ptr,
+    const void *buf_ptr,
+    size_t size);
+
+/*
+ * Swallow the Open Type (X.696 (08/2015), #30) into /dev/null.
+ * RETURN VALUES:
+ *      -1:     Fatal error deciphering length.
+ *       0:     More data expected than bufptr contains.
+ *      >0:     Number of bytes used from bufptr.
+ */
+ssize_t oer_open_type_skip(const void *bufptr, size_t size);
+
+/*
+ * Read the Open Type (X.696 (08/2015), #30).
+ * RETURN VALUES:
+ *       0:     More data expected than bufptr contains.
+ *      -1:     Fatal error deciphering length.
+ *      >0:     Number of bytes used from bufptr.
+ */
+ssize_t oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx,
+                          const struct asn_TYPE_descriptor_s *td,
+                          const asn_oer_constraints_t *constraints,
+                          void **struct_ptr, const void *bufptr, size_t size);
+
+/*
+ * Length-prefixed buffer decoding for primitive types.
+ */
+oer_type_decoder_f oer_decode_primitive;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* OER_DECODER_H */
diff --git a/e2ap/headers/oer_encoder.h b/e2ap/headers/oer_encoder.h
new file mode 100644 (file)
index 0000000..6a7b681
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        OER_ENCODER_H
+#define        OER_ENCODER_H
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct asn_TYPE_descriptor_s;  /* Forward declaration */
+
+/*
+ * The Octet Encoding Rules (OER, X.696 08/2015) encoder for any type.
+ * This function may be invoked directly by the application.
+ * Produces CANONICAL-OER output compatible with CANONICAL-OER
+ * and BASIC-OER decoders.
+ */
+asn_enc_rval_t oer_encode(const struct asn_TYPE_descriptor_s *type_descriptor,
+                          const void *struct_ptr, /* Structure to be encoded */
+                          asn_app_consume_bytes_f *consume_bytes_cb,
+                          void *app_key /* Arbitrary callback argument */
+);
+
+/* A variant of oer_encode() which encodes data into the pre-allocated buffer */
+asn_enc_rval_t oer_encode_to_buffer(
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    const asn_oer_constraints_t *constraints,
+    const void *struct_ptr, /* Structure to be encoded */
+    void *buffer,           /* Pre-allocated buffer */
+    size_t buffer_size      /* Initial buffer size (maximum) */
+);
+
+/*
+ * Type of the generic OER encoder.
+ */
+typedef asn_enc_rval_t(oer_type_encoder_f)(
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    const asn_oer_constraints_t *constraints,
+    const void *struct_ptr,                    /* Structure to be encoded */
+    asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */
+    void *app_key                              /* Arbitrary callback argument */
+);
+
+/*
+ * Write out the Open Type (X.696 (08/2015), #30).
+ * RETURN VALUES:
+ *  -1: Fatal error encoding the type.
+ *  >0: Number of bytes serialized.
+ */
+ssize_t oer_open_type_put(const struct asn_TYPE_descriptor_s *td,
+                          const asn_oer_constraints_t *constraints,
+                          const void *struct_ptr,
+                          asn_app_consume_bytes_f *consume_bytes_cb,
+                          void *app_key);
+
+
+/*
+ * Length-prefixed buffer encoding for primitive types.
+ */
+oer_type_encoder_f oer_encode_primitive;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* OER_ENCODER_H */
diff --git a/e2ap/headers/oer_support.h b/e2ap/headers/oer_support.h
new file mode 100644 (file)
index 0000000..dbc9b5f
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        OER_SUPPORT_H
+#define        OER_SUPPORT_H
+
+#include <asn_system.h>                /* Platform-specific types */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Pre-computed OER constraints.
+ */
+typedef struct asn_oer_constraint_number_s {
+    unsigned width;    /* Â±8,4,2,1 fixed bytes */
+    unsigned positive; /* 1 for unsigned number, 0 for signed */
+} asn_oer_constraint_number_t;
+typedef struct asn_oer_constraints_s {
+    asn_oer_constraint_number_t value;
+    ssize_t size;    /* -1 (no constraint) or >= 0 */
+} asn_oer_constraints_t;
+
+
+/*
+ * Fetch the length determinant (X.696 (08/2015), #8.6) into *len_r.
+ * RETURN VALUES:
+ *       0:     More data expected than bufptr contains.
+ *      -1:     Fatal error deciphering length.
+ *      >0:     Number of bytes used from bufptr.
+ */
+ssize_t oer_fetch_length(const void *bufptr, size_t size, size_t *len_r);
+
+/*
+ * Serialize OER length. Returns the number of bytes serialized
+ * or -1 if a given callback returned with negative result.
+ */
+ssize_t oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb, void *app_key);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* OER_SUPPORT_H */
diff --git a/e2ap/headers/per_decoder.h b/e2ap/headers/per_decoder.h
new file mode 100644 (file)
index 0000000..eea474a
--- /dev/null
@@ -0,0 +1,82 @@
+/*-
+ * Copyright (c) 2005-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _PER_DECODER_H_
+#define        _PER_DECODER_H_
+
+#include <asn_application.h>
+#include <per_support.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct asn_TYPE_descriptor_s;  /* Forward declaration */
+
+/*
+ * Unaligned PER decoder of a "complete encoding" as per X.691 (08/2015) #11.1.
+ * On success, this call always returns (.consumed >= 1), as per #11.1.3.
+ */
+asn_dec_rval_t uper_decode_complete(
+    const struct asn_codec_ctx_s *opt_codec_ctx,
+    const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */
+    void **struct_ptr,  /* Pointer to a target structure's pointer */
+    const void *buffer, /* Data to be decoded */
+    size_t size         /* Size of data buffer */
+);
+
+/*
+ * Unaligned PER decoder of any ASN.1 type. May be invoked by the application.
+ * WARNING: This call returns the number of BITS read from the stream. Beware.
+ */
+asn_dec_rval_t uper_decode(
+    const struct asn_codec_ctx_s *opt_codec_ctx,
+    const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */
+    void **struct_ptr,  /* Pointer to a target structure's pointer */
+    const void *buffer, /* Data to be decoded */
+    size_t size,        /* Size of the input data buffer, in bytes */
+    int skip_bits,      /* Number of unused leading bits, 0..7 */
+    int unused_bits     /* Number of unused tailing bits, 0..7 */
+);
+
+/*
+ * Aligned PER decoder of a "complete encoding" as per X.691#10.1.
+ * On success, this call always returns (.consumed >= 1), in BITS, as per X.691#10.1.3.
+ */
+asn_dec_rval_t aper_decode_complete(
+       const struct asn_codec_ctx_s *opt_codec_ctx,
+       const struct asn_TYPE_descriptor_s *type_descriptor,    /* Type to decode */
+       void **struct_ptr,      /* Pointer to a target structure's pointer */
+       const void *buffer,     /* Data to be decoded */
+       size_t size             /* Size of data buffer */
+                                                                       );
+
+/*
+ * Aligned PER decoder of any ASN.1 type. May be invoked by the application.
+ * WARNING: This call returns the number of BITS read from the stream. Beware.
+ */
+asn_dec_rval_t aper_decode(
+      const struct asn_codec_ctx_s *opt_codec_ctx,
+      const struct asn_TYPE_descriptor_s *type_descriptor,     /* Type to decode */
+      void **struct_ptr,       /* Pointer to a target structure's pointer */
+      const void *buffer,      /* Data to be decoded */
+      size_t size,             /* Size of data buffer */
+      int skip_bits,           /* Number of unused leading bits, 0..7 */
+      int unused_bits          /* Number of unused tailing bits, 0..7 */
+      );
+
+/*
+ * Type of the type-specific PER decoder function.
+ */
+typedef asn_dec_rval_t(per_type_decoder_f)(
+    const asn_codec_ctx_t *opt_codec_ctx,
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    const asn_per_constraints_t *constraints, void **struct_ptr,
+    asn_per_data_t *per_data);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PER_DECODER_H_ */
diff --git a/e2ap/headers/per_encoder.h b/e2ap/headers/per_encoder.h
new file mode 100644 (file)
index 0000000..b615ef0
--- /dev/null
@@ -0,0 +1,93 @@
+/*-
+ * Copyright (c) 2006-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _PER_ENCODER_H_
+#define        _PER_ENCODER_H_
+
+#include <asn_application.h>
+#include <per_support.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct asn_TYPE_descriptor_s;  /* Forward declaration */
+
+/*
+ * Unaligned PER encoder of any ASN.1 type. May be invoked by the application.
+ * WARNING: This function returns the number of encoded bits in the .encoded
+ * field of the return value. Use the following formula to convert to bytes:
+ *     bytes = ((.encoded + 7) / 8)
+ */
+asn_enc_rval_t uper_encode(
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    const asn_per_constraints_t *constraints,
+    const void *struct_ptr,                    /* Structure to be encoded */
+    asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */
+    void *app_key                              /* Arbitrary callback argument */
+);
+
+asn_enc_rval_t aper_encode(
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    const asn_per_constraints_t *constraints,
+    const void *struct_ptr,                     /* Structure to be encoded */
+    asn_app_consume_bytes_f *consume_bytes_cb,  /* Data collector */
+    void *app_key                               /* Arbitrary callback argument */
+);
+
+/*
+ * A variant of uper_encode() which encodes data into the existing buffer
+ * WARNING: This function returns the number of encoded bits in the .encoded
+ * field of the return value.
+ */
+asn_enc_rval_t uper_encode_to_buffer(
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    const asn_per_constraints_t *constraints,
+    const void *struct_ptr, /* Structure to be encoded */
+    void *buffer,           /* Pre-allocated buffer */
+    size_t buffer_size      /* Initial buffer size (max) */
+);
+
+asn_enc_rval_t aper_encode_to_buffer(
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    const asn_per_constraints_t *constraints,
+    const void *struct_ptr,  /* Structure to be encoded */
+    void *buffer,            /* Pre-allocated buffer */
+    size_t buffer_size       /* Initial buffer size (max) */
+);
+/*
+ * A variant of uper_encode_to_buffer() which allocates buffer itself.
+ * Returns the number of bytes in the buffer or -1 in case of failure.
+ * WARNING: This function produces a "Production of the complete encoding",
+ * with length of at least one octet. Contrast this to precise bit-packing
+ * encoding of uper_encode() and uper_encode_to_buffer().
+ */
+ssize_t uper_encode_to_new_buffer(
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    const asn_per_constraints_t *constraints,
+    const void *struct_ptr, /* Structure to be encoded */
+    void **buffer_r         /* Buffer allocated and returned */
+);
+
+ssize_t
+aper_encode_to_new_buffer(
+    const struct asn_TYPE_descriptor_s *td,
+    const asn_per_constraints_t *constraints,
+    const void *sptr,
+    void **buffer_r
+);
+
+/*
+ * Type of the generic PER encoder function.
+ */
+typedef asn_enc_rval_t(per_type_encoder_f)(
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    const asn_per_constraints_t *constraints, const void *struct_ptr,
+    asn_per_outp_t *per_output);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PER_ENCODER_H_ */
diff --git a/e2ap/headers/per_opentype.h b/e2ap/headers/per_opentype.h
new file mode 100644 (file)
index 0000000..1493b2d
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2007-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _PER_OPENTYPE_H_
+#define        _PER_OPENTYPE_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+asn_dec_rval_t uper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx,
+                                  const asn_TYPE_descriptor_t *td,
+                                  const asn_per_constraints_t *constraints,
+                                  void **sptr, asn_per_data_t *pd);
+
+int uper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx,
+                        asn_per_data_t *pd);
+
+/*
+ * X.691 (2015/08), #11.2
+ * Returns -1 if error is encountered. 0 if all OK.
+ */
+int uper_open_type_put(const asn_TYPE_descriptor_t *td,
+                       const asn_per_constraints_t *constraints,
+                       const void *sptr, asn_per_outp_t *po);
+
+asn_dec_rval_t aper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx,
+                                  const asn_TYPE_descriptor_t *td,
+                                  const asn_per_constraints_t *constraints,
+                                  void **sptr, asn_per_data_t *pd);
+
+
+int aper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, asn_per_data_t *pd);
+
+int aper_open_type_put(const asn_TYPE_descriptor_t *td,
+                       const asn_per_constraints_t *constraints,
+                       const void *sptr, asn_per_outp_t *po);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PER_OPENTYPE_H_ */
diff --git a/e2ap/headers/per_support.h b/e2ap/headers/per_support.h
new file mode 100644 (file)
index 0000000..23079c9
--- /dev/null
@@ -0,0 +1,127 @@
+/*
+ * Copyright (c) 2005-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _PER_SUPPORT_H_
+#define        _PER_SUPPORT_H_
+
+#include <asn_system.h>                /* Platform-specific types */
+#include <asn_bit_data.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Pre-computed PER constraints.
+ */
+typedef struct asn_per_constraint_s {
+       enum asn_per_constraint_flags {
+               APC_UNCONSTRAINED       = 0x0,  /* No PER visible constraints */
+               APC_SEMI_CONSTRAINED    = 0x1,  /* Constrained at "lb" */
+               APC_CONSTRAINED         = 0x2,  /* Fully constrained */
+               APC_EXTENSIBLE          = 0x4   /* May have extension */
+       } flags;
+       int  range_bits;                /* Full number of bits in the range */
+       int  effective_bits;            /* Effective bits */
+       long lower_bound;               /* "lb" value */
+       long upper_bound;               /* "ub" value */
+} asn_per_constraint_t;
+typedef struct asn_per_constraints_s {
+       asn_per_constraint_t value;
+       asn_per_constraint_t size;
+       int (*value2code)(unsigned int value);
+       int (*code2value)(unsigned int code);
+} asn_per_constraints_t;
+
+/* Temporary compatibility layer. Will get removed. */
+typedef struct asn_bit_data_s asn_per_data_t;
+#define per_get_few_bits(data, bits)   asn_get_few_bits(data, bits)
+#define per_get_undo(data, bits)   asn_get_undo(data, bits)
+#define per_get_many_bits(data, dst, align, bits) \
+    asn_get_many_bits(data, dst, align, bits)
+
+/*
+ * X.691 (08/2015) #11.9 "General rules for encoding a length determinant"
+ * Get the length "n" from the Unaligned PER stream.
+ */
+ssize_t uper_get_length(asn_per_data_t *pd, int effective_bound_bits,
+                        size_t lower_bound, int *repeat);
+
+ssize_t aper_get_length(asn_per_data_t *pd, int range,
+                        int effective_bound_bits, int *repeat);
+
+/*
+ * Get the normally small length "n".
+ */
+ssize_t uper_get_nslength(asn_per_data_t *pd);
+ssize_t aper_get_nslength(asn_per_data_t *pd);
+
+/*
+ * Get the normally small non-negative whole number.
+ */
+ssize_t uper_get_nsnnwn(asn_per_data_t *pd);
+ssize_t aper_get_nsnnwn(asn_per_data_t *pd, int range);
+
+/* X.691-2008/11, #11.5.6 */
+int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *v, int nbits);
+
+
+/* Temporary compatibility layer. Will get removed. */
+typedef struct asn_bit_outp_s asn_per_outp_t;
+#define per_put_few_bits(out, bits, obits) asn_put_few_bits(out, bits, obits)
+#define per_put_many_bits(out, src, nbits) asn_put_many_bits(out, src, nbits)
+#define per_put_aligned_flush(out) asn_put_aligned_flush(out)
+
+
+/*
+ * Rebase the given value as an offset into the range specified by the
+ * lower bound (lb) and upper bound (ub).
+ * RETURN VALUES:
+ *  -1: Conversion failed due to range problems.
+ *   0: Conversion was successful.
+ */
+int per_long_range_rebase(long v, long lb, long ub, unsigned long *output);
+/* The inverse operation: restores the value by the offset and its bounds. */
+int per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp);
+
+/* X.691-2008/11, #11.5 */
+int uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, int nbits);
+
+/*
+ * X.691 (08/2015) #11.9 "General rules for encoding a length determinant"
+ * Put the length "whole_length" to the Unaligned PER stream.
+ * If (opt_need_eom) is given, it will be set to 1 if final 0-length is needed.
+ * In that case, invoke uper_put_length(po, 0, 0) after encoding the last block.
+ * This function returns the number of units which may be flushed
+ * in the next units saving iteration.
+ */
+ssize_t uper_put_length(asn_per_outp_t *po, size_t whole_length,
+                        int *opt_need_eom);
+
+ssize_t aper_put_length(asn_per_outp_t *po, int range, size_t length);
+
+/* Align the current bit position to octet bundary */
+int aper_put_align(asn_per_outp_t *po);
+int32_t aper_get_align(asn_per_data_t *pd);
+
+/*
+ * Put the normally small length "n" to the Unaligned PER stream.
+ * Returns 0 or -1.
+ */
+int uper_put_nslength(asn_per_outp_t *po, size_t length);
+
+int aper_put_nslength(asn_per_outp_t *po, size_t length);
+
+/*
+ * Put the normally small non-negative whole number.
+ */
+int uper_put_nsnnwn(asn_per_outp_t *po, int n);
+
+int aper_put_nsnnwn(asn_per_outp_t *po, int range, int number);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PER_SUPPORT_H_ */
diff --git a/e2ap/headers/xer_decoder.h b/e2ap/headers/xer_decoder.h
new file mode 100644 (file)
index 0000000..b951c41
--- /dev/null
@@ -0,0 +1,106 @@
+/*-
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _XER_DECODER_H_
+#define        _XER_DECODER_H_
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct asn_TYPE_descriptor_s;  /* Forward declaration */
+
+/*
+ * The XER decoder of any ASN.1 type. May be invoked by the application.
+ * Decodes CANONICAL-XER and BASIC-XER.
+ */
+asn_dec_rval_t xer_decode(
+    const struct asn_codec_ctx_s *opt_codec_ctx,
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    void **struct_ptr,  /* Pointer to a target structure's pointer */
+    const void *buffer, /* Data to be decoded */
+    size_t size         /* Size of data buffer */
+);
+
+/*
+ * Type of the type-specific XER decoder function.
+ */
+typedef asn_dec_rval_t(xer_type_decoder_f)(
+    const asn_codec_ctx_t *opt_codec_ctx,
+    const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr,
+    const char *opt_mname, /* Member name */
+    const void *buf_ptr, size_t size);
+
+/*******************************
+ * INTERNALLY USEFUL FUNCTIONS *
+ *******************************/
+
+/*
+ * Generalized function for decoding the primitive values.
+ * Used by more specialized functions, such as OCTET_STRING_decode_xer_utf8
+ * and others. This function should not be used by applications, as its API
+ * is subject to changes.
+ */
+asn_dec_rval_t xer_decode_general(
+    const asn_codec_ctx_t *opt_codec_ctx,
+    asn_struct_ctx_t *ctx, /* Type decoder context */
+    void *struct_key,      /* Treated as opaque pointer */
+    const char *xml_tag,   /* Expected XML tag name */
+    const void *buf_ptr, size_t size,
+    int (*opt_unexpected_tag_decoder)(void *struct_key, const void *chunk_buf,
+                                      size_t chunk_size),
+    ssize_t (*body_receiver)(void *struct_key, const void *chunk_buf,
+                             size_t chunk_size, int have_more));
+
+
+/*
+ * Fetch the next XER (XML) token from the stream.
+ * The function returns the number of bytes occupied by the chunk type,
+ * returned in the _ch_type. The _ch_type is only set (and valid) when
+ * the return value is >= 0.
+ */
+  typedef enum pxer_chunk_type {
+       PXER_WMORE,     /* Chunk type is not clear, more data expected. */
+       PXER_TAG,           /* Complete XER tag */
+       PXER_TEXT,          /* Plain text between XER tags */
+       PXER_COMMENT    /* A comment, may be part of */
+  } pxer_chunk_type_e;
+ssize_t xer_next_token(int *stateContext,
+       const void *buffer, size_t size, pxer_chunk_type_e *_ch_type);
+
+/*
+ * This function checks the buffer against the tag name is expected to occur.
+ */
+  typedef enum xer_check_tag {
+       XCT_BROKEN      = 0,    /* The tag is broken */
+       XCT_OPENING     = 1,    /* This is the <opening> tag */
+       XCT_CLOSING     = 2,    /* This is the </closing> tag */
+       XCT_BOTH        = 3,    /* This is the <modified/> tag */
+       XCT__UNK__MASK  = 4,    /* Mask of everything unexpected */
+       XCT_UNKNOWN_OP  = 5,    /* Unexpected <opening> tag */
+       XCT_UNKNOWN_CL  = 6,    /* Unexpected </closing> tag */
+       XCT_UNKNOWN_BO  = 7     /* Unexpected <modified/> tag */
+  } xer_check_tag_e;
+xer_check_tag_e xer_check_tag(const void *buf_ptr, int size,
+               const char *need_tag);
+
+/*
+ * Get the number of bytes consisting entirely of XER whitespace characters.
+ * RETURN VALUES:
+ * >=0:        Number of whitespace characters in the string.
+ */
+size_t xer_whitespace_span(const void *chunk_buf, size_t chunk_size);
+
+/*
+ * Skip the series of anticipated extensions.
+ */
+int xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _XER_DECODER_H_ */
diff --git a/e2ap/headers/xer_encoder.h b/e2ap/headers/xer_encoder.h
new file mode 100644 (file)
index 0000000..9d75922
--- /dev/null
@@ -0,0 +1,83 @@
+/*-
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _XER_ENCODER_H_
+#define        _XER_ENCODER_H_
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct asn_TYPE_descriptor_s;  /* Forward declaration */
+
+/* Flags used by the xer_encode() and (*xer_type_encoder_f), defined below */
+enum xer_encoder_flags_e {
+       /* Mode of encoding */
+       XER_F_BASIC     = 0x01, /* BASIC-XER (pretty-printing) */
+       XER_F_CANONICAL = 0x02  /* Canonical XER (strict rules) */
+};
+
+/*
+ * The XER encoder of any type. May be invoked by the application.
+ * Produces CANONICAL-XER and BASIC-XER depending on the (xer_flags).
+ */
+asn_enc_rval_t xer_encode(const struct asn_TYPE_descriptor_s *type_descriptor,
+                          const void *struct_ptr, /* Structure to be encoded */
+                          enum xer_encoder_flags_e xer_flags,
+                          asn_app_consume_bytes_f *consume_bytes_cb,
+                          void *app_key /* Arbitrary callback argument */
+);
+
+/*
+ * The variant of the above function which dumps the BASIC-XER (XER_F_BASIC)
+ * output into the chosen file pointer.
+ * RETURN VALUES:
+ *      0: The structure is printed.
+ *     -1: Problem printing the structure.
+ * WARNING: No sensible errno value is returned.
+ */
+int xer_fprint(FILE *stream, const struct asn_TYPE_descriptor_s *td,
+               const void *struct_ptr);
+
+/*
+ * A helper function that uses XER encoding/decoding to verify that:
+ * - Both structures encode into the same BASIC XER.
+ * - Both resulting XER byte streams can be decoded back.
+ * - Both decoded structures encode into the same BASIC XER (round-trip).
+ * All of this verifies equivalence between structures and a round-trip.
+ * ARGUMENTS:
+ *  (opt_debug_stream)  - If specified, prints ongoing details.
+ */
+enum xer_equivalence_e {
+    XEQ_SUCCESS,          /* The only completely positive return value */
+    XEQ_FAILURE,          /* General failure */
+    XEQ_ENCODE1_FAILED,   /* First sructure XER encoding failed */
+    XEQ_ENCODE2_FAILED,   /* Second structure XER encoding failed */
+    XEQ_DIFFERENT,        /* Structures encoded into different XER */
+    XEQ_DECODE_FAILED,    /* Decode of the XER data failed */
+    XEQ_ROUND_TRIP_FAILED /* Bad round-trip */
+};
+enum xer_equivalence_e xer_equivalent(
+    const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct1,
+    const void *struct2, FILE *opt_debug_stream);
+
+/*
+ * Type of the generic XER encoder.
+ */
+typedef asn_enc_rval_t(xer_type_encoder_f)(
+    const struct asn_TYPE_descriptor_s *type_descriptor,
+    const void *struct_ptr, /* Structure to be encoded */
+    int ilevel,             /* Level of indentation */
+    enum xer_encoder_flags_e xer_flags,
+    asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */
+    void *app_key                              /* Arbitrary callback argument */
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _XER_ENCODER_H_ */
diff --git a/e2ap/headers/xer_support.h b/e2ap/headers/xer_support.h
new file mode 100644 (file)
index 0000000..c3a36e7
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com.
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        _XER_SUPPORT_H_
+#define        _XER_SUPPORT_H_
+
+#include <asn_system.h>                /* Platform-specific types */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Types of data transferred to the application.
+ */
+typedef enum {
+       PXML_TEXT,      /* Plain text between XML tags. */
+       PXML_TAG,       /* A tag, starting with '<'. */
+       PXML_COMMENT,   /* An XML comment, including "<!--" and "-->". */
+       /* 
+        * The following chunk types are reported if the chunk
+        * terminates the specified XML element.
+        */
+       PXML_TAG_END,           /* Tag ended */
+       PXML_COMMENT_END        /* Comment ended */
+} pxml_chunk_type_e;
+
+/*
+ * Callback function that is called by the parser when parsed data is
+ * available. The _opaque is the pointer to a field containing opaque user 
+ * data specified in pxml_create() call. The chunk type is _type and the text 
+ * data is the piece of buffer identified by _bufid (as supplied to
+ * pxml_feed() call) starting at offset _offset and of _size bytes size. 
+ * The chunk is NOT '\0'-terminated.
+ */
+typedef int (pxml_callback_f)(pxml_chunk_type_e _type,
+       const void *_chunk_data, size_t _chunk_size, void *_key);
+
+/*
+ * Parse the given buffer as it were a chunk of XML data.
+ * Invoke the specified callback each time the meaninful data is found.
+ * This function returns number of bytes consumed from the bufer.
+ * It will always be lesser than or equal to the specified _size.
+ * The next invocation of this function must account the difference.
+ */
+ssize_t pxml_parse(int *_stateContext, const void *_buf, size_t _size,
+       pxml_callback_f *cb, void *_key);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _XER_SUPPORT_H_ */
diff --git a/e2ap/lib/ABS-Status.c b/e2ap/lib/ABS-Status.c
new file mode 100644 (file)
index 0000000..7ec0091
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ABS-Status.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_ABS_Status_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ABS_Status, dL_ABS_status),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_DL_ABS_status,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-ABS-status"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ABS_Status, usableABSInformation),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_UsableABSInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "usableABSInformation"
+               },
+       { ATF_POINTER, 1, offsetof(struct ABS_Status, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P106,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ABS_Status_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_ABS_Status_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ABS_Status_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dL-ABS-status */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* usableABSInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_ABS_Status_specs_1 = {
+       sizeof(struct ABS_Status),
+       offsetof(struct ABS_Status, _asn_ctx),
+       asn_MAP_ABS_Status_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_ABS_Status_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ABS_Status = {
+       "ABS-Status",
+       "ABS-Status",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ABS_Status_tags_1,
+       sizeof(asn_DEF_ABS_Status_tags_1)
+               /sizeof(asn_DEF_ABS_Status_tags_1[0]), /* 1 */
+       asn_DEF_ABS_Status_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ABS_Status_tags_1)
+               /sizeof(asn_DEF_ABS_Status_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ABS_Status_1,
+       3,      /* Elements count */
+       &asn_SPC_ABS_Status_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ABSInformation.c b/e2ap/lib/ABSInformation.c
new file mode 100644 (file)
index 0000000..b2d8cf7
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ABSInformation.h"
+
+#include "ABSInformationFDD.h"
+#include "ABSInformationTDD.h"
+static asn_oer_constraints_t asn_OER_type_ABSInformation_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_ABSInformation_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ABSInformation_1[] = {
+       { ATF_POINTER, 0, offsetof(struct ABSInformation, choice.fdd),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ABSInformationFDD,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "fdd"
+               },
+       { ATF_POINTER, 0, offsetof(struct ABSInformation, choice.tdd),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ABSInformationTDD,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "tdd"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ABSInformation, choice.abs_inactive),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NULL,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "abs-inactive"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_ABSInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fdd */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tdd */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* abs-inactive */
+};
+static asn_CHOICE_specifics_t asn_SPC_ABSInformation_specs_1 = {
+       sizeof(struct ABSInformation),
+       offsetof(struct ABSInformation, _asn_ctx),
+       offsetof(struct ABSInformation, present),
+       sizeof(((struct ABSInformation *)0)->present),
+       asn_MAP_ABSInformation_tag2el_1,
+       3,      /* Count of tags in the map */
+       0, 0,
+       3       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_ABSInformation = {
+       "ABSInformation",
+       "ABSInformation",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_ABSInformation_constr_1, &asn_PER_type_ABSInformation_constr_1, CHOICE_constraint },
+       asn_MBR_ABSInformation_1,
+       3,      /* Elements count */
+       &asn_SPC_ABSInformation_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/ABSInformationFDD.c b/e2ap/lib/ABSInformationFDD.c
new file mode 100644 (file)
index 0000000..68dc272
--- /dev/null
@@ -0,0 +1,214 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ABSInformationFDD.h"
+
+#include "ProtocolExtensionContainer.h"
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static int
+memb_abs_pattern_info_constraint_1(const 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 == 40)) {
+               /* 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_measurement_subset_constraint_1(const 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 == 40)) {
+               /* 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_oer_constraints_t asn_OER_type_numberOfCellSpecificAntennaPorts_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_numberOfCellSpecificAntennaPorts_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_abs_pattern_info_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       40      /* (SIZE(40..40)) */};
+static asn_per_constraints_t asn_PER_memb_abs_pattern_info_constr_2 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  40,  40 }      /* (SIZE(40..40)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_measurement_subset_constr_8 CC_NOTUSED = {
+       { 0, 0 },
+       40      /* (SIZE(40..40)) */};
+static asn_per_constraints_t asn_PER_memb_measurement_subset_constr_8 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  40,  40 }      /* (SIZE(40..40)) */,
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_numberOfCellSpecificAntennaPorts_value2enum_3[] = {
+       { 0,    3,      "one" },
+       { 1,    3,      "two" },
+       { 2,    4,      "four" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_numberOfCellSpecificAntennaPorts_enum2value_3[] = {
+       2,      /* four(2) */
+       0,      /* one(0) */
+       1       /* two(1) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_numberOfCellSpecificAntennaPorts_specs_3 = {
+       asn_MAP_numberOfCellSpecificAntennaPorts_value2enum_3,  /* "tag" => N; sorted by tag */
+       asn_MAP_numberOfCellSpecificAntennaPorts_enum2value_3,  /* 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_numberOfCellSpecificAntennaPorts_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_numberOfCellSpecificAntennaPorts_3 = {
+       "numberOfCellSpecificAntennaPorts",
+       "numberOfCellSpecificAntennaPorts",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_numberOfCellSpecificAntennaPorts_tags_3,
+       sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_3)
+               /sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_3[0]) - 1, /* 1 */
+       asn_DEF_numberOfCellSpecificAntennaPorts_tags_3,        /* Same as above */
+       sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_3)
+               /sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_3[0]), /* 2 */
+       { &asn_OER_type_numberOfCellSpecificAntennaPorts_constr_3, &asn_PER_type_numberOfCellSpecificAntennaPorts_constr_3, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_numberOfCellSpecificAntennaPorts_specs_3       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ABSInformationFDD_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ABSInformationFDD, abs_pattern_info),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_abs_pattern_info_constr_2, &asn_PER_memb_abs_pattern_info_constr_2,  memb_abs_pattern_info_constraint_1 },
+               0, 0, /* No default value */
+               "abs-pattern-info"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ABSInformationFDD, numberOfCellSpecificAntennaPorts),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_numberOfCellSpecificAntennaPorts_3,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "numberOfCellSpecificAntennaPorts"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ABSInformationFDD, measurement_subset),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_measurement_subset_constr_8, &asn_PER_memb_measurement_subset_constr_8,  memb_measurement_subset_constraint_1 },
+               0, 0, /* No default value */
+               "measurement-subset"
+               },
+       { ATF_POINTER, 1, offsetof(struct ABSInformationFDD, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P104,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ABSInformationFDD_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_ABSInformationFDD_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ABSInformationFDD_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* abs-pattern-info */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* numberOfCellSpecificAntennaPorts */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* measurement-subset */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ABSInformationFDD_specs_1 = {
+       sizeof(struct ABSInformationFDD),
+       offsetof(struct ABSInformationFDD, _asn_ctx),
+       asn_MAP_ABSInformationFDD_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_ABSInformationFDD_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ABSInformationFDD = {
+       "ABSInformationFDD",
+       "ABSInformationFDD",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ABSInformationFDD_tags_1,
+       sizeof(asn_DEF_ABSInformationFDD_tags_1)
+               /sizeof(asn_DEF_ABSInformationFDD_tags_1[0]), /* 1 */
+       asn_DEF_ABSInformationFDD_tags_1,       /* Same as above */
+       sizeof(asn_DEF_ABSInformationFDD_tags_1)
+               /sizeof(asn_DEF_ABSInformationFDD_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ABSInformationFDD_1,
+       4,      /* Elements count */
+       &asn_SPC_ABSInformationFDD_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/ABSInformationTDD.c b/e2ap/lib/ABSInformationTDD.c
new file mode 100644 (file)
index 0000000..01dfbc2
--- /dev/null
@@ -0,0 +1,214 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ABSInformationTDD.h"
+
+#include "ProtocolExtensionContainer.h"
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static int
+memb_abs_pattern_info_constraint_1(const 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 >= 1 && size <= 70)) {
+               /* 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_measurement_subset_constraint_1(const 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 >= 1 && size <= 70)) {
+               /* 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_oer_constraints_t asn_OER_type_numberOfCellSpecificAntennaPorts_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_numberOfCellSpecificAntennaPorts_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_abs_pattern_info_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+static asn_per_constraints_t asn_PER_memb_abs_pattern_info_constr_2 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  7,  7,  1,  70 }   /* (SIZE(1..70,...)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_measurement_subset_constr_8 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+static asn_per_constraints_t asn_PER_memb_measurement_subset_constr_8 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  7,  7,  1,  70 }   /* (SIZE(1..70,...)) */,
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_numberOfCellSpecificAntennaPorts_value2enum_3[] = {
+       { 0,    3,      "one" },
+       { 1,    3,      "two" },
+       { 2,    4,      "four" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_numberOfCellSpecificAntennaPorts_enum2value_3[] = {
+       2,      /* four(2) */
+       0,      /* one(0) */
+       1       /* two(1) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_numberOfCellSpecificAntennaPorts_specs_3 = {
+       asn_MAP_numberOfCellSpecificAntennaPorts_value2enum_3,  /* "tag" => N; sorted by tag */
+       asn_MAP_numberOfCellSpecificAntennaPorts_enum2value_3,  /* 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_numberOfCellSpecificAntennaPorts_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_numberOfCellSpecificAntennaPorts_3 = {
+       "numberOfCellSpecificAntennaPorts",
+       "numberOfCellSpecificAntennaPorts",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_numberOfCellSpecificAntennaPorts_tags_3,
+       sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_3)
+               /sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_3[0]) - 1, /* 1 */
+       asn_DEF_numberOfCellSpecificAntennaPorts_tags_3,        /* Same as above */
+       sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_3)
+               /sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_3[0]), /* 2 */
+       { &asn_OER_type_numberOfCellSpecificAntennaPorts_constr_3, &asn_PER_type_numberOfCellSpecificAntennaPorts_constr_3, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_numberOfCellSpecificAntennaPorts_specs_3       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ABSInformationTDD_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ABSInformationTDD, abs_pattern_info),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_abs_pattern_info_constr_2, &asn_PER_memb_abs_pattern_info_constr_2,  memb_abs_pattern_info_constraint_1 },
+               0, 0, /* No default value */
+               "abs-pattern-info"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ABSInformationTDD, numberOfCellSpecificAntennaPorts),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_numberOfCellSpecificAntennaPorts_3,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "numberOfCellSpecificAntennaPorts"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ABSInformationTDD, measurement_subset),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_measurement_subset_constr_8, &asn_PER_memb_measurement_subset_constr_8,  memb_measurement_subset_constraint_1 },
+               0, 0, /* No default value */
+               "measurement-subset"
+               },
+       { ATF_POINTER, 1, offsetof(struct ABSInformationTDD, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P105,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ABSInformationTDD_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_ABSInformationTDD_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ABSInformationTDD_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* abs-pattern-info */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* numberOfCellSpecificAntennaPorts */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* measurement-subset */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ABSInformationTDD_specs_1 = {
+       sizeof(struct ABSInformationTDD),
+       offsetof(struct ABSInformationTDD, _asn_ctx),
+       asn_MAP_ABSInformationTDD_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_ABSInformationTDD_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ABSInformationTDD = {
+       "ABSInformationTDD",
+       "ABSInformationTDD",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ABSInformationTDD_tags_1,
+       sizeof(asn_DEF_ABSInformationTDD_tags_1)
+               /sizeof(asn_DEF_ABSInformationTDD_tags_1[0]), /* 1 */
+       asn_DEF_ABSInformationTDD_tags_1,       /* Same as above */
+       sizeof(asn_DEF_ABSInformationTDD_tags_1)
+               /sizeof(asn_DEF_ABSInformationTDD_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ABSInformationTDD_1,
+       4,      /* Elements count */
+       &asn_SPC_ABSInformationTDD_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/ANY.c b/e2ap/lib/ANY.c
new file mode 100644 (file)
index 0000000..0b81557
--- /dev/null
@@ -0,0 +1,450 @@
+/*
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <ANY.h>
+#include <errno.h>
+
+asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs = {
+       sizeof(ANY_t),
+       offsetof(ANY_t, _asn_ctx),
+       ASN_OSUBV_ANY
+};
+asn_TYPE_operation_t asn_OP_ANY = {
+       OCTET_STRING_free,
+       OCTET_STRING_print,
+       OCTET_STRING_compare,
+       OCTET_STRING_decode_ber,
+       OCTET_STRING_encode_der,
+       OCTET_STRING_decode_xer_hex,
+       ANY_encode_xer,
+#ifdef ASN_DISABLE_OER_SUPPORT
+       0,
+       0,
+#else
+       0,
+       0,
+#endif  /* ASN_DISABLE_OER_SUPPORT */
+#ifdef ASN_DISABLE_PER_SUPPORT
+       0, 0, 0, 0,
+#else
+       ANY_decode_uper,
+       ANY_encode_uper,
+       ANY_decode_aper,
+       ANY_encode_aper,
+#endif  /* ASN_DISABLE_PER_SUPPORT */
+       0,      /* Random fill is not defined for ANY type */
+       0       /* Use generic outmost tag fetcher */
+};
+asn_TYPE_descriptor_t asn_DEF_ANY = {
+       "ANY",
+       "ANY",
+       &asn_OP_ANY,
+       0, 0, 0, 0,
+       { 0, 0, asn_generic_no_constraint },    /* No constraints */
+       0, 0,   /* No members */
+       &asn_SPC_ANY_specs,
+};
+
+#undef RETURN
+#define RETURN(_code)                       \
+    do {                                    \
+        asn_dec_rval_t tmprval;             \
+        tmprval.code = _code;               \
+        tmprval.consumed = consumed_myself; \
+        return tmprval;                     \
+    } while(0)
+
+asn_enc_rval_t
+ANY_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
+               enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb,
+               void *app_key) {
+    if(flags & XER_F_CANONICAL) {
+               /*
+                * Canonical XER-encoding of ANY type is not supported.
+                */
+               ASN__ENCODE_FAILED;
+       }
+
+       /* Dump as binary */
+       return OCTET_STRING_encode_xer(td, sptr, ilevel, flags, cb, app_key);
+}
+
+struct _callback_arg {
+       uint8_t *buffer;
+       size_t offset;
+       size_t size;
+};
+
+static int ANY__consume_bytes(const void *buffer, size_t size, void *key);
+
+int
+ANY_fromType(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) {
+       struct _callback_arg arg;
+       asn_enc_rval_t erval = {0,0,0};
+
+       if(!st || !td) {
+               errno = EINVAL;
+               return -1;
+       }
+
+       if(!sptr) {
+               if(st->buf) FREEMEM(st->buf);
+               st->size = 0;
+               return 0;
+       }
+
+       arg.offset = arg.size = 0;
+       arg.buffer = 0;
+
+       erval = der_encode(td, sptr, ANY__consume_bytes, &arg);
+       if(erval.encoded == -1) {
+               if(arg.buffer) FREEMEM(arg.buffer);
+               return -1;
+       }
+       assert((size_t)erval.encoded == arg.offset);
+
+       if(st->buf) FREEMEM(st->buf);
+       st->buf = arg.buffer;
+       st->size = arg.offset;
+
+       return 0;
+}
+
+int
+ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) {
+       uint8_t *buffer = NULL;
+       ssize_t erval;
+
+       if(!st || !td) {
+               errno = EINVAL;
+               return -1;
+       }
+
+       if(!sptr) {
+               if(st->buf) FREEMEM(st->buf);
+               st->size = 0;
+               return 0;
+       }
+
+       erval = aper_encode_to_new_buffer(td, td->encoding_constraints.per_constraints, sptr, (void**)&buffer);
+
+       if(erval == -1) {
+               if(buffer) FREEMEM(buffer);
+               return -1;
+       }
+       assert((size_t)erval > 0);
+
+       if(st->buf) FREEMEM(st->buf);
+       st->buf = buffer;
+       st->size = erval;
+
+       return 0;
+}
+
+ANY_t *
+ANY_new_fromType(asn_TYPE_descriptor_t *td, void *sptr) {
+       ANY_t tmp;
+       ANY_t *st;
+
+       if(!td || !sptr) {
+               errno = EINVAL;
+               return 0;
+       }
+
+       memset(&tmp, 0, sizeof(tmp));
+
+       if(ANY_fromType(&tmp, td, sptr)) return 0;
+
+       st = (ANY_t *)CALLOC(1, sizeof(ANY_t));
+       if(st) {
+               *st = tmp;
+               return st;
+       } else {
+               FREEMEM(tmp.buf);
+               return 0;
+       }
+}
+
+ANY_t *
+ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr) {
+       ANY_t tmp;
+       ANY_t *st;
+
+       if(!td || !sptr) {
+               errno = EINVAL;
+               return 0;
+       }
+
+       memset(&tmp, 0, sizeof(tmp));
+
+       if(ANY_fromType_aper(&tmp, td, sptr)) return 0;
+
+       st = (ANY_t *)CALLOC(1, sizeof(ANY_t));
+       if(st) {
+               *st = tmp;
+               return st;
+       } else {
+               FREEMEM(tmp.buf);
+               return 0;
+       }
+}
+
+int
+ANY_to_type(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) {
+       asn_dec_rval_t rval;
+       void *newst = 0;
+
+       if(!st || !td || !struct_ptr) {
+               errno = EINVAL;
+               return -1;
+       }
+
+       if(st->buf == 0) {
+               /* Nothing to convert, make it empty. */
+               *struct_ptr = (void *)0;
+               return 0;
+       }
+
+       rval = ber_decode(0, td, (void **)&newst, st->buf, st->size);
+       if(rval.code == RC_OK) {
+               *struct_ptr = newst;
+               return 0;
+       } else {
+               /* Remove possibly partially decoded data. */
+               ASN_STRUCT_FREE(*td, newst);
+               return -1;
+       }
+}
+
+int
+ANY_to_type_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) {
+       asn_dec_rval_t rval;
+       void *newst = 0;
+
+       if(!st || !td || !struct_ptr) {
+               errno = EINVAL;
+               return -1;
+       }
+
+       if(st->buf == 0) {
+               /* Nothing to convert, make it empty. */
+               *struct_ptr = (void *)0;
+               return 0;
+       }
+
+       rval = aper_decode(0, td, (void **)&newst, st->buf, st->size, 0, 0);
+       if(rval.code == RC_OK) {
+               *struct_ptr = newst;
+               return 0;
+       } else {
+               /* Remove possibly partially decoded data. */
+               ASN_STRUCT_FREE(*td, newst);
+               return -1;
+       }
+}
+
+static int ANY__consume_bytes(const void *buffer, size_t size, void *key) {
+       struct _callback_arg *arg = (struct _callback_arg *)key;
+
+       if((arg->offset + size) >= arg->size) {
+               size_t nsize = (arg->size ? arg->size << 2 : 16) + size;
+               void *p = REALLOC(arg->buffer, nsize);
+               if(!p) return -1;
+               arg->buffer = (uint8_t *)p;
+               arg->size = nsize;
+       }
+
+       memcpy(arg->buffer + arg->offset, buffer, size);
+       arg->offset += size;
+       assert(arg->offset < arg->size);
+
+       return 0;
+}
+
+#ifndef ASN_DISABLE_PER_SUPPORT
+
+asn_dec_rval_t
+ANY_decode_uper(const asn_codec_ctx_t *opt_codec_ctx,
+                const asn_TYPE_descriptor_t *td,
+                const asn_per_constraints_t *constraints, void **sptr,
+                asn_per_data_t *pd) {
+    const asn_OCTET_STRING_specifics_t *specs =
+        td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+                      : &asn_SPC_ANY_specs;
+    size_t consumed_myself = 0;
+    int repeat;
+    ANY_t *st = (ANY_t *)*sptr;
+
+    (void)opt_codec_ctx;
+    (void)constraints;
+
+    /*
+     * Allocate the structure.
+     */
+    if(!st) {
+        st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size));
+        if(!st) RETURN(RC_FAIL);
+    }
+
+    ASN_DEBUG("UPER Decoding ANY type");
+
+    st->size = 0;
+    do {
+        ssize_t raw_len;
+        ssize_t len_bytes;
+        ssize_t len_bits;
+        void *p;
+        int ret;
+
+        /* Get the PER length */
+        raw_len = uper_get_length(pd, -1, 0, &repeat);
+        if(raw_len < 0) RETURN(RC_WMORE);
+        if(raw_len == 0 && st->buf) break;
+
+        ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len,
+                  repeat ? "repeat" : "once", td->name);
+        len_bytes = raw_len;
+        len_bits = len_bytes * 8;
+
+        p = REALLOC(st->buf, st->size + len_bytes + 1);
+        if(!p) RETURN(RC_FAIL);
+        st->buf = (uint8_t *)p;
+
+        ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits);
+        if(ret < 0) RETURN(RC_WMORE);
+        consumed_myself += len_bits;
+        st->size += len_bytes;
+    } while(repeat);
+    st->buf[st->size] = 0; /* nul-terminate */
+
+    RETURN(RC_OK);
+}
+
+asn_enc_rval_t
+ANY_encode_uper(const asn_TYPE_descriptor_t *td,
+                const asn_per_constraints_t *constraints, const void *sptr,
+                asn_per_outp_t *po) {
+    const ANY_t *st = (const ANY_t *)sptr;
+    asn_enc_rval_t er = {0, 0, 0};
+    const uint8_t *buf;
+    size_t size;
+    int ret;
+
+    (void)constraints;
+
+    if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED;
+
+    buf = st->buf;
+    size = st->size;
+    do {
+        int need_eom = 0;
+        ssize_t may_save = uper_put_length(po, size, &need_eom);
+        if(may_save < 0) ASN__ENCODE_FAILED;
+
+        ret = per_put_many_bits(po, buf, may_save * 8);
+        if(ret) ASN__ENCODE_FAILED;
+
+        buf += may_save;
+        size -= may_save;
+        assert(!(may_save & 0x07) || !size);
+        if(need_eom && uper_put_length(po, 0, 0))
+            ASN__ENCODE_FAILED; /* End of Message length */
+    } while(size);
+
+    ASN__ENCODED_OK(er);
+}
+
+asn_dec_rval_t
+ANY_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
+                const asn_TYPE_descriptor_t *td,
+                const asn_per_constraints_t *constraints, void **sptr,
+                asn_per_data_t *pd) {
+    const asn_OCTET_STRING_specifics_t *specs =
+        td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+                      : &asn_SPC_ANY_specs;
+    size_t consumed_myself = 0;
+    int repeat;
+    ANY_t *st = (ANY_t *)*sptr;
+
+    (void)opt_codec_ctx;
+    (void)constraints;
+
+    /*
+     * Allocate the structure.
+     */
+    if(!st) {
+        st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size));
+        if(!st) RETURN(RC_FAIL);
+    }
+
+    ASN_DEBUG("APER Decoding ANY type");
+
+    st->size = 0;
+    do {
+        ssize_t raw_len;
+        ssize_t len_bytes;
+        ssize_t len_bits;
+        void *p;
+        int ret;
+
+        /* Get the PER length */
+        raw_len = aper_get_length(pd, -1, 0, &repeat);
+        if(raw_len < 0) RETURN(RC_WMORE);
+        if(raw_len == 0 && st->buf) break;
+
+        ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len,
+                  repeat ? "repeat" : "once", td->name);
+        len_bytes = raw_len;
+        len_bits = len_bytes * 8;
+
+        p = REALLOC(st->buf, st->size + len_bytes + 1);
+        if(!p) RETURN(RC_FAIL);
+        st->buf = (uint8_t *)p;
+
+        ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits);
+        if(ret < 0) RETURN(RC_WMORE);
+        consumed_myself += len_bits;
+        st->size += len_bytes;
+    } while(repeat);
+    st->buf[st->size] = 0; /* nul-terminate */
+
+    RETURN(RC_OK);
+}
+
+asn_enc_rval_t
+ANY_encode_aper(const asn_TYPE_descriptor_t *td,
+                const asn_per_constraints_t *constraints, const void *sptr,
+                asn_per_outp_t *po) {
+    const ANY_t *st = (const ANY_t *)sptr;
+    asn_enc_rval_t er = {0, 0, 0};
+    const uint8_t *buf;
+    size_t size;
+    int ret;
+
+    (void)constraints;
+
+    if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED;
+
+    buf = st->buf;
+    size = st->size;
+    do {
+        int need_eom = 0;
+        ssize_t may_save = uper_put_length(po, size, &need_eom);
+        if(may_save < 0) ASN__ENCODE_FAILED;
+
+        ret = per_put_many_bits(po, buf, may_save * 8);
+        if(ret) ASN__ENCODE_FAILED;
+
+        buf += may_save;
+        size -= may_save;
+        assert(!(may_save & 0x07) || !size);
+        if(need_eom && uper_put_length(po, 0, 0))
+            ASN__ENCODE_FAILED; /* End of Message length */
+    } while(size);
+
+    ASN__ENCODED_OK(er);
+}
+#endif /* ASN_DISABLE_PER_SUPPORT */
+
diff --git a/e2ap/lib/AS-SecurityInformation.c b/e2ap/lib/AS-SecurityInformation.c
new file mode 100644 (file)
index 0000000..defc5fc
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "AS-SecurityInformation.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_AS_SecurityInformation_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct AS_SecurityInformation, key_eNodeB_star),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Key_eNodeB_Star,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "key-eNodeB-star"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct AS_SecurityInformation, nextHopChainingCount),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NextHopChainingCount,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nextHopChainingCount"
+               },
+       { ATF_POINTER, 1, offsetof(struct AS_SecurityInformation, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P110,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_AS_SecurityInformation_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_AS_SecurityInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_AS_SecurityInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* key-eNodeB-star */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nextHopChainingCount */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_AS_SecurityInformation_specs_1 = {
+       sizeof(struct AS_SecurityInformation),
+       offsetof(struct AS_SecurityInformation, _asn_ctx),
+       asn_MAP_AS_SecurityInformation_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_AS_SecurityInformation_oms_1,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_AS_SecurityInformation = {
+       "AS-SecurityInformation",
+       "AS-SecurityInformation",
+       &asn_OP_SEQUENCE,
+       asn_DEF_AS_SecurityInformation_tags_1,
+       sizeof(asn_DEF_AS_SecurityInformation_tags_1)
+               /sizeof(asn_DEF_AS_SecurityInformation_tags_1[0]), /* 1 */
+       asn_DEF_AS_SecurityInformation_tags_1,  /* Same as above */
+       sizeof(asn_DEF_AS_SecurityInformation_tags_1)
+               /sizeof(asn_DEF_AS_SecurityInformation_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_AS_SecurityInformation_1,
+       3,      /* Elements count */
+       &asn_SPC_AS_SecurityInformation_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/ActionParameter-ID.c b/e2ap/lib/ActionParameter-ID.c
new file mode 100644 (file)
index 0000000..4e300f5
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ActionParameter-ID.h"
+
+int
+ActionParameter_ID_constraint(const 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 >= 0 && value <= 255)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_ActionParameter_ID_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..255) */,
+       -1};
+asn_per_constraints_t asn_PER_type_ActionParameter_ID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       8,  8,  0,  255 }      /* (0..255) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_ActionParameter_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ActionParameter_ID = {
+       "ActionParameter-ID",
+       "ActionParameter-ID",
+       &asn_OP_NativeInteger,
+       asn_DEF_ActionParameter_ID_tags_1,
+       sizeof(asn_DEF_ActionParameter_ID_tags_1)
+               /sizeof(asn_DEF_ActionParameter_ID_tags_1[0]), /* 1 */
+       asn_DEF_ActionParameter_ID_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ActionParameter_ID_tags_1)
+               /sizeof(asn_DEF_ActionParameter_ID_tags_1[0]), /* 1 */
+       { &asn_OER_type_ActionParameter_ID_constr_1, &asn_PER_type_ActionParameter_ID_constr_1, ActionParameter_ID_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/ActionParameter-Item.c b/e2ap/lib/ActionParameter-Item.c
new file mode 100644 (file)
index 0000000..885291b
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ActionParameter-Item.h"
+
+asn_TYPE_member_t asn_MBR_ActionParameter_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ActionParameter_Item, actionParameter_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ActionParameter_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "actionParameter-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ActionParameter_Item, actionParameter_Value),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_ActionParameter_Value,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "actionParameter-Value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ActionParameter_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ActionParameter_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* actionParameter-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* actionParameter-Value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ActionParameter_Item_specs_1 = {
+       sizeof(struct ActionParameter_Item),
+       offsetof(struct ActionParameter_Item, _asn_ctx),
+       asn_MAP_ActionParameter_Item_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ActionParameter_Item = {
+       "ActionParameter-Item",
+       "ActionParameter-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ActionParameter_Item_tags_1,
+       sizeof(asn_DEF_ActionParameter_Item_tags_1)
+               /sizeof(asn_DEF_ActionParameter_Item_tags_1[0]), /* 1 */
+       asn_DEF_ActionParameter_Item_tags_1,    /* Same as above */
+       sizeof(asn_DEF_ActionParameter_Item_tags_1)
+               /sizeof(asn_DEF_ActionParameter_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ActionParameter_Item_1,
+       2,      /* Elements count */
+       &asn_SPC_ActionParameter_Item_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/ActionParameter-Value.c b/e2ap/lib/ActionParameter-Value.c
new file mode 100644 (file)
index 0000000..926970d
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ActionParameter-Value.h"
+
+static asn_oer_constraints_t asn_OER_type_ActionParameter_Value_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_ActionParameter_Value_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  5 }    /* (0..5,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ActionParameter_Value_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ActionParameter_Value, choice.valueInt),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "valueInt"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ActionParameter_Value, choice.valueEnum),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "valueEnum"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ActionParameter_Value, choice.valueBool),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BOOLEAN,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "valueBool"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ActionParameter_Value, choice.valueBitS),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "valueBitS"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ActionParameter_Value, choice.valueOctS),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_OCTET_STRING,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "valueOctS"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ActionParameter_Value, choice.valuePrtS),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PrintableString,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "valuePrtS"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_ActionParameter_Value_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* valueInt */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* valueEnum */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* valueBool */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* valueBitS */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* valueOctS */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* valuePrtS */
+};
+asn_CHOICE_specifics_t asn_SPC_ActionParameter_Value_specs_1 = {
+       sizeof(struct ActionParameter_Value),
+       offsetof(struct ActionParameter_Value, _asn_ctx),
+       offsetof(struct ActionParameter_Value, present),
+       sizeof(((struct ActionParameter_Value *)0)->present),
+       asn_MAP_ActionParameter_Value_tag2el_1,
+       6,      /* Count of tags in the map */
+       0, 0,
+       6       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_ActionParameter_Value = {
+       "ActionParameter-Value",
+       "ActionParameter-Value",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_ActionParameter_Value_constr_1, &asn_PER_type_ActionParameter_Value_constr_1, CHOICE_constraint },
+       asn_MBR_ActionParameter_Value_1,
+       6,      /* Elements count */
+       &asn_SPC_ActionParameter_Value_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/ActivatedCellList-Item.c b/e2ap/lib/ActivatedCellList-Item.c
new file mode 100644 (file)
index 0000000..e2fb962
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ActivatedCellList-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ActivatedCellList_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ActivatedCellList_Item, ecgi),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ecgi"
+               },
+       { ATF_POINTER, 1, offsetof(struct ActivatedCellList_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P15,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ActivatedCellList_Item_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_ActivatedCellList_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ActivatedCellList_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ecgi */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ActivatedCellList_Item_specs_1 = {
+       sizeof(struct ActivatedCellList_Item),
+       offsetof(struct ActivatedCellList_Item, _asn_ctx),
+       asn_MAP_ActivatedCellList_Item_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_ActivatedCellList_Item_oms_1,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ActivatedCellList_Item = {
+       "ActivatedCellList-Item",
+       "ActivatedCellList-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ActivatedCellList_Item_tags_1,
+       sizeof(asn_DEF_ActivatedCellList_Item_tags_1)
+               /sizeof(asn_DEF_ActivatedCellList_Item_tags_1[0]), /* 1 */
+       asn_DEF_ActivatedCellList_Item_tags_1,  /* Same as above */
+       sizeof(asn_DEF_ActivatedCellList_Item_tags_1)
+               /sizeof(asn_DEF_ActivatedCellList_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ActivatedCellList_Item_1,
+       2,      /* Elements count */
+       &asn_SPC_ActivatedCellList_Item_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/ActivatedCellList.c b/e2ap/lib/ActivatedCellList.c
new file mode 100644 (file)
index 0000000..6d4c836
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ActivatedCellList.h"
+
+#include "ActivatedCellList-Item.h"
+static asn_oer_constraints_t asn_OER_type_ActivatedCellList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_ActivatedCellList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ActivatedCellList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ActivatedCellList_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ActivatedCellList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ActivatedCellList_specs_1 = {
+       sizeof(struct ActivatedCellList),
+       offsetof(struct ActivatedCellList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ActivatedCellList = {
+       "ActivatedCellList",
+       "ActivatedCellList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ActivatedCellList_tags_1,
+       sizeof(asn_DEF_ActivatedCellList_tags_1)
+               /sizeof(asn_DEF_ActivatedCellList_tags_1[0]), /* 1 */
+       asn_DEF_ActivatedCellList_tags_1,       /* Same as above */
+       sizeof(asn_DEF_ActivatedCellList_tags_1)
+               /sizeof(asn_DEF_ActivatedCellList_tags_1[0]), /* 1 */
+       { &asn_OER_type_ActivatedCellList_constr_1, &asn_PER_type_ActivatedCellList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ActivatedCellList_1,
+       1,      /* Single element */
+       &asn_SPC_ActivatedCellList_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/ActivatedNRCellList-Item.c b/e2ap/lib/ActivatedNRCellList-Item.c
new file mode 100644 (file)
index 0000000..9ed23f2
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ActivatedNRCellList-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ActivatedNRCellList_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ActivatedNRCellList_Item, nrCellID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRCGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nrCellID"
+               },
+       { ATF_POINTER, 1, offsetof(struct ActivatedNRCellList_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P102,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ActivatedNRCellList_Item_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_ActivatedNRCellList_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ActivatedNRCellList_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrCellID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ActivatedNRCellList_Item_specs_1 = {
+       sizeof(struct ActivatedNRCellList_Item),
+       offsetof(struct ActivatedNRCellList_Item, _asn_ctx),
+       asn_MAP_ActivatedNRCellList_Item_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_ActivatedNRCellList_Item_oms_1, /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ActivatedNRCellList_Item = {
+       "ActivatedNRCellList-Item",
+       "ActivatedNRCellList-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ActivatedNRCellList_Item_tags_1,
+       sizeof(asn_DEF_ActivatedNRCellList_Item_tags_1)
+               /sizeof(asn_DEF_ActivatedNRCellList_Item_tags_1[0]), /* 1 */
+       asn_DEF_ActivatedNRCellList_Item_tags_1,        /* Same as above */
+       sizeof(asn_DEF_ActivatedNRCellList_Item_tags_1)
+               /sizeof(asn_DEF_ActivatedNRCellList_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ActivatedNRCellList_Item_1,
+       2,      /* Elements count */
+       &asn_SPC_ActivatedNRCellList_Item_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/ActivatedNRCellList.c b/e2ap/lib/ActivatedNRCellList.c
new file mode 100644 (file)
index 0000000..5741569
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ActivatedNRCellList.h"
+
+#include "ActivatedNRCellList-Item.h"
+static asn_oer_constraints_t asn_OER_type_ActivatedNRCellList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16384)) */};
+static asn_per_constraints_t asn_PER_type_ActivatedNRCellList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       14,  14,  1,  16384 }  /* (SIZE(1..16384)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ActivatedNRCellList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ActivatedNRCellList_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ActivatedNRCellList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ActivatedNRCellList_specs_1 = {
+       sizeof(struct ActivatedNRCellList),
+       offsetof(struct ActivatedNRCellList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ActivatedNRCellList = {
+       "ActivatedNRCellList",
+       "ActivatedNRCellList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ActivatedNRCellList_tags_1,
+       sizeof(asn_DEF_ActivatedNRCellList_tags_1)
+               /sizeof(asn_DEF_ActivatedNRCellList_tags_1[0]), /* 1 */
+       asn_DEF_ActivatedNRCellList_tags_1,     /* Same as above */
+       sizeof(asn_DEF_ActivatedNRCellList_tags_1)
+               /sizeof(asn_DEF_ActivatedNRCellList_tags_1[0]), /* 1 */
+       { &asn_OER_type_ActivatedNRCellList_constr_1, &asn_PER_type_ActivatedNRCellList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ActivatedNRCellList_1,
+       1,      /* Single element */
+       &asn_SPC_ActivatedNRCellList_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/ActivationID.c b/e2ap/lib/ActivationID.c
new file mode 100644 (file)
index 0000000..41b7594
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ActivationID.h"
+
+int
+ActivationID_constraint(const 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 >= 0 && value <= 255)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_ActivationID_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..255) */,
+       -1};
+static asn_per_constraints_t asn_PER_type_ActivationID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       8,  8,  0,  255 }      /* (0..255) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_ActivationID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ActivationID = {
+       "ActivationID",
+       "ActivationID",
+       &asn_OP_NativeInteger,
+       asn_DEF_ActivationID_tags_1,
+       sizeof(asn_DEF_ActivationID_tags_1)
+               /sizeof(asn_DEF_ActivationID_tags_1[0]), /* 1 */
+       asn_DEF_ActivationID_tags_1,    /* Same as above */
+       sizeof(asn_DEF_ActivationID_tags_1)
+               /sizeof(asn_DEF_ActivationID_tags_1[0]), /* 1 */
+       { &asn_OER_type_ActivationID_constr_1, &asn_PER_type_ActivationID_constr_1, ActivationID_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/AdditionalSpecialSubframe-Info.c b/e2ap/lib/AdditionalSpecialSubframe-Info.c
new file mode 100644 (file)
index 0000000..9251d2b
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "AdditionalSpecialSubframe-Info.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_AdditionalSpecialSubframe_Info_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframe_Info, additionalspecialSubframePatterns),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_AdditionalSpecialSubframePatterns,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "additionalspecialSubframePatterns"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframe_Info, cyclicPrefixDL),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CyclicPrefixDL,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cyclicPrefixDL"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframe_Info, cyclicPrefixUL),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CyclicPrefixUL,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cyclicPrefixUL"
+               },
+       { ATF_POINTER, 1, offsetof(struct AdditionalSpecialSubframe_Info, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P107,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_AdditionalSpecialSubframe_Info_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_AdditionalSpecialSubframe_Info_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_AdditionalSpecialSubframe_Info_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* additionalspecialSubframePatterns */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cyclicPrefixDL */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cyclicPrefixUL */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_AdditionalSpecialSubframe_Info_specs_1 = {
+       sizeof(struct AdditionalSpecialSubframe_Info),
+       offsetof(struct AdditionalSpecialSubframe_Info, _asn_ctx),
+       asn_MAP_AdditionalSpecialSubframe_Info_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_AdditionalSpecialSubframe_Info_oms_1,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframe_Info = {
+       "AdditionalSpecialSubframe-Info",
+       "AdditionalSpecialSubframe-Info",
+       &asn_OP_SEQUENCE,
+       asn_DEF_AdditionalSpecialSubframe_Info_tags_1,
+       sizeof(asn_DEF_AdditionalSpecialSubframe_Info_tags_1)
+               /sizeof(asn_DEF_AdditionalSpecialSubframe_Info_tags_1[0]), /* 1 */
+       asn_DEF_AdditionalSpecialSubframe_Info_tags_1,  /* Same as above */
+       sizeof(asn_DEF_AdditionalSpecialSubframe_Info_tags_1)
+               /sizeof(asn_DEF_AdditionalSpecialSubframe_Info_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_AdditionalSpecialSubframe_Info_1,
+       4,      /* Elements count */
+       &asn_SPC_AdditionalSpecialSubframe_Info_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/AdditionalSpecialSubframeExtension-Info.c b/e2ap/lib/AdditionalSpecialSubframeExtension-Info.c
new file mode 100644 (file)
index 0000000..28edee5
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "AdditionalSpecialSubframeExtension-Info.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_AdditionalSpecialSubframeExtension_Info_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframeExtension_Info, additionalspecialSubframePatternsExtension),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_AdditionalSpecialSubframePatternsExtension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "additionalspecialSubframePatternsExtension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframeExtension_Info, cyclicPrefixDL),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CyclicPrefixDL,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cyclicPrefixDL"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframeExtension_Info, cyclicPrefixUL),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CyclicPrefixUL,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cyclicPrefixUL"
+               },
+       { ATF_POINTER, 1, offsetof(struct AdditionalSpecialSubframeExtension_Info, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P108,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_AdditionalSpecialSubframeExtension_Info_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_AdditionalSpecialSubframeExtension_Info_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_AdditionalSpecialSubframeExtension_Info_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* additionalspecialSubframePatternsExtension */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cyclicPrefixDL */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cyclicPrefixUL */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_AdditionalSpecialSubframeExtension_Info_specs_1 = {
+       sizeof(struct AdditionalSpecialSubframeExtension_Info),
+       offsetof(struct AdditionalSpecialSubframeExtension_Info, _asn_ctx),
+       asn_MAP_AdditionalSpecialSubframeExtension_Info_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_AdditionalSpecialSubframeExtension_Info_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframeExtension_Info = {
+       "AdditionalSpecialSubframeExtension-Info",
+       "AdditionalSpecialSubframeExtension-Info",
+       &asn_OP_SEQUENCE,
+       asn_DEF_AdditionalSpecialSubframeExtension_Info_tags_1,
+       sizeof(asn_DEF_AdditionalSpecialSubframeExtension_Info_tags_1)
+               /sizeof(asn_DEF_AdditionalSpecialSubframeExtension_Info_tags_1[0]), /* 1 */
+       asn_DEF_AdditionalSpecialSubframeExtension_Info_tags_1, /* Same as above */
+       sizeof(asn_DEF_AdditionalSpecialSubframeExtension_Info_tags_1)
+               /sizeof(asn_DEF_AdditionalSpecialSubframeExtension_Info_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_AdditionalSpecialSubframeExtension_Info_1,
+       4,      /* Elements count */
+       &asn_SPC_AdditionalSpecialSubframeExtension_Info_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/AdditionalSpecialSubframePatterns.c b/e2ap/lib/AdditionalSpecialSubframePatterns.c
new file mode 100644 (file)
index 0000000..48de7de
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "AdditionalSpecialSubframePatterns.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_AdditionalSpecialSubframePatterns_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_AdditionalSpecialSubframePatterns_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  9 }    /* (0..9,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_AdditionalSpecialSubframePatterns_value2enum_1[] = {
+       { 0,    4,      "ssp0" },
+       { 1,    4,      "ssp1" },
+       { 2,    4,      "ssp2" },
+       { 3,    4,      "ssp3" },
+       { 4,    4,      "ssp4" },
+       { 5,    4,      "ssp5" },
+       { 6,    4,      "ssp6" },
+       { 7,    4,      "ssp7" },
+       { 8,    4,      "ssp8" },
+       { 9,    4,      "ssp9" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_AdditionalSpecialSubframePatterns_enum2value_1[] = {
+       0,      /* ssp0(0) */
+       1,      /* ssp1(1) */
+       2,      /* ssp2(2) */
+       3,      /* ssp3(3) */
+       4,      /* ssp4(4) */
+       5,      /* ssp5(5) */
+       6,      /* ssp6(6) */
+       7,      /* ssp7(7) */
+       8,      /* ssp8(8) */
+       9       /* ssp9(9) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_AdditionalSpecialSubframePatterns_specs_1 = {
+       asn_MAP_AdditionalSpecialSubframePatterns_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_AdditionalSpecialSubframePatterns_enum2value_1, /* N => "tag"; sorted by N */
+       10,     /* Number of elements in the maps */
+       11,     /* Extensions before this member */
+       1,      /* Strict enumeration */
+       0,      /* Native long size */
+       0
+};
+static const ber_tlv_tag_t asn_DEF_AdditionalSpecialSubframePatterns_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframePatterns = {
+       "AdditionalSpecialSubframePatterns",
+       "AdditionalSpecialSubframePatterns",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_AdditionalSpecialSubframePatterns_tags_1,
+       sizeof(asn_DEF_AdditionalSpecialSubframePatterns_tags_1)
+               /sizeof(asn_DEF_AdditionalSpecialSubframePatterns_tags_1[0]), /* 1 */
+       asn_DEF_AdditionalSpecialSubframePatterns_tags_1,       /* Same as above */
+       sizeof(asn_DEF_AdditionalSpecialSubframePatterns_tags_1)
+               /sizeof(asn_DEF_AdditionalSpecialSubframePatterns_tags_1[0]), /* 1 */
+       { &asn_OER_type_AdditionalSpecialSubframePatterns_constr_1, &asn_PER_type_AdditionalSpecialSubframePatterns_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_AdditionalSpecialSubframePatterns_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/AdditionalSpecialSubframePatternsExtension.c b/e2ap/lib/AdditionalSpecialSubframePatternsExtension.c
new file mode 100644 (file)
index 0000000..994c2a6
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "AdditionalSpecialSubframePatternsExtension.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_AdditionalSpecialSubframePatternsExtension_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_AdditionalSpecialSubframePatternsExtension_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_AdditionalSpecialSubframePatternsExtension_value2enum_1[] = {
+       { 0,    5,      "ssp10" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_AdditionalSpecialSubframePatternsExtension_enum2value_1[] = {
+       0       /* ssp10(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_AdditionalSpecialSubframePatternsExtension_specs_1 = {
+       asn_MAP_AdditionalSpecialSubframePatternsExtension_value2enum_1,        /* "tag" => N; sorted by tag */
+       asn_MAP_AdditionalSpecialSubframePatternsExtension_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_AdditionalSpecialSubframePatternsExtension_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframePatternsExtension = {
+       "AdditionalSpecialSubframePatternsExtension",
+       "AdditionalSpecialSubframePatternsExtension",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_AdditionalSpecialSubframePatternsExtension_tags_1,
+       sizeof(asn_DEF_AdditionalSpecialSubframePatternsExtension_tags_1)
+               /sizeof(asn_DEF_AdditionalSpecialSubframePatternsExtension_tags_1[0]), /* 1 */
+       asn_DEF_AdditionalSpecialSubframePatternsExtension_tags_1,      /* Same as above */
+       sizeof(asn_DEF_AdditionalSpecialSubframePatternsExtension_tags_1)
+               /sizeof(asn_DEF_AdditionalSpecialSubframePatternsExtension_tags_1[0]), /* 1 */
+       { &asn_OER_type_AdditionalSpecialSubframePatternsExtension_constr_1, &asn_PER_type_AdditionalSpecialSubframePatternsExtension_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_AdditionalSpecialSubframePatternsExtension_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/AerialUEsubscriptionInformation.c b/e2ap/lib/AerialUEsubscriptionInformation.c
new file mode 100644 (file)
index 0000000..451de69
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "AerialUEsubscriptionInformation.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_AerialUEsubscriptionInformation_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_AerialUEsubscriptionInformation_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_AerialUEsubscriptionInformation_value2enum_1[] = {
+       { 0,    7,      "allowed" },
+       { 1,    11,     "not-allowed" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_AerialUEsubscriptionInformation_enum2value_1[] = {
+       0,      /* allowed(0) */
+       1       /* not-allowed(1) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_AerialUEsubscriptionInformation_specs_1 = {
+       asn_MAP_AerialUEsubscriptionInformation_value2enum_1,   /* "tag" => N; sorted by tag */
+       asn_MAP_AerialUEsubscriptionInformation_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_AerialUEsubscriptionInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_AerialUEsubscriptionInformation = {
+       "AerialUEsubscriptionInformation",
+       "AerialUEsubscriptionInformation",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_AerialUEsubscriptionInformation_tags_1,
+       sizeof(asn_DEF_AerialUEsubscriptionInformation_tags_1)
+               /sizeof(asn_DEF_AerialUEsubscriptionInformation_tags_1[0]), /* 1 */
+       asn_DEF_AerialUEsubscriptionInformation_tags_1, /* Same as above */
+       sizeof(asn_DEF_AerialUEsubscriptionInformation_tags_1)
+               /sizeof(asn_DEF_AerialUEsubscriptionInformation_tags_1[0]), /* 1 */
+       { &asn_OER_type_AerialUEsubscriptionInformation_constr_1, &asn_PER_type_AerialUEsubscriptionInformation_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_AerialUEsubscriptionInformation_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/AllocationAndRetentionPriority.c b/e2ap/lib/AllocationAndRetentionPriority.c
new file mode 100644 (file)
index 0000000..46fc7d2
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "AllocationAndRetentionPriority.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_AllocationAndRetentionPriority_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct AllocationAndRetentionPriority, priorityLevel),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PriorityLevel,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "priorityLevel"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct AllocationAndRetentionPriority, pre_emptionCapability),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Pre_emptionCapability,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pre-emptionCapability"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct AllocationAndRetentionPriority, pre_emptionVulnerability),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Pre_emptionVulnerability,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pre-emptionVulnerability"
+               },
+       { ATF_POINTER, 1, offsetof(struct AllocationAndRetentionPriority, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P109,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_AllocationAndRetentionPriority_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_AllocationAndRetentionPriority_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_AllocationAndRetentionPriority_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 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_AllocationAndRetentionPriority_specs_1 = {
+       sizeof(struct AllocationAndRetentionPriority),
+       offsetof(struct AllocationAndRetentionPriority, _asn_ctx),
+       asn_MAP_AllocationAndRetentionPriority_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_AllocationAndRetentionPriority_oms_1,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_AllocationAndRetentionPriority = {
+       "AllocationAndRetentionPriority",
+       "AllocationAndRetentionPriority",
+       &asn_OP_SEQUENCE,
+       asn_DEF_AllocationAndRetentionPriority_tags_1,
+       sizeof(asn_DEF_AllocationAndRetentionPriority_tags_1)
+               /sizeof(asn_DEF_AllocationAndRetentionPriority_tags_1[0]), /* 1 */
+       asn_DEF_AllocationAndRetentionPriority_tags_1,  /* Same as above */
+       sizeof(asn_DEF_AllocationAndRetentionPriority_tags_1)
+               /sizeof(asn_DEF_AllocationAndRetentionPriority_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_AllocationAndRetentionPriority_1,
+       4,      /* Elements count */
+       &asn_SPC_AllocationAndRetentionPriority_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/AreaScopeOfMDT.c b/e2ap/lib/AreaScopeOfMDT.c
new file mode 100644 (file)
index 0000000..9c83f6d
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "AreaScopeOfMDT.h"
+
+#include "CellBasedMDT.h"
+#include "TABasedMDT.h"
+#include "TAIBasedMDT.h"
+static asn_oer_constraints_t asn_OER_type_AreaScopeOfMDT_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_AreaScopeOfMDT_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_AreaScopeOfMDT_1[] = {
+       { ATF_POINTER, 0, offsetof(struct AreaScopeOfMDT, choice.cellBased),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CellBasedMDT,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cellBased"
+               },
+       { ATF_POINTER, 0, offsetof(struct AreaScopeOfMDT, choice.tABased),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TABasedMDT,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "tABased"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct AreaScopeOfMDT, choice.pLMNWide),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NULL,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pLMNWide"
+               },
+       { ATF_POINTER, 0, offsetof(struct AreaScopeOfMDT, choice.tAIBased),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TAIBasedMDT,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "tAIBased"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_AreaScopeOfMDT_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellBased */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tABased */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pLMNWide */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* tAIBased */
+};
+asn_CHOICE_specifics_t asn_SPC_AreaScopeOfMDT_specs_1 = {
+       sizeof(struct AreaScopeOfMDT),
+       offsetof(struct AreaScopeOfMDT, _asn_ctx),
+       offsetof(struct AreaScopeOfMDT, present),
+       sizeof(((struct AreaScopeOfMDT *)0)->present),
+       asn_MAP_AreaScopeOfMDT_tag2el_1,
+       4,      /* Count of tags in the map */
+       0, 0,
+       3       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_AreaScopeOfMDT = {
+       "AreaScopeOfMDT",
+       "AreaScopeOfMDT",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_AreaScopeOfMDT_constr_1, &asn_PER_type_AreaScopeOfMDT_constr_1, CHOICE_constraint },
+       asn_MBR_AreaScopeOfMDT_1,
+       4,      /* Elements count */
+       &asn_SPC_AreaScopeOfMDT_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/AreaScopeOfQMC.c b/e2ap/lib/AreaScopeOfQMC.c
new file mode 100644 (file)
index 0000000..8e76e6e
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "AreaScopeOfQMC.h"
+
+#include "CellBasedQMC.h"
+#include "TABasedQMC.h"
+#include "TAIBasedQMC.h"
+#include "PLMNAreaBasedQMC.h"
+static asn_oer_constraints_t asn_OER_type_AreaScopeOfQMC_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_AreaScopeOfQMC_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_AreaScopeOfQMC_1[] = {
+       { ATF_POINTER, 0, offsetof(struct AreaScopeOfQMC, choice.cellBased),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CellBasedQMC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cellBased"
+               },
+       { ATF_POINTER, 0, offsetof(struct AreaScopeOfQMC, choice.tABased),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TABasedQMC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "tABased"
+               },
+       { ATF_POINTER, 0, offsetof(struct AreaScopeOfQMC, choice.tAIBased),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TAIBasedQMC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "tAIBased"
+               },
+       { ATF_POINTER, 0, offsetof(struct AreaScopeOfQMC, choice.pLMNAreaBased),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PLMNAreaBasedQMC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pLMNAreaBased"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_AreaScopeOfQMC_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellBased */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tABased */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* tAIBased */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* pLMNAreaBased */
+};
+asn_CHOICE_specifics_t asn_SPC_AreaScopeOfQMC_specs_1 = {
+       sizeof(struct AreaScopeOfQMC),
+       offsetof(struct AreaScopeOfQMC, _asn_ctx),
+       offsetof(struct AreaScopeOfQMC, present),
+       sizeof(((struct AreaScopeOfQMC *)0)->present),
+       asn_MAP_AreaScopeOfQMC_tag2el_1,
+       4,      /* Count of tags in the map */
+       0, 0,
+       4       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_AreaScopeOfQMC = {
+       "AreaScopeOfQMC",
+       "AreaScopeOfQMC",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_AreaScopeOfQMC_constr_1, &asn_PER_type_AreaScopeOfQMC_constr_1, CHOICE_constraint },
+       asn_MBR_AreaScopeOfQMC_1,
+       4,      /* Elements count */
+       &asn_SPC_AreaScopeOfQMC_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/BIT_STRING.c b/e2ap/lib/BIT_STRING.c
new file mode 100644 (file)
index 0000000..e8d7354
--- /dev/null
@@ -0,0 +1,656 @@
+/*-
+ * Copyright (c) 2003, 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <BIT_STRING.h>
+#include <asn_internal.h>
+
+/*
+ * BIT STRING basic type description.
+ */
+static const ber_tlv_tag_t asn_DEF_BIT_STRING_tags[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs = {
+       sizeof(BIT_STRING_t),
+       offsetof(BIT_STRING_t, _asn_ctx),
+       ASN_OSUBV_BIT
+};
+asn_TYPE_operation_t asn_OP_BIT_STRING = {
+       OCTET_STRING_free,         /* Implemented in terms of OCTET STRING */
+       BIT_STRING_print,
+       BIT_STRING_compare,
+       OCTET_STRING_decode_ber,   /* Implemented in terms of OCTET STRING */
+       OCTET_STRING_encode_der,   /* Implemented in terms of OCTET STRING */
+       OCTET_STRING_decode_xer_binary,
+       BIT_STRING_encode_xer,
+#ifdef ASN_DISABLE_OER_SUPPORT
+       0,
+       0,
+#else
+       BIT_STRING_decode_oer,
+       BIT_STRING_encode_oer,
+#endif  /* ASN_DISABLE_OER_SUPPORT */
+#ifdef ASN_DISABLE_PER_SUPPORT
+       0,
+       0,
+       0,
+       0,
+#else
+       BIT_STRING_decode_uper, /* Unaligned PER decoder */
+       BIT_STRING_encode_uper, /* Unaligned PER encoder */
+       OCTET_STRING_decode_aper,       /* Aligned PER decoder */
+       OCTET_STRING_encode_aper,       /* Aligned PER encoder */
+#endif  /* ASN_DISABLE_PER_SUPPORT */
+       BIT_STRING_random_fill,
+       0       /* Use generic outmost tag fetcher */
+};
+asn_TYPE_descriptor_t asn_DEF_BIT_STRING = {
+       "BIT STRING",
+       "BIT_STRING",
+       &asn_OP_BIT_STRING,
+       asn_DEF_BIT_STRING_tags,
+       sizeof(asn_DEF_BIT_STRING_tags)
+         / sizeof(asn_DEF_BIT_STRING_tags[0]),
+       asn_DEF_BIT_STRING_tags,        /* Same as above */
+       sizeof(asn_DEF_BIT_STRING_tags)
+         / sizeof(asn_DEF_BIT_STRING_tags[0]),
+       { 0, 0, BIT_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs
+};
+
+/*
+ * BIT STRING generic constraint.
+ */
+int
+BIT_STRING_constraint(const 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;
+
+       if(st && st->buf) {
+               if((st->size == 0 && st->bits_unused)
+               || st->bits_unused < 0 || st->bits_unused > 7) {
+                       ASN__CTFAIL(app_key, td, sptr,
+                               "%s: invalid padding byte (%s:%d)",
+                               td->name, __FILE__, __LINE__);
+                       return -1;
+               }
+       } else {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: value not given (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+
+       return 0;
+}
+
+static const char *_bit_pattern[16] = {
+       "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111",
+       "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"
+};
+
+asn_enc_rval_t
+BIT_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr,
+                      int ilevel, enum xer_encoder_flags_e flags,
+                      asn_app_consume_bytes_f *cb, void *app_key) {
+       asn_enc_rval_t er = {0, 0, 0};
+       char scratch[128];
+       char *p = scratch;
+       char *scend = scratch + (sizeof(scratch) - 10);
+       const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+       int xcan = (flags & XER_F_CANONICAL);
+       uint8_t *buf;
+       uint8_t *end;
+
+       if(!st || !st->buf)
+               ASN__ENCODE_FAILED;
+
+       er.encoded = 0;
+
+       buf = st->buf;
+       end = buf + st->size - 1;       /* Last byte is special */
+
+       /*
+        * Binary dump
+        */
+       for(; buf < end; buf++) {
+               int v = *buf;
+               int nline = xcan?0:(((buf - st->buf) % 8) == 0);
+               if(p >= scend || nline) {
+                       ASN__CALLBACK(scratch, p - scratch);
+                       p = scratch;
+                       if(nline) ASN__TEXT_INDENT(1, ilevel);
+               }
+               memcpy(p + 0, _bit_pattern[v >> 4], 4);
+               memcpy(p + 4, _bit_pattern[v & 0x0f], 4);
+               p += 8;
+       }
+
+       if(!xcan && ((buf - st->buf) % 8) == 0)
+               ASN__TEXT_INDENT(1, ilevel);
+       ASN__CALLBACK(scratch, p - scratch);
+       p = scratch;
+
+       if(buf == end) {
+               int v = *buf;
+               int ubits = st->bits_unused;
+               int i;
+               for(i = 7; i >= ubits; i--)
+                       *p++ = (v & (1 << i)) ? 0x31 : 0x30;
+               ASN__CALLBACK(scratch, p - scratch);
+       }
+
+       if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1);
+
+       ASN__ENCODED_OK(er);
+cb_failed:
+       ASN__ENCODE_FAILED;
+}
+
+
+/*
+ * BIT STRING specific contents printer.
+ */
+int
+BIT_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
+                 asn_app_consume_bytes_f *cb, void *app_key) {
+    const char * const h2c = "0123456789ABCDEF";
+       char scratch[64];
+       const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+       uint8_t *buf;
+       uint8_t *end;
+       char *p = scratch;
+
+       (void)td;       /* Unused argument */
+
+       if(!st || !st->buf)
+               return (cb("<absent>", 8, app_key) < 0) ? -1 : 0;
+
+       ilevel++;
+       buf = st->buf;
+       end = buf + st->size;
+
+       /*
+        * Hexadecimal dump.
+        */
+       for(; buf < end; buf++) {
+               if((buf - st->buf) % 16 == 0 && (st->size > 16)
+                               && buf != st->buf) {
+                       _i_INDENT(1);
+                       /* Dump the string */
+                       if(cb(scratch, p - scratch, app_key) < 0) return -1;
+                       p = scratch;
+               }
+               *p++ = h2c[*buf >> 4];
+               *p++ = h2c[*buf & 0x0F];
+               *p++ = 0x20;
+       }
+
+       if(p > scratch) {
+               p--;    /* Eat the tailing space */
+
+               if((st->size > 16)) {
+                       _i_INDENT(1);
+               }
+
+               /* Dump the incomplete 16-bytes row */
+               if(cb(scratch, p - scratch, app_key) < 0)
+                       return -1;
+       }
+
+    if(st->bits_unused) {
+        int ret = snprintf(scratch, sizeof(scratch), " (%d bit%s unused)",
+                           st->bits_unused, st->bits_unused == 1 ? "" : "s");
+        assert(ret > 0 && ret < (ssize_t)sizeof(scratch));
+        if(ret > 0 && ret < (ssize_t)sizeof(scratch)
+           && cb(scratch, ret, app_key) < 0)
+            return -1;
+    }
+
+       return 0;
+}
+
+/*
+ * Non-destructively remove the trailing 0-bits from the given bit string.
+ */
+static const BIT_STRING_t *
+BIT_STRING__compactify(const BIT_STRING_t *st, BIT_STRING_t *tmp) {
+    const uint8_t *b;
+    union {
+        const uint8_t *c_buf;
+        uint8_t *nc_buf;
+    } unconst;
+
+    if(st->size == 0) {
+        assert(st->bits_unused == 0);
+        return st;
+    } else {
+        for(b = &st->buf[st->size - 1]; b > st->buf && *b == 0; b--) {
+            ;
+        }
+        /* b points to the last byte which may contain data */
+        if(*b) {
+            int unused = 7;
+            uint8_t v = *b;
+            v &= -(int8_t)v;
+            if(v & 0x0F) unused -= 4;
+            if(v & 0x33) unused -= 2;
+            if(v & 0x55) unused -= 1;
+            tmp->size = b-st->buf + 1;
+            tmp->bits_unused = unused;
+        } else {
+            tmp->size = b-st->buf;
+            tmp->bits_unused = 0;
+        }
+
+        assert(b >= st->buf);
+    }
+
+    unconst.c_buf = st->buf;
+    tmp->buf = unconst.nc_buf;
+    return tmp;
+}
+
+/*
+ * Lexicographically compare the common prefix of both strings,
+ * and if it is the same return -1 for the smallest string.
+ */
+int
+BIT_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
+                   const void *bptr) {
+    /*
+     * Remove information about trailing bits, since
+     * X.680 (08/2015) #22.7 "ensure that different semantics are not"
+     * "associated with [values that differ only in] the trailing 0 bits."
+     */
+    BIT_STRING_t compact_a, compact_b;
+    const BIT_STRING_t *a = BIT_STRING__compactify(aptr, &compact_a);
+    const BIT_STRING_t *b = BIT_STRING__compactify(bptr, &compact_b);
+    const asn_OCTET_STRING_specifics_t *specs = td->specifics;
+
+    assert(specs && specs->subvariant == ASN_OSUBV_BIT);
+
+    if(a && b) {
+        size_t common_prefix_size = a->size <= b->size ? a->size : b->size;
+        int ret = memcmp(a->buf, b->buf, common_prefix_size);
+        if(ret == 0) {
+            /* Figure out which string with equal prefixes is longer. */
+            if(a->size < b->size) {
+                return -1;
+            } else if(a->size > b->size) {
+                return 1;
+            } else {
+                /* Figure out how many unused bits */
+                if(a->bits_unused > b->bits_unused) {
+                    return -1;
+                } else if(a->bits_unused < b->bits_unused) {
+                    return 1;
+                } else {
+                    return 0;
+                }
+            }
+        } else {
+            return ret;
+        }
+    } else if(!a && !b) {
+        return 0;
+    } else if(!a) {
+        return -1;
+    } else {
+        return 1;
+    }
+}
+
+#ifndef  ASN_DISABLE_PER_SUPPORT
+
+#undef  RETURN
+#define RETURN(_code)                       \
+    do {                                    \
+        asn_dec_rval_t tmprval;             \
+        tmprval.code = _code;               \
+        tmprval.consumed = consumed_myself; \
+        return tmprval;                     \
+    } while(0)
+
+static asn_per_constraint_t asn_DEF_BIT_STRING_constraint_size = {
+    APC_SEMI_CONSTRAINED, -1, -1, 0, 0};
+
+asn_dec_rval_t
+BIT_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx,
+                       const asn_TYPE_descriptor_t *td,
+                       const asn_per_constraints_t *constraints, void **sptr,
+                       asn_per_data_t *pd) {
+    const asn_OCTET_STRING_specifics_t *specs = td->specifics
+               ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+               : &asn_SPC_BIT_STRING_specs;
+    const asn_per_constraints_t *pc =
+        constraints ? constraints : td->encoding_constraints.per_constraints;
+       const asn_per_constraint_t *csiz;
+       asn_dec_rval_t rval = { RC_OK, 0 };
+       BIT_STRING_t *st = (BIT_STRING_t *)*sptr;
+       ssize_t consumed_myself = 0;
+       int repeat;
+
+       (void)opt_codec_ctx;
+
+       if(pc) {
+               csiz = &pc->size;
+       } else {
+               csiz = &asn_DEF_BIT_STRING_constraint_size;
+       }
+
+       if(specs->subvariant != ASN_OSUBV_BIT) {
+               ASN_DEBUG("Subvariant %d is not BIT OSUBV_BIT", specs->subvariant);
+               RETURN(RC_FAIL);
+    }
+
+       /*
+        * Allocate the string.
+        */
+       if(!st) {
+               st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size));
+               if(!st) RETURN(RC_FAIL);
+       }
+
+       ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d",
+               csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible",
+               csiz->lower_bound, csiz->upper_bound, csiz->effective_bits);
+
+       if(csiz->flags & APC_EXTENSIBLE) {
+               int inext = per_get_few_bits(pd, 1);
+               if(inext < 0) RETURN(RC_WMORE);
+               if(inext) {
+                       csiz = &asn_DEF_BIT_STRING_constraint_size;
+               }
+       }
+
+       if(csiz->effective_bits >= 0) {
+               FREEMEM(st->buf);
+        st->size = (csiz->upper_bound + 7) >> 3;
+        st->buf = (uint8_t *)MALLOC(st->size + 1);
+               if(!st->buf) { st->size = 0; RETURN(RC_FAIL); }
+       }
+
+       /* X.691, #16.5: zero-length encoding */
+       /* X.691, #16.6: short fixed length encoding (up to 2 octets) */
+       /* X.691, #16.7: long fixed length encoding (up to 64K octets) */
+       if(csiz->effective_bits == 0) {
+               int ret;
+        ASN_DEBUG("Encoding BIT STRING size %ld", csiz->upper_bound);
+        ret = per_get_many_bits(pd, st->buf, 0, csiz->upper_bound);
+               if(ret < 0) RETURN(RC_WMORE);
+               consumed_myself += csiz->upper_bound;
+               st->buf[st->size] = 0;
+        st->bits_unused = (8 - (csiz->upper_bound & 0x7)) & 0x7;
+        RETURN(RC_OK);
+       }
+
+       st->size = 0;
+       do {
+               ssize_t raw_len;
+               ssize_t len_bytes;
+               ssize_t len_bits;
+               void *p;
+               int ret;
+
+               /* Get the PER length */
+               raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound,
+                                         &repeat);
+               if(raw_len < 0) RETURN(RC_WMORE);
+        if(raw_len == 0 && st->buf) break;
+
+               ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)",
+                       (long)csiz->effective_bits, (long)raw_len,
+                       repeat ? "repeat" : "once", td->name);
+        len_bits = raw_len;
+        len_bytes = (len_bits + 7) >> 3;
+        if(len_bits & 0x7) st->bits_unused = 8 - (len_bits & 0x7);
+        /* len_bits be multiple of 16K if repeat is set */
+        p = REALLOC(st->buf, st->size + len_bytes + 1);
+               if(!p) RETURN(RC_FAIL);
+               st->buf = (uint8_t *)p;
+
+        ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits);
+        if(ret < 0) RETURN(RC_WMORE);
+               st->size += len_bytes;
+       } while(repeat);
+       st->buf[st->size] = 0;  /* nul-terminate */
+
+       return rval;
+}
+
+asn_enc_rval_t
+BIT_STRING_encode_uper(const asn_TYPE_descriptor_t *td,
+                       const asn_per_constraints_t *constraints,
+                       const void *sptr, asn_per_outp_t *po) {
+    const asn_OCTET_STRING_specifics_t *specs =
+        td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+                      : &asn_SPC_BIT_STRING_specs;
+    const asn_per_constraints_t *pc =
+        constraints ? constraints : td->encoding_constraints.per_constraints;
+       const asn_per_constraint_t *csiz;
+       const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+       BIT_STRING_t compact_bstr;  /* Do not modify this directly! */
+       asn_enc_rval_t er = { 0, 0, 0 };
+       int inext = 0;          /* Lies not within extension root */
+       size_t size_in_bits;
+       const uint8_t *buf;
+       int ret;
+       int ct_extensible;
+
+       if(!st || (!st->buf && st->size))
+               ASN__ENCODE_FAILED;
+
+       if(specs->subvariant == ASN_OSUBV_BIT) {
+        if((st->size == 0 && st->bits_unused) || (st->bits_unused & ~7))
+            ASN__ENCODE_FAILED;
+    } else {
+               ASN__ENCODE_FAILED;
+    }
+
+       if(pc) {
+        csiz = &pc->size;
+    } else {
+               csiz = &asn_DEF_BIT_STRING_constraint_size;
+       }
+       ct_extensible = csiz->flags & APC_EXTENSIBLE;
+
+    /* Figure out the size without the trailing bits */
+    st = BIT_STRING__compactify(st, &compact_bstr);
+    size_in_bits = 8 * st->size - st->bits_unused;
+
+    ASN_DEBUG(
+        "Encoding %s into %" ASN_PRI_SIZE " bits"
+        " (%ld..%ld, effective %d)%s",
+        td->name, size_in_bits, csiz->lower_bound, csiz->upper_bound,
+        csiz->effective_bits, ct_extensible ? " EXT" : "");
+
+    /* Figure out whether size lies within PER visible constraint */
+
+    if(csiz->effective_bits >= 0) {
+        if((ssize_t)size_in_bits > csiz->upper_bound) {
+            if(ct_extensible) {
+                csiz = &asn_DEF_BIT_STRING_constraint_size;
+                inext = 1;
+            } else {
+                ASN__ENCODE_FAILED;
+            }
+        }
+    } else {
+        inext = 0;
+    }
+
+    if(ct_extensible) {
+               /* Declare whether length is [not] within extension root */
+               if(per_put_few_bits(po, inext, 1))
+                       ASN__ENCODE_FAILED;
+       }
+
+    if(csiz->effective_bits >= 0 && !inext) {
+        int add_trailer = (ssize_t)size_in_bits < csiz->lower_bound;
+        ASN_DEBUG(
+            "Encoding %" ASN_PRI_SIZE " bytes (%ld), length (in %d bits) trailer %d; actual "
+            "value %" ASN_PRI_SSIZE "",
+            st->size, size_in_bits - csiz->lower_bound, csiz->effective_bits,
+            add_trailer,
+            add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound);
+        ret = per_put_few_bits(
+            po, add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound,
+            csiz->effective_bits);
+        if(ret) ASN__ENCODE_FAILED;
+        ret = per_put_many_bits(po, st->buf, size_in_bits);
+        if(ret) ASN__ENCODE_FAILED;
+        if(add_trailer) {
+            static const uint8_t zeros[16];
+            size_t trailing_zero_bits = csiz->lower_bound - size_in_bits;
+            while(trailing_zero_bits > 0) {
+                if(trailing_zero_bits > 8 * sizeof(zeros)) {
+                    ret = per_put_many_bits(po, zeros, 8 * sizeof(zeros));
+                    trailing_zero_bits -= 8 * sizeof(zeros);
+                } else {
+                    ret = per_put_many_bits(po, zeros, trailing_zero_bits);
+                    trailing_zero_bits = 0;
+                }
+                if(ret) ASN__ENCODE_FAILED;
+            }
+        }
+        ASN__ENCODED_OK(er);
+    }
+
+    ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size);
+
+    buf = st->buf;
+    do {
+        int need_eom = 0;
+        ssize_t maySave = uper_put_length(po, size_in_bits, &need_eom);
+        if(maySave < 0) ASN__ENCODE_FAILED;
+
+        ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "", maySave, size_in_bits);
+
+        ret = per_put_many_bits(po, buf, maySave);
+        if(ret) ASN__ENCODE_FAILED;
+
+        buf += maySave >> 3;
+        size_in_bits -= maySave;
+        assert(!(maySave & 0x07) || !size_in_bits);
+        if(need_eom && uper_put_length(po, 0, 0))
+            ASN__ENCODE_FAILED; /* End of Message length */
+    } while(size_in_bits);
+
+    ASN__ENCODED_OK(er);
+}
+
+#endif  /* ASN_DISABLE_PER_SUPPORT */
+
+asn_random_fill_result_t
+BIT_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr,
+                       const asn_encoding_constraints_t *constraints,
+                       size_t max_length) {
+    const asn_OCTET_STRING_specifics_t *specs =
+        td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+                      : &asn_SPC_BIT_STRING_specs;
+    asn_random_fill_result_t result_ok = {ARFILL_OK, 1};
+    asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0};
+    asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0};
+    static unsigned lengths[] = {0,     1,     2,     3,     4,     8,
+                                 126,   127,   128,   16383, 16384, 16385,
+                                 65534, 65535, 65536, 65537};
+    uint8_t *buf;
+    uint8_t *bend;
+    uint8_t *b;
+    size_t rnd_bits, rnd_len;
+    BIT_STRING_t *st;
+
+    if(max_length == 0) return result_skipped;
+
+    switch(specs->subvariant) {
+    case ASN_OSUBV_ANY:
+        return result_failed;
+    case ASN_OSUBV_BIT:
+        break;
+    default:
+        break;
+    }
+
+    /* Figure out how far we should go */
+    rnd_bits = lengths[asn_random_between(
+        0, sizeof(lengths) / sizeof(lengths[0]) - 1)];
+    if(!constraints || !constraints->per_constraints)
+        constraints = &td->encoding_constraints;
+    if(constraints->per_constraints) {
+        const asn_per_constraint_t *pc = &constraints->per_constraints->size;
+        if(pc->flags & APC_CONSTRAINED) {
+            long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length
+                                             ? pc->upper_bound
+                                             : (ssize_t)max_length;
+            if(max_length < (size_t)pc->lower_bound) {
+                return result_skipped;
+            }
+            if(pc->flags & APC_EXTENSIBLE) {
+                switch(asn_random_between(0, 5)) {
+                case 0:
+                    if(pc->lower_bound > 0) {
+                        rnd_bits = pc->lower_bound - 1;
+                        break;
+                    }
+                    /* Fall through */
+                case 1:
+                    rnd_bits = pc->upper_bound + 1;
+                    break;
+                case 2:
+                    /* Keep rnd_bits from the table */
+                    if(rnd_bits < max_length) {
+                        break;
+                    }
+                    /* Fall through */
+                default:
+                    rnd_bits = asn_random_between(pc->lower_bound,
+                                                  suggested_upper_bound);
+                }
+            } else {
+                rnd_bits =
+                    asn_random_between(pc->lower_bound, suggested_upper_bound);
+            }
+        } else {
+            rnd_bits = asn_random_between(0, max_length - 1);
+        }
+    } else if(rnd_bits >= max_length) {
+        rnd_bits = asn_random_between(0, max_length - 1);
+    }
+
+    rnd_len = (rnd_bits + 7) / 8;
+    buf = CALLOC(1, rnd_len + 1);
+    if(!buf) return result_failed;
+
+    bend = &buf[rnd_len];
+
+    for(b = buf; b < bend; b++) {
+        *(uint8_t *)b = asn_random_between(0, 255);
+    }
+    *b = 0; /* Zero-terminate just in case. */
+
+    if(*sptr) {
+        st = *sptr;
+        FREEMEM(st->buf);
+    } else {
+        st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size));
+        if(!st) {
+            FREEMEM(buf);
+            return result_failed;
+        }
+    }
+
+    st->buf = buf;
+    st->size = rnd_len;
+    st->bits_unused = (8 - (rnd_bits & 0x7)) & 0x7;
+    if(st->bits_unused) {
+        assert(st->size > 0);
+        st->buf[st->size-1] &= 0xff << st->bits_unused;
+    }
+
+    result_ok.length = st->size;
+    return result_ok;
+}
diff --git a/e2ap/lib/BIT_STRING_oer.c b/e2ap/lib/BIT_STRING_oer.c
new file mode 100644 (file)
index 0000000..aff5075
--- /dev/null
@@ -0,0 +1,174 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN_DISABLE_OER_SUPPORT
+
+#include <asn_internal.h>
+#include <BIT_STRING.h>
+#include <errno.h>
+
+asn_dec_rval_t
+BIT_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx,
+                      const asn_TYPE_descriptor_t *td,
+                      const asn_oer_constraints_t *constraints, void **sptr,
+                      const void *ptr, size_t size) {
+    BIT_STRING_t *st = (BIT_STRING_t *)*sptr;
+    const asn_oer_constraints_t *cts =
+        constraints ? constraints : td->encoding_constraints.oer_constraints;
+    ssize_t ct_size = cts ? cts->size : -1;
+    asn_dec_rval_t rval = {RC_OK, 0};
+    size_t expected_length = 0;
+
+    (void)opt_codec_ctx;
+
+    if(!st) {
+        st = (BIT_STRING_t *)(*sptr = CALLOC(1, sizeof(*st)));
+        if(!st) ASN__DECODE_FAILED;
+    }
+
+    if(ct_size >= 0) {
+        expected_length = (ct_size + 7) >> 3;
+        st->bits_unused = (8 - (ct_size & 7)) & 7;
+    } else {
+        /*
+         * X.696 (08/2015) #13.3.1
+         * Encode length determinant as _number of octets_, but only
+         * if upper bound is not equal to lower bound.
+         */
+        ssize_t len_len = oer_fetch_length(ptr, size, &expected_length);
+        if(len_len > 0) {
+            ptr = (const char *)ptr + len_len;
+            size -= len_len;
+        } else if(len_len == 0) {
+            ASN__DECODE_STARVED;
+        } else if(len_len < 0) {
+            ASN__DECODE_FAILED;
+        }
+
+        if(expected_length < 1) {
+            ASN__DECODE_FAILED;
+        } else if(expected_length > size) {
+            ASN__DECODE_STARVED;
+        }
+
+        st->bits_unused = ((const uint8_t *)ptr)[0];
+        if(st->bits_unused & ~7) {
+            ASN_DEBUG("%s: unused bits outside of 0..7 range", td->name);
+            ASN__DECODE_FAILED;
+        }
+        ptr = (const char *)ptr + 1;
+        size--;
+        expected_length--;
+        rval.consumed = len_len + 1;
+    }
+
+    if(size < expected_length) {
+        ASN__DECODE_STARVED;
+    } else {
+        uint8_t *buf = MALLOC(expected_length + 1);
+        if(buf == NULL) {
+            ASN__DECODE_FAILED;
+        } else {
+            memcpy(buf, ptr, expected_length);
+            buf[expected_length] = '\0';
+        }
+        FREEMEM(st->buf);
+        st->buf = buf;
+        st->size = expected_length;
+        if(expected_length > 0) {
+            buf[expected_length - 1] &= (0xff << st->bits_unused);
+        }
+
+        rval.consumed += expected_length;
+        return rval;
+    }
+}
+
+/*
+ * Encode as Canonical OER.
+ */
+asn_enc_rval_t
+BIT_STRING_encode_oer(const asn_TYPE_descriptor_t *td,
+                      const asn_oer_constraints_t *constraints,
+                      const void *sptr, asn_app_consume_bytes_f *cb,
+                      void *app_key) {
+    const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+    asn_enc_rval_t erval = {0, 0, 0};
+    const asn_oer_constraints_t *cts =
+        constraints ? constraints : td->encoding_constraints.oer_constraints;
+    ssize_t ct_size = cts ? cts->size : -1;
+    size_t trailing_zeros = 0;
+    int fix_last_byte = 0;
+
+    if(!st) ASN__ENCODE_FAILED;
+
+    if(st->bits_unused & ~7) {
+        ASN_DEBUG("BIT STRING unused bits %d out of 0..7 range",
+                  st->bits_unused);
+        ASN__ENCODE_FAILED;
+    }
+    if(st->bits_unused && !(st->size && st->buf)) {
+        ASN_DEBUG("BIT STRING %s size 0 can't support unused bits %d", td->name,
+                  st->bits_unused);
+        ASN__ENCODE_FAILED;
+    }
+
+    if(ct_size >= 0) {
+        size_t ct_bytes = (ct_size + 7) >> 3;
+        if(st->size > ct_bytes) {
+            ASN_DEBUG("More bits in BIT STRING %s (%" ASN_PRI_SSIZE ") than constrained %" ASN_PRI_SSIZE "",
+                      td->name, 8 * st->size - st->bits_unused, ct_size);
+            ASN__ENCODE_FAILED;
+        }
+        trailing_zeros = ct_bytes - st->size;   /* Allow larger constraint */
+    } else {
+        uint8_t ub = st->bits_unused & 7;
+        ssize_t len_len = oer_serialize_length(1 + st->size, cb, app_key);
+        if(len_len < 0) ASN__ENCODE_FAILED;
+        if(cb(&ub, 1, app_key) < 0) {
+            ASN__ENCODE_FAILED;
+        }
+        erval.encoded += len_len + 1;
+    }
+
+    if(st->bits_unused) {
+        if(st->buf[st->size - 1] & (0xff << st->bits_unused)) {
+            fix_last_byte = 1;
+        }
+    }
+
+    if(cb(st->buf, st->size - fix_last_byte, app_key) < 0) {
+        ASN__ENCODE_FAILED;
+    }
+
+    if(fix_last_byte) {
+        uint8_t b = st->buf[st->size - 1] & (0xff << st->bits_unused);
+        if(cb(&b, 1, app_key) < 0) {
+            ASN__ENCODE_FAILED;
+        }
+    }
+
+    erval.encoded += st->size;
+
+    if(trailing_zeros) {
+        static uint8_t zeros[16];
+        while(trailing_zeros > 0) {
+            int ret;
+            if(trailing_zeros < sizeof(zeros)) {
+                ret = cb(zeros, trailing_zeros, app_key);
+                erval.encoded += trailing_zeros;
+            } else {
+                ret = cb(zeros, sizeof(zeros), app_key);
+                erval.encoded += sizeof(zeros);
+            }
+            if(ret < 0) ASN__ENCODE_FAILED;
+        }
+    }
+
+    return erval;
+}
+
+
+#endif  /* ASN_DISABLE_OER_SUPPORT */
diff --git a/e2ap/lib/BOOLEAN.c b/e2ap/lib/BOOLEAN.c
new file mode 100644 (file)
index 0000000..25831e2
--- /dev/null
@@ -0,0 +1,492 @@
+/*-
+ * Copyright (c) 2003, 2005 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <asn_codecs_prim.h>
+#include <BOOLEAN.h>
+
+/*
+ * BOOLEAN basic type description.
+ */
+static const ber_tlv_tag_t asn_DEF_BOOLEAN_tags[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (1 << 2))
+};
+asn_TYPE_operation_t asn_OP_BOOLEAN = {
+       BOOLEAN_free,
+       BOOLEAN_print,
+       BOOLEAN_compare,
+       BOOLEAN_decode_ber,
+       BOOLEAN_encode_der,
+       BOOLEAN_decode_xer,
+       BOOLEAN_encode_xer,
+#ifdef ASN_DISABLE_OER_SUPPORT
+       0,
+       0,
+#else
+       BOOLEAN_decode_oer,
+       BOOLEAN_encode_oer,
+#endif  /* ASN_DISABLE_OER_SUPPORT */
+#ifdef ASN_DISABLE_PER_SUPPORT
+       0,
+       0,
+       0,
+       0,
+#else
+       BOOLEAN_decode_uper,    /* Unaligned PER decoder */
+       BOOLEAN_encode_uper,    /* Unaligned PER encoder */
+       BOOLEAN_decode_aper,    /* Aligned PER decoder */
+       BOOLEAN_encode_aper,    /* Aligned PER encoder */
+#endif /* ASN_DISABLE_PER_SUPPORT */
+       BOOLEAN_random_fill,
+       0       /* Use generic outmost tag fetcher */
+};
+asn_TYPE_descriptor_t asn_DEF_BOOLEAN = {
+       "BOOLEAN",
+       "BOOLEAN",
+       &asn_OP_BOOLEAN,
+       asn_DEF_BOOLEAN_tags,
+       sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]),
+       asn_DEF_BOOLEAN_tags,   /* Same as above */
+       sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]),
+       { 0, 0, asn_generic_no_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
+/*
+ * Decode BOOLEAN type.
+ */
+asn_dec_rval_t
+BOOLEAN_decode_ber(const asn_codec_ctx_t *opt_codec_ctx,
+                   const asn_TYPE_descriptor_t *td, void **bool_value,
+                   const void *buf_ptr, size_t size, int tag_mode) {
+    BOOLEAN_t *st = (BOOLEAN_t *)*bool_value;
+       asn_dec_rval_t rval;
+       ber_tlv_len_t length;
+       ber_tlv_len_t lidx;
+
+       if(st == NULL) {
+               st = (BOOLEAN_t *)(*bool_value = CALLOC(1, sizeof(*st)));
+               if(st == NULL) {
+                       rval.code = RC_FAIL;
+                       rval.consumed = 0;
+                       return rval;
+               }
+       }
+
+       ASN_DEBUG("Decoding %s as BOOLEAN (tm=%d)",
+               td->name, tag_mode);
+
+       /*
+        * Check tags.
+        */
+       rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size,
+               tag_mode, 0, &length, 0);
+       if(rval.code != RC_OK)
+               return rval;
+
+       ASN_DEBUG("Boolean length is %d bytes", (int)length);
+
+       buf_ptr = ((const char *)buf_ptr) + rval.consumed;
+       size -= rval.consumed;
+       if(length > (ber_tlv_len_t)size) {
+               rval.code = RC_WMORE;
+               rval.consumed = 0;
+               return rval;
+       }
+
+       /*
+        * Compute boolean value.
+        */
+       for(*st = 0, lidx = 0;
+               (lidx < length) && *st == 0; lidx++) {
+               /*
+                * Very simple approach: read bytes until the end or
+                * value is already TRUE.
+                * BOOLEAN is not supposed to contain meaningful data anyway.
+                */
+               *st |= ((const uint8_t *)buf_ptr)[lidx];
+       }
+
+       rval.code = RC_OK;
+       rval.consumed += length;
+
+       ASN_DEBUG("Took %ld/%ld bytes to encode %s, value=%d",
+               (long)rval.consumed, (long)length,
+               td->name, *st);
+       
+       return rval;
+}
+
+asn_enc_rval_t
+BOOLEAN_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr,
+                   int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb,
+                   void *app_key) {
+       asn_enc_rval_t erval = {0,0,0};
+       const BOOLEAN_t *st = (const BOOLEAN_t *)sptr;
+
+       erval.encoded = der_write_tags(td, 1, tag_mode, 0, tag, cb, app_key);
+       if(erval.encoded == -1) {
+               erval.failed_type = td;
+               erval.structure_ptr = sptr;
+               return erval;
+       }
+
+       if(cb) {
+               uint8_t bool_value;
+
+               bool_value = *st ? 0xff : 0; /* 0xff mandated by DER */
+
+               if(cb(&bool_value, 1, app_key) < 0) {
+                       erval.encoded = -1;
+                       erval.failed_type = td;
+                       erval.structure_ptr = sptr;
+                       return erval;
+               }
+       }
+
+       erval.encoded += 1;
+
+       ASN__ENCODED_OK(erval);
+}
+
+
+/*
+ * Decode the chunk of XML text encoding INTEGER.
+ */
+static enum xer_pbd_rval
+BOOLEAN__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr,
+                         const void *chunk_buf, size_t chunk_size) {
+    BOOLEAN_t *st = (BOOLEAN_t *)sptr;
+       const char *p = (const char *)chunk_buf;
+
+       (void)td;
+
+       if(chunk_size && p[0] == 0x3c /* '<' */) {
+               switch(xer_check_tag(chunk_buf, chunk_size, "false")) {
+               case XCT_BOTH:
+                       /* "<false/>" */
+                       *st = 0;
+                       break;
+               case XCT_UNKNOWN_BO:
+                       if(xer_check_tag(chunk_buf, chunk_size, "true")
+                                       != XCT_BOTH)
+                               return XPBD_BROKEN_ENCODING;
+                       /* "<true/>" */
+                       *st = 1;        /* Or 0xff as in DER?.. */
+                       break;
+               default:
+                       return XPBD_BROKEN_ENCODING;
+               }
+               return XPBD_BODY_CONSUMED;
+       } else {
+               return XPBD_BROKEN_ENCODING;
+       }
+}
+
+
+asn_dec_rval_t
+BOOLEAN_decode_xer(const asn_codec_ctx_t *opt_codec_ctx,
+                   const asn_TYPE_descriptor_t *td, void **sptr,
+                   const char *opt_mname, const void *buf_ptr, size_t size) {
+    return xer_decode_primitive(opt_codec_ctx, td,
+               sptr, sizeof(BOOLEAN_t), opt_mname, buf_ptr, size,
+               BOOLEAN__xer_body_decode);
+}
+
+asn_enc_rval_t
+BOOLEAN_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr,
+       int ilevel, enum xer_encoder_flags_e flags,
+               asn_app_consume_bytes_f *cb, void *app_key) {
+       const BOOLEAN_t *st = (const BOOLEAN_t *)sptr;
+       asn_enc_rval_t er = {0, 0, 0};
+
+       (void)ilevel;
+       (void)flags;
+
+       if(!st) ASN__ENCODE_FAILED;
+
+       if(*st) {
+               ASN__CALLBACK("<true/>", 7);
+       } else {
+               ASN__CALLBACK("<false/>", 8);
+       }
+
+       ASN__ENCODED_OK(er);
+cb_failed:
+       ASN__ENCODE_FAILED;
+}
+
+int
+BOOLEAN_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
+              asn_app_consume_bytes_f *cb, void *app_key) {
+    const BOOLEAN_t *st = (const BOOLEAN_t *)sptr;
+       const char *buf;
+       size_t buflen;
+
+       (void)td;       /* Unused argument */
+       (void)ilevel;   /* Unused argument */
+
+       if(st) {
+               if(*st) {
+                       buf = "TRUE";
+                       buflen = 4;
+               } else {
+                       buf = "FALSE";
+                       buflen = 5;
+               }
+       } else {
+               buf = "<absent>";
+               buflen = 8;
+       }
+
+       return (cb(buf, buflen, app_key) < 0) ? -1 : 0;
+}
+
+void
+BOOLEAN_free(const asn_TYPE_descriptor_t *td, void *ptr,
+             enum asn_struct_free_method method) {
+    if(td && ptr) {
+        switch(method) {
+        case ASFM_FREE_EVERYTHING:
+            FREEMEM(ptr);
+            break;
+        case ASFM_FREE_UNDERLYING:
+            break;
+        case ASFM_FREE_UNDERLYING_AND_RESET:
+            memset(ptr, 0, sizeof(BOOLEAN_t));
+            break;
+        }
+    }
+}
+
+#ifndef ASN_DISABLE_PER_SUPPORT
+
+asn_dec_rval_t
+BOOLEAN_decode_uper(const asn_codec_ctx_t *opt_codec_ctx,
+                    const asn_TYPE_descriptor_t *td,
+                    const asn_per_constraints_t *constraints, void **sptr,
+                    asn_per_data_t *pd) {
+    asn_dec_rval_t rv;
+       BOOLEAN_t *st = (BOOLEAN_t *)*sptr;
+
+       (void)opt_codec_ctx;
+    (void)td;
+       (void)constraints;
+
+       if(!st) {
+               st = (BOOLEAN_t *)(*sptr = MALLOC(sizeof(*st)));
+               if(!st) ASN__DECODE_FAILED;
+       }
+
+       /*
+        * Extract a single bit
+        */
+       switch(per_get_few_bits(pd, 1)) {
+       case 1: *st = 1; break;
+       case 0: *st = 0; break;
+       case -1: default: ASN__DECODE_STARVED;
+       }
+
+       ASN_DEBUG("%s decoded as %s", td->name, *st ? "TRUE" : "FALSE");
+
+       rv.code = RC_OK;
+       rv.consumed = 1;
+       return rv;
+}
+
+
+asn_enc_rval_t
+BOOLEAN_encode_uper(const asn_TYPE_descriptor_t *td,
+                    const asn_per_constraints_t *constraints, const void *sptr,
+                    asn_per_outp_t *po) {
+    const BOOLEAN_t *st = (const BOOLEAN_t *)sptr;
+       asn_enc_rval_t er = { 0, 0, 0 };
+
+       (void)constraints;
+
+       if(!st) ASN__ENCODE_FAILED;
+
+       if(per_put_few_bits(po, *st ? 1 : 0, 1))
+               ASN__ENCODE_FAILED;
+
+       ASN__ENCODED_OK(er);
+}
+
+asn_dec_rval_t
+BOOLEAN_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td,
+                    const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) {
+       asn_dec_rval_t rv;
+       BOOLEAN_t *st = (BOOLEAN_t *)*sptr;
+
+       (void)opt_codec_ctx;
+       (void)constraints;
+       (void)td;
+
+       if(!st) {
+               st = (BOOLEAN_t *)(*sptr = MALLOC(sizeof(*st)));
+               if(!st) ASN__DECODE_FAILED;
+       }
+
+       /*
+        * Extract a single bit
+        */
+       switch(per_get_few_bits(pd, 1)) {
+       case 1:
+               *st = 1;
+               break;
+       case 0:
+               *st = 0;
+               break;
+       case -1:
+       default:
+               ASN__DECODE_STARVED;
+       }
+
+       ASN_DEBUG("%s decoded as %s", td->name, *st ? "TRUE" : "FALSE");
+
+       rv.code = RC_OK;
+       rv.consumed = 1;
+       return rv;
+}
+
+asn_enc_rval_t
+BOOLEAN_encode_aper(const asn_TYPE_descriptor_t *td,
+                    const asn_per_constraints_t *constraints,
+                    const void *sptr, asn_per_outp_t *po) {
+       const BOOLEAN_t *st = (const BOOLEAN_t *)sptr;
+       asn_enc_rval_t er = { 0, 0, 0 };
+
+       (void)constraints;
+
+       if(!st) ASN__ENCODE_FAILED;
+
+       if(per_put_few_bits(po, *st ? 1 : 0, 1))
+               ASN__ENCODE_FAILED;
+
+       ASN__ENCODED_OK(er);
+}
+
+#endif /* ASN_DISABLE_PER_SUPPORT */
+
+#ifndef  ASN_DISABLE_OER_SUPPORT
+
+/*
+ * Encode as Canonical OER.
+ */
+asn_enc_rval_t
+BOOLEAN_encode_oer(const asn_TYPE_descriptor_t *td,
+                   const asn_oer_constraints_t *constraints, const void *sptr,
+                   asn_app_consume_bytes_f *cb, void *app_key) {
+    asn_enc_rval_t er = { 1, 0, 0 };
+    const BOOLEAN_t *st = sptr;
+    uint8_t bool_value = *st ? 0xff : 0; /* 0xff mandated by OER */
+
+    (void)td;
+    (void)constraints;  /* Constraints are unused in OER */
+
+    if(cb(&bool_value, 1, app_key) < 0) {
+        ASN__ENCODE_FAILED;
+    } else {
+        ASN__ENCODED_OK(er);
+    }
+}
+
+asn_dec_rval_t
+BOOLEAN_decode_oer(const asn_codec_ctx_t *opt_codec_ctx,
+                   const asn_TYPE_descriptor_t *td,
+                   const asn_oer_constraints_t *constraints, void **sptr,
+                   const void *ptr, size_t size) {
+    asn_dec_rval_t ok = {RC_OK, 1};
+    BOOLEAN_t *st;
+
+    (void)opt_codec_ctx;
+    (void)td;
+    (void)constraints; /* Constraints are unused in OER */
+
+    if(size < 1) {
+        ASN__DECODE_STARVED;
+    }
+
+    if(!(st = *sptr)) {
+        st = (BOOLEAN_t *)(*sptr = CALLOC(1, sizeof(*st)));
+        if(!st) ASN__DECODE_FAILED;
+    }
+
+    *st = *(const uint8_t *)ptr;
+
+    return ok;
+}
+
+
+
+#endif
+
+int
+BOOLEAN_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
+                const void *bptr) {
+    const BOOLEAN_t *a = aptr;
+    const BOOLEAN_t *b = bptr;
+
+    (void)td;
+
+    if(a && b) {
+        if(!*a == !*b) {    /* TRUE can be encoded by any non-zero byte. */
+            return 0;
+        } else if(!*a) {
+            return -1;
+        } else {
+            return 1;
+        }
+    } else if(!a) {
+        return -1;
+    } else {
+        return 1;
+    }
+}
+
+asn_random_fill_result_t
+BOOLEAN_random_fill(const asn_TYPE_descriptor_t *td, void **sptr,
+                    const asn_encoding_constraints_t *constraints,
+                    size_t max_length) {
+    asn_random_fill_result_t result_ok = {ARFILL_OK, 1};
+    asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0};
+    asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0};
+    BOOLEAN_t *st = *sptr;
+
+    if(max_length == 0) return result_skipped;
+
+    if(st == NULL) {
+        st = (BOOLEAN_t *)(*sptr = CALLOC(1, sizeof(*st)));
+        if(st == NULL) {
+            return result_failed;
+        }
+    }
+
+    if(!constraints || !constraints->per_constraints)
+        constraints = &td->encoding_constraints;
+    if(constraints->per_constraints) {
+        const asn_per_constraint_t *pc = &constraints->per_constraints->value;
+        if(pc->flags & APC_CONSTRAINED) {
+            *st = asn_random_between(pc->lower_bound, pc->upper_bound);
+            return result_ok;
+        }
+    }
+
+    /* Simulate booleans that are sloppily set and biased. */
+    switch(asn_random_between(0, 7)) {
+    case 0:
+    case 1:
+    case 2:
+        *st = 0; break;
+    case 3: *st = -1; break;
+    case 4: *st = 1; break;
+    case 5: *st = INT_MIN; break;
+    case 6: *st = INT_MAX; break;
+    default:
+        *st = asn_random_between(INT_MIN, INT_MAX);
+        break;
+    }
+    return result_ok;
+}
diff --git a/e2ap/lib/BandInfo.c b/e2ap/lib/BandInfo.c
new file mode 100644 (file)
index 0000000..41eabeb
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "BandInfo.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_BandInfo_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct BandInfo, freqBandIndicator),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_FreqBandIndicator,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "freqBandIndicator"
+               },
+       { ATF_POINTER, 1, offsetof(struct BandInfo, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P169,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_BandInfo_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_BandInfo_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_BandInfo_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* freqBandIndicator */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_BandInfo_specs_1 = {
+       sizeof(struct BandInfo),
+       offsetof(struct BandInfo, _asn_ctx),
+       asn_MAP_BandInfo_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_BandInfo_oms_1, /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_BandInfo = {
+       "BandInfo",
+       "BandInfo",
+       &asn_OP_SEQUENCE,
+       asn_DEF_BandInfo_tags_1,
+       sizeof(asn_DEF_BandInfo_tags_1)
+               /sizeof(asn_DEF_BandInfo_tags_1[0]), /* 1 */
+       asn_DEF_BandInfo_tags_1,        /* Same as above */
+       sizeof(asn_DEF_BandInfo_tags_1)
+               /sizeof(asn_DEF_BandInfo_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_BandInfo_1,
+       2,      /* Elements count */
+       &asn_SPC_BandInfo_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/BandwidthReducedSI.c b/e2ap/lib/BandwidthReducedSI.c
new file mode 100644 (file)
index 0000000..ec9eb38
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "BandwidthReducedSI.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_BandwidthReducedSI_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_BandwidthReducedSI_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_BandwidthReducedSI_value2enum_1[] = {
+       { 0,    9,      "scheduled" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_BandwidthReducedSI_enum2value_1[] = {
+       0       /* scheduled(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_BandwidthReducedSI_specs_1 = {
+       asn_MAP_BandwidthReducedSI_value2enum_1,        /* "tag" => N; sorted by tag */
+       asn_MAP_BandwidthReducedSI_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_BandwidthReducedSI_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_BandwidthReducedSI = {
+       "BandwidthReducedSI",
+       "BandwidthReducedSI",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_BandwidthReducedSI_tags_1,
+       sizeof(asn_DEF_BandwidthReducedSI_tags_1)
+               /sizeof(asn_DEF_BandwidthReducedSI_tags_1[0]), /* 1 */
+       asn_DEF_BandwidthReducedSI_tags_1,      /* Same as above */
+       sizeof(asn_DEF_BandwidthReducedSI_tags_1)
+               /sizeof(asn_DEF_BandwidthReducedSI_tags_1[0]), /* 1 */
+       { &asn_OER_type_BandwidthReducedSI_constr_1, &asn_PER_type_BandwidthReducedSI_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_BandwidthReducedSI_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/BearerType.c b/e2ap/lib/BearerType.c
new file mode 100644 (file)
index 0000000..2acd3cf
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "BearerType.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_BearerType_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_BearerType_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_BearerType_value2enum_1[] = {
+       { 0,    6,      "non-IP" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_BearerType_enum2value_1[] = {
+       0       /* non-IP(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_BearerType_specs_1 = {
+       asn_MAP_BearerType_value2enum_1,        /* "tag" => N; sorted by tag */
+       asn_MAP_BearerType_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_BearerType_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_BearerType = {
+       "BearerType",
+       "BearerType",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_BearerType_tags_1,
+       sizeof(asn_DEF_BearerType_tags_1)
+               /sizeof(asn_DEF_BearerType_tags_1[0]), /* 1 */
+       asn_DEF_BearerType_tags_1,      /* Same as above */
+       sizeof(asn_DEF_BearerType_tags_1)
+               /sizeof(asn_DEF_BearerType_tags_1[0]), /* 1 */
+       { &asn_OER_type_BearerType_constr_1, &asn_PER_type_BearerType_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_BearerType_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/BenefitMetric.c b/e2ap/lib/BenefitMetric.c
new file mode 100644 (file)
index 0000000..0aa2690
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "BenefitMetric.h"
+
+int
+BenefitMetric_constraint(const 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 >= -101 && value <= 100)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_BenefitMetric_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_BenefitMetric_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8, -101,  100 }        /* (-101..100,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_BenefitMetric_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_BenefitMetric = {
+       "BenefitMetric",
+       "BenefitMetric",
+       &asn_OP_NativeInteger,
+       asn_DEF_BenefitMetric_tags_1,
+       sizeof(asn_DEF_BenefitMetric_tags_1)
+               /sizeof(asn_DEF_BenefitMetric_tags_1[0]), /* 1 */
+       asn_DEF_BenefitMetric_tags_1,   /* Same as above */
+       sizeof(asn_DEF_BenefitMetric_tags_1)
+               /sizeof(asn_DEF_BenefitMetric_tags_1[0]), /* 1 */
+       { &asn_OER_type_BenefitMetric_constr_1, &asn_PER_type_BenefitMetric_constr_1, BenefitMetric_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/BitRate.c b/e2ap/lib/BitRate.c
new file mode 100644 (file)
index 0000000..ed7ea60
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "BitRate.h"
+
+int
+BitRate_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+                       asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+       const INTEGER_t *st = (const INTEGER_t *)sptr;
+       long value;
+       
+       if(!sptr) {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: value not given (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+       
+       if(asn_INTEGER2long(st, &value)) {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: value too large (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+       
+       if((value >= 0 && value <= 10000000000)) {
+               /* 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 INTEGER,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_BitRate_constr_1 CC_NOTUSED = {
+       { 8, 1 }        /* (0..10000000000) */,
+       -1};
+asn_per_constraints_t asn_PER_type_BitRate_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       34, -1,  0,  10000000000 }     /* (0..10000000000) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_BitRate_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_BitRate = {
+       "BitRate",
+       "BitRate",
+       &asn_OP_INTEGER,
+       asn_DEF_BitRate_tags_1,
+       sizeof(asn_DEF_BitRate_tags_1)
+               /sizeof(asn_DEF_BitRate_tags_1[0]), /* 1 */
+       asn_DEF_BitRate_tags_1, /* Same as above */
+       sizeof(asn_DEF_BitRate_tags_1)
+               /sizeof(asn_DEF_BitRate_tags_1[0]), /* 1 */
+       { &asn_OER_type_BitRate_constr_1, &asn_PER_type_BitRate_constr_1, BitRate_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/BluetoothMeasConfig.c b/e2ap/lib/BluetoothMeasConfig.c
new file mode 100644 (file)
index 0000000..e6400d0
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "BluetoothMeasConfig.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_BluetoothMeasConfig_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_BluetoothMeasConfig_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_BluetoothMeasConfig_value2enum_1[] = {
+       { 0,    5,      "setup" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_BluetoothMeasConfig_enum2value_1[] = {
+       0       /* setup(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_BluetoothMeasConfig_specs_1 = {
+       asn_MAP_BluetoothMeasConfig_value2enum_1,       /* "tag" => N; sorted by tag */
+       asn_MAP_BluetoothMeasConfig_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_BluetoothMeasConfig_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_BluetoothMeasConfig = {
+       "BluetoothMeasConfig",
+       "BluetoothMeasConfig",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_BluetoothMeasConfig_tags_1,
+       sizeof(asn_DEF_BluetoothMeasConfig_tags_1)
+               /sizeof(asn_DEF_BluetoothMeasConfig_tags_1[0]), /* 1 */
+       asn_DEF_BluetoothMeasConfig_tags_1,     /* Same as above */
+       sizeof(asn_DEF_BluetoothMeasConfig_tags_1)
+               /sizeof(asn_DEF_BluetoothMeasConfig_tags_1[0]), /* 1 */
+       { &asn_OER_type_BluetoothMeasConfig_constr_1, &asn_PER_type_BluetoothMeasConfig_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_BluetoothMeasConfig_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/BluetoothMeasConfigNameList.c b/e2ap/lib/BluetoothMeasConfigNameList.c
new file mode 100644 (file)
index 0000000..547a67c
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "BluetoothMeasConfigNameList.h"
+
+static asn_oer_constraints_t asn_OER_type_BluetoothMeasConfigNameList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..4)) */};
+asn_per_constraints_t asn_PER_type_BluetoothMeasConfigNameList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       2,  2,  1,  4 }        /* (SIZE(1..4)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_BluetoothMeasConfigNameList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_BluetoothName,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_BluetoothMeasConfigNameList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_BluetoothMeasConfigNameList_specs_1 = {
+       sizeof(struct BluetoothMeasConfigNameList),
+       offsetof(struct BluetoothMeasConfigNameList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_BluetoothMeasConfigNameList = {
+       "BluetoothMeasConfigNameList",
+       "BluetoothMeasConfigNameList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_BluetoothMeasConfigNameList_tags_1,
+       sizeof(asn_DEF_BluetoothMeasConfigNameList_tags_1)
+               /sizeof(asn_DEF_BluetoothMeasConfigNameList_tags_1[0]), /* 1 */
+       asn_DEF_BluetoothMeasConfigNameList_tags_1,     /* Same as above */
+       sizeof(asn_DEF_BluetoothMeasConfigNameList_tags_1)
+               /sizeof(asn_DEF_BluetoothMeasConfigNameList_tags_1[0]), /* 1 */
+       { &asn_OER_type_BluetoothMeasConfigNameList_constr_1, &asn_PER_type_BluetoothMeasConfigNameList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_BluetoothMeasConfigNameList_1,
+       1,      /* Single element */
+       &asn_SPC_BluetoothMeasConfigNameList_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/BluetoothMeasurementConfiguration.c b/e2ap/lib/BluetoothMeasurementConfiguration.c
new file mode 100644 (file)
index 0000000..87cc770
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "BluetoothMeasurementConfiguration.h"
+
+#include "BluetoothMeasConfigNameList.h"
+#include "ProtocolExtensionContainer.h"
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_bt_rssi_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_bt_rssi_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_bt_rssi_value2enum_4[] = {
+       { 0,    4,      "true" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_bt_rssi_enum2value_4[] = {
+       0       /* true(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_bt_rssi_specs_4 = {
+       asn_MAP_bt_rssi_value2enum_4,   /* "tag" => N; sorted by tag */
+       asn_MAP_bt_rssi_enum2value_4,   /* 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_bt_rssi_tags_4[] = {
+       (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_bt_rssi_4 = {
+       "bt-rssi",
+       "bt-rssi",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_bt_rssi_tags_4,
+       sizeof(asn_DEF_bt_rssi_tags_4)
+               /sizeof(asn_DEF_bt_rssi_tags_4[0]) - 1, /* 1 */
+       asn_DEF_bt_rssi_tags_4, /* Same as above */
+       sizeof(asn_DEF_bt_rssi_tags_4)
+               /sizeof(asn_DEF_bt_rssi_tags_4[0]), /* 2 */
+       { &asn_OER_type_bt_rssi_constr_4, &asn_PER_type_bt_rssi_constr_4, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_bt_rssi_specs_4        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_BluetoothMeasurementConfiguration_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct BluetoothMeasurementConfiguration, bluetoothMeasConfig),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BluetoothMeasConfig,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "bluetoothMeasConfig"
+               },
+       { ATF_POINTER, 3, offsetof(struct BluetoothMeasurementConfiguration, bluetoothMeasConfigNameList),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BluetoothMeasConfigNameList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "bluetoothMeasConfigNameList"
+               },
+       { ATF_POINTER, 2, offsetof(struct BluetoothMeasurementConfiguration, bt_rssi),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_bt_rssi_4,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "bt-rssi"
+               },
+       { ATF_POINTER, 1, offsetof(struct BluetoothMeasurementConfiguration, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P111,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_BluetoothMeasurementConfiguration_oms_1[] = { 1, 2, 3 };
+static const ber_tlv_tag_t asn_DEF_BluetoothMeasurementConfiguration_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_BluetoothMeasurementConfiguration_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bluetoothMeasConfig */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* bluetoothMeasConfigNameList */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bt-rssi */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_BluetoothMeasurementConfiguration_specs_1 = {
+       sizeof(struct BluetoothMeasurementConfiguration),
+       offsetof(struct BluetoothMeasurementConfiguration, _asn_ctx),
+       asn_MAP_BluetoothMeasurementConfiguration_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_BluetoothMeasurementConfiguration_oms_1,        /* Optional members */
+       3, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_BluetoothMeasurementConfiguration = {
+       "BluetoothMeasurementConfiguration",
+       "BluetoothMeasurementConfiguration",
+       &asn_OP_SEQUENCE,
+       asn_DEF_BluetoothMeasurementConfiguration_tags_1,
+       sizeof(asn_DEF_BluetoothMeasurementConfiguration_tags_1)
+               /sizeof(asn_DEF_BluetoothMeasurementConfiguration_tags_1[0]), /* 1 */
+       asn_DEF_BluetoothMeasurementConfiguration_tags_1,       /* Same as above */
+       sizeof(asn_DEF_BluetoothMeasurementConfiguration_tags_1)
+               /sizeof(asn_DEF_BluetoothMeasurementConfiguration_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_BluetoothMeasurementConfiguration_1,
+       4,      /* Elements count */
+       &asn_SPC_BluetoothMeasurementConfiguration_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/BluetoothName.c b/e2ap/lib/BluetoothName.c
new file mode 100644 (file)
index 0000000..0796a41
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "BluetoothName.h"
+
+int
+BluetoothName_constraint(const 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 >= 1 && size <= 248)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_BluetoothName_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..248)) */};
+asn_per_constraints_t asn_PER_type_BluetoothName_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  248 }      /* (SIZE(1..248)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_BluetoothName_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_BluetoothName = {
+       "BluetoothName",
+       "BluetoothName",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_BluetoothName_tags_1,
+       sizeof(asn_DEF_BluetoothName_tags_1)
+               /sizeof(asn_DEF_BluetoothName_tags_1[0]), /* 1 */
+       asn_DEF_BluetoothName_tags_1,   /* Same as above */
+       sizeof(asn_DEF_BluetoothName_tags_1)
+               /sizeof(asn_DEF_BluetoothName_tags_1[0]), /* 1 */
+       { &asn_OER_type_BluetoothName_constr_1, &asn_PER_type_BluetoothName_constr_1, BluetoothName_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/BroadcastPLMNs-Item.c b/e2ap/lib/BroadcastPLMNs-Item.c
new file mode 100644 (file)
index 0000000..050a171
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "BroadcastPLMNs-Item.h"
+
+static asn_oer_constraints_t asn_OER_type_BroadcastPLMNs_Item_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..6)) */};
+asn_per_constraints_t asn_PER_type_BroadcastPLMNs_Item_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       3,  3,  1,  6 }        /* (SIZE(1..6)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_BroadcastPLMNs_Item_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_BroadcastPLMNs_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_BroadcastPLMNs_Item_specs_1 = {
+       sizeof(struct BroadcastPLMNs_Item),
+       offsetof(struct BroadcastPLMNs_Item, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_BroadcastPLMNs_Item = {
+       "BroadcastPLMNs-Item",
+       "BroadcastPLMNs-Item",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_BroadcastPLMNs_Item_tags_1,
+       sizeof(asn_DEF_BroadcastPLMNs_Item_tags_1)
+               /sizeof(asn_DEF_BroadcastPLMNs_Item_tags_1[0]), /* 1 */
+       asn_DEF_BroadcastPLMNs_Item_tags_1,     /* Same as above */
+       sizeof(asn_DEF_BroadcastPLMNs_Item_tags_1)
+               /sizeof(asn_DEF_BroadcastPLMNs_Item_tags_1[0]), /* 1 */
+       { &asn_OER_type_BroadcastPLMNs_Item_constr_1, &asn_PER_type_BroadcastPLMNs_Item_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_BroadcastPLMNs_Item_1,
+       1,      /* Single element */
+       &asn_SPC_BroadcastPLMNs_Item_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/CNTypeRestrictions.c b/e2ap/lib/CNTypeRestrictions.c
new file mode 100644 (file)
index 0000000..8fa5389
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CNTypeRestrictions.h"
+
+#include "CNTypeRestrictionsItem.h"
+static asn_oer_constraints_t asn_OER_type_CNTypeRestrictions_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16)) */};
+static asn_per_constraints_t asn_PER_type_CNTypeRestrictions_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       4,  4,  1,  16 }       /* (SIZE(1..16)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_CNTypeRestrictions_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CNTypeRestrictionsItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CNTypeRestrictions_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_CNTypeRestrictions_specs_1 = {
+       sizeof(struct CNTypeRestrictions),
+       offsetof(struct CNTypeRestrictions, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_CNTypeRestrictions = {
+       "CNTypeRestrictions",
+       "CNTypeRestrictions",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_CNTypeRestrictions_tags_1,
+       sizeof(asn_DEF_CNTypeRestrictions_tags_1)
+               /sizeof(asn_DEF_CNTypeRestrictions_tags_1[0]), /* 1 */
+       asn_DEF_CNTypeRestrictions_tags_1,      /* Same as above */
+       sizeof(asn_DEF_CNTypeRestrictions_tags_1)
+               /sizeof(asn_DEF_CNTypeRestrictions_tags_1[0]), /* 1 */
+       { &asn_OER_type_CNTypeRestrictions_constr_1, &asn_PER_type_CNTypeRestrictions_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_CNTypeRestrictions_1,
+       1,      /* Single element */
+       &asn_SPC_CNTypeRestrictions_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/CNTypeRestrictionsItem.c b/e2ap/lib/CNTypeRestrictionsItem.c
new file mode 100644 (file)
index 0000000..5797bb7
--- /dev/null
@@ -0,0 +1,122 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CNTypeRestrictionsItem.h"
+
+#include "ProtocolExtensionContainer.h"
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_cn_type_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_cn_type_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_cn_type_value2enum_3[] = {
+       { 0,    16,     "fiveGC-forbidden" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_cn_type_enum2value_3[] = {
+       0       /* fiveGC-forbidden(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_cn_type_specs_3 = {
+       asn_MAP_cn_type_value2enum_3,   /* "tag" => N; sorted by tag */
+       asn_MAP_cn_type_enum2value_3,   /* 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_cn_type_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_cn_type_3 = {
+       "cn-type",
+       "cn-type",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_cn_type_tags_3,
+       sizeof(asn_DEF_cn_type_tags_3)
+               /sizeof(asn_DEF_cn_type_tags_3[0]) - 1, /* 1 */
+       asn_DEF_cn_type_tags_3, /* Same as above */
+       sizeof(asn_DEF_cn_type_tags_3)
+               /sizeof(asn_DEF_cn_type_tags_3[0]), /* 2 */
+       { &asn_OER_type_cn_type_constr_3, &asn_PER_type_cn_type_constr_3, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_cn_type_specs_3        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CNTypeRestrictionsItem_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CNTypeRestrictionsItem, plmn_Id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "plmn-Id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CNTypeRestrictionsItem, cn_type),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_cn_type_3,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cn-type"
+               },
+       { ATF_POINTER, 1, offsetof(struct CNTypeRestrictionsItem, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P116,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_CNTypeRestrictionsItem_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_CNTypeRestrictionsItem_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CNTypeRestrictionsItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-Id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cn-type */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CNTypeRestrictionsItem_specs_1 = {
+       sizeof(struct CNTypeRestrictionsItem),
+       offsetof(struct CNTypeRestrictionsItem, _asn_ctx),
+       asn_MAP_CNTypeRestrictionsItem_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_CNTypeRestrictionsItem_oms_1,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CNTypeRestrictionsItem = {
+       "CNTypeRestrictionsItem",
+       "CNTypeRestrictionsItem",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CNTypeRestrictionsItem_tags_1,
+       sizeof(asn_DEF_CNTypeRestrictionsItem_tags_1)
+               /sizeof(asn_DEF_CNTypeRestrictionsItem_tags_1[0]), /* 1 */
+       asn_DEF_CNTypeRestrictionsItem_tags_1,  /* Same as above */
+       sizeof(asn_DEF_CNTypeRestrictionsItem_tags_1)
+               /sizeof(asn_DEF_CNTypeRestrictionsItem_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CNTypeRestrictionsItem_1,
+       3,      /* Elements count */
+       &asn_SPC_CNTypeRestrictionsItem_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/COUNTValueExtended.c b/e2ap/lib/COUNTValueExtended.c
new file mode 100644 (file)
index 0000000..3d040ff
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "COUNTValueExtended.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_COUNTValueExtended_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct COUNTValueExtended, pDCP_SNExtended),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PDCP_SNExtended,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pDCP-SNExtended"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct COUNTValueExtended, hFNModified),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_HFNModified,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "hFNModified"
+               },
+       { ATF_POINTER, 1, offsetof(struct COUNTValueExtended, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P124,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_COUNTValueExtended_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_COUNTValueExtended_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_COUNTValueExtended_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDCP-SNExtended */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* hFNModified */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_COUNTValueExtended_specs_1 = {
+       sizeof(struct COUNTValueExtended),
+       offsetof(struct COUNTValueExtended, _asn_ctx),
+       asn_MAP_COUNTValueExtended_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_COUNTValueExtended_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_COUNTValueExtended = {
+       "COUNTValueExtended",
+       "COUNTValueExtended",
+       &asn_OP_SEQUENCE,
+       asn_DEF_COUNTValueExtended_tags_1,
+       sizeof(asn_DEF_COUNTValueExtended_tags_1)
+               /sizeof(asn_DEF_COUNTValueExtended_tags_1[0]), /* 1 */
+       asn_DEF_COUNTValueExtended_tags_1,      /* Same as above */
+       sizeof(asn_DEF_COUNTValueExtended_tags_1)
+               /sizeof(asn_DEF_COUNTValueExtended_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_COUNTValueExtended_1,
+       3,      /* Elements count */
+       &asn_SPC_COUNTValueExtended_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/COUNTvalue.c b/e2ap/lib/COUNTvalue.c
new file mode 100644 (file)
index 0000000..e2aa0f3
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "COUNTvalue.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_COUNTvalue_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct COUNTvalue, pDCP_SN),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PDCP_SN,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pDCP-SN"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct COUNTvalue, hFN),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_HFN,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "hFN"
+               },
+       { ATF_POINTER, 1, offsetof(struct COUNTvalue, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P123,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_COUNTvalue_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_COUNTvalue_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_COUNTvalue_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDCP-SN */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* hFN */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_COUNTvalue_specs_1 = {
+       sizeof(struct COUNTvalue),
+       offsetof(struct COUNTvalue, _asn_ctx),
+       asn_MAP_COUNTvalue_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_COUNTvalue_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_COUNTvalue = {
+       "COUNTvalue",
+       "COUNTvalue",
+       &asn_OP_SEQUENCE,
+       asn_DEF_COUNTvalue_tags_1,
+       sizeof(asn_DEF_COUNTvalue_tags_1)
+               /sizeof(asn_DEF_COUNTvalue_tags_1[0]), /* 1 */
+       asn_DEF_COUNTvalue_tags_1,      /* Same as above */
+       sizeof(asn_DEF_COUNTvalue_tags_1)
+               /sizeof(asn_DEF_COUNTvalue_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_COUNTvalue_1,
+       3,      /* Elements count */
+       &asn_SPC_COUNTvalue_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/COUNTvaluePDCP-SNlength18.c b/e2ap/lib/COUNTvaluePDCP-SNlength18.c
new file mode 100644 (file)
index 0000000..1190b9b
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "COUNTvaluePDCP-SNlength18.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_COUNTvaluePDCP_SNlength18_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct COUNTvaluePDCP_SNlength18, pDCP_SNlength18),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PDCP_SNlength18,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pDCP-SNlength18"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct COUNTvaluePDCP_SNlength18, hFNforPDCP_SNlength18),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_HFNforPDCP_SNlength18,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "hFNforPDCP-SNlength18"
+               },
+       { ATF_POINTER, 1, offsetof(struct COUNTvaluePDCP_SNlength18, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P125,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_COUNTvaluePDCP_SNlength18_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_COUNTvaluePDCP_SNlength18_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_COUNTvaluePDCP_SNlength18_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDCP-SNlength18 */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* hFNforPDCP-SNlength18 */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_COUNTvaluePDCP_SNlength18_specs_1 = {
+       sizeof(struct COUNTvaluePDCP_SNlength18),
+       offsetof(struct COUNTvaluePDCP_SNlength18, _asn_ctx),
+       asn_MAP_COUNTvaluePDCP_SNlength18_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_COUNTvaluePDCP_SNlength18_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_COUNTvaluePDCP_SNlength18 = {
+       "COUNTvaluePDCP-SNlength18",
+       "COUNTvaluePDCP-SNlength18",
+       &asn_OP_SEQUENCE,
+       asn_DEF_COUNTvaluePDCP_SNlength18_tags_1,
+       sizeof(asn_DEF_COUNTvaluePDCP_SNlength18_tags_1)
+               /sizeof(asn_DEF_COUNTvaluePDCP_SNlength18_tags_1[0]), /* 1 */
+       asn_DEF_COUNTvaluePDCP_SNlength18_tags_1,       /* Same as above */
+       sizeof(asn_DEF_COUNTvaluePDCP_SNlength18_tags_1)
+               /sizeof(asn_DEF_COUNTvaluePDCP_SNlength18_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_COUNTvaluePDCP_SNlength18_1,
+       3,      /* Elements count */
+       &asn_SPC_COUNTvaluePDCP_SNlength18_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/CRNTI.c b/e2ap/lib/CRNTI.c
new file mode 100644 (file)
index 0000000..7ed0f64
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CRNTI.h"
+
+int
+CRNTI_constraint(const 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 == 16)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_CRNTI_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       16      /* (SIZE(16..16)) */};
+static asn_per_constraints_t asn_PER_type_CRNTI_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  16,  16 }      /* (SIZE(16..16)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_CRNTI_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CRNTI = {
+       "CRNTI",
+       "CRNTI",
+       &asn_OP_BIT_STRING,
+       asn_DEF_CRNTI_tags_1,
+       sizeof(asn_DEF_CRNTI_tags_1)
+               /sizeof(asn_DEF_CRNTI_tags_1[0]), /* 1 */
+       asn_DEF_CRNTI_tags_1,   /* Same as above */
+       sizeof(asn_DEF_CRNTI_tags_1)
+               /sizeof(asn_DEF_CRNTI_tags_1[0]), /* 1 */
+       { &asn_OER_type_CRNTI_constr_1, &asn_PER_type_CRNTI_constr_1, CRNTI_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/CSG-Id.c b/e2ap/lib/CSG-Id.c
new file mode 100644 (file)
index 0000000..2c1bf86
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CSG-Id.h"
+
+int
+CSG_Id_constraint(const 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 == 27)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_CSG_Id_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       27      /* (SIZE(27..27)) */};
+static asn_per_constraints_t asn_PER_type_CSG_Id_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  27,  27 }      /* (SIZE(27..27)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_CSG_Id_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CSG_Id = {
+       "CSG-Id",
+       "CSG-Id",
+       &asn_OP_BIT_STRING,
+       asn_DEF_CSG_Id_tags_1,
+       sizeof(asn_DEF_CSG_Id_tags_1)
+               /sizeof(asn_DEF_CSG_Id_tags_1[0]), /* 1 */
+       asn_DEF_CSG_Id_tags_1,  /* Same as above */
+       sizeof(asn_DEF_CSG_Id_tags_1)
+               /sizeof(asn_DEF_CSG_Id_tags_1[0]), /* 1 */
+       { &asn_OER_type_CSG_Id_constr_1, &asn_PER_type_CSG_Id_constr_1, CSG_Id_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/CSGMembershipStatus.c b/e2ap/lib/CSGMembershipStatus.c
new file mode 100644 (file)
index 0000000..3b52e8b
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CSGMembershipStatus.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_CSGMembershipStatus_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_CSGMembershipStatus_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_CSGMembershipStatus_value2enum_1[] = {
+       { 0,    6,      "member" },
+       { 1,    10,     "not-member" }
+};
+static const unsigned int asn_MAP_CSGMembershipStatus_enum2value_1[] = {
+       0,      /* member(0) */
+       1       /* not-member(1) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_CSGMembershipStatus_specs_1 = {
+       asn_MAP_CSGMembershipStatus_value2enum_1,       /* "tag" => N; sorted by tag */
+       asn_MAP_CSGMembershipStatus_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_CSGMembershipStatus_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CSGMembershipStatus = {
+       "CSGMembershipStatus",
+       "CSGMembershipStatus",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_CSGMembershipStatus_tags_1,
+       sizeof(asn_DEF_CSGMembershipStatus_tags_1)
+               /sizeof(asn_DEF_CSGMembershipStatus_tags_1[0]), /* 1 */
+       asn_DEF_CSGMembershipStatus_tags_1,     /* Same as above */
+       sizeof(asn_DEF_CSGMembershipStatus_tags_1)
+               /sizeof(asn_DEF_CSGMembershipStatus_tags_1[0]), /* 1 */
+       { &asn_OER_type_CSGMembershipStatus_constr_1, &asn_PER_type_CSGMembershipStatus_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_CSGMembershipStatus_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/CSIReportList.c b/e2ap/lib/CSIReportList.c
new file mode 100644 (file)
index 0000000..40b5d44
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CSIReportList.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_oer_constraints_t asn_OER_type_CSIReportList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..128)) */};
+static asn_per_constraints_t asn_PER_type_CSIReportList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       7,  7,  1,  128 }      /* (SIZE(1..128)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CSIReportList__Member, uEID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UEID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uEID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CSIReportList__Member, cSIReportPerCSIProcess),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CSIReportPerCSIProcess,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cSIReportPerCSIProcess"
+               },
+       { ATF_POINTER, 1, offsetof(struct CSIReportList__Member, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P128,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "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 }, /* uEID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cSIReportPerCSIProcess */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+       sizeof(struct CSIReportList__Member),
+       offsetof(struct CSIReportList__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 */
+       3,      /* First extension addition */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+       "SEQUENCE",
+       "SEQUENCE",
+       &asn_OP_SEQUENCE,
+       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, 0, SEQUENCE_constraint },
+       asn_MBR_Member_2,
+       3,      /* Elements count */
+       &asn_SPC_Member_specs_2 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_CSIReportList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Member_2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CSIReportList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_CSIReportList_specs_1 = {
+       sizeof(struct CSIReportList),
+       offsetof(struct CSIReportList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_CSIReportList = {
+       "CSIReportList",
+       "CSIReportList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_CSIReportList_tags_1,
+       sizeof(asn_DEF_CSIReportList_tags_1)
+               /sizeof(asn_DEF_CSIReportList_tags_1[0]), /* 1 */
+       asn_DEF_CSIReportList_tags_1,   /* Same as above */
+       sizeof(asn_DEF_CSIReportList_tags_1)
+               /sizeof(asn_DEF_CSIReportList_tags_1[0]), /* 1 */
+       { &asn_OER_type_CSIReportList_constr_1, &asn_PER_type_CSIReportList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_CSIReportList_1,
+       1,      /* Single element */
+       &asn_SPC_CSIReportList_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/CSIReportPerCSIProcess.c b/e2ap/lib/CSIReportPerCSIProcess.c
new file mode 100644 (file)
index 0000000..5783977
--- /dev/null
@@ -0,0 +1,150 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CSIReportPerCSIProcess.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_cSIProcessConfigurationIndex_constraint_2(const 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 >= 1 && value <= 7)) {
+               /* 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_oer_constraints_t asn_OER_memb_cSIProcessConfigurationIndex_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_cSIProcessConfigurationIndex_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  1,  7 }    /* (1..7,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_CSIReportPerCSIProcess_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..4)) */};
+asn_per_constraints_t asn_PER_type_CSIReportPerCSIProcess_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       2,  2,  1,  4 }        /* (SIZE(1..4)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcess__Member, cSIProcessConfigurationIndex),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_cSIProcessConfigurationIndex_constr_3, &asn_PER_memb_cSIProcessConfigurationIndex_constr_3,  memb_cSIProcessConfigurationIndex_constraint_2 },
+               0, 0, /* No default value */
+               "cSIProcessConfigurationIndex"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcess__Member, cSIReportPerCSIProcessItem),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CSIReportPerCSIProcessItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cSIReportPerCSIProcessItem"
+               },
+       { ATF_POINTER, 1, offsetof(struct CSIReportPerCSIProcess__Member, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P129,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "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 }, /* cSIProcessConfigurationIndex */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cSIReportPerCSIProcessItem */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+       sizeof(struct CSIReportPerCSIProcess__Member),
+       offsetof(struct CSIReportPerCSIProcess__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 */
+       3,      /* First extension addition */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+       "SEQUENCE",
+       "SEQUENCE",
+       &asn_OP_SEQUENCE,
+       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, 0, SEQUENCE_constraint },
+       asn_MBR_Member_2,
+       3,      /* Elements count */
+       &asn_SPC_Member_specs_2 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CSIReportPerCSIProcess_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Member_2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CSIReportPerCSIProcess_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_CSIReportPerCSIProcess_specs_1 = {
+       sizeof(struct CSIReportPerCSIProcess),
+       offsetof(struct CSIReportPerCSIProcess, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_CSIReportPerCSIProcess = {
+       "CSIReportPerCSIProcess",
+       "CSIReportPerCSIProcess",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_CSIReportPerCSIProcess_tags_1,
+       sizeof(asn_DEF_CSIReportPerCSIProcess_tags_1)
+               /sizeof(asn_DEF_CSIReportPerCSIProcess_tags_1[0]), /* 1 */
+       asn_DEF_CSIReportPerCSIProcess_tags_1,  /* Same as above */
+       sizeof(asn_DEF_CSIReportPerCSIProcess_tags_1)
+               /sizeof(asn_DEF_CSIReportPerCSIProcess_tags_1[0]), /* 1 */
+       { &asn_OER_type_CSIReportPerCSIProcess_constr_1, &asn_PER_type_CSIReportPerCSIProcess_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_CSIReportPerCSIProcess_1,
+       1,      /* Single element */
+       &asn_SPC_CSIReportPerCSIProcess_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/CSIReportPerCSIProcessItem.c b/e2ap/lib/CSIReportPerCSIProcessItem.c
new file mode 100644 (file)
index 0000000..911f154
--- /dev/null
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CSIReportPerCSIProcessItem.h"
+
+#include "SubbandCQIList.h"
+#include "ProtocolExtensionContainer.h"
+static int
+memb_rI_constraint_2(const 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 >= 1 && value <= 8)) {
+               /* 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_oer_constraints_t asn_OER_memb_rI_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_rI_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  1,  8 }    /* (1..8,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_CSIReportPerCSIProcessItem_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..2)) */};
+asn_per_constraints_t asn_PER_type_CSIReportPerCSIProcessItem_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       1,  1,  1,  2 }        /* (SIZE(1..2)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcessItem__Member, rI),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_rI_constr_3, &asn_PER_memb_rI_constr_3,  memb_rI_constraint_2 },
+               0, 0, /* No default value */
+               "rI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcessItem__Member, widebandCQI),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_WidebandCQI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "widebandCQI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcessItem__Member, subbandSize),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SubbandSize,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "subbandSize"
+               },
+       { ATF_POINTER, 2, offsetof(struct CSIReportPerCSIProcessItem__Member, subbandCQIList),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SubbandCQIList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "subbandCQIList"
+               },
+       { ATF_POINTER, 1, offsetof(struct CSIReportPerCSIProcessItem__Member, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P130,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_Member_oms_2[] = { 3, 4 };
+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 }, /* rI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* widebandCQI */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* subbandSize */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* subbandCQIList */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+       sizeof(struct CSIReportPerCSIProcessItem__Member),
+       offsetof(struct CSIReportPerCSIProcessItem__Member, _asn_ctx),
+       asn_MAP_Member_tag2el_2,
+       5,      /* Count of tags in the map */
+       asn_MAP_Member_oms_2,   /* Optional members */
+       2, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+       "SEQUENCE",
+       "SEQUENCE",
+       &asn_OP_SEQUENCE,
+       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, 0, SEQUENCE_constraint },
+       asn_MBR_Member_2,
+       5,      /* Elements count */
+       &asn_SPC_Member_specs_2 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CSIReportPerCSIProcessItem_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Member_2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CSIReportPerCSIProcessItem_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_CSIReportPerCSIProcessItem_specs_1 = {
+       sizeof(struct CSIReportPerCSIProcessItem),
+       offsetof(struct CSIReportPerCSIProcessItem, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_CSIReportPerCSIProcessItem = {
+       "CSIReportPerCSIProcessItem",
+       "CSIReportPerCSIProcessItem",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_CSIReportPerCSIProcessItem_tags_1,
+       sizeof(asn_DEF_CSIReportPerCSIProcessItem_tags_1)
+               /sizeof(asn_DEF_CSIReportPerCSIProcessItem_tags_1[0]), /* 1 */
+       asn_DEF_CSIReportPerCSIProcessItem_tags_1,      /* Same as above */
+       sizeof(asn_DEF_CSIReportPerCSIProcessItem_tags_1)
+               /sizeof(asn_DEF_CSIReportPerCSIProcessItem_tags_1[0]), /* 1 */
+       { &asn_OER_type_CSIReportPerCSIProcessItem_constr_1, &asn_PER_type_CSIReportPerCSIProcessItem_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_CSIReportPerCSIProcessItem_1,
+       1,      /* Single element */
+       &asn_SPC_CSIReportPerCSIProcessItem_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/CallProcess-ID.c b/e2ap/lib/CallProcess-ID.c
new file mode 100644 (file)
index 0000000..232dfb9
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CallProcess-ID.h"
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_CallProcess_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CallProcess_ID = {
+       "CallProcess-ID",
+       "CallProcess-ID",
+       &asn_OP_NativeInteger,
+       asn_DEF_CallProcess_ID_tags_1,
+       sizeof(asn_DEF_CallProcess_ID_tags_1)
+               /sizeof(asn_DEF_CallProcess_ID_tags_1[0]), /* 1 */
+       asn_DEF_CallProcess_ID_tags_1,  /* Same as above */
+       sizeof(asn_DEF_CallProcess_ID_tags_1)
+               /sizeof(asn_DEF_CallProcess_ID_tags_1[0]), /* 1 */
+       { 0, 0, NativeInteger_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/CapacityValue.c b/e2ap/lib/CapacityValue.c
new file mode 100644 (file)
index 0000000..fb2c76d
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CapacityValue.h"
+
+int
+CapacityValue_constraint(const 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 >= 0 && value <= 100)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_CapacityValue_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..100) */,
+       -1};
+asn_per_constraints_t asn_PER_type_CapacityValue_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       7,  7,  0,  100 }      /* (0..100) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_CapacityValue_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CapacityValue = {
+       "CapacityValue",
+       "CapacityValue",
+       &asn_OP_NativeInteger,
+       asn_DEF_CapacityValue_tags_1,
+       sizeof(asn_DEF_CapacityValue_tags_1)
+               /sizeof(asn_DEF_CapacityValue_tags_1[0]), /* 1 */
+       asn_DEF_CapacityValue_tags_1,   /* Same as above */
+       sizeof(asn_DEF_CapacityValue_tags_1)
+               /sizeof(asn_DEF_CapacityValue_tags_1[0]), /* 1 */
+       { &asn_OER_type_CapacityValue_constr_1, &asn_PER_type_CapacityValue_constr_1, CapacityValue_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/Cause.c b/e2ap/lib/Cause.c
new file mode 100644 (file)
index 0000000..cd29f93
--- /dev/null
@@ -0,0 +1,85 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Cause.h"
+
+static asn_oer_constraints_t asn_OER_type_Cause_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_Cause_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_Cause_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.radioNetwork),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CauseRadioNetwork,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "radioNetwork"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.transport),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CauseTransport,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "transport"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.protocol),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CauseProtocol,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocol"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.misc),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CauseMisc,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "misc"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_Cause_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* misc */
+};
+asn_CHOICE_specifics_t asn_SPC_Cause_specs_1 = {
+       sizeof(struct Cause),
+       offsetof(struct Cause, _asn_ctx),
+       offsetof(struct Cause, present),
+       sizeof(((struct Cause *)0)->present),
+       asn_MAP_Cause_tag2el_1,
+       4,      /* Count of tags in the map */
+       0, 0,
+       4       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_Cause = {
+       "Cause",
+       "Cause",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_Cause_constr_1, &asn_PER_type_Cause_constr_1, CHOICE_constraint },
+       asn_MBR_Cause_1,
+       4,      /* Elements count */
+       &asn_SPC_Cause_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/CauseMisc.c b/e2ap/lib/CauseMisc.c
new file mode 100644 (file)
index 0000000..80a51b0
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CauseMisc.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_CauseMisc_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_CauseMisc_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  4 }    /* (0..4,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_CauseMisc_value2enum_1[] = {
+       { 0,    27,     "control-processing-overload" },
+       { 1,    16,     "hardware-failure" },
+       { 2,    15,     "om-intervention" },
+       { 3,    42,     "not-enough-user-plane-processing-resources" },
+       { 4,    11,     "unspecified" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_CauseMisc_enum2value_1[] = {
+       0,      /* control-processing-overload(0) */
+       1,      /* hardware-failure(1) */
+       3,      /* not-enough-user-plane-processing-resources(3) */
+       2,      /* om-intervention(2) */
+       4       /* unspecified(4) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1 = {
+       asn_MAP_CauseMisc_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_CauseMisc_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_CauseMisc_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CauseMisc = {
+       "CauseMisc",
+       "CauseMisc",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_CauseMisc_tags_1,
+       sizeof(asn_DEF_CauseMisc_tags_1)
+               /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */
+       asn_DEF_CauseMisc_tags_1,       /* Same as above */
+       sizeof(asn_DEF_CauseMisc_tags_1)
+               /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */
+       { &asn_OER_type_CauseMisc_constr_1, &asn_PER_type_CauseMisc_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_CauseMisc_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/CauseProtocol.c b/e2ap/lib/CauseProtocol.c
new file mode 100644 (file)
index 0000000..e0eb374
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CauseProtocol.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_CauseProtocol_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  6 }    /* (0..6,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_CauseProtocol_value2enum_1[] = {
+       { 0,    21,     "transfer-syntax-error" },
+       { 1,    28,     "abstract-syntax-error-reject" },
+       { 2,    39,     "abstract-syntax-error-ignore-and-notify" },
+       { 3,    42,     "message-not-compatible-with-receiver-state" },
+       { 4,    14,     "semantic-error" },
+       { 5,    11,     "unspecified" },
+       { 6,    49,     "abstract-syntax-error-falsely-constructed-message" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_CauseProtocol_enum2value_1[] = {
+       6,      /* abstract-syntax-error-falsely-constructed-message(6) */
+       2,      /* abstract-syntax-error-ignore-and-notify(2) */
+       1,      /* abstract-syntax-error-reject(1) */
+       3,      /* message-not-compatible-with-receiver-state(3) */
+       4,      /* semantic-error(4) */
+       0,      /* transfer-syntax-error(0) */
+       5       /* unspecified(5) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1 = {
+       asn_MAP_CauseProtocol_value2enum_1,     /* "tag" => N; sorted by tag */
+       asn_MAP_CauseProtocol_enum2value_1,     /* N => "tag"; sorted by N */
+       7,      /* Number of elements in the maps */
+       8,      /* Extensions before this member */
+       1,      /* Strict enumeration */
+       0,      /* Native long size */
+       0
+};
+static const ber_tlv_tag_t asn_DEF_CauseProtocol_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CauseProtocol = {
+       "CauseProtocol",
+       "CauseProtocol",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_CauseProtocol_tags_1,
+       sizeof(asn_DEF_CauseProtocol_tags_1)
+               /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */
+       asn_DEF_CauseProtocol_tags_1,   /* Same as above */
+       sizeof(asn_DEF_CauseProtocol_tags_1)
+               /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */
+       { &asn_OER_type_CauseProtocol_constr_1, &asn_PER_type_CauseProtocol_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_CauseProtocol_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/CauseRIC.c b/e2ap/lib/CauseRIC.c
new file mode 100644 (file)
index 0000000..ba13a4d
--- /dev/null
@@ -0,0 +1,80 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CauseRIC.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_CauseRIC_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_CauseRIC_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  12 }   /* (0..12,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_CauseRIC_value2enum_1[] = {
+       { 0,    19,     "function-id-Invalid" },
+       { 1,    20,     "action-not-supported" },
+       { 2,    17,     "excessive-actions" },
+       { 3,    16,     "duplicate-action" },
+       { 4,    15,     "duplicate-event" },
+       { 5,    23,     "function-resource-limit" },
+       { 6,    18,     "request-id-unknown" },
+       { 7,    46,     "inconsistent-action-subsequent-action-sequence" },
+       { 8,    23,     "control-message-invalid" },
+       { 9,    23,     "call-process-id-invalid" },
+       { 10,   21,     "function-not-required" },
+       { 11,   19,     "excessive-functions" },
+       { 12,   18,     "ric-resource-limit" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_CauseRIC_enum2value_1[] = {
+       1,      /* action-not-supported(1) */
+       9,      /* call-process-id-invalid(9) */
+       8,      /* control-message-invalid(8) */
+       3,      /* duplicate-action(3) */
+       4,      /* duplicate-event(4) */
+       2,      /* excessive-actions(2) */
+       11,     /* excessive-functions(11) */
+       0,      /* function-id-Invalid(0) */
+       10,     /* function-not-required(10) */
+       5,      /* function-resource-limit(5) */
+       7,      /* inconsistent-action-subsequent-action-sequence(7) */
+       6,      /* request-id-unknown(6) */
+       12      /* ric-resource-limit(12) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1 = {
+       asn_MAP_CauseRIC_value2enum_1,  /* "tag" => N; sorted by tag */
+       asn_MAP_CauseRIC_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_CauseRIC_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CauseRIC = {
+       "CauseRIC",
+       "CauseRIC",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_CauseRIC_tags_1,
+       sizeof(asn_DEF_CauseRIC_tags_1)
+               /sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */
+       asn_DEF_CauseRIC_tags_1,        /* Same as above */
+       sizeof(asn_DEF_CauseRIC_tags_1)
+               /sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */
+       { &asn_OER_type_CauseRIC_constr_1, &asn_PER_type_CauseRIC_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_CauseRIC_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/CauseRadioNetwork.c b/e2ap/lib/CauseRadioNetwork.c
new file mode 100644 (file)
index 0000000..19ac407
--- /dev/null
@@ -0,0 +1,156 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CauseRadioNetwork.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_CauseRadioNetwork_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_CauseRadioNetwork_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  5,  5,  0,  21 }   /* (0..21,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_CauseRadioNetwork_value2enum_1[] = {
+       { 0,    36,     "handover-desirable-for-radio-reasons" },
+       { 1,    22,     "time-critical-handover" },
+       { 2,    30,     "resource-optimisation-handover" },
+       { 3,    27,     "reduce-load-in-serving-cell" },
+       { 4,    16,     "partial-handover" },
+       { 5,    26,     "unknown-new-eNB-UE-X2AP-ID" },
+       { 6,    26,     "unknown-old-eNB-UE-X2AP-ID" },
+       { 7,    26,     "unknown-pair-of-UE-X2AP-ID" },
+       { 8,    21,     "ho-target-not-allowed" },
+       { 9,    22,     "tx2relocoverall-expiry" },
+       { 10,   17,     "trelocprep-expiry" },
+       { 11,   18,     "cell-not-available" },
+       { 12,   43,     "no-radio-resources-available-in-target-cell" },
+       { 13,   19,     "invalid-MME-GroupID" },
+       { 14,   16,     "unknown-MME-Code" },
+       { 15,   63,     "encryption-and-or-integrity-protection-algorithms-not-supported" },
+       { 16,   26,     "reportCharacteristicsEmpty" },
+       { 17,   19,     "noReportPeriodicity" },
+       { 18,   21,     "existingMeasurementID" },
+       { 19,   26,     "unknown-eNB-Measurement-ID" },
+       { 20,   37,     "measurement-temporarily-not-available" },
+       { 21,   11,     "unspecified" },
+       { 22,   14,     "load-balancing" },
+       { 23,   21,     "handover-optimisation" },
+       { 24,   26,     "value-out-of-allowed-range" },
+       { 25,   27,     "multiple-E-RAB-ID-instances" },
+       { 26,   18,     "switch-off-ongoing" },
+       { 27,   23,     "not-supported-QCI-value" },
+       { 28,   40,     "measurement-not-supported-for-the-object" },
+       { 29,   17,     "tDCoverall-expiry" },
+       { 30,   14,     "tDCprep-expiry" },
+       { 31,   34,     "action-desirable-for-radio-reasons" },
+       { 32,   11,     "reduce-load" },
+       { 33,   21,     "resource-optimisation" },
+       { 34,   20,     "time-critical-action" },
+       { 35,   18,     "target-not-allowed" },
+       { 36,   28,     "no-radio-resources-available" },
+       { 37,   23,     "invalid-QoS-combination" },
+       { 38,   35,     "encryption-algorithms-not-aupported" },
+       { 39,   19,     "procedure-cancelled" },
+       { 40,   11,     "rRM-purpose" },
+       { 41,   21,     "improve-user-bit-rate" },
+       { 42,   15,     "user-inactivity" },
+       { 43,   29,     "radio-connection-with-UE-lost" },
+       { 44,   40,     "failure-in-the-radio-interface-procedure" },
+       { 45,   27,     "bearer-option-not-supported" },
+       { 46,   12,     "mCG-Mobility" },
+       { 47,   12,     "sCG-Mobility" },
+       { 48,   23,     "count-reaches-max-value" },
+       { 49,   29,     "unknown-old-en-gNB-UE-X2AP-ID" },
+       { 50,   13,     "pDCP-Overload" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_CauseRadioNetwork_enum2value_1[] = {
+       31,     /* action-desirable-for-radio-reasons(31) */
+       45,     /* bearer-option-not-supported(45) */
+       11,     /* cell-not-available(11) */
+       48,     /* count-reaches-max-value(48) */
+       38,     /* encryption-algorithms-not-aupported(38) */
+       15,     /* encryption-and-or-integrity-protection-algorithms-not-supported(15) */
+       18,     /* existingMeasurementID(18) */
+       44,     /* failure-in-the-radio-interface-procedure(44) */
+       0,      /* handover-desirable-for-radio-reasons(0) */
+       23,     /* handover-optimisation(23) */
+       8,      /* ho-target-not-allowed(8) */
+       41,     /* improve-user-bit-rate(41) */
+       13,     /* invalid-MME-GroupID(13) */
+       37,     /* invalid-QoS-combination(37) */
+       22,     /* load-balancing(22) */
+       46,     /* mCG-Mobility(46) */
+       28,     /* measurement-not-supported-for-the-object(28) */
+       20,     /* measurement-temporarily-not-available(20) */
+       25,     /* multiple-E-RAB-ID-instances(25) */
+       36,     /* no-radio-resources-available(36) */
+       12,     /* no-radio-resources-available-in-target-cell(12) */
+       17,     /* noReportPeriodicity(17) */
+       27,     /* not-supported-QCI-value(27) */
+       50,     /* pDCP-Overload(50) */
+       4,      /* partial-handover(4) */
+       39,     /* procedure-cancelled(39) */
+       40,     /* rRM-purpose(40) */
+       43,     /* radio-connection-with-UE-lost(43) */
+       32,     /* reduce-load(32) */
+       3,      /* reduce-load-in-serving-cell(3) */
+       16,     /* reportCharacteristicsEmpty(16) */
+       33,     /* resource-optimisation(33) */
+       2,      /* resource-optimisation-handover(2) */
+       47,     /* sCG-Mobility(47) */
+       26,     /* switch-off-ongoing(26) */
+       29,     /* tDCoverall-expiry(29) */
+       30,     /* tDCprep-expiry(30) */
+       35,     /* target-not-allowed(35) */
+       34,     /* time-critical-action(34) */
+       1,      /* time-critical-handover(1) */
+       10,     /* trelocprep-expiry(10) */
+       9,      /* tx2relocoverall-expiry(9) */
+       14,     /* unknown-MME-Code(14) */
+       19,     /* unknown-eNB-Measurement-ID(19) */
+       5,      /* unknown-new-eNB-UE-X2AP-ID(5) */
+       6,      /* unknown-old-eNB-UE-X2AP-ID(6) */
+       49,     /* unknown-old-en-gNB-UE-X2AP-ID(49) */
+       7,      /* unknown-pair-of-UE-X2AP-ID(7) */
+       21,     /* unspecified(21) */
+       42,     /* user-inactivity(42) */
+       24      /* value-out-of-allowed-range(24) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_CauseRadioNetwork_specs_1 = {
+       asn_MAP_CauseRadioNetwork_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_CauseRadioNetwork_enum2value_1, /* N => "tag"; sorted by N */
+       51,     /* Number of elements in the maps */
+       23,     /* Extensions before this member */
+       1,      /* Strict enumeration */
+       0,      /* Native long size */
+       0
+};
+static const ber_tlv_tag_t asn_DEF_CauseRadioNetwork_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CauseRadioNetwork = {
+       "CauseRadioNetwork",
+       "CauseRadioNetwork",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_CauseRadioNetwork_tags_1,
+       sizeof(asn_DEF_CauseRadioNetwork_tags_1)
+               /sizeof(asn_DEF_CauseRadioNetwork_tags_1[0]), /* 1 */
+       asn_DEF_CauseRadioNetwork_tags_1,       /* Same as above */
+       sizeof(asn_DEF_CauseRadioNetwork_tags_1)
+               /sizeof(asn_DEF_CauseRadioNetwork_tags_1[0]), /* 1 */
+       { &asn_OER_type_CauseRadioNetwork_constr_1, &asn_PER_type_CauseRadioNetwork_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_CauseRadioNetwork_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/CauseTransport.c b/e2ap/lib/CauseTransport.c
new file mode 100644 (file)
index 0000000..7a25c9f
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CauseTransport.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_CauseTransport_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_CauseTransport_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_CauseTransport_value2enum_1[] = {
+       { 0,    30,     "transport-resource-unavailable" },
+       { 1,    11,     "unspecified" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_CauseTransport_enum2value_1[] = {
+       0,      /* transport-resource-unavailable(0) */
+       1       /* unspecified(1) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1 = {
+       asn_MAP_CauseTransport_value2enum_1,    /* "tag" => N; sorted by tag */
+       asn_MAP_CauseTransport_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_CauseTransport_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CauseTransport = {
+       "CauseTransport",
+       "CauseTransport",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_CauseTransport_tags_1,
+       sizeof(asn_DEF_CauseTransport_tags_1)
+               /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */
+       asn_DEF_CauseTransport_tags_1,  /* Same as above */
+       sizeof(asn_DEF_CauseTransport_tags_1)
+               /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */
+       { &asn_OER_type_CauseTransport_constr_1, &asn_PER_type_CauseTransport_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_CauseTransport_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/Cell-Size.c b/e2ap/lib/Cell-Size.c
new file mode 100644 (file)
index 0000000..e8d3441
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Cell-Size.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_Cell_Size_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_Cell_Size_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_Cell_Size_value2enum_1[] = {
+       { 0,    9,      "verysmall" },
+       { 1,    5,      "small" },
+       { 2,    6,      "medium" },
+       { 3,    5,      "large" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_Cell_Size_enum2value_1[] = {
+       3,      /* large(3) */
+       2,      /* medium(2) */
+       1,      /* small(1) */
+       0       /* verysmall(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_Cell_Size_specs_1 = {
+       asn_MAP_Cell_Size_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_Cell_Size_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_Cell_Size_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Cell_Size = {
+       "Cell-Size",
+       "Cell-Size",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_Cell_Size_tags_1,
+       sizeof(asn_DEF_Cell_Size_tags_1)
+               /sizeof(asn_DEF_Cell_Size_tags_1[0]), /* 1 */
+       asn_DEF_Cell_Size_tags_1,       /* Same as above */
+       sizeof(asn_DEF_Cell_Size_tags_1)
+               /sizeof(asn_DEF_Cell_Size_tags_1[0]), /* 1 */
+       { &asn_OER_type_Cell_Size_constr_1, &asn_PER_type_Cell_Size_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_Cell_Size_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellActivationFailure.c b/e2ap/lib/CellActivationFailure.c
new file mode 100644 (file)
index 0000000..84467b4
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellActivationFailure.h"
+
+asn_TYPE_member_t asn_MBR_CellActivationFailure_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellActivationFailure, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P41,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellActivationFailure_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellActivationFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellActivationFailure_specs_1 = {
+       sizeof(struct CellActivationFailure),
+       offsetof(struct CellActivationFailure, _asn_ctx),
+       asn_MAP_CellActivationFailure_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellActivationFailure = {
+       "CellActivationFailure",
+       "CellActivationFailure",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellActivationFailure_tags_1,
+       sizeof(asn_DEF_CellActivationFailure_tags_1)
+               /sizeof(asn_DEF_CellActivationFailure_tags_1[0]), /* 1 */
+       asn_DEF_CellActivationFailure_tags_1,   /* Same as above */
+       sizeof(asn_DEF_CellActivationFailure_tags_1)
+               /sizeof(asn_DEF_CellActivationFailure_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellActivationFailure_1,
+       1,      /* Elements count */
+       &asn_SPC_CellActivationFailure_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellActivationRequest.c b/e2ap/lib/CellActivationRequest.c
new file mode 100644 (file)
index 0000000..694dbf1
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellActivationRequest.h"
+
+asn_TYPE_member_t asn_MBR_CellActivationRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellActivationRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P39,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellActivationRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellActivationRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellActivationRequest_specs_1 = {
+       sizeof(struct CellActivationRequest),
+       offsetof(struct CellActivationRequest, _asn_ctx),
+       asn_MAP_CellActivationRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellActivationRequest = {
+       "CellActivationRequest",
+       "CellActivationRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellActivationRequest_tags_1,
+       sizeof(asn_DEF_CellActivationRequest_tags_1)
+               /sizeof(asn_DEF_CellActivationRequest_tags_1[0]), /* 1 */
+       asn_DEF_CellActivationRequest_tags_1,   /* Same as above */
+       sizeof(asn_DEF_CellActivationRequest_tags_1)
+               /sizeof(asn_DEF_CellActivationRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellActivationRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_CellActivationRequest_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellActivationResponse.c b/e2ap/lib/CellActivationResponse.c
new file mode 100644 (file)
index 0000000..df3eb40
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellActivationResponse.h"
+
+asn_TYPE_member_t asn_MBR_CellActivationResponse_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellActivationResponse, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P40,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellActivationResponse_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellActivationResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellActivationResponse_specs_1 = {
+       sizeof(struct CellActivationResponse),
+       offsetof(struct CellActivationResponse, _asn_ctx),
+       asn_MAP_CellActivationResponse_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellActivationResponse = {
+       "CellActivationResponse",
+       "CellActivationResponse",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellActivationResponse_tags_1,
+       sizeof(asn_DEF_CellActivationResponse_tags_1)
+               /sizeof(asn_DEF_CellActivationResponse_tags_1[0]), /* 1 */
+       asn_DEF_CellActivationResponse_tags_1,  /* Same as above */
+       sizeof(asn_DEF_CellActivationResponse_tags_1)
+               /sizeof(asn_DEF_CellActivationResponse_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellActivationResponse_1,
+       1,      /* Elements count */
+       &asn_SPC_CellActivationResponse_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellAssistanceInformation.c b/e2ap/lib/CellAssistanceInformation.c
new file mode 100644 (file)
index 0000000..202e56e
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellAssistanceInformation.h"
+
+#include "Limited-list.h"
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_full_list_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_full_list_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_CellAssistanceInformation_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_CellAssistanceInformation_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_full_list_value2enum_3[] = {
+       { 0,    16,     "allServedNRcells" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_full_list_enum2value_3[] = {
+       0       /* allServedNRcells(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_full_list_specs_3 = {
+       asn_MAP_full_list_value2enum_3, /* "tag" => N; sorted by tag */
+       asn_MAP_full_list_enum2value_3, /* 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_full_list_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_full_list_3 = {
+       "full-list",
+       "full-list",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_full_list_tags_3,
+       sizeof(asn_DEF_full_list_tags_3)
+               /sizeof(asn_DEF_full_list_tags_3[0]) - 1, /* 1 */
+       asn_DEF_full_list_tags_3,       /* Same as above */
+       sizeof(asn_DEF_full_list_tags_3)
+               /sizeof(asn_DEF_full_list_tags_3[0]), /* 2 */
+       { &asn_OER_type_full_list_constr_3, &asn_PER_type_full_list_constr_3, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_full_list_specs_3      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_CellAssistanceInformation_1[] = {
+       { ATF_POINTER, 0, offsetof(struct CellAssistanceInformation, choice.limited_list),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Limited_list,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "limited-list"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellAssistanceInformation, choice.full_list),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_full_list_3,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "full-list"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellAssistanceInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* limited-list */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* full-list */
+};
+static asn_CHOICE_specifics_t asn_SPC_CellAssistanceInformation_specs_1 = {
+       sizeof(struct CellAssistanceInformation),
+       offsetof(struct CellAssistanceInformation, _asn_ctx),
+       offsetof(struct CellAssistanceInformation, present),
+       sizeof(((struct CellAssistanceInformation *)0)->present),
+       asn_MAP_CellAssistanceInformation_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_CellAssistanceInformation = {
+       "CellAssistanceInformation",
+       "CellAssistanceInformation",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_CellAssistanceInformation_constr_1, &asn_PER_type_CellAssistanceInformation_constr_1, CHOICE_constraint },
+       asn_MBR_CellAssistanceInformation_1,
+       2,      /* Elements count */
+       &asn_SPC_CellAssistanceInformation_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellBasedMDT.c b/e2ap/lib/CellBasedMDT.c
new file mode 100644 (file)
index 0000000..05f745c
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellBasedMDT.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_CellBasedMDT_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellBasedMDT, cellIdListforMDT),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CellIdListforMDT,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cellIdListforMDT"
+               },
+       { ATF_POINTER, 1, offsetof(struct CellBasedMDT, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P112,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_CellBasedMDT_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_CellBasedMDT_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellBasedMDT_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellIdListforMDT */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellBasedMDT_specs_1 = {
+       sizeof(struct CellBasedMDT),
+       offsetof(struct CellBasedMDT, _asn_ctx),
+       asn_MAP_CellBasedMDT_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_CellBasedMDT_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellBasedMDT = {
+       "CellBasedMDT",
+       "CellBasedMDT",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellBasedMDT_tags_1,
+       sizeof(asn_DEF_CellBasedMDT_tags_1)
+               /sizeof(asn_DEF_CellBasedMDT_tags_1[0]), /* 1 */
+       asn_DEF_CellBasedMDT_tags_1,    /* Same as above */
+       sizeof(asn_DEF_CellBasedMDT_tags_1)
+               /sizeof(asn_DEF_CellBasedMDT_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellBasedMDT_1,
+       2,      /* Elements count */
+       &asn_SPC_CellBasedMDT_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellBasedQMC.c b/e2ap/lib/CellBasedQMC.c
new file mode 100644 (file)
index 0000000..3562336
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellBasedQMC.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_CellBasedQMC_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellBasedQMC, cellIdListforQMC),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CellIdListforQMC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cellIdListforQMC"
+               },
+       { ATF_POINTER, 1, offsetof(struct CellBasedQMC, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P113,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_CellBasedQMC_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_CellBasedQMC_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellBasedQMC_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellIdListforQMC */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellBasedQMC_specs_1 = {
+       sizeof(struct CellBasedQMC),
+       offsetof(struct CellBasedQMC, _asn_ctx),
+       asn_MAP_CellBasedQMC_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_CellBasedQMC_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellBasedQMC = {
+       "CellBasedQMC",
+       "CellBasedQMC",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellBasedQMC_tags_1,
+       sizeof(asn_DEF_CellBasedQMC_tags_1)
+               /sizeof(asn_DEF_CellBasedQMC_tags_1[0]), /* 1 */
+       asn_DEF_CellBasedQMC_tags_1,    /* Same as above */
+       sizeof(asn_DEF_CellBasedQMC_tags_1)
+               /sizeof(asn_DEF_CellBasedQMC_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellBasedQMC_1,
+       2,      /* Elements count */
+       &asn_SPC_CellBasedQMC_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellCapacityClassValue.c b/e2ap/lib/CellCapacityClassValue.c
new file mode 100644 (file)
index 0000000..c6bcb6e
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellCapacityClassValue.h"
+
+int
+CellCapacityClassValue_constraint(const 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 >= 1 && value <= 100)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_CellCapacityClassValue_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_CellCapacityClassValue_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  7,  7,  1,  100 }  /* (1..100,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_CellCapacityClassValue_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CellCapacityClassValue = {
+       "CellCapacityClassValue",
+       "CellCapacityClassValue",
+       &asn_OP_NativeInteger,
+       asn_DEF_CellCapacityClassValue_tags_1,
+       sizeof(asn_DEF_CellCapacityClassValue_tags_1)
+               /sizeof(asn_DEF_CellCapacityClassValue_tags_1[0]), /* 1 */
+       asn_DEF_CellCapacityClassValue_tags_1,  /* Same as above */
+       sizeof(asn_DEF_CellCapacityClassValue_tags_1)
+               /sizeof(asn_DEF_CellCapacityClassValue_tags_1[0]), /* 1 */
+       { &asn_OER_type_CellCapacityClassValue_constr_1, &asn_PER_type_CellCapacityClassValue_constr_1, CellCapacityClassValue_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/CellDeploymentStatusIndicator.c b/e2ap/lib/CellDeploymentStatusIndicator.c
new file mode 100644 (file)
index 0000000..d45d186
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellDeploymentStatusIndicator.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_CellDeploymentStatusIndicator_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_CellDeploymentStatusIndicator_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_CellDeploymentStatusIndicator_value2enum_1[] = {
+       { 0,    23,     "pre-change-notification" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_CellDeploymentStatusIndicator_enum2value_1[] = {
+       0       /* pre-change-notification(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_CellDeploymentStatusIndicator_specs_1 = {
+       asn_MAP_CellDeploymentStatusIndicator_value2enum_1,     /* "tag" => N; sorted by tag */
+       asn_MAP_CellDeploymentStatusIndicator_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_CellDeploymentStatusIndicator_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CellDeploymentStatusIndicator = {
+       "CellDeploymentStatusIndicator",
+       "CellDeploymentStatusIndicator",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_CellDeploymentStatusIndicator_tags_1,
+       sizeof(asn_DEF_CellDeploymentStatusIndicator_tags_1)
+               /sizeof(asn_DEF_CellDeploymentStatusIndicator_tags_1[0]), /* 1 */
+       asn_DEF_CellDeploymentStatusIndicator_tags_1,   /* Same as above */
+       sizeof(asn_DEF_CellDeploymentStatusIndicator_tags_1)
+               /sizeof(asn_DEF_CellDeploymentStatusIndicator_tags_1[0]), /* 1 */
+       { &asn_OER_type_CellDeploymentStatusIndicator_constr_1, &asn_PER_type_CellDeploymentStatusIndicator_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_CellDeploymentStatusIndicator_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellIdListforMDT.c b/e2ap/lib/CellIdListforMDT.c
new file mode 100644 (file)
index 0000000..f1ca563
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellIdListforMDT.h"
+
+#include "ECGI.h"
+static asn_oer_constraints_t asn_OER_type_CellIdListforMDT_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..32)) */};
+asn_per_constraints_t asn_PER_type_CellIdListforMDT_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       5,  5,  1,  32 }       /* (SIZE(1..32)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_CellIdListforMDT_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellIdListforMDT_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_CellIdListforMDT_specs_1 = {
+       sizeof(struct CellIdListforMDT),
+       offsetof(struct CellIdListforMDT, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_CellIdListforMDT = {
+       "CellIdListforMDT",
+       "CellIdListforMDT",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_CellIdListforMDT_tags_1,
+       sizeof(asn_DEF_CellIdListforMDT_tags_1)
+               /sizeof(asn_DEF_CellIdListforMDT_tags_1[0]), /* 1 */
+       asn_DEF_CellIdListforMDT_tags_1,        /* Same as above */
+       sizeof(asn_DEF_CellIdListforMDT_tags_1)
+               /sizeof(asn_DEF_CellIdListforMDT_tags_1[0]), /* 1 */
+       { &asn_OER_type_CellIdListforMDT_constr_1, &asn_PER_type_CellIdListforMDT_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_CellIdListforMDT_1,
+       1,      /* Single element */
+       &asn_SPC_CellIdListforMDT_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellIdListforQMC.c b/e2ap/lib/CellIdListforQMC.c
new file mode 100644 (file)
index 0000000..3f0fbcd
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellIdListforQMC.h"
+
+#include "ECGI.h"
+static asn_oer_constraints_t asn_OER_type_CellIdListforQMC_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..32)) */};
+asn_per_constraints_t asn_PER_type_CellIdListforQMC_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       5,  5,  1,  32 }       /* (SIZE(1..32)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_CellIdListforQMC_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellIdListforQMC_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_CellIdListforQMC_specs_1 = {
+       sizeof(struct CellIdListforQMC),
+       offsetof(struct CellIdListforQMC, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_CellIdListforQMC = {
+       "CellIdListforQMC",
+       "CellIdListforQMC",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_CellIdListforQMC_tags_1,
+       sizeof(asn_DEF_CellIdListforQMC_tags_1)
+               /sizeof(asn_DEF_CellIdListforQMC_tags_1[0]), /* 1 */
+       asn_DEF_CellIdListforQMC_tags_1,        /* Same as above */
+       sizeof(asn_DEF_CellIdListforQMC_tags_1)
+               /sizeof(asn_DEF_CellIdListforQMC_tags_1[0]), /* 1 */
+       { &asn_OER_type_CellIdListforQMC_constr_1, &asn_PER_type_CellIdListforQMC_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_CellIdListforQMC_1,
+       1,      /* Single element */
+       &asn_SPC_CellIdListforQMC_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellInformation-Item.c b/e2ap/lib/CellInformation-Item.c
new file mode 100644 (file)
index 0000000..45d41e6
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellInformation-Item.h"
+
+#include "UL-InterferenceOverloadIndication.h"
+#include "UL-HighInterferenceIndicationInfo.h"
+#include "RelativeNarrowbandTxPower.h"
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_CellInformation_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item, cell_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cell-ID"
+               },
+       { ATF_POINTER, 4, offsetof(struct CellInformation_Item, ul_InterferenceOverloadIndication),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UL_InterferenceOverloadIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ul-InterferenceOverloadIndication"
+               },
+       { ATF_POINTER, 3, offsetof(struct CellInformation_Item, ul_HighInterferenceIndicationInfo),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UL_HighInterferenceIndicationInfo,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ul-HighInterferenceIndicationInfo"
+               },
+       { ATF_POINTER, 2, offsetof(struct CellInformation_Item, relativeNarrowbandTxPower),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RelativeNarrowbandTxPower,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "relativeNarrowbandTxPower"
+               },
+       { ATF_POINTER, 1, offsetof(struct CellInformation_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P7,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_CellInformation_Item_oms_1[] = { 1, 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_CellInformation_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellInformation_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cell-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ul-InterferenceOverloadIndication */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ul-HighInterferenceIndicationInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* relativeNarrowbandTxPower */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_CellInformation_Item_specs_1 = {
+       sizeof(struct CellInformation_Item),
+       offsetof(struct CellInformation_Item, _asn_ctx),
+       asn_MAP_CellInformation_Item_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_CellInformation_Item_oms_1,     /* Optional members */
+       4, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellInformation_Item = {
+       "CellInformation-Item",
+       "CellInformation-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellInformation_Item_tags_1,
+       sizeof(asn_DEF_CellInformation_Item_tags_1)
+               /sizeof(asn_DEF_CellInformation_Item_tags_1[0]), /* 1 */
+       asn_DEF_CellInformation_Item_tags_1,    /* Same as above */
+       sizeof(asn_DEF_CellInformation_Item_tags_1)
+               /sizeof(asn_DEF_CellInformation_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellInformation_Item_1,
+       5,      /* Elements count */
+       &asn_SPC_CellInformation_Item_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellInformation-List.c b/e2ap/lib/CellInformation-List.c
new file mode 100644 (file)
index 0000000..d8d7bb7
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellInformation-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_CellInformation_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_CellInformation_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_CellInformation_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P9,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellInformation_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_CellInformation_List_specs_1 = {
+       sizeof(struct CellInformation_List),
+       offsetof(struct CellInformation_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_CellInformation_List = {
+       "CellInformation-List",
+       "CellInformation-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_CellInformation_List_tags_1,
+       sizeof(asn_DEF_CellInformation_List_tags_1)
+               /sizeof(asn_DEF_CellInformation_List_tags_1[0]), /* 1 */
+       asn_DEF_CellInformation_List_tags_1,    /* Same as above */
+       sizeof(asn_DEF_CellInformation_List_tags_1)
+               /sizeof(asn_DEF_CellInformation_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_CellInformation_List_constr_1, &asn_PER_type_CellInformation_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_CellInformation_List_1,
+       1,      /* Single element */
+       &asn_SPC_CellInformation_List_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellMeasurementResult-Item.c b/e2ap/lib/CellMeasurementResult-Item.c
new file mode 100644 (file)
index 0000000..4d8de87
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellMeasurementResult-Item.h"
+
+#include "HWLoadIndicator.h"
+#include "S1TNLLoadIndicator.h"
+#include "RadioResourceStatus.h"
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_CellMeasurementResult_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item, cell_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cell-ID"
+               },
+       { ATF_POINTER, 4, offsetof(struct CellMeasurementResult_Item, hWLoadIndicator),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_HWLoadIndicator,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "hWLoadIndicator"
+               },
+       { ATF_POINTER, 3, offsetof(struct CellMeasurementResult_Item, s1TNLLoadIndicator),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_S1TNLLoadIndicator,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "s1TNLLoadIndicator"
+               },
+       { ATF_POINTER, 2, offsetof(struct CellMeasurementResult_Item, radioResourceStatus),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RadioResourceStatus,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "radioResourceStatus"
+               },
+       { ATF_POINTER, 1, offsetof(struct CellMeasurementResult_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P13,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_CellMeasurementResult_Item_oms_1[] = { 1, 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_CellMeasurementResult_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellMeasurementResult_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cell-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* hWLoadIndicator */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* s1TNLLoadIndicator */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* radioResourceStatus */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_CellMeasurementResult_Item_specs_1 = {
+       sizeof(struct CellMeasurementResult_Item),
+       offsetof(struct CellMeasurementResult_Item, _asn_ctx),
+       asn_MAP_CellMeasurementResult_Item_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_CellMeasurementResult_Item_oms_1,       /* Optional members */
+       4, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellMeasurementResult_Item = {
+       "CellMeasurementResult-Item",
+       "CellMeasurementResult-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellMeasurementResult_Item_tags_1,
+       sizeof(asn_DEF_CellMeasurementResult_Item_tags_1)
+               /sizeof(asn_DEF_CellMeasurementResult_Item_tags_1[0]), /* 1 */
+       asn_DEF_CellMeasurementResult_Item_tags_1,      /* Same as above */
+       sizeof(asn_DEF_CellMeasurementResult_Item_tags_1)
+               /sizeof(asn_DEF_CellMeasurementResult_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellMeasurementResult_Item_1,
+       5,      /* Elements count */
+       &asn_SPC_CellMeasurementResult_Item_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellMeasurementResult-List.c b/e2ap/lib/CellMeasurementResult-List.c
new file mode 100644 (file)
index 0000000..82fe435
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellMeasurementResult-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_CellMeasurementResult_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_CellMeasurementResult_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_CellMeasurementResult_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P14,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellMeasurementResult_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_CellMeasurementResult_List_specs_1 = {
+       sizeof(struct CellMeasurementResult_List),
+       offsetof(struct CellMeasurementResult_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_CellMeasurementResult_List = {
+       "CellMeasurementResult-List",
+       "CellMeasurementResult-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_CellMeasurementResult_List_tags_1,
+       sizeof(asn_DEF_CellMeasurementResult_List_tags_1)
+               /sizeof(asn_DEF_CellMeasurementResult_List_tags_1[0]), /* 1 */
+       asn_DEF_CellMeasurementResult_List_tags_1,      /* Same as above */
+       sizeof(asn_DEF_CellMeasurementResult_List_tags_1)
+               /sizeof(asn_DEF_CellMeasurementResult_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_CellMeasurementResult_List_constr_1, &asn_PER_type_CellMeasurementResult_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_CellMeasurementResult_List_1,
+       1,      /* Single element */
+       &asn_SPC_CellMeasurementResult_List_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellReplacingInfo.c b/e2ap/lib/CellReplacingInfo.c
new file mode 100644 (file)
index 0000000..23da338
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellReplacingInfo.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_CellReplacingInfo_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellReplacingInfo, replacingCellsList),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ReplacingCellsList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "replacingCellsList"
+               },
+       { ATF_POINTER, 1, offsetof(struct CellReplacingInfo, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P114,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_CellReplacingInfo_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_CellReplacingInfo_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellReplacingInfo_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* replacingCellsList */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellReplacingInfo_specs_1 = {
+       sizeof(struct CellReplacingInfo),
+       offsetof(struct CellReplacingInfo, _asn_ctx),
+       asn_MAP_CellReplacingInfo_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_CellReplacingInfo_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellReplacingInfo = {
+       "CellReplacingInfo",
+       "CellReplacingInfo",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellReplacingInfo_tags_1,
+       sizeof(asn_DEF_CellReplacingInfo_tags_1)
+               /sizeof(asn_DEF_CellReplacingInfo_tags_1[0]), /* 1 */
+       asn_DEF_CellReplacingInfo_tags_1,       /* Same as above */
+       sizeof(asn_DEF_CellReplacingInfo_tags_1)
+               /sizeof(asn_DEF_CellReplacingInfo_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellReplacingInfo_1,
+       2,      /* Elements count */
+       &asn_SPC_CellReplacingInfo_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellReportingIndicator.c b/e2ap/lib/CellReportingIndicator.c
new file mode 100644 (file)
index 0000000..58148ea
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellReportingIndicator.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_CellReportingIndicator_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_CellReportingIndicator_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_CellReportingIndicator_value2enum_1[] = {
+       { 0,    12,     "stop-request" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_CellReportingIndicator_enum2value_1[] = {
+       0       /* stop-request(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_CellReportingIndicator_specs_1 = {
+       asn_MAP_CellReportingIndicator_value2enum_1,    /* "tag" => N; sorted by tag */
+       asn_MAP_CellReportingIndicator_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_CellReportingIndicator_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CellReportingIndicator = {
+       "CellReportingIndicator",
+       "CellReportingIndicator",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_CellReportingIndicator_tags_1,
+       sizeof(asn_DEF_CellReportingIndicator_tags_1)
+               /sizeof(asn_DEF_CellReportingIndicator_tags_1[0]), /* 1 */
+       asn_DEF_CellReportingIndicator_tags_1,  /* Same as above */
+       sizeof(asn_DEF_CellReportingIndicator_tags_1)
+               /sizeof(asn_DEF_CellReportingIndicator_tags_1[0]), /* 1 */
+       { &asn_OER_type_CellReportingIndicator_constr_1, &asn_PER_type_CellReportingIndicator_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_CellReportingIndicator_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellToReport-Item.c b/e2ap/lib/CellToReport-Item.c
new file mode 100644 (file)
index 0000000..038eaff
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellToReport-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_CellToReport_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellToReport_Item, cell_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cell-ID"
+               },
+       { ATF_POINTER, 1, offsetof(struct CellToReport_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P9,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_CellToReport_Item_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_CellToReport_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellToReport_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cell-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_CellToReport_Item_specs_1 = {
+       sizeof(struct CellToReport_Item),
+       offsetof(struct CellToReport_Item, _asn_ctx),
+       asn_MAP_CellToReport_Item_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_CellToReport_Item_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellToReport_Item = {
+       "CellToReport-Item",
+       "CellToReport-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellToReport_Item_tags_1,
+       sizeof(asn_DEF_CellToReport_Item_tags_1)
+               /sizeof(asn_DEF_CellToReport_Item_tags_1[0]), /* 1 */
+       asn_DEF_CellToReport_Item_tags_1,       /* Same as above */
+       sizeof(asn_DEF_CellToReport_Item_tags_1)
+               /sizeof(asn_DEF_CellToReport_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellToReport_Item_1,
+       2,      /* Elements count */
+       &asn_SPC_CellToReport_Item_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellToReport-List.c b/e2ap/lib/CellToReport-List.c
new file mode 100644 (file)
index 0000000..9ed6cfe
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellToReport-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_CellToReport_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_CellToReport_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_CellToReport_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P10,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellToReport_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_CellToReport_List_specs_1 = {
+       sizeof(struct CellToReport_List),
+       offsetof(struct CellToReport_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_CellToReport_List = {
+       "CellToReport-List",
+       "CellToReport-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_CellToReport_List_tags_1,
+       sizeof(asn_DEF_CellToReport_List_tags_1)
+               /sizeof(asn_DEF_CellToReport_List_tags_1[0]), /* 1 */
+       asn_DEF_CellToReport_List_tags_1,       /* Same as above */
+       sizeof(asn_DEF_CellToReport_List_tags_1)
+               /sizeof(asn_DEF_CellToReport_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_CellToReport_List_constr_1, &asn_PER_type_CellToReport_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_CellToReport_List_1,
+       1,      /* Single element */
+       &asn_SPC_CellToReport_List_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/CellType.c b/e2ap/lib/CellType.c
new file mode 100644 (file)
index 0000000..4a387c5
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CellType.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_CellType_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellType, cell_Size),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Cell_Size,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cell-Size"
+               },
+       { ATF_POINTER, 1, offsetof(struct CellType, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P115,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_CellType_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_CellType_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellType_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cell-Size */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellType_specs_1 = {
+       sizeof(struct CellType),
+       offsetof(struct CellType, _asn_ctx),
+       asn_MAP_CellType_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_CellType_oms_1, /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellType = {
+       "CellType",
+       "CellType",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellType_tags_1,
+       sizeof(asn_DEF_CellType_tags_1)
+               /sizeof(asn_DEF_CellType_tags_1[0]), /* 1 */
+       asn_DEF_CellType_tags_1,        /* Same as above */
+       sizeof(asn_DEF_CellType_tags_1)
+               /sizeof(asn_DEF_CellType_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellType_1,
+       2,      /* Elements count */
+       &asn_SPC_CellType_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/CoMPHypothesisSet.c b/e2ap/lib/CoMPHypothesisSet.c
new file mode 100644 (file)
index 0000000..67d137e
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CoMPHypothesisSet.h"
+
+#include "CoMPHypothesisSetItem.h"
+static asn_oer_constraints_t asn_OER_type_CoMPHypothesisSet_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..32)) */};
+asn_per_constraints_t asn_PER_type_CoMPHypothesisSet_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       5,  5,  1,  32 }       /* (SIZE(1..32)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_CoMPHypothesisSet_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CoMPHypothesisSetItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CoMPHypothesisSet_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_CoMPHypothesisSet_specs_1 = {
+       sizeof(struct CoMPHypothesisSet),
+       offsetof(struct CoMPHypothesisSet, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_CoMPHypothesisSet = {
+       "CoMPHypothesisSet",
+       "CoMPHypothesisSet",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_CoMPHypothesisSet_tags_1,
+       sizeof(asn_DEF_CoMPHypothesisSet_tags_1)
+               /sizeof(asn_DEF_CoMPHypothesisSet_tags_1[0]), /* 1 */
+       asn_DEF_CoMPHypothesisSet_tags_1,       /* Same as above */
+       sizeof(asn_DEF_CoMPHypothesisSet_tags_1)
+               /sizeof(asn_DEF_CoMPHypothesisSet_tags_1[0]), /* 1 */
+       { &asn_OER_type_CoMPHypothesisSet_constr_1, &asn_PER_type_CoMPHypothesisSet_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_CoMPHypothesisSet_1,
+       1,      /* Single element */
+       &asn_SPC_CoMPHypothesisSet_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/CoMPHypothesisSetItem.c b/e2ap/lib/CoMPHypothesisSetItem.c
new file mode 100644 (file)
index 0000000..011dd3d
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CoMPHypothesisSetItem.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_coMPHypothesis_constraint_1(const 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 >= 6 && size <= 4400)) {
+               /* 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_oer_constraints_t asn_OER_memb_coMPHypothesis_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+static asn_per_constraints_t asn_PER_memb_coMPHypothesis_constr_3 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  13,  13,  6,  4400 }       /* (SIZE(6..4400,...)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_CoMPHypothesisSetItem_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CoMPHypothesisSetItem, coMPCellID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "coMPCellID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CoMPHypothesisSetItem, coMPHypothesis),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_coMPHypothesis_constr_3, &asn_PER_memb_coMPHypothesis_constr_3,  memb_coMPHypothesis_constraint_1 },
+               0, 0, /* No default value */
+               "coMPHypothesis"
+               },
+       { ATF_POINTER, 1, offsetof(struct CoMPHypothesisSetItem, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P117,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_CoMPHypothesisSetItem_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_CoMPHypothesisSetItem_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CoMPHypothesisSetItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* coMPCellID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* coMPHypothesis */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CoMPHypothesisSetItem_specs_1 = {
+       sizeof(struct CoMPHypothesisSetItem),
+       offsetof(struct CoMPHypothesisSetItem, _asn_ctx),
+       asn_MAP_CoMPHypothesisSetItem_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_CoMPHypothesisSetItem_oms_1,    /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CoMPHypothesisSetItem = {
+       "CoMPHypothesisSetItem",
+       "CoMPHypothesisSetItem",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CoMPHypothesisSetItem_tags_1,
+       sizeof(asn_DEF_CoMPHypothesisSetItem_tags_1)
+               /sizeof(asn_DEF_CoMPHypothesisSetItem_tags_1[0]), /* 1 */
+       asn_DEF_CoMPHypothesisSetItem_tags_1,   /* Same as above */
+       sizeof(asn_DEF_CoMPHypothesisSetItem_tags_1)
+               /sizeof(asn_DEF_CoMPHypothesisSetItem_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CoMPHypothesisSetItem_1,
+       3,      /* Elements count */
+       &asn_SPC_CoMPHypothesisSetItem_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/CoMPInformation.c b/e2ap/lib/CoMPInformation.c
new file mode 100644 (file)
index 0000000..a307d42
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CoMPInformation.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_CoMPInformation_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CoMPInformation, coMPInformationItem),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CoMPInformationItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "coMPInformationItem"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CoMPInformation, coMPInformationStartTime),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CoMPInformationStartTime,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "coMPInformationStartTime"
+               },
+       { ATF_POINTER, 1, offsetof(struct CoMPInformation, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P118,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_CoMPInformation_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_CoMPInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CoMPInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* coMPInformationItem */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* coMPInformationStartTime */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_CoMPInformation_specs_1 = {
+       sizeof(struct CoMPInformation),
+       offsetof(struct CoMPInformation, _asn_ctx),
+       asn_MAP_CoMPInformation_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_CoMPInformation_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CoMPInformation = {
+       "CoMPInformation",
+       "CoMPInformation",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CoMPInformation_tags_1,
+       sizeof(asn_DEF_CoMPInformation_tags_1)
+               /sizeof(asn_DEF_CoMPInformation_tags_1[0]), /* 1 */
+       asn_DEF_CoMPInformation_tags_1, /* Same as above */
+       sizeof(asn_DEF_CoMPInformation_tags_1)
+               /sizeof(asn_DEF_CoMPInformation_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CoMPInformation_1,
+       3,      /* Elements count */
+       &asn_SPC_CoMPInformation_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/CoMPInformationItem.c b/e2ap/lib/CoMPInformationItem.c
new file mode 100644 (file)
index 0000000..4737ceb
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CoMPInformationItem.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_oer_constraints_t asn_OER_type_CoMPInformationItem_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+asn_per_constraints_t asn_PER_type_CoMPInformationItem_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CoMPInformationItem__Member, coMPHypothesisSet),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CoMPHypothesisSet,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "coMPHypothesisSet"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CoMPInformationItem__Member, benefitMetric),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BenefitMetric,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "benefitMetric"
+               },
+       { ATF_POINTER, 1, offsetof(struct CoMPInformationItem__Member, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P119,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "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 }, /* coMPHypothesisSet */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* benefitMetric */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+       sizeof(struct CoMPInformationItem__Member),
+       offsetof(struct CoMPInformationItem__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 */
+       3,      /* First extension addition */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+       "SEQUENCE",
+       "SEQUENCE",
+       &asn_OP_SEQUENCE,
+       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, 0, SEQUENCE_constraint },
+       asn_MBR_Member_2,
+       3,      /* Elements count */
+       &asn_SPC_Member_specs_2 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CoMPInformationItem_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Member_2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CoMPInformationItem_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_CoMPInformationItem_specs_1 = {
+       sizeof(struct CoMPInformationItem),
+       offsetof(struct CoMPInformationItem, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_CoMPInformationItem = {
+       "CoMPInformationItem",
+       "CoMPInformationItem",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_CoMPInformationItem_tags_1,
+       sizeof(asn_DEF_CoMPInformationItem_tags_1)
+               /sizeof(asn_DEF_CoMPInformationItem_tags_1[0]), /* 1 */
+       asn_DEF_CoMPInformationItem_tags_1,     /* Same as above */
+       sizeof(asn_DEF_CoMPInformationItem_tags_1)
+               /sizeof(asn_DEF_CoMPInformationItem_tags_1[0]), /* 1 */
+       { &asn_OER_type_CoMPInformationItem_constr_1, &asn_PER_type_CoMPInformationItem_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_CoMPInformationItem_1,
+       1,      /* Single element */
+       &asn_SPC_CoMPInformationItem_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/CoMPInformationStartTime.c b/e2ap/lib/CoMPInformationStartTime.c
new file mode 100644 (file)
index 0000000..a554a11
--- /dev/null
@@ -0,0 +1,183 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CoMPInformationStartTime.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_startSFN_constraint_2(const 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 >= 0 && value <= 1023)) {
+               /* 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_startSubframeNumber_constraint_2(const 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 >= 0 && value <= 9)) {
+               /* 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_oer_constraints_t asn_OER_memb_startSFN_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_startSFN_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  10,  10,  0,  1023 }       /* (0..1023,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_startSubframeNumber_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_startSubframeNumber_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  9 }    /* (0..9,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_CoMPInformationStartTime_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..1)) */};
+asn_per_constraints_t asn_PER_type_CoMPInformationStartTime_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (SIZE(0..1)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CoMPInformationStartTime__Member, startSFN),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_startSFN_constr_3, &asn_PER_memb_startSFN_constr_3,  memb_startSFN_constraint_2 },
+               0, 0, /* No default value */
+               "startSFN"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CoMPInformationStartTime__Member, startSubframeNumber),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_startSubframeNumber_constr_4, &asn_PER_memb_startSubframeNumber_constr_4,  memb_startSubframeNumber_constraint_2 },
+               0, 0, /* No default value */
+               "startSubframeNumber"
+               },
+       { ATF_POINTER, 1, offsetof(struct CoMPInformationStartTime__Member, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P120,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "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 }, /* startSFN */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* startSubframeNumber */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+       sizeof(struct CoMPInformationStartTime__Member),
+       offsetof(struct CoMPInformationStartTime__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 */
+       3,      /* First extension addition */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+       "SEQUENCE",
+       "SEQUENCE",
+       &asn_OP_SEQUENCE,
+       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, 0, SEQUENCE_constraint },
+       asn_MBR_Member_2,
+       3,      /* Elements count */
+       &asn_SPC_Member_specs_2 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CoMPInformationStartTime_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Member_2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CoMPInformationStartTime_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_CoMPInformationStartTime_specs_1 = {
+       sizeof(struct CoMPInformationStartTime),
+       offsetof(struct CoMPInformationStartTime, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_CoMPInformationStartTime = {
+       "CoMPInformationStartTime",
+       "CoMPInformationStartTime",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_CoMPInformationStartTime_tags_1,
+       sizeof(asn_DEF_CoMPInformationStartTime_tags_1)
+               /sizeof(asn_DEF_CoMPInformationStartTime_tags_1[0]), /* 1 */
+       asn_DEF_CoMPInformationStartTime_tags_1,        /* Same as above */
+       sizeof(asn_DEF_CoMPInformationStartTime_tags_1)
+               /sizeof(asn_DEF_CoMPInformationStartTime_tags_1[0]), /* 1 */
+       { &asn_OER_type_CoMPInformationStartTime_constr_1, &asn_PER_type_CoMPInformationStartTime_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_CoMPInformationStartTime_1,
+       1,      /* Single element */
+       &asn_SPC_CoMPInformationStartTime_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/CompleteFailureCauseInformation-Item.c b/e2ap/lib/CompleteFailureCauseInformation-Item.c
new file mode 100644 (file)
index 0000000..c9a02f4
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CompleteFailureCauseInformation-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_CompleteFailureCauseInformation_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_Item, cell_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cell-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_Item, measurementFailureCause_List),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_MeasurementFailureCause_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "measurementFailureCause-List"
+               },
+       { ATF_POINTER, 1, offsetof(struct CompleteFailureCauseInformation_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P12,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_CompleteFailureCauseInformation_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_CompleteFailureCauseInformation_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CompleteFailureCauseInformation_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cell-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measurementFailureCause-List */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_CompleteFailureCauseInformation_Item_specs_1 = {
+       sizeof(struct CompleteFailureCauseInformation_Item),
+       offsetof(struct CompleteFailureCauseInformation_Item, _asn_ctx),
+       asn_MAP_CompleteFailureCauseInformation_Item_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_CompleteFailureCauseInformation_Item_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CompleteFailureCauseInformation_Item = {
+       "CompleteFailureCauseInformation-Item",
+       "CompleteFailureCauseInformation-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CompleteFailureCauseInformation_Item_tags_1,
+       sizeof(asn_DEF_CompleteFailureCauseInformation_Item_tags_1)
+               /sizeof(asn_DEF_CompleteFailureCauseInformation_Item_tags_1[0]), /* 1 */
+       asn_DEF_CompleteFailureCauseInformation_Item_tags_1,    /* Same as above */
+       sizeof(asn_DEF_CompleteFailureCauseInformation_Item_tags_1)
+               /sizeof(asn_DEF_CompleteFailureCauseInformation_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CompleteFailureCauseInformation_Item_1,
+       3,      /* Elements count */
+       &asn_SPC_CompleteFailureCauseInformation_Item_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/CompleteFailureCauseInformation-List.c b/e2ap/lib/CompleteFailureCauseInformation-List.c
new file mode 100644 (file)
index 0000000..576d477
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CompleteFailureCauseInformation-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_CompleteFailureCauseInformation_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_CompleteFailureCauseInformation_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_CompleteFailureCauseInformation_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P13,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CompleteFailureCauseInformation_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_CompleteFailureCauseInformation_List_specs_1 = {
+       sizeof(struct CompleteFailureCauseInformation_List),
+       offsetof(struct CompleteFailureCauseInformation_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_CompleteFailureCauseInformation_List = {
+       "CompleteFailureCauseInformation-List",
+       "CompleteFailureCauseInformation-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_CompleteFailureCauseInformation_List_tags_1,
+       sizeof(asn_DEF_CompleteFailureCauseInformation_List_tags_1)
+               /sizeof(asn_DEF_CompleteFailureCauseInformation_List_tags_1[0]), /* 1 */
+       asn_DEF_CompleteFailureCauseInformation_List_tags_1,    /* Same as above */
+       sizeof(asn_DEF_CompleteFailureCauseInformation_List_tags_1)
+               /sizeof(asn_DEF_CompleteFailureCauseInformation_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_CompleteFailureCauseInformation_List_constr_1, &asn_PER_type_CompleteFailureCauseInformation_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_CompleteFailureCauseInformation_List_1,
+       1,      /* Single element */
+       &asn_SPC_CompleteFailureCauseInformation_List_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/CompositeAvailableCapacity.c b/e2ap/lib/CompositeAvailableCapacity.c
new file mode 100644 (file)
index 0000000..3d1d1bc
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CompositeAvailableCapacity.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_CompositeAvailableCapacity_1[] = {
+       { ATF_POINTER, 1, offsetof(struct CompositeAvailableCapacity, cellCapacityClassValue),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CellCapacityClassValue,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cellCapacityClassValue"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacity, capacityValue),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CapacityValue,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "capacityValue"
+               },
+       { ATF_POINTER, 1, offsetof(struct CompositeAvailableCapacity, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P121,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_CompositeAvailableCapacity_oms_1[] = { 0, 2 };
+static const ber_tlv_tag_t asn_DEF_CompositeAvailableCapacity_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CompositeAvailableCapacity_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellCapacityClassValue */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* capacityValue */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CompositeAvailableCapacity_specs_1 = {
+       sizeof(struct CompositeAvailableCapacity),
+       offsetof(struct CompositeAvailableCapacity, _asn_ctx),
+       asn_MAP_CompositeAvailableCapacity_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_CompositeAvailableCapacity_oms_1,       /* Optional members */
+       2, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CompositeAvailableCapacity = {
+       "CompositeAvailableCapacity",
+       "CompositeAvailableCapacity",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CompositeAvailableCapacity_tags_1,
+       sizeof(asn_DEF_CompositeAvailableCapacity_tags_1)
+               /sizeof(asn_DEF_CompositeAvailableCapacity_tags_1[0]), /* 1 */
+       asn_DEF_CompositeAvailableCapacity_tags_1,      /* Same as above */
+       sizeof(asn_DEF_CompositeAvailableCapacity_tags_1)
+               /sizeof(asn_DEF_CompositeAvailableCapacity_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CompositeAvailableCapacity_1,
+       3,      /* Elements count */
+       &asn_SPC_CompositeAvailableCapacity_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/CompositeAvailableCapacityGroup.c b/e2ap/lib/CompositeAvailableCapacityGroup.c
new file mode 100644 (file)
index 0000000..5d83767
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CompositeAvailableCapacityGroup.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_CompositeAvailableCapacityGroup_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacityGroup, dL_CompositeAvailableCapacity),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CompositeAvailableCapacity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-CompositeAvailableCapacity"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacityGroup, uL_CompositeAvailableCapacity),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CompositeAvailableCapacity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-CompositeAvailableCapacity"
+               },
+       { ATF_POINTER, 1, offsetof(struct CompositeAvailableCapacityGroup, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P122,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_CompositeAvailableCapacityGroup_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_CompositeAvailableCapacityGroup_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CompositeAvailableCapacityGroup_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dL-CompositeAvailableCapacity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-CompositeAvailableCapacity */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_CompositeAvailableCapacityGroup_specs_1 = {
+       sizeof(struct CompositeAvailableCapacityGroup),
+       offsetof(struct CompositeAvailableCapacityGroup, _asn_ctx),
+       asn_MAP_CompositeAvailableCapacityGroup_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_CompositeAvailableCapacityGroup_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CompositeAvailableCapacityGroup = {
+       "CompositeAvailableCapacityGroup",
+       "CompositeAvailableCapacityGroup",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CompositeAvailableCapacityGroup_tags_1,
+       sizeof(asn_DEF_CompositeAvailableCapacityGroup_tags_1)
+               /sizeof(asn_DEF_CompositeAvailableCapacityGroup_tags_1[0]), /* 1 */
+       asn_DEF_CompositeAvailableCapacityGroup_tags_1, /* Same as above */
+       sizeof(asn_DEF_CompositeAvailableCapacityGroup_tags_1)
+               /sizeof(asn_DEF_CompositeAvailableCapacityGroup_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CompositeAvailableCapacityGroup_1,
+       3,      /* Elements count */
+       &asn_SPC_CompositeAvailableCapacityGroup_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/Correlation-ID.c b/e2ap/lib/Correlation-ID.c
new file mode 100644 (file)
index 0000000..25b0a44
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Correlation-ID.h"
+
+int
+Correlation_ID_constraint(const 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 == 4)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_Correlation_ID_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       4       /* (SIZE(4..4)) */};
+static asn_per_constraints_t asn_PER_type_Correlation_ID_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  4,  4 }        /* (SIZE(4..4)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_Correlation_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Correlation_ID = {
+       "Correlation-ID",
+       "Correlation-ID",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_Correlation_ID_tags_1,
+       sizeof(asn_DEF_Correlation_ID_tags_1)
+               /sizeof(asn_DEF_Correlation_ID_tags_1[0]), /* 1 */
+       asn_DEF_Correlation_ID_tags_1,  /* Same as above */
+       sizeof(asn_DEF_Correlation_ID_tags_1)
+               /sizeof(asn_DEF_Correlation_ID_tags_1[0]), /* 1 */
+       { &asn_OER_type_Correlation_ID_constr_1, &asn_PER_type_Correlation_ID_constr_1, Correlation_ID_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/CoverageModification-Item.c b/e2ap/lib/CoverageModification-Item.c
new file mode 100644 (file)
index 0000000..19fbfa0
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CoverageModification-Item.h"
+
+#include "CellReplacingInfo.h"
+static int
+memb_coverageState_constraint_1(const 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 >= 0 && value <= 15)) {
+               /* 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_oer_constraints_t asn_OER_memb_coverageState_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_coverageState_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  15 }   /* (0..15,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_CoverageModification_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CoverageModification_Item, eCGI),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "eCGI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CoverageModification_Item, coverageState),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_coverageState_constr_3, &asn_PER_memb_coverageState_constr_3,  memb_coverageState_constraint_1 },
+               0, 0, /* No default value */
+               "coverageState"
+               },
+       { ATF_POINTER, 2, offsetof(struct CoverageModification_Item, cellDeploymentStatusIndicator),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CellDeploymentStatusIndicator,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cellDeploymentStatusIndicator"
+               },
+       { ATF_POINTER, 1, offsetof(struct CoverageModification_Item, cellReplacingInfo),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CellReplacingInfo,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cellReplacingInfo"
+               },
+};
+static const int asn_MAP_CoverageModification_Item_oms_1[] = { 2, 3 };
+static const ber_tlv_tag_t asn_DEF_CoverageModification_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CoverageModification_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eCGI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* coverageState */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cellDeploymentStatusIndicator */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* cellReplacingInfo */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CoverageModification_Item_specs_1 = {
+       sizeof(struct CoverageModification_Item),
+       offsetof(struct CoverageModification_Item, _asn_ctx),
+       asn_MAP_CoverageModification_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_CoverageModification_Item_oms_1,        /* Optional members */
+       2, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CoverageModification_Item = {
+       "CoverageModification-Item",
+       "CoverageModification-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CoverageModification_Item_tags_1,
+       sizeof(asn_DEF_CoverageModification_Item_tags_1)
+               /sizeof(asn_DEF_CoverageModification_Item_tags_1[0]), /* 1 */
+       asn_DEF_CoverageModification_Item_tags_1,       /* Same as above */
+       sizeof(asn_DEF_CoverageModification_Item_tags_1)
+               /sizeof(asn_DEF_CoverageModification_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CoverageModification_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_CoverageModification_Item_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/CoverageModificationList.c b/e2ap/lib/CoverageModificationList.c
new file mode 100644 (file)
index 0000000..aa8613c
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CoverageModificationList.h"
+
+#include "CoverageModification-Item.h"
+static asn_oer_constraints_t asn_OER_type_CoverageModificationList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_CoverageModificationList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_CoverageModificationList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CoverageModification_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CoverageModificationList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_CoverageModificationList_specs_1 = {
+       sizeof(struct CoverageModificationList),
+       offsetof(struct CoverageModificationList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_CoverageModificationList = {
+       "CoverageModificationList",
+       "CoverageModificationList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_CoverageModificationList_tags_1,
+       sizeof(asn_DEF_CoverageModificationList_tags_1)
+               /sizeof(asn_DEF_CoverageModificationList_tags_1[0]), /* 1 */
+       asn_DEF_CoverageModificationList_tags_1,        /* Same as above */
+       sizeof(asn_DEF_CoverageModificationList_tags_1)
+               /sizeof(asn_DEF_CoverageModificationList_tags_1[0]), /* 1 */
+       { &asn_OER_type_CoverageModificationList_constr_1, &asn_PER_type_CoverageModificationList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_CoverageModificationList_1,
+       1,      /* Single element */
+       &asn_SPC_CoverageModificationList_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/Criticality.c b/e2ap/lib/Criticality.c
new file mode 100644 (file)
index 0000000..18bd0dd
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-CommonDataTypes"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Criticality.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_Criticality_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_Criticality_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_Criticality_value2enum_1[] = {
+       { 0,    6,      "reject" },
+       { 1,    6,      "ignore" },
+       { 2,    6,      "notify" }
+};
+static const unsigned int asn_MAP_Criticality_enum2value_1[] = {
+       1,      /* ignore(1) */
+       2,      /* notify(2) */
+       0       /* reject(0) */
+};
+const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1 = {
+       asn_MAP_Criticality_value2enum_1,       /* "tag" => N; sorted by tag */
+       asn_MAP_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_Criticality_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Criticality = {
+       "Criticality",
+       "Criticality",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_Criticality_tags_1,
+       sizeof(asn_DEF_Criticality_tags_1)
+               /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */
+       asn_DEF_Criticality_tags_1,     /* Same as above */
+       sizeof(asn_DEF_Criticality_tags_1)
+               /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */
+       { &asn_OER_type_Criticality_constr_1, &asn_PER_type_Criticality_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_Criticality_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/CriticalityDiagnostics-IE-List.c b/e2ap/lib/CriticalityDiagnostics-IE-List.c
new file mode 100644 (file)
index 0000000..77ae7b3
--- /dev/null
@@ -0,0 +1,127 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CriticalityDiagnostics-IE-List.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_oer_constraints_t asn_OER_type_CriticalityDiagnostics_IE_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_List__Member, iECriticality),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iECriticality"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_List__Member, iE_ID),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_List__Member, typeOfError),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TypeOfError,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "typeOfError"
+               },
+       { ATF_POINTER, 1, offsetof(struct CriticalityDiagnostics_IE_List__Member, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P127,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_Member_oms_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 }, /* typeOfError */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+       sizeof(struct CriticalityDiagnostics_IE_List__Member),
+       offsetof(struct CriticalityDiagnostics_IE_List__Member, _asn_ctx),
+       asn_MAP_Member_tag2el_2,
+       4,      /* Count of tags in the map */
+       asn_MAP_Member_oms_2,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+       "SEQUENCE",
+       "SEQUENCE",
+       &asn_OP_SEQUENCE,
+       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, 0, SEQUENCE_constraint },
+       asn_MBR_Member_2,
+       4,      /* Elements count */
+       &asn_SPC_Member_specs_2 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Member_2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1 = {
+       sizeof(struct CriticalityDiagnostics_IE_List),
+       offsetof(struct CriticalityDiagnostics_IE_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List = {
+       "CriticalityDiagnostics-IE-List",
+       "CriticalityDiagnostics-IE-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_CriticalityDiagnostics_IE_List_tags_1,
+       sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1)
+               /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */
+       asn_DEF_CriticalityDiagnostics_IE_List_tags_1,  /* Same as above */
+       sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1)
+               /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_CriticalityDiagnostics_IE_List_constr_1, &asn_PER_type_CriticalityDiagnostics_IE_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_CriticalityDiagnostics_IE_List_1,
+       1,      /* Single element */
+       &asn_SPC_CriticalityDiagnostics_IE_List_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/CriticalityDiagnostics.c b/e2ap/lib/CriticalityDiagnostics.c
new file mode 100644 (file)
index 0000000..3e2a7e2
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CriticalityDiagnostics.h"
+
+#include "CriticalityDiagnostics-IE-List.h"
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[] = {
+       { ATF_POINTER, 5, offsetof(struct CriticalityDiagnostics, procedureCode),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProcedureCode,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "procedureCode"
+               },
+       { ATF_POINTER, 4, offsetof(struct CriticalityDiagnostics, triggeringMessage),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TriggeringMessage,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "triggeringMessage"
+               },
+       { ATF_POINTER, 3, offsetof(struct CriticalityDiagnostics, procedureCriticality),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "procedureCriticality"
+               },
+       { ATF_POINTER, 2, offsetof(struct CriticalityDiagnostics, iEsCriticalityDiagnostics),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CriticalityDiagnostics_IE_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iEsCriticalityDiagnostics"
+               },
+       { ATF_POINTER, 1, offsetof(struct CriticalityDiagnostics, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P126,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_CriticalityDiagnostics_oms_1[] = { 0, 1, 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_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_CriticalityDiagnostics_specs_1 = {
+       sizeof(struct CriticalityDiagnostics),
+       offsetof(struct CriticalityDiagnostics, _asn_ctx),
+       asn_MAP_CriticalityDiagnostics_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_CriticalityDiagnostics_oms_1,   /* Optional members */
+       5, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics = {
+       "CriticalityDiagnostics",
+       "CriticalityDiagnostics",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CriticalityDiagnostics_tags_1,
+       sizeof(asn_DEF_CriticalityDiagnostics_tags_1)
+               /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */
+       asn_DEF_CriticalityDiagnostics_tags_1,  /* Same as above */
+       sizeof(asn_DEF_CriticalityDiagnostics_tags_1)
+               /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CriticalityDiagnostics_1,
+       5,      /* Elements count */
+       &asn_SPC_CriticalityDiagnostics_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/CyclicPrefixDL.c b/e2ap/lib/CyclicPrefixDL.c
new file mode 100644 (file)
index 0000000..da5175c
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CyclicPrefixDL.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_CyclicPrefixDL_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_CyclicPrefixDL_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_CyclicPrefixDL_value2enum_1[] = {
+       { 0,    6,      "normal" },
+       { 1,    8,      "extended" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_CyclicPrefixDL_enum2value_1[] = {
+       1,      /* extended(1) */
+       0       /* normal(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_CyclicPrefixDL_specs_1 = {
+       asn_MAP_CyclicPrefixDL_value2enum_1,    /* "tag" => N; sorted by tag */
+       asn_MAP_CyclicPrefixDL_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_CyclicPrefixDL_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CyclicPrefixDL = {
+       "CyclicPrefixDL",
+       "CyclicPrefixDL",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_CyclicPrefixDL_tags_1,
+       sizeof(asn_DEF_CyclicPrefixDL_tags_1)
+               /sizeof(asn_DEF_CyclicPrefixDL_tags_1[0]), /* 1 */
+       asn_DEF_CyclicPrefixDL_tags_1,  /* Same as above */
+       sizeof(asn_DEF_CyclicPrefixDL_tags_1)
+               /sizeof(asn_DEF_CyclicPrefixDL_tags_1[0]), /* 1 */
+       { &asn_OER_type_CyclicPrefixDL_constr_1, &asn_PER_type_CyclicPrefixDL_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_CyclicPrefixDL_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/CyclicPrefixUL.c b/e2ap/lib/CyclicPrefixUL.c
new file mode 100644 (file)
index 0000000..4284b89
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "CyclicPrefixUL.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_CyclicPrefixUL_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_CyclicPrefixUL_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_CyclicPrefixUL_value2enum_1[] = {
+       { 0,    6,      "normal" },
+       { 1,    8,      "extended" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_CyclicPrefixUL_enum2value_1[] = {
+       1,      /* extended(1) */
+       0       /* normal(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_CyclicPrefixUL_specs_1 = {
+       asn_MAP_CyclicPrefixUL_value2enum_1,    /* "tag" => N; sorted by tag */
+       asn_MAP_CyclicPrefixUL_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_CyclicPrefixUL_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CyclicPrefixUL = {
+       "CyclicPrefixUL",
+       "CyclicPrefixUL",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_CyclicPrefixUL_tags_1,
+       sizeof(asn_DEF_CyclicPrefixUL_tags_1)
+               /sizeof(asn_DEF_CyclicPrefixUL_tags_1[0]), /* 1 */
+       asn_DEF_CyclicPrefixUL_tags_1,  /* Same as above */
+       sizeof(asn_DEF_CyclicPrefixUL_tags_1)
+               /sizeof(asn_DEF_CyclicPrefixUL_tags_1[0]), /* 1 */
+       { &asn_OER_type_CyclicPrefixUL_constr_1, &asn_PER_type_CyclicPrefixUL_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_CyclicPrefixUL_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/DL-ABS-status.c b/e2ap/lib/DL-ABS-status.c
new file mode 100644 (file)
index 0000000..8d871f4
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "DL-ABS-status.h"
+
+int
+DL_ABS_status_constraint(const 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 >= 0 && value <= 100)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_DL_ABS_status_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..100) */,
+       -1};
+asn_per_constraints_t asn_PER_type_DL_ABS_status_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       7,  7,  0,  100 }      /* (0..100) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_DL_ABS_status_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_DL_ABS_status = {
+       "DL-ABS-status",
+       "DL-ABS-status",
+       &asn_OP_NativeInteger,
+       asn_DEF_DL_ABS_status_tags_1,
+       sizeof(asn_DEF_DL_ABS_status_tags_1)
+               /sizeof(asn_DEF_DL_ABS_status_tags_1[0]), /* 1 */
+       asn_DEF_DL_ABS_status_tags_1,   /* Same as above */
+       sizeof(asn_DEF_DL_ABS_status_tags_1)
+               /sizeof(asn_DEF_DL_ABS_status_tags_1[0]), /* 1 */
+       { &asn_OER_type_DL_ABS_status_constr_1, &asn_PER_type_DL_ABS_status_constr_1, DL_ABS_status_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/DL-Forwarding.c b/e2ap/lib/DL-Forwarding.c
new file mode 100644 (file)
index 0000000..84300e3
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "DL-Forwarding.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_DL_Forwarding_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_DL_Forwarding_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_DL_Forwarding_value2enum_1[] = {
+       { 0,    21,     "dL-forwardingProposed" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_DL_Forwarding_enum2value_1[] = {
+       0       /* dL-forwardingProposed(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_DL_Forwarding_specs_1 = {
+       asn_MAP_DL_Forwarding_value2enum_1,     /* "tag" => N; sorted by tag */
+       asn_MAP_DL_Forwarding_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_DL_Forwarding_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_DL_Forwarding = {
+       "DL-Forwarding",
+       "DL-Forwarding",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_DL_Forwarding_tags_1,
+       sizeof(asn_DEF_DL_Forwarding_tags_1)
+               /sizeof(asn_DEF_DL_Forwarding_tags_1[0]), /* 1 */
+       asn_DEF_DL_Forwarding_tags_1,   /* Same as above */
+       sizeof(asn_DEF_DL_Forwarding_tags_1)
+               /sizeof(asn_DEF_DL_Forwarding_tags_1[0]), /* 1 */
+       { &asn_OER_type_DL_Forwarding_constr_1, &asn_PER_type_DL_Forwarding_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_DL_Forwarding_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/DL-GBR-PRB-usage.c b/e2ap/lib/DL-GBR-PRB-usage.c
new file mode 100644 (file)
index 0000000..30c750d
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "DL-GBR-PRB-usage.h"
+
+int
+DL_GBR_PRB_usage_constraint(const 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 >= 0 && value <= 100)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_DL_GBR_PRB_usage_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..100) */,
+       -1};
+asn_per_constraints_t asn_PER_type_DL_GBR_PRB_usage_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       7,  7,  0,  100 }      /* (0..100) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_DL_GBR_PRB_usage_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_DL_GBR_PRB_usage = {
+       "DL-GBR-PRB-usage",
+       "DL-GBR-PRB-usage",
+       &asn_OP_NativeInteger,
+       asn_DEF_DL_GBR_PRB_usage_tags_1,
+       sizeof(asn_DEF_DL_GBR_PRB_usage_tags_1)
+               /sizeof(asn_DEF_DL_GBR_PRB_usage_tags_1[0]), /* 1 */
+       asn_DEF_DL_GBR_PRB_usage_tags_1,        /* Same as above */
+       sizeof(asn_DEF_DL_GBR_PRB_usage_tags_1)
+               /sizeof(asn_DEF_DL_GBR_PRB_usage_tags_1[0]), /* 1 */
+       { &asn_OER_type_DL_GBR_PRB_usage_constr_1, &asn_PER_type_DL_GBR_PRB_usage_constr_1, DL_GBR_PRB_usage_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/DL-Total-PRB-usage.c b/e2ap/lib/DL-Total-PRB-usage.c
new file mode 100644 (file)
index 0000000..ae9e8f8
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "DL-Total-PRB-usage.h"
+
+int
+DL_Total_PRB_usage_constraint(const 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 >= 0 && value <= 100)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_DL_Total_PRB_usage_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..100) */,
+       -1};
+asn_per_constraints_t asn_PER_type_DL_Total_PRB_usage_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       7,  7,  0,  100 }      /* (0..100) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_DL_Total_PRB_usage_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_DL_Total_PRB_usage = {
+       "DL-Total-PRB-usage",
+       "DL-Total-PRB-usage",
+       &asn_OP_NativeInteger,
+       asn_DEF_DL_Total_PRB_usage_tags_1,
+       sizeof(asn_DEF_DL_Total_PRB_usage_tags_1)
+               /sizeof(asn_DEF_DL_Total_PRB_usage_tags_1[0]), /* 1 */
+       asn_DEF_DL_Total_PRB_usage_tags_1,      /* Same as above */
+       sizeof(asn_DEF_DL_Total_PRB_usage_tags_1)
+               /sizeof(asn_DEF_DL_Total_PRB_usage_tags_1[0]), /* 1 */
+       { &asn_OER_type_DL_Total_PRB_usage_constr_1, &asn_PER_type_DL_Total_PRB_usage_constr_1, DL_Total_PRB_usage_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/DL-non-GBR-PRB-usage.c b/e2ap/lib/DL-non-GBR-PRB-usage.c
new file mode 100644 (file)
index 0000000..f1d7435
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "DL-non-GBR-PRB-usage.h"
+
+int
+DL_non_GBR_PRB_usage_constraint(const 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 >= 0 && value <= 100)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_DL_non_GBR_PRB_usage_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..100) */,
+       -1};
+asn_per_constraints_t asn_PER_type_DL_non_GBR_PRB_usage_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       7,  7,  0,  100 }      /* (0..100) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_DL_non_GBR_PRB_usage_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_DL_non_GBR_PRB_usage = {
+       "DL-non-GBR-PRB-usage",
+       "DL-non-GBR-PRB-usage",
+       &asn_OP_NativeInteger,
+       asn_DEF_DL_non_GBR_PRB_usage_tags_1,
+       sizeof(asn_DEF_DL_non_GBR_PRB_usage_tags_1)
+               /sizeof(asn_DEF_DL_non_GBR_PRB_usage_tags_1[0]), /* 1 */
+       asn_DEF_DL_non_GBR_PRB_usage_tags_1,    /* Same as above */
+       sizeof(asn_DEF_DL_non_GBR_PRB_usage_tags_1)
+               /sizeof(asn_DEF_DL_non_GBR_PRB_usage_tags_1[0]), /* 1 */
+       { &asn_OER_type_DL_non_GBR_PRB_usage_constr_1, &asn_PER_type_DL_non_GBR_PRB_usage_constr_1, DL_non_GBR_PRB_usage_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/DL-scheduling-PDCCH-CCE-usage.c b/e2ap/lib/DL-scheduling-PDCCH-CCE-usage.c
new file mode 100644 (file)
index 0000000..8804427
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "DL-scheduling-PDCCH-CCE-usage.h"
+
+int
+DL_scheduling_PDCCH_CCE_usage_constraint(const 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 >= 0 && value <= 100)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_DL_scheduling_PDCCH_CCE_usage_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..100) */,
+       -1};
+static asn_per_constraints_t asn_PER_type_DL_scheduling_PDCCH_CCE_usage_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       7,  7,  0,  100 }      /* (0..100) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_DL_scheduling_PDCCH_CCE_usage_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_DL_scheduling_PDCCH_CCE_usage = {
+       "DL-scheduling-PDCCH-CCE-usage",
+       "DL-scheduling-PDCCH-CCE-usage",
+       &asn_OP_NativeInteger,
+       asn_DEF_DL_scheduling_PDCCH_CCE_usage_tags_1,
+       sizeof(asn_DEF_DL_scheduling_PDCCH_CCE_usage_tags_1)
+               /sizeof(asn_DEF_DL_scheduling_PDCCH_CCE_usage_tags_1[0]), /* 1 */
+       asn_DEF_DL_scheduling_PDCCH_CCE_usage_tags_1,   /* Same as above */
+       sizeof(asn_DEF_DL_scheduling_PDCCH_CCE_usage_tags_1)
+               /sizeof(asn_DEF_DL_scheduling_PDCCH_CCE_usage_tags_1[0]), /* 1 */
+       { &asn_OER_type_DL_scheduling_PDCCH_CCE_usage_constr_1, &asn_PER_type_DL_scheduling_PDCCH_CCE_usage_constr_1, DL_scheduling_PDCCH_CCE_usage_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/DLResourceBitmapULandDLSharing.c b/e2ap/lib/DLResourceBitmapULandDLSharing.c
new file mode 100644 (file)
index 0000000..d6310a3
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "DLResourceBitmapULandDLSharing.h"
+
+int
+DLResourceBitmapULandDLSharing_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+                       asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+       const DataTrafficResources_t *st = (const DataTrafficResources_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 >= 6 && size <= 17600)) {
+               /* 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 DataTrafficResources,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_DLResourceBitmapULandDLSharing_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(6..17600)) */};
+asn_per_constraints_t asn_PER_type_DLResourceBitmapULandDLSharing_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       15,  15,  6,  17600 }  /* (SIZE(6..17600)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_DLResourceBitmapULandDLSharing_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_DLResourceBitmapULandDLSharing = {
+       "DLResourceBitmapULandDLSharing",
+       "DLResourceBitmapULandDLSharing",
+       &asn_OP_BIT_STRING,
+       asn_DEF_DLResourceBitmapULandDLSharing_tags_1,
+       sizeof(asn_DEF_DLResourceBitmapULandDLSharing_tags_1)
+               /sizeof(asn_DEF_DLResourceBitmapULandDLSharing_tags_1[0]), /* 1 */
+       asn_DEF_DLResourceBitmapULandDLSharing_tags_1,  /* Same as above */
+       sizeof(asn_DEF_DLResourceBitmapULandDLSharing_tags_1)
+               /sizeof(asn_DEF_DLResourceBitmapULandDLSharing_tags_1[0]), /* 1 */
+       { &asn_OER_type_DLResourceBitmapULandDLSharing_constr_1, &asn_PER_type_DLResourceBitmapULandDLSharing_constr_1, DLResourceBitmapULandDLSharing_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/DLResourcesULandDLSharing.c b/e2ap/lib/DLResourcesULandDLSharing.c
new file mode 100644 (file)
index 0000000..a00e0e8
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "DLResourcesULandDLSharing.h"
+
+static asn_oer_constraints_t asn_OER_type_DLResourcesULandDLSharing_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_DLResourcesULandDLSharing_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_DLResourcesULandDLSharing_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct DLResourcesULandDLSharing, choice.unchanged),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NULL,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "unchanged"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct DLResourcesULandDLSharing, choice.changed),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_DLResourceBitmapULandDLSharing,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "changed"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_DLResourcesULandDLSharing_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* unchanged */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* changed */
+};
+asn_CHOICE_specifics_t asn_SPC_DLResourcesULandDLSharing_specs_1 = {
+       sizeof(struct DLResourcesULandDLSharing),
+       offsetof(struct DLResourcesULandDLSharing, _asn_ctx),
+       offsetof(struct DLResourcesULandDLSharing, present),
+       sizeof(((struct DLResourcesULandDLSharing *)0)->present),
+       asn_MAP_DLResourcesULandDLSharing_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_DLResourcesULandDLSharing = {
+       "DLResourcesULandDLSharing",
+       "DLResourcesULandDLSharing",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_DLResourcesULandDLSharing_constr_1, &asn_PER_type_DLResourcesULandDLSharing_constr_1, CHOICE_constraint },
+       asn_MBR_DLResourcesULandDLSharing_1,
+       2,      /* Elements count */
+       &asn_SPC_DLResourcesULandDLSharing_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/DRB-ID.c b/e2ap/lib/DRB-ID.c
new file mode 100644 (file)
index 0000000..2ed4f42
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "DRB-ID.h"
+
+int
+DRB_ID_constraint(const 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 >= 1 && value <= 32)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_DRB_ID_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (1..32) */,
+       -1};
+asn_per_constraints_t asn_PER_type_DRB_ID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       5,  5,  1,  32 }       /* (1..32) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_DRB_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_DRB_ID = {
+       "DRB-ID",
+       "DRB-ID",
+       &asn_OP_NativeInteger,
+       asn_DEF_DRB_ID_tags_1,
+       sizeof(asn_DEF_DRB_ID_tags_1)
+               /sizeof(asn_DEF_DRB_ID_tags_1[0]), /* 1 */
+       asn_DEF_DRB_ID_tags_1,  /* Same as above */
+       sizeof(asn_DEF_DRB_ID_tags_1)
+               /sizeof(asn_DEF_DRB_ID_tags_1[0]), /* 1 */
+       { &asn_OER_type_DRB_ID_constr_1, &asn_PER_type_DRB_ID_constr_1, DRB_ID_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/DataForwardingAddressIndication.c b/e2ap/lib/DataForwardingAddressIndication.c
new file mode 100644 (file)
index 0000000..3e5c934
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "DataForwardingAddressIndication.h"
+
+asn_TYPE_member_t asn_MBR_DataForwardingAddressIndication_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct DataForwardingAddressIndication, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P118,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_DataForwardingAddressIndication_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_DataForwardingAddressIndication_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_DataForwardingAddressIndication_specs_1 = {
+       sizeof(struct DataForwardingAddressIndication),
+       offsetof(struct DataForwardingAddressIndication, _asn_ctx),
+       asn_MAP_DataForwardingAddressIndication_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_DataForwardingAddressIndication = {
+       "DataForwardingAddressIndication",
+       "DataForwardingAddressIndication",
+       &asn_OP_SEQUENCE,
+       asn_DEF_DataForwardingAddressIndication_tags_1,
+       sizeof(asn_DEF_DataForwardingAddressIndication_tags_1)
+               /sizeof(asn_DEF_DataForwardingAddressIndication_tags_1[0]), /* 1 */
+       asn_DEF_DataForwardingAddressIndication_tags_1, /* Same as above */
+       sizeof(asn_DEF_DataForwardingAddressIndication_tags_1)
+               /sizeof(asn_DEF_DataForwardingAddressIndication_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_DataForwardingAddressIndication_1,
+       1,      /* Elements count */
+       &asn_SPC_DataForwardingAddressIndication_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/DataTrafficResourceIndication.c b/e2ap/lib/DataTrafficResourceIndication.c
new file mode 100644 (file)
index 0000000..cc80ede
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "DataTrafficResourceIndication.h"
+
+#include "ReservedSubframePattern.h"
+#include "ProtocolExtensionContainer.h"
+static int
+memb_activationSFN_constraint_1(const 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 >= 0 && value <= 1023)) {
+               /* 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_oer_constraints_t asn_OER_memb_activationSFN_constr_2 CC_NOTUSED = {
+       { 2, 1 }        /* (0..1023) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_activationSFN_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       10,  10,  0,  1023 }   /* (0..1023) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_DataTrafficResourceIndication_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct DataTrafficResourceIndication, activationSFN),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_activationSFN_constr_2, &asn_PER_memb_activationSFN_constr_2,  memb_activationSFN_constraint_1 },
+               0, 0, /* No default value */
+               "activationSFN"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct DataTrafficResourceIndication, sharedResourceType),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_SharedResourceType,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sharedResourceType"
+               },
+       { ATF_POINTER, 2, offsetof(struct DataTrafficResourceIndication, reservedSubframePattern),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ReservedSubframePattern,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "reservedSubframePattern"
+               },
+       { ATF_POINTER, 1, offsetof(struct DataTrafficResourceIndication, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P131,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_DataTrafficResourceIndication_oms_1[] = { 2, 3 };
+static const ber_tlv_tag_t asn_DEF_DataTrafficResourceIndication_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_DataTrafficResourceIndication_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* activationSFN */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sharedResourceType */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reservedSubframePattern */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_DataTrafficResourceIndication_specs_1 = {
+       sizeof(struct DataTrafficResourceIndication),
+       offsetof(struct DataTrafficResourceIndication, _asn_ctx),
+       asn_MAP_DataTrafficResourceIndication_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_DataTrafficResourceIndication_oms_1,    /* Optional members */
+       2, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_DataTrafficResourceIndication = {
+       "DataTrafficResourceIndication",
+       "DataTrafficResourceIndication",
+       &asn_OP_SEQUENCE,
+       asn_DEF_DataTrafficResourceIndication_tags_1,
+       sizeof(asn_DEF_DataTrafficResourceIndication_tags_1)
+               /sizeof(asn_DEF_DataTrafficResourceIndication_tags_1[0]), /* 1 */
+       asn_DEF_DataTrafficResourceIndication_tags_1,   /* Same as above */
+       sizeof(asn_DEF_DataTrafficResourceIndication_tags_1)
+               /sizeof(asn_DEF_DataTrafficResourceIndication_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_DataTrafficResourceIndication_1,
+       4,      /* Elements count */
+       &asn_SPC_DataTrafficResourceIndication_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/DataTrafficResources.c b/e2ap/lib/DataTrafficResources.c
new file mode 100644 (file)
index 0000000..c37d6ea
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "DataTrafficResources.h"
+
+int
+DataTrafficResources_constraint(const 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 >= 6 && size <= 17600)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_DataTrafficResources_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(6..17600)) */};
+asn_per_constraints_t asn_PER_type_DataTrafficResources_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       15,  15,  6,  17600 }  /* (SIZE(6..17600)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_DataTrafficResources_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_DataTrafficResources = {
+       "DataTrafficResources",
+       "DataTrafficResources",
+       &asn_OP_BIT_STRING,
+       asn_DEF_DataTrafficResources_tags_1,
+       sizeof(asn_DEF_DataTrafficResources_tags_1)
+               /sizeof(asn_DEF_DataTrafficResources_tags_1[0]), /* 1 */
+       asn_DEF_DataTrafficResources_tags_1,    /* Same as above */
+       sizeof(asn_DEF_DataTrafficResources_tags_1)
+               /sizeof(asn_DEF_DataTrafficResources_tags_1[0]), /* 1 */
+       { &asn_OER_type_DataTrafficResources_constr_1, &asn_PER_type_DataTrafficResources_constr_1, DataTrafficResources_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/DeactivationIndication.c b/e2ap/lib/DeactivationIndication.c
new file mode 100644 (file)
index 0000000..31c5d23
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "DeactivationIndication.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_DeactivationIndication_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_DeactivationIndication_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_DeactivationIndication_value2enum_1[] = {
+       { 0,    11,     "deactivated" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_DeactivationIndication_enum2value_1[] = {
+       0       /* deactivated(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_DeactivationIndication_specs_1 = {
+       asn_MAP_DeactivationIndication_value2enum_1,    /* "tag" => N; sorted by tag */
+       asn_MAP_DeactivationIndication_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_DeactivationIndication_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_DeactivationIndication = {
+       "DeactivationIndication",
+       "DeactivationIndication",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_DeactivationIndication_tags_1,
+       sizeof(asn_DEF_DeactivationIndication_tags_1)
+               /sizeof(asn_DEF_DeactivationIndication_tags_1[0]), /* 1 */
+       asn_DEF_DeactivationIndication_tags_1,  /* Same as above */
+       sizeof(asn_DEF_DeactivationIndication_tags_1)
+               /sizeof(asn_DEF_DeactivationIndication_tags_1[0]), /* 1 */
+       { &asn_OER_type_DeactivationIndication_constr_1, &asn_PER_type_DeactivationIndication_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_DeactivationIndication_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/DeliveryStatus.c b/e2ap/lib/DeliveryStatus.c
new file mode 100644 (file)
index 0000000..4c8c845
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "DeliveryStatus.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_highestSuccessDeliveredPDCPSN_constraint_1(const 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 >= 0 && value <= 4095)) {
+               /* 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_oer_constraints_t asn_OER_memb_highestSuccessDeliveredPDCPSN_constr_2 CC_NOTUSED = {
+       { 2, 1 }        /* (0..4095) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_highestSuccessDeliveredPDCPSN_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       12,  12,  0,  4095 }   /* (0..4095) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_DeliveryStatus_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct DeliveryStatus, highestSuccessDeliveredPDCPSN),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_highestSuccessDeliveredPDCPSN_constr_2, &asn_PER_memb_highestSuccessDeliveredPDCPSN_constr_2,  memb_highestSuccessDeliveredPDCPSN_constraint_1 },
+               0, 0, /* No default value */
+               "highestSuccessDeliveredPDCPSN"
+               },
+       { ATF_POINTER, 1, offsetof(struct DeliveryStatus, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P132,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_DeliveryStatus_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_DeliveryStatus_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_DeliveryStatus_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* highestSuccessDeliveredPDCPSN */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_DeliveryStatus_specs_1 = {
+       sizeof(struct DeliveryStatus),
+       offsetof(struct DeliveryStatus, _asn_ctx),
+       asn_MAP_DeliveryStatus_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_DeliveryStatus_oms_1,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_DeliveryStatus = {
+       "DeliveryStatus",
+       "DeliveryStatus",
+       &asn_OP_SEQUENCE,
+       asn_DEF_DeliveryStatus_tags_1,
+       sizeof(asn_DEF_DeliveryStatus_tags_1)
+               /sizeof(asn_DEF_DeliveryStatus_tags_1[0]), /* 1 */
+       asn_DEF_DeliveryStatus_tags_1,  /* Same as above */
+       sizeof(asn_DEF_DeliveryStatus_tags_1)
+               /sizeof(asn_DEF_DeliveryStatus_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_DeliveryStatus_1,
+       2,      /* Elements count */
+       &asn_SPC_DeliveryStatus_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/DuplicationActivation.c b/e2ap/lib/DuplicationActivation.c
new file mode 100644 (file)
index 0000000..89bacd4
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "DuplicationActivation.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_DuplicationActivation_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_DuplicationActivation_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_DuplicationActivation_value2enum_1[] = {
+       { 0,    6,      "active" },
+       { 1,    8,      "inactive" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_DuplicationActivation_enum2value_1[] = {
+       0,      /* active(0) */
+       1       /* inactive(1) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_DuplicationActivation_specs_1 = {
+       asn_MAP_DuplicationActivation_value2enum_1,     /* "tag" => N; sorted by tag */
+       asn_MAP_DuplicationActivation_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_DuplicationActivation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_DuplicationActivation = {
+       "DuplicationActivation",
+       "DuplicationActivation",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_DuplicationActivation_tags_1,
+       sizeof(asn_DEF_DuplicationActivation_tags_1)
+               /sizeof(asn_DEF_DuplicationActivation_tags_1[0]), /* 1 */
+       asn_DEF_DuplicationActivation_tags_1,   /* Same as above */
+       sizeof(asn_DEF_DuplicationActivation_tags_1)
+               /sizeof(asn_DEF_DuplicationActivation_tags_1[0]), /* 1 */
+       { &asn_OER_type_DuplicationActivation_constr_1, &asn_PER_type_DuplicationActivation_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_DuplicationActivation_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/DynamicDLTransmissionInformation.c b/e2ap/lib/DynamicDLTransmissionInformation.c
new file mode 100644 (file)
index 0000000..00f61bb
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "DynamicDLTransmissionInformation.h"
+
+#include "DynamicNAICSInformation.h"
+static asn_oer_constraints_t asn_OER_type_DynamicDLTransmissionInformation_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_DynamicDLTransmissionInformation_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_DynamicDLTransmissionInformation_1[] = {
+       { ATF_POINTER, 0, offsetof(struct DynamicDLTransmissionInformation, choice.naics_active),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_DynamicNAICSInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "naics-active"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct DynamicDLTransmissionInformation, choice.naics_inactive),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NULL,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "naics-inactive"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_DynamicDLTransmissionInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* naics-active */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* naics-inactive */
+};
+static asn_CHOICE_specifics_t asn_SPC_DynamicDLTransmissionInformation_specs_1 = {
+       sizeof(struct DynamicDLTransmissionInformation),
+       offsetof(struct DynamicDLTransmissionInformation, _asn_ctx),
+       offsetof(struct DynamicDLTransmissionInformation, present),
+       sizeof(((struct DynamicDLTransmissionInformation *)0)->present),
+       asn_MAP_DynamicDLTransmissionInformation_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_DynamicDLTransmissionInformation = {
+       "DynamicDLTransmissionInformation",
+       "DynamicDLTransmissionInformation",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_DynamicDLTransmissionInformation_constr_1, &asn_PER_type_DynamicDLTransmissionInformation_constr_1, CHOICE_constraint },
+       asn_MBR_DynamicDLTransmissionInformation_1,
+       2,      /* Elements count */
+       &asn_SPC_DynamicDLTransmissionInformation_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/DynamicNAICSInformation.c b/e2ap/lib/DynamicNAICSInformation.c
new file mode 100644 (file)
index 0000000..0114c56
--- /dev/null
@@ -0,0 +1,234 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "DynamicNAICSInformation.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_transmissionModes_constraint_1(const 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 == 8)) {
+               /* 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_pB_information_constraint_1(const 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 >= 0 && value <= 3)) {
+               /* 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_pA_list_constraint_1(const 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 <= 3)) {
+               /* Perform validation of the inner elements */
+               return td->encoding_constraints.general_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_oer_constraints_t asn_OER_type_pA_list_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..3)) */};
+static asn_per_constraints_t asn_PER_type_pA_list_constr_4 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (SIZE(0..3)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_transmissionModes_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       8       /* (SIZE(8..8)) */};
+static asn_per_constraints_t asn_PER_memb_transmissionModes_constr_2 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  8,  8 }        /* (SIZE(8..8)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_pB_information_constr_3 CC_NOTUSED = {
+       { 1, 1 }        /* (0..3) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_pB_information_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (0..3) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_pA_list_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..3)) */};
+static asn_per_constraints_t asn_PER_memb_pA_list_constr_4 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (SIZE(0..3)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_pA_list_4[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_PA_Values,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_pA_list_tags_4[] = {
+       (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_pA_list_specs_4 = {
+       sizeof(struct DynamicNAICSInformation__pA_list),
+       offsetof(struct DynamicNAICSInformation__pA_list, _asn_ctx),
+       1,      /* XER encoding is XMLValueList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_pA_list_4 = {
+       "pA-list",
+       "pA-list",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_pA_list_tags_4,
+       sizeof(asn_DEF_pA_list_tags_4)
+               /sizeof(asn_DEF_pA_list_tags_4[0]) - 1, /* 1 */
+       asn_DEF_pA_list_tags_4, /* Same as above */
+       sizeof(asn_DEF_pA_list_tags_4)
+               /sizeof(asn_DEF_pA_list_tags_4[0]), /* 2 */
+       { &asn_OER_type_pA_list_constr_4, &asn_PER_type_pA_list_constr_4, SEQUENCE_OF_constraint },
+       asn_MBR_pA_list_4,
+       1,      /* Single element */
+       &asn_SPC_pA_list_specs_4        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_DynamicNAICSInformation_1[] = {
+       { ATF_POINTER, 2, offsetof(struct DynamicNAICSInformation, transmissionModes),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_transmissionModes_constr_2, &asn_PER_memb_transmissionModes_constr_2,  memb_transmissionModes_constraint_1 },
+               0, 0, /* No default value */
+               "transmissionModes"
+               },
+       { ATF_POINTER, 1, offsetof(struct DynamicNAICSInformation, pB_information),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_pB_information_constr_3, &asn_PER_memb_pB_information_constr_3,  memb_pB_information_constraint_1 },
+               0, 0, /* No default value */
+               "pB-information"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct DynamicNAICSInformation, pA_list),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               0,
+               &asn_DEF_pA_list_4,
+               0,
+               { &asn_OER_memb_pA_list_constr_4, &asn_PER_memb_pA_list_constr_4,  memb_pA_list_constraint_1 },
+               0, 0, /* No default value */
+               "pA-list"
+               },
+       { ATF_POINTER, 1, offsetof(struct DynamicNAICSInformation, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P133,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_DynamicNAICSInformation_oms_1[] = { 0, 1, 3 };
+static const ber_tlv_tag_t asn_DEF_DynamicNAICSInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_DynamicNAICSInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transmissionModes */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pB-information */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pA-list */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_DynamicNAICSInformation_specs_1 = {
+       sizeof(struct DynamicNAICSInformation),
+       offsetof(struct DynamicNAICSInformation, _asn_ctx),
+       asn_MAP_DynamicNAICSInformation_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_DynamicNAICSInformation_oms_1,  /* Optional members */
+       3, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_DynamicNAICSInformation = {
+       "DynamicNAICSInformation",
+       "DynamicNAICSInformation",
+       &asn_OP_SEQUENCE,
+       asn_DEF_DynamicNAICSInformation_tags_1,
+       sizeof(asn_DEF_DynamicNAICSInformation_tags_1)
+               /sizeof(asn_DEF_DynamicNAICSInformation_tags_1[0]), /* 1 */
+       asn_DEF_DynamicNAICSInformation_tags_1, /* Same as above */
+       sizeof(asn_DEF_DynamicNAICSInformation_tags_1)
+               /sizeof(asn_DEF_DynamicNAICSInformation_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_DynamicNAICSInformation_1,
+       4,      /* Elements count */
+       &asn_SPC_DynamicNAICSInformation_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RAB-ID.c b/e2ap/lib/E-RAB-ID.c
new file mode 100644 (file)
index 0000000..6e3108b
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RAB-ID.h"
+
+int
+E_RAB_ID_constraint(const 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 >= 0 && value <= 15)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_E_RAB_ID_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_E_RAB_ID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  15 }   /* (0..15,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_E_RAB_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_E_RAB_ID = {
+       "E-RAB-ID",
+       "E-RAB-ID",
+       &asn_OP_NativeInteger,
+       asn_DEF_E_RAB_ID_tags_1,
+       sizeof(asn_DEF_E_RAB_ID_tags_1)
+               /sizeof(asn_DEF_E_RAB_ID_tags_1[0]), /* 1 */
+       asn_DEF_E_RAB_ID_tags_1,        /* Same as above */
+       sizeof(asn_DEF_E_RAB_ID_tags_1)
+               /sizeof(asn_DEF_E_RAB_ID_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RAB_ID_constr_1, &asn_PER_type_E_RAB_ID_constr_1, E_RAB_ID_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/E-RAB-Item.c b/e2ap/lib/E-RAB-Item.c
new file mode 100644 (file)
index 0000000..0b0cd1e
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RAB-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_E_RAB_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Item, cause),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cause"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RAB_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P140,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RAB_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_E_RAB_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RAB_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RAB_Item_specs_1 = {
+       sizeof(struct E_RAB_Item),
+       offsetof(struct E_RAB_Item, _asn_ctx),
+       asn_MAP_E_RAB_Item_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RAB_Item_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RAB_Item = {
+       "E-RAB-Item",
+       "E-RAB-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RAB_Item_tags_1,
+       sizeof(asn_DEF_E_RAB_Item_tags_1)
+               /sizeof(asn_DEF_E_RAB_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RAB_Item_tags_1,      /* Same as above */
+       sizeof(asn_DEF_E_RAB_Item_tags_1)
+               /sizeof(asn_DEF_E_RAB_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RAB_Item_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RAB_Item_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RAB-Level-QoS-Parameters.c b/e2ap/lib/E-RAB-Level-QoS-Parameters.c
new file mode 100644 (file)
index 0000000..baf8215
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RAB-Level-QoS-Parameters.h"
+
+#include "GBR-QosInformation.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RAB_Level_QoS_Parameters_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Level_QoS_Parameters, qCI),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_QCI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "qCI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Level_QoS_Parameters, allocationAndRetentionPriority),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_AllocationAndRetentionPriority,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "allocationAndRetentionPriority"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RAB_Level_QoS_Parameters, gbrQosInformation),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GBR_QosInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "gbrQosInformation"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RAB_Level_QoS_Parameters, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P139,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RAB_Level_QoS_Parameters_oms_1[] = { 2, 3 };
+static const ber_tlv_tag_t asn_DEF_E_RAB_Level_QoS_Parameters_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RAB_Level_QoS_Parameters_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qCI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* allocationAndRetentionPriority */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gbrQosInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RAB_Level_QoS_Parameters_specs_1 = {
+       sizeof(struct E_RAB_Level_QoS_Parameters),
+       offsetof(struct E_RAB_Level_QoS_Parameters, _asn_ctx),
+       asn_MAP_E_RAB_Level_QoS_Parameters_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RAB_Level_QoS_Parameters_oms_1,       /* Optional members */
+       2, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RAB_Level_QoS_Parameters = {
+       "E-RAB-Level-QoS-Parameters",
+       "E-RAB-Level-QoS-Parameters",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RAB_Level_QoS_Parameters_tags_1,
+       sizeof(asn_DEF_E_RAB_Level_QoS_Parameters_tags_1)
+               /sizeof(asn_DEF_E_RAB_Level_QoS_Parameters_tags_1[0]), /* 1 */
+       asn_DEF_E_RAB_Level_QoS_Parameters_tags_1,      /* Same as above */
+       sizeof(asn_DEF_E_RAB_Level_QoS_Parameters_tags_1)
+               /sizeof(asn_DEF_E_RAB_Level_QoS_Parameters_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RAB_Level_QoS_Parameters_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RAB_Level_QoS_Parameters_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RAB-List.c b/e2ap/lib/E-RAB-List.c
new file mode 100644 (file)
index 0000000..661b1f9
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RAB-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RAB_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RAB_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RAB_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P46,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RAB_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RAB_List_specs_1 = {
+       sizeof(struct E_RAB_List),
+       offsetof(struct E_RAB_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RAB_List = {
+       "E-RAB-List",
+       "E-RAB-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RAB_List_tags_1,
+       sizeof(asn_DEF_E_RAB_List_tags_1)
+               /sizeof(asn_DEF_E_RAB_List_tags_1[0]), /* 1 */
+       asn_DEF_E_RAB_List_tags_1,      /* Same as above */
+       sizeof(asn_DEF_E_RAB_List_tags_1)
+               /sizeof(asn_DEF_E_RAB_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RAB_List_constr_1, &asn_PER_type_E_RAB_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RAB_List_1,
+       1,      /* Single element */
+       &asn_SPC_E_RAB_List_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABUsageReport-Item.c b/e2ap/lib/E-RABUsageReport-Item.c
new file mode 100644 (file)
index 0000000..7e7a384
--- /dev/null
@@ -0,0 +1,239 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABUsageReport-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_startTimeStamp_constraint_1(const 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 == 4)) {
+               /* 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_endTimeStamp_constraint_1(const 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 == 4)) {
+               /* 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_usageCountUL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+                       asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+       const INTEGER_t *st = (const INTEGER_t *)sptr;
+       long value;
+       
+       if(!sptr) {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: value not given (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+       
+       if(asn_INTEGER2long(st, &value)) {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: value too large (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+       
+       if((value >= 0 && value <= 18446744073709551615)) {
+               /* 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_usageCountDL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+                       asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+       const INTEGER_t *st = (const INTEGER_t *)sptr;
+       long value;
+       
+       if(!sptr) {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: value not given (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+       
+       if(asn_INTEGER2long(st, &value)) {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: value too large (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+       
+       if((value >= 0 && value <= 18446744073709551615)) {
+               /* 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_oer_constraints_t asn_OER_memb_startTimeStamp_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       4       /* (SIZE(4..4)) */};
+static asn_per_constraints_t asn_PER_memb_startTimeStamp_constr_2 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  4,  4 }        /* (SIZE(4..4)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_endTimeStamp_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       4       /* (SIZE(4..4)) */};
+static asn_per_constraints_t asn_PER_memb_endTimeStamp_constr_3 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  4,  4 }        /* (SIZE(4..4)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_usageCountUL_constr_4 CC_NOTUSED = {
+       { 8, 1 }        /* (0..18446744073709551615) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_usageCountUL_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED,       64, -1,  0,  18446744073709551615 }    /* (0..18446744073709551615) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_usageCountDL_constr_5 CC_NOTUSED = {
+       { 8, 1 }        /* (0..18446744073709551615) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_usageCountDL_constr_5 CC_NOTUSED = {
+       { APC_CONSTRAINED,       64, -1,  0,  18446744073709551615 }    /* (0..18446744073709551615) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABUsageReport_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item, startTimeStamp),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_OCTET_STRING,
+               0,
+               { &asn_OER_memb_startTimeStamp_constr_2, &asn_PER_memb_startTimeStamp_constr_2,  memb_startTimeStamp_constraint_1 },
+               0, 0, /* No default value */
+               "startTimeStamp"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item, endTimeStamp),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_OCTET_STRING,
+               0,
+               { &asn_OER_memb_endTimeStamp_constr_3, &asn_PER_memb_endTimeStamp_constr_3,  memb_endTimeStamp_constraint_1 },
+               0, 0, /* No default value */
+               "endTimeStamp"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item, usageCountUL),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_INTEGER,
+               0,
+               { &asn_OER_memb_usageCountUL_constr_4, &asn_PER_memb_usageCountUL_constr_4,  memb_usageCountUL_constraint_1 },
+               0, 0, /* No default value */
+               "usageCountUL"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item, usageCountDL),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_INTEGER,
+               0,
+               { &asn_OER_memb_usageCountDL_constr_5, &asn_PER_memb_usageCountDL_constr_5,  memb_usageCountDL_constraint_1 },
+               0, 0, /* No default value */
+               "usageCountDL"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABUsageReport_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P141,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABUsageReport_Item_oms_1[] = { 4 };
+static const ber_tlv_tag_t asn_DEF_E_RABUsageReport_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABUsageReport_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTimeStamp */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* endTimeStamp */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* usageCountUL */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* usageCountDL */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABUsageReport_Item_specs_1 = {
+       sizeof(struct E_RABUsageReport_Item),
+       offsetof(struct E_RABUsageReport_Item, _asn_ctx),
+       asn_MAP_E_RABUsageReport_Item_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_E_RABUsageReport_Item_oms_1,    /* Optional members */
+       1, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABUsageReport_Item = {
+       "E-RABUsageReport-Item",
+       "E-RABUsageReport-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABUsageReport_Item_tags_1,
+       sizeof(asn_DEF_E_RABUsageReport_Item_tags_1)
+               /sizeof(asn_DEF_E_RABUsageReport_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABUsageReport_Item_tags_1,   /* Same as above */
+       sizeof(asn_DEF_E_RABUsageReport_Item_tags_1)
+               /sizeof(asn_DEF_E_RABUsageReport_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABUsageReport_Item_1,
+       5,      /* Elements count */
+       &asn_SPC_E_RABUsageReport_Item_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABUsageReportList.c b/e2ap/lib/E-RABUsageReportList.c
new file mode 100644 (file)
index 0000000..3af84a5
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABUsageReportList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABUsageReportList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..2)) */};
+asn_per_constraints_t asn_PER_type_E_RABUsageReportList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       1,  1,  1,  2 }        /* (SIZE(1..2)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E_RABUsageReportList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P47,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABUsageReportList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_E_RABUsageReportList_specs_1 = {
+       sizeof(struct E_RABUsageReportList),
+       offsetof(struct E_RABUsageReportList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABUsageReportList = {
+       "E-RABUsageReportList",
+       "E-RABUsageReportList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABUsageReportList_tags_1,
+       sizeof(asn_DEF_E_RABUsageReportList_tags_1)
+               /sizeof(asn_DEF_E_RABUsageReportList_tags_1[0]), /* 1 */
+       asn_DEF_E_RABUsageReportList_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABUsageReportList_tags_1)
+               /sizeof(asn_DEF_E_RABUsageReportList_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABUsageReportList_constr_1, &asn_PER_type_E_RABUsageReportList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABUsageReportList_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABUsageReportList_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-Item.c b/e2ap/lib/E-RABs-Admitted-Item.c
new file mode 100644 (file)
index 0000000..1ac44a7
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-Item.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_POINTER, 3, offsetof(struct E_RABs_Admitted_Item, uL_GTP_TunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-GTP-TunnelEndpoint"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_Item, dL_GTP_TunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-GTP-TunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P5,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_Item_oms_1[] = { 1, 2, 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-GTP-TunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-GTP-TunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_Item_specs_1 = {
+       sizeof(struct E_RABs_Admitted_Item),
+       offsetof(struct E_RABs_Admitted_Item, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_Item_oms_1,     /* Optional members */
+       3, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_Item = {
+       "E-RABs-Admitted-Item",
+       "E-RABs-Admitted-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_Item_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_Item_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-List.c b/e2ap/lib/E-RABs-Admitted-List.c
new file mode 100644 (file)
index 0000000..2a88793
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_Admitted_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P7,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_List_specs_1 = {
+       sizeof(struct E_RABs_Admitted_List),
+       offsetof(struct E_RABs_Admitted_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_List = {
+       "E-RABs-Admitted-List",
+       "E-RABs-Admitted-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_Admitted_List_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_List_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_List_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_Admitted_List_constr_1, &asn_PER_type_E_RABs_Admitted_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_Admitted_List_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_Admitted_List_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.c b/e2ap/lib/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.c
new file mode 100644 (file)
index 0000000..95ddf3a
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer, s1_DL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "s1-DL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 3, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer, dL_Forwarding_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-Forwarding-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer, uL_Forwarding_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-Forwarding-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P19,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_oms_1[] = { 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* s1-DL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* uL-Forwarding-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_oms_1,        /* Optional members */
+       3, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer = {
+       "E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer",
+       "E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tags_1,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_1,
+       5,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.c b/e2ap/lib/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.c
new file mode 100644 (file)
index 0000000..695f71c
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer, seNB_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "seNB-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P20,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* seNB-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_oms_1,      /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer = {
+       "E-RABs-Admitted-ToBeAdded-Item-Split-Bearer",
+       "E-RABs-Admitted-ToBeAdded-Item-Split-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeAdded-Item.c b/e2ap/lib/E-RABs-Admitted-ToBeAdded-Item.c
new file mode 100644 (file)
index 0000000..b27e54f
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeAdded-Item.h"
+
+#include "E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h"
+#include "E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_Admitted_ToBeAdded_Item_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeAdded_Item_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_1[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item, choice.sCG_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sCG-Bearer"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item, choice.split_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "split-Bearer"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_Item),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_Item, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_Item, present),
+       sizeof(((struct E_RABs_Admitted_ToBeAdded_Item *)0)->present),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_Item_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item = {
+       "E-RABs-Admitted-ToBeAdded-Item",
+       "E-RABs-Admitted-ToBeAdded-Item",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_E_RABs_Admitted_ToBeAdded_Item_constr_1, &asn_PER_type_E_RABs_Admitted_ToBeAdded_Item_constr_1, CHOICE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_Item_1,
+       2,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_Item_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeAdded-List.c b/e2ap/lib/E-RABs-Admitted-ToBeAdded-List.c
new file mode 100644 (file)
index 0000000..76777de
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeAdded-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_Admitted_ToBeAdded_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeAdded_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P16,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_List_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_List),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_List = {
+       "E-RABs-Admitted-ToBeAdded-List",
+       "E-RABs-Admitted-ToBeAdded-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_List_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_List_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_List_tags_1,  /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_Admitted_ToBeAdded_List_constr_1, &asn_PER_type_E_RABs_Admitted_ToBeAdded_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_List_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_List_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.c b/e2ap/lib/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.c
new file mode 100644 (file)
index 0000000..d0bbb8c
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer, s1_DL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "s1-DL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 3, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer, dL_Forwarding_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-Forwarding-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer, uL_Forwarding_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-Forwarding-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P30,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_oms_1[] = { 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* s1-DL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* uL-Forwarding-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_oms_1,  /* Optional members */
+       3, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer = {
+       "E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer",
+       "E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tags_1, /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_1,
+       5,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.c b/e2ap/lib/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.c
new file mode 100644 (file)
index 0000000..efff85d
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer, seNB_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "seNB-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P31,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* seNB-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer = {
+       "E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer",
+       "E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tags_1,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeAdded-ModAckItem.c b/e2ap/lib/E-RABs-Admitted-ToBeAdded-ModAckItem.c
new file mode 100644 (file)
index 0000000..788df86
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeAdded-ModAckItem.h"
+
+#include "E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h"
+#include "E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_Admitted_ToBeAdded_ModAckItem_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeAdded_ModAckItem_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_1[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem, choice.sCG_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sCG-Bearer"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem, choice.split_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "split-Bearer"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItem),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem, present),
+       sizeof(((struct E_RABs_Admitted_ToBeAdded_ModAckItem *)0)->present),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem = {
+       "E-RABs-Admitted-ToBeAdded-ModAckItem",
+       "E-RABs-Admitted-ToBeAdded-ModAckItem",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_E_RABs_Admitted_ToBeAdded_ModAckItem_constr_1, &asn_PER_type_E_RABs_Admitted_ToBeAdded_ModAckItem_constr_1, CHOICE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_1,
+       2,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeAdded-ModAckList.c b/e2ap/lib/E-RABs-Admitted-ToBeAdded-ModAckList.c
new file mode 100644 (file)
index 0000000..ab2daf2
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeAdded-ModAckList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_Admitted_ToBeAdded_ModAckList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeAdded_ModAckList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P20,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckList_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckList),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList = {
+       "E-RABs-Admitted-ToBeAdded-ModAckList",
+       "E-RABs-Admitted-ToBeAdded-ModAckList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_Admitted_ToBeAdded_ModAckList_constr_1, &asn_PER_type_E_RABs_Admitted_ToBeAdded_ModAckList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckList_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckList_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.c b/e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.c
new file mode 100644 (file)
index 0000000..1663da5
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent, sgNB_DL_GTP_TEIDatSCG),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNB-DL-GTP-TEIDatSCG"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent, secondary_sgNB_DL_GTP_TEIDatSCG),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "secondary-sgNB-DL-GTP-TEIDatSCG"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P49,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNB-DL-GTP-TEIDatSCG */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* secondary-sgNB-DL-GTP-TEIDatSCG */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_oms_1,  /* Optional members */
+       2, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent = {
+       "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent",
+       "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.c b/e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.c
new file mode 100644 (file)
index 0000000..4045428
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "ULConfiguration.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, s1_DL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "s1-DL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 7, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, sgNB_UL_GTP_TEIDatPDCP),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNB-UL-GTP-TEIDatPDCP"
+               },
+       { ATF_POINTER, 6, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, rlc_Mode),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RLCMode,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "rlc-Mode"
+               },
+       { ATF_POINTER, 5, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, dL_Forwarding_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-Forwarding-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 4, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, uL_Forwarding_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-Forwarding-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 3, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, mCG_E_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "mCG-E-RAB-Level-QoS-Parameters"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, uL_Configuration),
+               (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ULConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-Configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P48,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_oms_1[] = { 1, 2, 3, 4, 5, 6, 7 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* s1-DL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sgNB-UL-GTP-TEIDatPDCP */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rlc-Mode */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* uL-Forwarding-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* mCG-E-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* uL-Configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tag2el_1,
+       8,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_oms_1,     /* Optional members */
+       7, 0,   /* Root/Additions */
+       8,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent = {
+       "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent",
+       "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_1,
+       8,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.c b/e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.c
new file mode 100644 (file)
index 0000000..97fb634
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h"
+#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h"
+static asn_oer_constraints_t asn_OER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration, choice.sgNBPDCPpresent),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPpresent"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration, choice.sgNBPDCPnotpresent),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPnotpresent"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */
+};
+static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration, present),
+       sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration *)0)->present),
+       asn_MAP_resource_configuration_tag2el_4,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = {
+       "resource-configuration",
+       "resource-configuration",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_resource_configuration_constr_4, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint },
+       asn_MBR_resource_configuration_4,
+       2,      /* Elements count */
+       &asn_SPC_resource_configuration_specs_4 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item, en_DC_ResourceConfiguration),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EN_DC_ResourceConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "en-DC-ResourceConfiguration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item, resource_configuration),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_resource_configuration_4,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "resource-configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P47,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item = {
+       "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item",
+       "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.c b/e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.c
new file mode 100644 (file)
index 0000000..0b40a57
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P29,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList = {
+       "E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList",
+       "E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_constr_1, &asn_PER_type_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.c b/e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.c
new file mode 100644 (file)
index 0000000..f5f7a51
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent, sgNB_DL_GTP_TEIDatSCG),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNB-DL-GTP-TEIDatSCG"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent, secondary_sgNB_DL_GTP_TEIDatSCG),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "secondary-sgNB-DL-GTP-TEIDatSCG"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P64,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNB-DL-GTP-TEIDatSCG */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* secondary-sgNB-DL-GTP-TEIDatSCG */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_oms_1,     /* Optional members */
+       2, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent = {
+       "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent",
+       "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.c b/e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.c
new file mode 100644 (file)
index 0000000..5ed8d6e
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "ULConfiguration.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, s1_DL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "s1-DL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 7, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, sgNB_UL_GTP_TEIDatPDCP),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNB-UL-GTP-TEIDatPDCP"
+               },
+       { ATF_POINTER, 6, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, rlc_Mode),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RLCMode,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "rlc-Mode"
+               },
+       { ATF_POINTER, 5, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, dL_Forwarding_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-Forwarding-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 4, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, uL_Forwarding_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-Forwarding-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 3, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, mCG_E_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "mCG-E-RAB-Level-QoS-Parameters"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, uL_Configuration),
+               (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ULConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-Configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P63,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_oms_1[] = { 1, 2, 3, 4, 5, 6, 7 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* s1-DL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sgNB-UL-GTP-TEIDatPDCP */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rlc-Mode */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* uL-Forwarding-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* mCG-E-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* uL-Configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tag2el_1,
+       8,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_oms_1,        /* Optional members */
+       7, 0,   /* Root/Additions */
+       8,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent = {
+       "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent",
+       "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tags_1,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_1,
+       8,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.c b/e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.c
new file mode 100644 (file)
index 0000000..2f9b20a
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+#include "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h"
+#include "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h"
+static asn_oer_constraints_t asn_OER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration, choice.sgNBPDCPpresent),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPpresent"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration, choice.sgNBPDCPnotpresent),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPnotpresent"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */
+};
+static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration, present),
+       sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration *)0)->present),
+       asn_MAP_resource_configuration_tag2el_4,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = {
+       "resource-configuration",
+       "resource-configuration",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_resource_configuration_constr_4, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint },
+       asn_MBR_resource_configuration_4,
+       2,      /* Elements count */
+       &asn_SPC_resource_configuration_specs_4 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item, en_DC_ResourceConfiguration),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EN_DC_ResourceConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "en-DC-ResourceConfiguration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item, resource_configuration),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_resource_configuration_4,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "resource-configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P62,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item = {
+       "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item",
+       "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tags_1,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBModAckList.c b/e2ap/lib/E-RABs-Admitted-ToBeAdded-SgNBModAckList.c
new file mode 100644 (file)
index 0000000..c7ea0d0
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeAdded-SgNBModAckList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_Admitted_ToBeAdded_SgNBModAckList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeAdded_SgNBModAckList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAckList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P33,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAckList_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAckList),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAckList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList = {
+       "E-RABs-Admitted-ToBeAdded-SgNBModAckList",
+       "E-RABs-Admitted-ToBeAdded-SgNBModAckList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList_tags_1,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_Admitted_ToBeAdded_SgNBModAckList_constr_1, &asn_PER_type_E_RABs_Admitted_ToBeAdded_SgNBModAckList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAckList_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAckList_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.c b/e2ap/lib/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.c
new file mode 100644 (file)
index 0000000..057f7a3
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer, s1_DL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "s1-DL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P32,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* s1-DL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer),
+       offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_oms_1,       /* Optional members */
+       2, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer = {
+       "E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer",
+       "E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tags_1,      /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.c b/e2ap/lib/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.c
new file mode 100644 (file)
index 0000000..822e66f
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer, seNB_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "seNB-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P33,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* seNB-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer),
+       offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_oms_1,     /* Optional members */
+       2, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer = {
+       "E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer",
+       "E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeModified-ModAckItem.c b/e2ap/lib/E-RABs-Admitted-ToBeModified-ModAckItem.c
new file mode 100644 (file)
index 0000000..a9f144d
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeModified-ModAckItem.h"
+
+#include "E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h"
+#include "E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_Admitted_ToBeModified_ModAckItem_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeModified_ModAckItem_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_1[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem, choice.sCG_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sCG-Bearer"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem, choice.split_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "split-Bearer"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItem),
+       offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem, present),
+       sizeof(((struct E_RABs_Admitted_ToBeModified_ModAckItem *)0)->present),
+       asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem = {
+       "E-RABs-Admitted-ToBeModified-ModAckItem",
+       "E-RABs-Admitted-ToBeModified-ModAckItem",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_E_RABs_Admitted_ToBeModified_ModAckItem_constr_1, &asn_PER_type_E_RABs_Admitted_ToBeModified_ModAckItem_constr_1, CHOICE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_1,
+       2,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeModified-ModAckList.c b/e2ap/lib/E-RABs-Admitted-ToBeModified-ModAckList.c
new file mode 100644 (file)
index 0000000..dade23b
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeModified-ModAckList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_Admitted_ToBeModified_ModAckList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeModified_ModAckList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P21,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckList_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_ModAckList),
+       offsetof(struct E_RABs_Admitted_ToBeModified_ModAckList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList = {
+       "E-RABs-Admitted-ToBeModified-ModAckList",
+       "E-RABs-Admitted-ToBeModified-ModAckList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList_tags_1, /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_Admitted_ToBeModified_ModAckList_constr_1, &asn_PER_type_E_RABs_Admitted_ToBeModified_ModAckList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeModified_ModAckList_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_Admitted_ToBeModified_ModAckList_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.c b/e2ap/lib/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.c
new file mode 100644 (file)
index 0000000..e058810
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_1[] = {
+       { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent, sgNB_DL_GTP_TEIDatSCG),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNB-DL-GTP-TEIDatSCG"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P67,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_oms_1[] = { 0, 1 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNB-DL-GTP-TEIDatSCG */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent),
+       offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_oms_1,  /* Optional members */
+       2, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent = {
+       "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent",
+       "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_1,
+       2,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.c b/e2ap/lib/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.c
new file mode 100644 (file)
index 0000000..7d1c7b9
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "ULConfiguration.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_1[] = {
+       { ATF_POINTER, 5, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent, s1_DL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "s1-DL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 4, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent, sgNB_UL_GTP_TEIDatPDCP),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNB-UL-GTP-TEIDatPDCP"
+               },
+       { ATF_POINTER, 3, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent, mCG_E_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "mCG-E-RAB-Level-QoS-Parameters"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent, uL_Configuration),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ULConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-Configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P66,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_oms_1[] = { 0, 1, 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* s1-DL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sgNB-UL-GTP-TEIDatPDCP */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mCG-E-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* uL-Configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent),
+       offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_oms_1,     /* Optional members */
+       5, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent = {
+       "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent",
+       "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_1,
+       5,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.c b/e2ap/lib/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.c
new file mode 100644 (file)
index 0000000..d7606fb
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+#include "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h"
+#include "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h"
+static asn_oer_constraints_t asn_OER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration, choice.sgNBPDCPpresent),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPpresent"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration, choice.sgNBPDCPnotpresent),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPnotpresent"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */
+};
+static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration),
+       offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration, present),
+       sizeof(((struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration *)0)->present),
+       asn_MAP_resource_configuration_tag2el_4,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = {
+       "resource-configuration",
+       "resource-configuration",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_resource_configuration_constr_4, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint },
+       asn_MBR_resource_configuration_4,
+       2,      /* Elements count */
+       &asn_SPC_resource_configuration_specs_4 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item, en_DC_ResourceConfiguration),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EN_DC_ResourceConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "en-DC-ResourceConfiguration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item, resource_configuration),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_resource_configuration_4,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "resource-configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P65,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item),
+       offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item = {
+       "E-RABs-Admitted-ToBeModified-SgNBModAck-Item",
+       "E-RABs-Admitted-ToBeModified-SgNBModAck-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeModified-SgNBModAckList.c b/e2ap/lib/E-RABs-Admitted-ToBeModified-SgNBModAckList.c
new file mode 100644 (file)
index 0000000..12aca49
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeModified-SgNBModAckList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_Admitted_ToBeModified_SgNBModAckList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeModified_SgNBModAckList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAckList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P34,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAckList_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAckList),
+       offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAckList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList = {
+       "E-RABs-Admitted-ToBeModified-SgNBModAckList",
+       "E-RABs-Admitted-ToBeModified-SgNBModAckList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_Admitted_ToBeModified_SgNBModAckList_constr_1, &asn_PER_type_E_RABs_Admitted_ToBeModified_SgNBModAckList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAckList_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAckList_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.c b/e2ap/lib/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.c
new file mode 100644 (file)
index 0000000..7cb7494
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P34,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer = {
+       "E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer",
+       "E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tags_1,      /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_1,
+       2,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.c b/e2ap/lib/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.c
new file mode 100644 (file)
index 0000000..a55026f
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P35,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer = {
+       "E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer",
+       "E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_1,
+       2,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeReleased-ModAckList.c b/e2ap/lib/E-RABs-Admitted-ToBeReleased-ModAckList.c
new file mode 100644 (file)
index 0000000..2ccb708
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeReleased-ModAckList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_Admitted_ToBeReleased_ModAckList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeReleased_ModAckList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P22,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckList_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckList),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList = {
+       "E-RABs-Admitted-ToBeReleased-ModAckList",
+       "E-RABs-Admitted-ToBeReleased-ModAckList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList_tags_1, /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_Admitted_ToBeReleased_ModAckList_constr_1, &asn_PER_type_E_RABs_Admitted_ToBeReleased_ModAckList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckList_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckList_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.c b/e2ap/lib/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.c
new file mode 100644 (file)
index 0000000..877bb6d
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_1[] = {
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P70,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_oms_1[] = { 0 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tag2el_1,
+       1,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent = {
+       "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent",
+       "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_1,
+       1,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.c b/e2ap/lib/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.c
new file mode 100644 (file)
index 0000000..311dff9
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_1[] = {
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P69,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_oms_1[] = { 0 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tag2el_1,
+       1,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent = {
+       "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent",
+       "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_1,
+       1,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeReleased-SgNBModAckList.c b/e2ap/lib/E-RABs-Admitted-ToBeReleased-SgNBModAckList.c
new file mode 100644 (file)
index 0000000..7088cdf
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeReleased-SgNBModAckList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_Admitted_ToBeReleased_SgNBModAckList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeReleased_SgNBModAckList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAckList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P35,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAckList_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAckList),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAckList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList = {
+       "E-RABs-Admitted-ToBeReleased-SgNBModAckList",
+       "E-RABs-Admitted-ToBeReleased-SgNBModAckList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_Admitted_ToBeReleased_SgNBModAckList_constr_1, &asn_PER_type_E_RABs_Admitted_ToBeReleased_SgNBModAckList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAckList_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAckList_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.c b/e2ap/lib/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.c
new file mode 100644 (file)
index 0000000..d74fab4
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item, rlc_Mode_transferred),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RLCMode,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "rlc-Mode-transferred"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P81,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rlc-Mode-transferred */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item = {
+       "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item",
+       "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tags_1, /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.c b/e2ap/lib/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.c
new file mode 100644 (file)
index 0000000..59a17ce
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P40,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList = {
+       "E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList",
+       "E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_tags_1,  /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_constr_1, &asn_PER_type_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToReleased-ModAckItem.c b/e2ap/lib/E-RABs-Admitted-ToReleased-ModAckItem.c
new file mode 100644 (file)
index 0000000..f764836
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToReleased-ModAckItem.h"
+
+#include "E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h"
+#include "E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_Admitted_ToReleased_ModAckItem_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToReleased_ModAckItem_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToReleased_ModAckItem_1[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToReleased_ModAckItem, choice.sCG_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sCG-Bearer"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToReleased_ModAckItem, choice.split_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "split-Bearer"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToReleased_ModAckItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_E_RABs_Admitted_ToReleased_ModAckItem_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToReleased_ModAckItem),
+       offsetof(struct E_RABs_Admitted_ToReleased_ModAckItem, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToReleased_ModAckItem, present),
+       sizeof(((struct E_RABs_Admitted_ToReleased_ModAckItem *)0)->present),
+       asn_MAP_E_RABs_Admitted_ToReleased_ModAckItem_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToReleased_ModAckItem = {
+       "E-RABs-Admitted-ToReleased-ModAckItem",
+       "E-RABs-Admitted-ToReleased-ModAckItem",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_E_RABs_Admitted_ToReleased_ModAckItem_constr_1, &asn_PER_type_E_RABs_Admitted_ToReleased_ModAckItem_constr_1, CHOICE_constraint },
+       asn_MBR_E_RABs_Admitted_ToReleased_ModAckItem_1,
+       2,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToReleased_ModAckItem_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-Admitted-ToReleased-SgNBModAck-Item.c b/e2ap/lib/E-RABs-Admitted-ToReleased-SgNBModAck-Item.c
new file mode 100644 (file)
index 0000000..fa53f76
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-Admitted-ToReleased-SgNBModAck-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+#include "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h"
+#include "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h"
+static asn_oer_constraints_t asn_OER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration, choice.sgNBPDCPpresent),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPpresent"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration, choice.sgNBPDCPnotpresent),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPnotpresent"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */
+};
+static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = {
+       sizeof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration),
+       offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration, present),
+       sizeof(((struct E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration *)0)->present),
+       asn_MAP_resource_configuration_tag2el_4,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = {
+       "resource-configuration",
+       "resource-configuration",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_resource_configuration_constr_4, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint },
+       asn_MBR_resource_configuration_4,
+       2,      /* Elements count */
+       &asn_SPC_resource_configuration_specs_4 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToReleased_SgNBModAck_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item, en_DC_ResourceConfiguration),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EN_DC_ResourceConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "en-DC-ResourceConfiguration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item, resource_configuration),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_resource_configuration_4,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "resource-configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P68,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_Admitted_ToReleased_SgNBModAck_Item_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToReleased_SgNBModAck_Item_specs_1 = {
+       sizeof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item),
+       offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_Admitted_ToReleased_SgNBModAck_Item_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item = {
+       "E-RABs-Admitted-ToReleased-SgNBModAck-Item",
+       "E-RABs-Admitted-ToReleased-SgNBModAck-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tags_1,      /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToReleased_SgNBModAck_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToReleased_SgNBModAck_Item_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.c b/e2ap/lib/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.c
new file mode 100644 (file)
index 0000000..5e7c6e0
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_1[] = {
+       { ATF_POINTER, 2, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent, secondary_meNB_UL_GTP_TEIDatPDCP),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "secondary-meNB-UL-GTP-TEIDatPDCP"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P77,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_oms_1[] = { 0, 1 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* secondary-meNB-UL-GTP-TEIDatPDCP */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_specs_1 = {
+       sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent, _asn_ctx),
+       asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_oms_1,  /* Optional members */
+       2, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent = {
+       "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent",
+       "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */
+       sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_1,
+       2,      /* Elements count */
+       &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.c b/e2ap/lib/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.c
new file mode 100644 (file)
index 0000000..21a0d60
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_1[] = {
+       { ATF_POINTER, 1, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P76,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_oms_1[] = { 0 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_specs_1 = {
+       sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent, _asn_ctx),
+       asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tag2el_1,
+       1,      /* Count of tags in the map */
+       asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent = {
+       "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent",
+       "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_1,
+       1,      /* Elements count */
+       &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-AdmittedToBeModified-SgNBModConf-Item.c b/e2ap/lib/E-RABs-AdmittedToBeModified-SgNBModConf-Item.c
new file mode 100644 (file)
index 0000000..4697be0
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-AdmittedToBeModified-SgNBModConf-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+#include "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h"
+#include "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.h"
+static asn_oer_constraints_t asn_OER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration, choice.sgNBPDCPpresent),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPpresent"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration, choice.sgNBPDCPnotpresent),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPnotpresent"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */
+};
+static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = {
+       sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration, _asn_ctx),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration, present),
+       sizeof(((struct E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration *)0)->present),
+       asn_MAP_resource_configuration_tag2el_4,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = {
+       "resource-configuration",
+       "resource-configuration",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_resource_configuration_constr_4, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint },
+       asn_MBR_resource_configuration_4,
+       2,      /* Elements count */
+       &asn_SPC_resource_configuration_specs_4 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item, en_DC_ResourceConfiguration),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EN_DC_ResourceConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "en-DC-ResourceConfiguration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item, resource_configuration),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_resource_configuration_4,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "resource-configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P75,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_specs_1 = {
+       sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item, _asn_ctx),
+       asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item = {
+       "E-RABs-AdmittedToBeModified-SgNBModConf-Item",
+       "E-RABs-AdmittedToBeModified-SgNBModConf-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-AdmittedToBeModified-SgNBModConfList.c b/e2ap/lib/E-RABs-AdmittedToBeModified-SgNBModConfList.c
new file mode 100644 (file)
index 0000000..7a226b2
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-AdmittedToBeModified-SgNBModConfList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_AdmittedToBeModified_SgNBModConfList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_AdmittedToBeModified_SgNBModConfList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConfList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P38,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConfList_specs_1 = {
+       sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConfList),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConfList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList = {
+       "E-RABs-AdmittedToBeModified-SgNBModConfList",
+       "E-RABs-AdmittedToBeModified-SgNBModConfList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList_tags_1,
+       sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList_tags_1)
+               /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList_tags_1)
+               /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_AdmittedToBeModified_SgNBModConfList_constr_1, &asn_PER_type_E_RABs_AdmittedToBeModified_SgNBModConfList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConfList_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConfList_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-DataForwardingAddress-Item.c b/e2ap/lib/E-RABs-DataForwardingAddress-Item.c
new file mode 100644 (file)
index 0000000..087bdd5
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-DataForwardingAddress-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_E_RABs_DataForwardingAddress_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_Item, dl_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dl-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_DataForwardingAddress_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P103,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_DataForwardingAddress_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_DataForwardingAddress_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_DataForwardingAddress_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_DataForwardingAddress_Item_specs_1 = {
+       sizeof(struct E_RABs_DataForwardingAddress_Item),
+       offsetof(struct E_RABs_DataForwardingAddress_Item, _asn_ctx),
+       asn_MAP_E_RABs_DataForwardingAddress_Item_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_DataForwardingAddress_Item_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_DataForwardingAddress_Item = {
+       "E-RABs-DataForwardingAddress-Item",
+       "E-RABs-DataForwardingAddress-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_DataForwardingAddress_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_DataForwardingAddress_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_DataForwardingAddress_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_DataForwardingAddress_Item_tags_1,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_DataForwardingAddress_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_DataForwardingAddress_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_DataForwardingAddress_Item_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_DataForwardingAddress_Item_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-DataForwardingAddress-List.c b/e2ap/lib/E-RABs-DataForwardingAddress-List.c
new file mode 100644 (file)
index 0000000..46eaa45
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-DataForwardingAddress-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_DataForwardingAddress_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_DataForwardingAddress_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_DataForwardingAddress_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P45,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_DataForwardingAddress_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_DataForwardingAddress_List_specs_1 = {
+       sizeof(struct E_RABs_DataForwardingAddress_List),
+       offsetof(struct E_RABs_DataForwardingAddress_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_DataForwardingAddress_List = {
+       "E-RABs-DataForwardingAddress-List",
+       "E-RABs-DataForwardingAddress-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_DataForwardingAddress_List_tags_1,
+       sizeof(asn_DEF_E_RABs_DataForwardingAddress_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_DataForwardingAddress_List_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_DataForwardingAddress_List_tags_1,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_DataForwardingAddress_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_DataForwardingAddress_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_DataForwardingAddress_List_constr_1, &asn_PER_type_E_RABs_DataForwardingAddress_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_DataForwardingAddress_List_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_DataForwardingAddress_List_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-SubjectToCounterCheck-List.c b/e2ap/lib/E-RABs-SubjectToCounterCheck-List.c
new file mode 100644 (file)
index 0000000..970427b
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-SubjectToCounterCheck-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_SubjectToCounterCheck_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_SubjectToCounterCheck_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_SubjectToCounterCheck_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P26,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToCounterCheck_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_SubjectToCounterCheck_List_specs_1 = {
+       sizeof(struct E_RABs_SubjectToCounterCheck_List),
+       offsetof(struct E_RABs_SubjectToCounterCheck_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToCounterCheck_List = {
+       "E-RABs-SubjectToCounterCheck-List",
+       "E-RABs-SubjectToCounterCheck-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_SubjectToCounterCheck_List_tags_1,
+       sizeof(asn_DEF_E_RABs_SubjectToCounterCheck_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_SubjectToCounterCheck_List_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_SubjectToCounterCheck_List_tags_1,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_SubjectToCounterCheck_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_SubjectToCounterCheck_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_SubjectToCounterCheck_List_constr_1, &asn_PER_type_E_RABs_SubjectToCounterCheck_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_SubjectToCounterCheck_List_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_SubjectToCounterCheck_List_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-SubjectToCounterCheckItem.c b/e2ap/lib/E-RABs-SubjectToCounterCheckItem.c
new file mode 100644 (file)
index 0000000..cf368b3
--- /dev/null
@@ -0,0 +1,237 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-SubjectToCounterCheckItem.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+uL_Count_3_constraint(const 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 int
+dL_Count_4_constraint(const 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 int
+memb_uL_Count_constraint_1(const 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;
+}
+
+static int
+memb_dL_Count_constraint_1(const 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;
+}
+
+static asn_oer_constraints_t asn_OER_type_uL_Count_constr_3 CC_NOTUSED = {
+       { 4, 1 }        /* (0..4294967295) */,
+       -1};
+static asn_per_constraints_t asn_PER_type_uL_Count_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED,       32, -1,  0,  4294967295 }      /* (0..4294967295) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_dL_Count_constr_4 CC_NOTUSED = {
+       { 4, 1 }        /* (0..4294967295) */,
+       -1};
+static asn_per_constraints_t asn_PER_type_dL_Count_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED,       32, -1,  0,  4294967295 }      /* (0..4294967295) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_uL_Count_constr_3 CC_NOTUSED = {
+       { 4, 1 }        /* (0..4294967295) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_uL_Count_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED,       32, -1,  0,  4294967295 }      /* (0..4294967295) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_dL_Count_constr_4 CC_NOTUSED = {
+       { 4, 1 }        /* (0..4294967295) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_dL_Count_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED,       32, -1,  0,  4294967295 }      /* (0..4294967295) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_specifics_t asn_SPC_uL_Count_specs_3 = {
+       0,      0,      0,      0,      0,
+       0,      /* Native long size */
+       1       /* Unsigned representation */
+};
+static const ber_tlv_tag_t asn_DEF_uL_Count_tags_3[] = {
+       (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_uL_Count_3 = {
+       "uL-Count",
+       "uL-Count",
+       &asn_OP_NativeInteger,
+       asn_DEF_uL_Count_tags_3,
+       sizeof(asn_DEF_uL_Count_tags_3)
+               /sizeof(asn_DEF_uL_Count_tags_3[0]) - 1, /* 1 */
+       asn_DEF_uL_Count_tags_3,        /* Same as above */
+       sizeof(asn_DEF_uL_Count_tags_3)
+               /sizeof(asn_DEF_uL_Count_tags_3[0]), /* 2 */
+       { &asn_OER_type_uL_Count_constr_3, &asn_PER_type_uL_Count_constr_3, uL_Count_3_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_uL_Count_specs_3       /* Additional specs */
+};
+
+static const asn_INTEGER_specifics_t asn_SPC_dL_Count_specs_4 = {
+       0,      0,      0,      0,      0,
+       0,      /* Native long size */
+       1       /* Unsigned representation */
+};
+static const ber_tlv_tag_t asn_DEF_dL_Count_tags_4[] = {
+       (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_dL_Count_4 = {
+       "dL-Count",
+       "dL-Count",
+       &asn_OP_NativeInteger,
+       asn_DEF_dL_Count_tags_4,
+       sizeof(asn_DEF_dL_Count_tags_4)
+               /sizeof(asn_DEF_dL_Count_tags_4[0]) - 1, /* 1 */
+       asn_DEF_dL_Count_tags_4,        /* Same as above */
+       sizeof(asn_DEF_dL_Count_tags_4)
+               /sizeof(asn_DEF_dL_Count_tags_4[0]), /* 2 */
+       { &asn_OER_type_dL_Count_constr_4, &asn_PER_type_dL_Count_constr_4, dL_Count_4_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_dL_Count_specs_4       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E_RABs_SubjectToCounterCheckItem_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItem, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItem, uL_Count),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_uL_Count_3,
+               0,
+               { &asn_OER_memb_uL_Count_constr_3, &asn_PER_memb_uL_Count_constr_3,  memb_uL_Count_constraint_1 },
+               0, 0, /* No default value */
+               "uL-Count"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItem, dL_Count),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_dL_Count_4,
+               0,
+               { &asn_OER_memb_dL_Count_constr_4, &asn_PER_memb_dL_Count_constr_4,  memb_dL_Count_constraint_1 },
+               0, 0, /* No default value */
+               "dL-Count"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_SubjectToCounterCheckItem, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P41,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_SubjectToCounterCheckItem_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToCounterCheckItem_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToCounterCheckItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-Count */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Count */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToCounterCheckItem_specs_1 = {
+       sizeof(struct E_RABs_SubjectToCounterCheckItem),
+       offsetof(struct E_RABs_SubjectToCounterCheckItem, _asn_ctx),
+       asn_MAP_E_RABs_SubjectToCounterCheckItem_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_SubjectToCounterCheckItem_oms_1, /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToCounterCheckItem = {
+       "E-RABs-SubjectToCounterCheckItem",
+       "E-RABs-SubjectToCounterCheckItem",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_SubjectToCounterCheckItem_tags_1,
+       sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItem_tags_1)
+               /sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItem_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_SubjectToCounterCheckItem_tags_1,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItem_tags_1)
+               /sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItem_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_SubjectToCounterCheckItem_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_SubjectToCounterCheckItem_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-SubjectToSgNBCounterCheck-Item.c b/e2ap/lib/E-RABs-SubjectToSgNBCounterCheck-Item.c
new file mode 100644 (file)
index 0000000..6a14be9
--- /dev/null
@@ -0,0 +1,237 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-SubjectToSgNBCounterCheck-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+uL_Count_3_constraint(const 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 int
+dL_Count_4_constraint(const 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 int
+memb_uL_Count_constraint_1(const 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;
+}
+
+static int
+memb_dL_Count_constraint_1(const 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;
+}
+
+static asn_oer_constraints_t asn_OER_type_uL_Count_constr_3 CC_NOTUSED = {
+       { 4, 1 }        /* (0..4294967295) */,
+       -1};
+static asn_per_constraints_t asn_PER_type_uL_Count_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED,       32, -1,  0,  4294967295 }      /* (0..4294967295) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_dL_Count_constr_4 CC_NOTUSED = {
+       { 4, 1 }        /* (0..4294967295) */,
+       -1};
+static asn_per_constraints_t asn_PER_type_dL_Count_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED,       32, -1,  0,  4294967295 }      /* (0..4294967295) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_uL_Count_constr_3 CC_NOTUSED = {
+       { 4, 1 }        /* (0..4294967295) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_uL_Count_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED,       32, -1,  0,  4294967295 }      /* (0..4294967295) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_dL_Count_constr_4 CC_NOTUSED = {
+       { 4, 1 }        /* (0..4294967295) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_dL_Count_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED,       32, -1,  0,  4294967295 }      /* (0..4294967295) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_specifics_t asn_SPC_uL_Count_specs_3 = {
+       0,      0,      0,      0,      0,
+       0,      /* Native long size */
+       1       /* Unsigned representation */
+};
+static const ber_tlv_tag_t asn_DEF_uL_Count_tags_3[] = {
+       (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_uL_Count_3 = {
+       "uL-Count",
+       "uL-Count",
+       &asn_OP_NativeInteger,
+       asn_DEF_uL_Count_tags_3,
+       sizeof(asn_DEF_uL_Count_tags_3)
+               /sizeof(asn_DEF_uL_Count_tags_3[0]) - 1, /* 1 */
+       asn_DEF_uL_Count_tags_3,        /* Same as above */
+       sizeof(asn_DEF_uL_Count_tags_3)
+               /sizeof(asn_DEF_uL_Count_tags_3[0]), /* 2 */
+       { &asn_OER_type_uL_Count_constr_3, &asn_PER_type_uL_Count_constr_3, uL_Count_3_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_uL_Count_specs_3       /* Additional specs */
+};
+
+static const asn_INTEGER_specifics_t asn_SPC_dL_Count_specs_4 = {
+       0,      0,      0,      0,      0,
+       0,      /* Native long size */
+       1       /* Unsigned representation */
+};
+static const ber_tlv_tag_t asn_DEF_dL_Count_tags_4[] = {
+       (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_dL_Count_4 = {
+       "dL-Count",
+       "dL-Count",
+       &asn_OP_NativeInteger,
+       asn_DEF_dL_Count_tags_4,
+       sizeof(asn_DEF_dL_Count_tags_4)
+               /sizeof(asn_DEF_dL_Count_tags_4[0]) - 1, /* 1 */
+       asn_DEF_dL_Count_tags_4,        /* Same as above */
+       sizeof(asn_DEF_dL_Count_tags_4)
+               /sizeof(asn_DEF_dL_Count_tags_4[0]), /* 2 */
+       { &asn_OER_type_dL_Count_constr_4, &asn_PER_type_dL_Count_constr_4, dL_Count_4_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_dL_Count_specs_4       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E_RABs_SubjectToSgNBCounterCheck_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_Item, uL_Count),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_uL_Count_3,
+               0,
+               { &asn_OER_memb_uL_Count_constr_3, &asn_PER_memb_uL_Count_constr_3,  memb_uL_Count_constraint_1 },
+               0, 0, /* No default value */
+               "uL-Count"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_Item, dL_Count),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_dL_Count_4,
+               0,
+               { &asn_OER_memb_dL_Count_constr_4, &asn_PER_memb_dL_Count_constr_4,  memb_dL_Count_constraint_1 },
+               0, 0, /* No default value */
+               "dL-Count"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P86,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_SubjectToSgNBCounterCheck_Item_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToSgNBCounterCheck_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-Count */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Count */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToSgNBCounterCheck_Item_specs_1 = {
+       sizeof(struct E_RABs_SubjectToSgNBCounterCheck_Item),
+       offsetof(struct E_RABs_SubjectToSgNBCounterCheck_Item, _asn_ctx),
+       asn_MAP_E_RABs_SubjectToSgNBCounterCheck_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_SubjectToSgNBCounterCheck_Item_oms_1,    /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item = {
+       "E-RABs-SubjectToSgNBCounterCheck-Item",
+       "E-RABs-SubjectToSgNBCounterCheck-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item_tags_1,   /* Same as above */
+       sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_SubjectToSgNBCounterCheck_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_SubjectToSgNBCounterCheck_Item_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-SubjectToSgNBCounterCheck-List.c b/e2ap/lib/E-RABs-SubjectToSgNBCounterCheck-List.c
new file mode 100644 (file)
index 0000000..d2dd107
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-SubjectToSgNBCounterCheck-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_SubjectToSgNBCounterCheck_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_SubjectToSgNBCounterCheck_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_SubjectToSgNBCounterCheck_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P43,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_SubjectToSgNBCounterCheck_List_specs_1 = {
+       sizeof(struct E_RABs_SubjectToSgNBCounterCheck_List),
+       offsetof(struct E_RABs_SubjectToSgNBCounterCheck_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List = {
+       "E-RABs-SubjectToSgNBCounterCheck-List",
+       "E-RABs-SubjectToSgNBCounterCheck-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List_tags_1,
+       sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List_tags_1,   /* Same as above */
+       sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_SubjectToSgNBCounterCheck_List_constr_1, &asn_PER_type_E_RABs_SubjectToSgNBCounterCheck_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_SubjectToSgNBCounterCheck_List_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_SubjectToSgNBCounterCheck_List_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-SubjectToStatusTransfer-Item.c b/e2ap/lib/E-RABs-SubjectToStatusTransfer-Item.c
new file mode 100644 (file)
index 0000000..09ab5d0
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-SubjectToStatusTransfer-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_E_RABs_SubjectToStatusTransfer_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_SubjectToStatusTransfer_Item, receiveStatusofULPDCPSDUs),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ReceiveStatusofULPDCPSDUs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "receiveStatusofULPDCPSDUs"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_Item, uL_COUNTvalue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_COUNTvalue,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-COUNTvalue"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_Item, dL_COUNTvalue),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_COUNTvalue,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-COUNTvalue"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_SubjectToStatusTransfer_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P6,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_SubjectToStatusTransfer_Item_oms_1[] = { 1, 4 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToStatusTransfer_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToStatusTransfer_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* receiveStatusofULPDCPSDUs */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uL-COUNTvalue */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dL-COUNTvalue */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToStatusTransfer_Item_specs_1 = {
+       sizeof(struct E_RABs_SubjectToStatusTransfer_Item),
+       offsetof(struct E_RABs_SubjectToStatusTransfer_Item, _asn_ctx),
+       asn_MAP_E_RABs_SubjectToStatusTransfer_Item_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_E_RABs_SubjectToStatusTransfer_Item_oms_1,      /* Optional members */
+       2, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToStatusTransfer_Item = {
+       "E-RABs-SubjectToStatusTransfer-Item",
+       "E-RABs-SubjectToStatusTransfer-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_SubjectToStatusTransfer_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_SubjectToStatusTransfer_Item_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_SubjectToStatusTransfer_Item_1,
+       5,      /* Elements count */
+       &asn_SPC_E_RABs_SubjectToStatusTransfer_Item_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-SubjectToStatusTransfer-List.c b/e2ap/lib/E-RABs-SubjectToStatusTransfer-List.c
new file mode 100644 (file)
index 0000000..b2c4474
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-SubjectToStatusTransfer-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_SubjectToStatusTransfer_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_SubjectToStatusTransfer_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_SubjectToStatusTransfer_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P8,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToStatusTransfer_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_SubjectToStatusTransfer_List_specs_1 = {
+       sizeof(struct E_RABs_SubjectToStatusTransfer_List),
+       offsetof(struct E_RABs_SubjectToStatusTransfer_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToStatusTransfer_List = {
+       "E-RABs-SubjectToStatusTransfer-List",
+       "E-RABs-SubjectToStatusTransfer-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_SubjectToStatusTransfer_List_tags_1,
+       sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_List_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_SubjectToStatusTransfer_List_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_SubjectToStatusTransfer_List_constr_1, &asn_PER_type_E_RABs_SubjectToStatusTransfer_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_SubjectToStatusTransfer_List_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_SubjectToStatusTransfer_List_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeAdded-Item-SCG-Bearer.c b/e2ap/lib/E-RABs-ToBeAdded-Item-SCG-Bearer.c
new file mode 100644 (file)
index 0000000..f0d6618
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeAdded-Item-SCG-Bearer.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_SCG_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_SCG_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_SCG_Bearer, e_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-Level-QoS-Parameters"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_Item_SCG_Bearer, dL_Forwarding),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_DL_Forwarding,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-Forwarding"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_SCG_Bearer, s1_UL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "s1-UL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_Item_SCG_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P17,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeAdded_Item_SCG_Bearer_oms_1[] = { 2, 4 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_Item_SCG_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* s1-UL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_SCG_Bearer_specs_1 = {
+       sizeof(struct E_RABs_ToBeAdded_Item_SCG_Bearer),
+       offsetof(struct E_RABs_ToBeAdded_Item_SCG_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_Item_SCG_Bearer_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeAdded_Item_SCG_Bearer_oms_1, /* Optional members */
+       2, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer = {
+       "E-RABs-ToBeAdded-Item-SCG-Bearer",
+       "E-RABs-ToBeAdded-Item-SCG-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer_tags_1,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_Item_SCG_Bearer_1,
+       5,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_Item_SCG_Bearer_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeAdded-Item-Split-Bearer.c b/e2ap/lib/E-RABs-ToBeAdded-Item-Split-Bearer.c
new file mode 100644 (file)
index 0000000..6ec088a
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeAdded-Item-Split-Bearer.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_Split_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_Split_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_Split_Bearer, e_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-Level-QoS-Parameters"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_Split_Bearer, meNB_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "meNB-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_Item_Split_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P18,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeAdded_Item_Split_Bearer_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_Item_Split_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* meNB-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_Split_Bearer_specs_1 = {
+       sizeof(struct E_RABs_ToBeAdded_Item_Split_Bearer),
+       offsetof(struct E_RABs_ToBeAdded_Item_Split_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_Item_Split_Bearer_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeAdded_Item_Split_Bearer_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer = {
+       "E-RABs-ToBeAdded-Item-Split-Bearer",
+       "E-RABs-ToBeAdded-Item-Split-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer_tags_1,      /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_Item_Split_Bearer_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_Item_Split_Bearer_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeAdded-Item.c b/e2ap/lib/E-RABs-ToBeAdded-Item.c
new file mode 100644 (file)
index 0000000..d4421d0
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeAdded-Item.h"
+
+#include "E-RABs-ToBeAdded-Item-SCG-Bearer.h"
+#include "E-RABs-ToBeAdded-Item-Split-Bearer.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeAdded_Item_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_E_RABs_ToBeAdded_Item_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_1[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeAdded_Item, choice.sCG_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sCG-Bearer"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeAdded_Item, choice.split_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "split-Bearer"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_specs_1 = {
+       sizeof(struct E_RABs_ToBeAdded_Item),
+       offsetof(struct E_RABs_ToBeAdded_Item, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_Item, present),
+       sizeof(((struct E_RABs_ToBeAdded_Item *)0)->present),
+       asn_MAP_E_RABs_ToBeAdded_Item_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item = {
+       "E-RABs-ToBeAdded-Item",
+       "E-RABs-ToBeAdded-Item",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_E_RABs_ToBeAdded_Item_constr_1, &asn_PER_type_E_RABs_ToBeAdded_Item_constr_1, CHOICE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_Item_1,
+       2,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_Item_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeAdded-List-ModReq.c b/e2ap/lib/E-RABs-ToBeAdded-List-ModReq.c
new file mode 100644 (file)
index 0000000..7a077bf
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeAdded-List-ModReq.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeAdded_List_ModReq_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+asn_per_constraints_t asn_PER_type_E_RABs_ToBeAdded_List_ModReq_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_List_ModReq_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P17,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_List_ModReq_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeAdded_List_ModReq_specs_1 = {
+       sizeof(struct E_RABs_ToBeAdded_List_ModReq),
+       offsetof(struct E_RABs_ToBeAdded_List_ModReq, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_List_ModReq = {
+       "E-RABs-ToBeAdded-List-ModReq",
+       "E-RABs-ToBeAdded-List-ModReq",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeAdded_List_ModReq_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_List_ModReq_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_List_ModReq_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_List_ModReq_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_List_ModReq_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_List_ModReq_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeAdded_List_ModReq_constr_1, &asn_PER_type_E_RABs_ToBeAdded_List_ModReq_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeAdded_List_ModReq_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeAdded_List_ModReq_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeAdded-List.c b/e2ap/lib/E-RABs-ToBeAdded-List.c
new file mode 100644 (file)
index 0000000..669cfd2
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeAdded-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeAdded_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_ToBeAdded_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P15,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeAdded_List_specs_1 = {
+       sizeof(struct E_RABs_ToBeAdded_List),
+       offsetof(struct E_RABs_ToBeAdded_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_List = {
+       "E-RABs-ToBeAdded-List",
+       "E-RABs-ToBeAdded-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeAdded_List_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_List_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_List_tags_1,   /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeAdded_List_constr_1, &asn_PER_type_E_RABs_ToBeAdded_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeAdded_List_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeAdded_List_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.c b/e2ap/lib/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.c
new file mode 100644 (file)
index 0000000..3dafb48
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer, e_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-Level-QoS-Parameters"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer, dL_Forwarding),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_DL_Forwarding,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-Forwarding"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer, s1_UL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "s1-UL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P24,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_oms_1[] = { 2, 4 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* s1-UL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_specs_1 = {
+       sizeof(struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer),
+       offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_oms_1,   /* Optional members */
+       2, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer = {
+       "E-RABs-ToBeAdded-ModReqItem-SCG-Bearer",
+       "E-RABs-ToBeAdded-ModReqItem-SCG-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tags_1,  /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_1,
+       5,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.c b/e2ap/lib/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.c
new file mode 100644 (file)
index 0000000..4ff6f05
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer, e_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-Level-QoS-Parameters"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer, meNB_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "meNB-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P25,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* meNB-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_specs_1 = {
+       sizeof(struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer),
+       offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_oms_1, /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer = {
+       "E-RABs-ToBeAdded-ModReqItem-Split-Bearer",
+       "E-RABs-ToBeAdded-ModReqItem-Split-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tags_1,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeAdded-ModReqItem.c b/e2ap/lib/E-RABs-ToBeAdded-ModReqItem.c
new file mode 100644 (file)
index 0000000..8be5f6c
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeAdded-ModReqItem.h"
+
+#include "E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h"
+#include "E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeAdded_ModReqItem_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_E_RABs_ToBeAdded_ModReqItem_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_1[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem, choice.sCG_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sCG-Bearer"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem, choice.split_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "split-Bearer"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_ModReqItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_specs_1 = {
+       sizeof(struct E_RABs_ToBeAdded_ModReqItem),
+       offsetof(struct E_RABs_ToBeAdded_ModReqItem, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_ModReqItem, present),
+       sizeof(((struct E_RABs_ToBeAdded_ModReqItem *)0)->present),
+       asn_MAP_E_RABs_ToBeAdded_ModReqItem_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem = {
+       "E-RABs-ToBeAdded-ModReqItem",
+       "E-RABs-ToBeAdded-ModReqItem",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_E_RABs_ToBeAdded_ModReqItem_constr_1, &asn_PER_type_E_RABs_ToBeAdded_ModReqItem_constr_1, CHOICE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_ModReqItem_1,
+       2,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_ModReqItem_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.c b/e2ap/lib/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.c
new file mode 100644 (file)
index 0000000..82a14d8
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ULConfiguration.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent, requested_SCG_E_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "requested-SCG-E-RAB-Level-QoS-Parameters"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent, meNB_UL_GTP_TEIDatPDCP),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "meNB-UL-GTP-TEIDatPDCP"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent, secondary_meNB_UL_GTP_TEIDatPDCP),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "secondary-meNB-UL-GTP-TEIDatPDCP"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent, rlc_Mode),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RLCMode,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "rlc-Mode"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent, uL_Configuration),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ULConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-Configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P46,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_oms_1[] = { 2, 4, 5 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requested-SCG-E-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* meNB-UL-GTP-TEIDatPDCP */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* secondary-meNB-UL-GTP-TEIDatPDCP */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rlc-Mode */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* uL-Configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_specs_1 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tag2el_1,
+       6,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_oms_1,      /* Optional members */
+       3, 0,   /* Root/Additions */
+       6,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent = {
+       "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent",
+       "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_1,
+       6,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.c b/e2ap/lib/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.c
new file mode 100644 (file)
index 0000000..8cb353a
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h"
+
+#include "GBR-QosInformation.h"
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent, full_E_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "full-E-RAB-Level-QoS-Parameters"
+               },
+       { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent, max_MCG_admit_E_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GBR_QosInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "max-MCG-admit-E-RAB-Level-QoS-Parameters"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent, dL_Forwarding),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_DL_Forwarding,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-Forwarding"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent, meNB_DL_GTP_TEIDatMCG),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "meNB-DL-GTP-TEIDatMCG"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent, s1_UL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "s1-UL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P45,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_oms_1[] = { 1, 2, 3, 5 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* full-E-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* max-MCG-admit-E-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* meNB-DL-GTP-TEIDatMCG */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* s1-UL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_specs_1 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tag2el_1,
+       6,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_oms_1, /* Optional members */
+       4, 0,   /* Root/Additions */
+       6,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent = {
+       "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent",
+       "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tags_1,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_1,
+       6,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeAdded-SgNBAddReq-Item.c b/e2ap/lib/E-RABs-ToBeAdded-SgNBAddReq-Item.c
new file mode 100644 (file)
index 0000000..c61e914
--- /dev/null
@@ -0,0 +1,152 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeAdded-SgNBAddReq-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+#include "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h"
+#include "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h"
+static asn_oer_constraints_t asn_OER_type_resource_configuration_constr_5 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_resource_configuration_constr_5 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_resource_configuration_5[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration, choice.sgNBPDCPpresent),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPpresent"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration, choice.sgNBPDCPnotpresent),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPnotpresent"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_5[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */
+};
+static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_5 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration, present),
+       sizeof(((struct E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration *)0)->present),
+       asn_MAP_resource_configuration_tag2el_5,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_resource_configuration_5 = {
+       "resource-configuration",
+       "resource-configuration",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_resource_configuration_constr_5, &asn_PER_type_resource_configuration_constr_5, CHOICE_constraint },
+       asn_MBR_resource_configuration_5,
+       2,      /* Elements count */
+       &asn_SPC_resource_configuration_specs_5 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item, drb_ID),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_DRB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "drb-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item, en_DC_ResourceConfiguration),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EN_DC_ResourceConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "en-DC-ResourceConfiguration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item, resource_configuration),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_resource_configuration_5,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "resource-configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P44,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_oms_1[] = { 4 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* drb-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* en-DC-ResourceConfiguration */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* resource-configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_specs_1 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_Item),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_oms_1, /* Optional members */
+       1, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item = {
+       "E-RABs-ToBeAdded-SgNBAddReq-Item",
+       "E-RABs-ToBeAdded-SgNBAddReq-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_tags_1,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_1,
+       5,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeAdded-SgNBAddReqList.c b/e2ap/lib/E-RABs-ToBeAdded-SgNBAddReqList.c
new file mode 100644 (file)
index 0000000..bf3ae72
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeAdded-SgNBAddReqList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeAdded_SgNBAddReqList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_ToBeAdded_SgNBAddReqList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReqList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P28,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReqList_specs_1 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBAddReqList),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReqList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList = {
+       "E-RABs-ToBeAdded-SgNBAddReqList",
+       "E-RABs-ToBeAdded-SgNBAddReqList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList_tags_1, /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeAdded_SgNBAddReqList_constr_1, &asn_PER_type_E_RABs_ToBeAdded_SgNBAddReqList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBAddReqList_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBAddReqList_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.c b/e2ap/lib/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.c
new file mode 100644 (file)
index 0000000..93810e7
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ULConfiguration.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent, requested_SCG_E_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "requested-SCG-E-RAB-Level-QoS-Parameters"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent, meNB_UL_GTP_TEIDatPDCP),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "meNB-UL-GTP-TEIDatPDCP"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent, secondary_meNB_UL_GTP_TEIDatPDCP),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "secondary-meNB-UL-GTP-TEIDatPDCP"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent, rlc_Mode),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RLCMode,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "rlc-Mode"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent, uL_Configuration),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ULConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-Configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P55,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_oms_1[] = { 2, 4, 5 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requested-SCG-E-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* meNB-UL-GTP-TEIDatPDCP */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* secondary-meNB-UL-GTP-TEIDatPDCP */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rlc-Mode */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* uL-Configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tag2el_1,
+       6,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_oms_1,      /* Optional members */
+       3, 0,   /* Root/Additions */
+       6,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent = {
+       "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent",
+       "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_1,
+       6,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.c b/e2ap/lib/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.c
new file mode 100644 (file)
index 0000000..845fc92
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h"
+
+#include "GBR-QosInformation.h"
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent, full_E_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "full-E-RAB-Level-QoS-Parameters"
+               },
+       { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent, max_MN_admit_E_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GBR_QosInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "max-MN-admit-E-RAB-Level-QoS-Parameters"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent, dL_Forwarding),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_DL_Forwarding,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-Forwarding"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent, meNB_DL_GTP_TEIDatMCG),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "meNB-DL-GTP-TEIDatMCG"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent, s1_UL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "s1-UL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P54,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_oms_1[] = { 1, 2, 3, 5 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* full-E-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* max-MN-admit-E-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* meNB-DL-GTP-TEIDatMCG */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* s1-UL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_specs_1 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tag2el_1,
+       6,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_oms_1, /* Optional members */
+       4, 0,   /* Root/Additions */
+       6,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent = {
+       "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent",
+       "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tags_1,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_1,
+       6,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeAdded-SgNBModReq-Item.c b/e2ap/lib/E-RABs-ToBeAdded-SgNBModReq-Item.c
new file mode 100644 (file)
index 0000000..f140e32
--- /dev/null
@@ -0,0 +1,152 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeAdded-SgNBModReq-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+#include "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h"
+#include "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h"
+static asn_oer_constraints_t asn_OER_type_resource_configuration_constr_5 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_resource_configuration_constr_5 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_resource_configuration_5[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration, choice.sgNBPDCPpresent),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPpresent"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration, choice.sgNBPDCPnotpresent),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPnotpresent"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_5[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */
+};
+static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_5 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration, present),
+       sizeof(((struct E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration *)0)->present),
+       asn_MAP_resource_configuration_tag2el_5,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_resource_configuration_5 = {
+       "resource-configuration",
+       "resource-configuration",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_resource_configuration_constr_5, &asn_PER_type_resource_configuration_constr_5, CHOICE_constraint },
+       asn_MBR_resource_configuration_5,
+       2,      /* Elements count */
+       &asn_SPC_resource_configuration_specs_5 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item, drb_ID),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_DRB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "drb-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item, en_DC_ResourceConfiguration),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EN_DC_ResourceConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "en-DC-ResourceConfiguration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item, resource_configuration),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_resource_configuration_5,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "resource-configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P53,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_oms_1[] = { 4 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* drb-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* en-DC-ResourceConfiguration */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* resource-configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_specs_1 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBModReq_Item),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_oms_1, /* Optional members */
+       1, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item = {
+       "E-RABs-ToBeAdded-SgNBModReq-Item",
+       "E-RABs-ToBeAdded-SgNBModReq-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_tags_1,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_1,
+       5,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeAdded-SgNBModReq-List.c b/e2ap/lib/E-RABs-ToBeAdded-SgNBModReq-List.c
new file mode 100644 (file)
index 0000000..9b669fa
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeAdded-SgNBModReq-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeAdded_SgNBModReq_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+asn_per_constraints_t asn_PER_type_E_RABs_ToBeAdded_SgNBModReq_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P30,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_List_specs_1 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBModReq_List),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List = {
+       "E-RABs-ToBeAdded-SgNBModReq-List",
+       "E-RABs-ToBeAdded-SgNBModReq-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List_tags_1,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeAdded_SgNBModReq_List_constr_1, &asn_PER_type_E_RABs_ToBeAdded_SgNBModReq_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBModReq_List_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_List_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeModified-List-ModReq.c b/e2ap/lib/E-RABs-ToBeModified-List-ModReq.c
new file mode 100644 (file)
index 0000000..a1be1e0
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeModified-List-ModReq.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeModified_List_ModReq_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+asn_per_constraints_t asn_PER_type_E_RABs_ToBeModified_List_ModReq_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_List_ModReq_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P18,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_List_ModReq_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeModified_List_ModReq_specs_1 = {
+       sizeof(struct E_RABs_ToBeModified_List_ModReq),
+       offsetof(struct E_RABs_ToBeModified_List_ModReq, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_List_ModReq = {
+       "E-RABs-ToBeModified-List-ModReq",
+       "E-RABs-ToBeModified-List-ModReq",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeModified_List_ModReq_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeModified_List_ModReq_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_List_ModReq_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_List_ModReq_tags_1, /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_List_ModReq_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_List_ModReq_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeModified_List_ModReq_constr_1, &asn_PER_type_E_RABs_ToBeModified_List_ModReq_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeModified_List_ModReq_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeModified_List_ModReq_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.c b/e2ap/lib/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.c
new file mode 100644 (file)
index 0000000..1a9fe92
--- /dev/null
@@ -0,0 +1,85 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h"
+
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer, e_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-Level-QoS-Parameters"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer, s1_UL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "s1-UL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P26,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_oms_1[] = { 1, 2, 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* s1-UL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_specs_1 = {
+       sizeof(struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer),
+       offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_oms_1,        /* Optional members */
+       3, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer = {
+       "E-RABs-ToBeModified-ModReqItem-SCG-Bearer",
+       "E-RABs-ToBeModified-ModReqItem-SCG-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tags_1,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeModified-ModReqItem-Split-Bearer.c b/e2ap/lib/E-RABs-ToBeModified-ModReqItem-Split-Bearer.c
new file mode 100644 (file)
index 0000000..83a27c5
--- /dev/null
@@ -0,0 +1,85 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeModified-ModReqItem-Split-Bearer.h"
+
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_Split_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_Bearer, e_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-Level-QoS-Parameters"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_Bearer, meNB_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "meNB-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P27,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeModified_ModReqItem_Split_Bearer_oms_1[] = { 1, 2, 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* meNB-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_Split_Bearer_specs_1 = {
+       sizeof(struct E_RABs_ToBeModified_ModReqItem_Split_Bearer),
+       offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeModified_ModReqItem_Split_Bearer_oms_1,      /* Optional members */
+       3, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer = {
+       "E-RABs-ToBeModified-ModReqItem-Split-Bearer",
+       "E-RABs-ToBeModified-ModReqItem-Split-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_ModReqItem_Split_Bearer_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_ModReqItem_Split_Bearer_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeModified-ModReqItem.c b/e2ap/lib/E-RABs-ToBeModified-ModReqItem.c
new file mode 100644 (file)
index 0000000..80764ca
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeModified-ModReqItem.h"
+
+#include "E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h"
+#include "E-RABs-ToBeModified-ModReqItem-Split-Bearer.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeModified_ModReqItem_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_E_RABs_ToBeModified_ModReqItem_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_1[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem, choice.sCG_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sCG-Bearer"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem, choice.split_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "split-Bearer"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_ModReqItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_specs_1 = {
+       sizeof(struct E_RABs_ToBeModified_ModReqItem),
+       offsetof(struct E_RABs_ToBeModified_ModReqItem, _asn_ctx),
+       offsetof(struct E_RABs_ToBeModified_ModReqItem, present),
+       sizeof(((struct E_RABs_ToBeModified_ModReqItem *)0)->present),
+       asn_MAP_E_RABs_ToBeModified_ModReqItem_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem = {
+       "E-RABs-ToBeModified-ModReqItem",
+       "E-RABs-ToBeModified-ModReqItem",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_E_RABs_ToBeModified_ModReqItem_constr_1, &asn_PER_type_E_RABs_ToBeModified_ModReqItem_constr_1, CHOICE_constraint },
+       asn_MBR_E_RABs_ToBeModified_ModReqItem_1,
+       2,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_ModReqItem_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.c b/e2ap/lib/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.c
new file mode 100644 (file)
index 0000000..2eddb72
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h"
+
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "GTPtunnelEndpoint.h"
+#include "ULConfiguration.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_1[] = {
+       { ATF_POINTER, 4, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent, requested_SCG_E_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "requested-SCG-E-RAB-Level-QoS-Parameters"
+               },
+       { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent, meNB_UL_GTP_TEIDatPDCP),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "meNB-UL-GTP-TEIDatPDCP"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent, uL_Configuration),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ULConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-Configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P58,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_oms_1[] = { 0, 1, 2, 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requested-SCG-E-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* meNB-UL-GTP-TEIDatPDCP */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uL-Configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_oms_1,   /* Optional members */
+       4, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent = {
+       "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent",
+       "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1,  /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.c b/e2ap/lib/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.c
new file mode 100644 (file)
index 0000000..4abd49b
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h"
+
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "GBR-QosInformation.h"
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_1[] = {
+       { ATF_POINTER, 5, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent, full_E_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "full-E-RAB-Level-QoS-Parameters"
+               },
+       { ATF_POINTER, 4, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent, max_MN_admit_E_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GBR_QosInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "max-MN-admit-E-RAB-Level-QoS-Parameters"
+               },
+       { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent, meNB_DL_GTP_TEIDatMCG),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "meNB-DL-GTP-TEIDatMCG"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent, s1_UL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "s1-UL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P57,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_oms_1[] = { 0, 1, 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* full-E-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* max-MN-admit-E-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* meNB-DL-GTP-TEIDatMCG */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* s1-UL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_specs_1 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_oms_1,      /* Optional members */
+       5, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent = {
+       "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent",
+       "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_1,
+       5,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeModified-SgNBModReq-Item.c b/e2ap/lib/E-RABs-ToBeModified-SgNBModReq-Item.c
new file mode 100644 (file)
index 0000000..3ba8c82
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeModified-SgNBModReq-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+#include "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h"
+#include "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h"
+static asn_oer_constraints_t asn_OER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration, choice.sgNBPDCPpresent),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPpresent"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration, choice.sgNBPDCPnotpresent),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPnotpresent"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */
+};
+static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration, _asn_ctx),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration, present),
+       sizeof(((struct E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration *)0)->present),
+       asn_MAP_resource_configuration_tag2el_4,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = {
+       "resource-configuration",
+       "resource-configuration",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_resource_configuration_constr_4, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint },
+       asn_MBR_resource_configuration_4,
+       2,      /* Elements count */
+       &asn_SPC_resource_configuration_specs_4 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item, en_DC_ResourceConfiguration),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EN_DC_ResourceConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "en-DC-ResourceConfiguration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item, resource_configuration),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_resource_configuration_4,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "resource-configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P56,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_specs_1 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReq_Item),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_oms_1,      /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item = {
+       "E-RABs-ToBeModified-SgNBModReq-Item",
+       "E-RABs-ToBeModified-SgNBModReq-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeModified-SgNBModReq-List.c b/e2ap/lib/E-RABs-ToBeModified-SgNBModReq-List.c
new file mode 100644 (file)
index 0000000..0f684f0
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeModified-SgNBModReq-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeModified_SgNBModReq_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+asn_per_constraints_t asn_PER_type_E_RABs_ToBeModified_SgNBModReq_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P31,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_List_specs_1 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReq_List),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_List = {
+       "E-RABs-ToBeModified-SgNBModReq-List",
+       "E-RABs-ToBeModified-SgNBModReq-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeModified_SgNBModReq_List_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_List_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_SgNBModReq_List_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeModified_SgNBModReq_List_constr_1, &asn_PER_type_E_RABs_ToBeModified_SgNBModReq_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReq_List_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReq_List_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.c b/e2ap/lib/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.c
new file mode 100644 (file)
index 0000000..d012ae5
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_1[] = {
+       { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent, sgNB_DL_GTP_TEIDatSCG),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNB-DL-GTP-TEIDatSCG"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent, secondary_sgNB_DL_GTP_TEIDatSCG),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "secondary-sgNB-DL-GTP-TEIDatSCG"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P74,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_oms_1[] = { 0, 1, 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNB-DL-GTP-TEIDatSCG */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* secondary-sgNB-DL-GTP-TEIDatSCG */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_specs_1 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_oms_1,  /* Optional members */
+       3, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent = {
+       "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent",
+       "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.c b/e2ap/lib/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.c
new file mode 100644 (file)
index 0000000..4723f47
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h"
+
+#include "E-RAB-Level-QoS-Parameters.h"
+#include "ULConfiguration.h"
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_1[] = {
+       { ATF_POINTER, 5, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent, requested_MCG_E_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "requested-MCG-E-RAB-Level-QoS-Parameters"
+               },
+       { ATF_POINTER, 4, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent, uL_Configuration),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ULConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-Configuration"
+               },
+       { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent, sgNB_UL_GTP_TEIDatPDCP),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNB-UL-GTP-TEIDatPDCP"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent, s1_DL_GTP_TEIDatSgNB),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "s1-DL-GTP-TEIDatSgNB"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P73,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_oms_1[] = { 0, 1, 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requested-MCG-E-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-Configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sgNB-UL-GTP-TEIDatPDCP */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* s1-DL-GTP-TEIDatSgNB */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_specs_1 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_oms_1,     /* Optional members */
+       5, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent = {
+       "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent",
+       "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_1,
+       5,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeModified-SgNBModReqd-Item.c b/e2ap/lib/E-RABs-ToBeModified-SgNBModReqd-Item.c
new file mode 100644 (file)
index 0000000..cb5c8e1
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeModified-SgNBModReqd-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+#include "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h"
+#include "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h"
+static asn_oer_constraints_t asn_OER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration, choice.sgNBPDCPpresent),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPpresent"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration, choice.sgNBPDCPnotpresent),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPnotpresent"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */
+};
+static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration, _asn_ctx),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration, present),
+       sizeof(((struct E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration *)0)->present),
+       asn_MAP_resource_configuration_tag2el_4,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = {
+       "resource-configuration",
+       "resource-configuration",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_resource_configuration_constr_4, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint },
+       asn_MBR_resource_configuration_4,
+       2,      /* Elements count */
+       &asn_SPC_resource_configuration_specs_4 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item, en_DC_ResourceConfiguration),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EN_DC_ResourceConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "en-DC-ResourceConfiguration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item, resource_configuration),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_resource_configuration_4,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "resource-configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P72,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_specs_1 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReqd_Item),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item = {
+       "E-RABs-ToBeModified-SgNBModReqd-Item",
+       "E-RABs-ToBeModified-SgNBModReqd-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeModified-SgNBModReqdList.c b/e2ap/lib/E-RABs-ToBeModified-SgNBModReqdList.c
new file mode 100644 (file)
index 0000000..6b3c013
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeModified-SgNBModReqdList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeModified_SgNBModReqdList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_ToBeModified_SgNBModReqdList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqdList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P37,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReqdList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqdList_specs_1 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReqdList),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqdList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqdList = {
+       "E-RABs-ToBeModified-SgNBModReqdList",
+       "E-RABs-ToBeModified-SgNBModReqdList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeModified_SgNBModReqdList_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqdList_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqdList_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_SgNBModReqdList_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqdList_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqdList_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeModified_SgNBModReqdList_constr_1, &asn_PER_type_E_RABs_ToBeModified_SgNBModReqdList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReqdList_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReqdList_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-List-ModReq.c b/e2ap/lib/E-RABs-ToBeReleased-List-ModReq.c
new file mode 100644 (file)
index 0000000..8f875a3
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-List-ModReq.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeReleased_List_ModReq_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_List_ModReq_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_List_ModReq_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P19,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_List_ModReq_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_List_ModReq_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_List_ModReq),
+       offsetof(struct E_RABs_ToBeReleased_List_ModReq, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_List_ModReq = {
+       "E-RABs-ToBeReleased-List-ModReq",
+       "E-RABs-ToBeReleased-List-ModReq",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeReleased_List_ModReq_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_List_ModReq_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_List_ModReq_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_List_ModReq_tags_1, /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_List_ModReq_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_List_ModReq_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeReleased_List_ModReq_constr_1, &asn_PER_type_E_RABs_ToBeReleased_List_ModReq_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeReleased_List_ModReq_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeReleased_List_ModReq_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-List-RelConf.c b/e2ap/lib/E-RABs-ToBeReleased-List-RelConf.c
new file mode 100644 (file)
index 0000000..0abf296
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-List-RelConf.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeReleased_List_RelConf_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_List_RelConf_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_List_RelConf_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P25,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_List_RelConf_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_List_RelConf_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_List_RelConf),
+       offsetof(struct E_RABs_ToBeReleased_List_RelConf, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_List_RelConf = {
+       "E-RABs-ToBeReleased-List-RelConf",
+       "E-RABs-ToBeReleased-List-RelConf",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeReleased_List_RelConf_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_List_RelConf_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_List_RelConf_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_List_RelConf_tags_1,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_List_RelConf_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_List_RelConf_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeReleased_List_RelConf_constr_1, &asn_PER_type_E_RABs_ToBeReleased_List_RelConf_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeReleased_List_RelConf_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeReleased_List_RelConf_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-List-RelReq.c b/e2ap/lib/E-RABs-ToBeReleased-List-RelReq.c
new file mode 100644 (file)
index 0000000..539897b
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-List-RelReq.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeReleased_List_RelReq_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_List_RelReq_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_List_RelReq_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P24,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_List_RelReq_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_List_RelReq_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_List_RelReq),
+       offsetof(struct E_RABs_ToBeReleased_List_RelReq, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_List_RelReq = {
+       "E-RABs-ToBeReleased-List-RelReq",
+       "E-RABs-ToBeReleased-List-RelReq",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeReleased_List_RelReq_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_List_RelReq_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_List_RelReq_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_List_RelReq_tags_1, /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_List_RelReq_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_List_RelReq_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeReleased_List_RelReq_constr_1, &asn_PER_type_E_RABs_ToBeReleased_List_RelReq_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeReleased_List_RelReq_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeReleased_List_RelReq_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.c b/e2ap/lib/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.c
new file mode 100644 (file)
index 0000000..03c478e
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer, dL_Forwarding_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-Forwarding-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer, uL_Forwarding_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-Forwarding-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P28,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_oms_1[] = { 1, 2, 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uL-Forwarding-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer),
+       offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_oms_1,        /* Optional members */
+       3, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer = {
+       "E-RABs-ToBeReleased-ModReqItem-SCG-Bearer",
+       "E-RABs-ToBeReleased-ModReqItem-SCG-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tags_1,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.c b/e2ap/lib/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.c
new file mode 100644 (file)
index 0000000..0ae2f70
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer, dL_Forwarding_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-Forwarding-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P29,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer),
+       offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_oms_1,      /* Optional members */
+       2, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer = {
+       "E-RABs-ToBeReleased-ModReqItem-Split-Bearer",
+       "E-RABs-ToBeReleased-ModReqItem-Split-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-ModReqItem.c b/e2ap/lib/E-RABs-ToBeReleased-ModReqItem.c
new file mode 100644 (file)
index 0000000..17d0027
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-ModReqItem.h"
+
+#include "E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h"
+#include "E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeReleased_ModReqItem_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_ModReqItem_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_1[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem, choice.sCG_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sCG-Bearer"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem, choice.split_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "split-Bearer"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_ModReqItem),
+       offsetof(struct E_RABs_ToBeReleased_ModReqItem, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_ModReqItem, present),
+       sizeof(((struct E_RABs_ToBeReleased_ModReqItem *)0)->present),
+       asn_MAP_E_RABs_ToBeReleased_ModReqItem_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem = {
+       "E-RABs-ToBeReleased-ModReqItem",
+       "E-RABs-ToBeReleased-ModReqItem",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_E_RABs_ToBeReleased_ModReqItem_constr_1, &asn_PER_type_E_RABs_ToBeReleased_ModReqItem_constr_1, CHOICE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_ModReqItem_1,
+       2,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_ModReqItem_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-ModReqd.c b/e2ap/lib/E-RABs-ToBeReleased-ModReqd.c
new file mode 100644 (file)
index 0000000..17676aa
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-ModReqd.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeReleased_ModReqd_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_ModReqd_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqd_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P23,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqd_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqd_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_ModReqd),
+       offsetof(struct E_RABs_ToBeReleased_ModReqd, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqd = {
+       "E-RABs-ToBeReleased-ModReqd",
+       "E-RABs-ToBeReleased-ModReqd",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeReleased_ModReqd_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqd_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqd_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_ModReqd_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqd_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqd_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeReleased_ModReqd_constr_1, &asn_PER_type_E_RABs_ToBeReleased_ModReqd_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeReleased_ModReqd_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeReleased_ModReqd_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-ModReqdItem.c b/e2ap/lib/E-RABs-ToBeReleased-ModReqdItem.c
new file mode 100644 (file)
index 0000000..712e912
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-ModReqdItem.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqdItem_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItem, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItem, cause),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cause"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_ModReqdItem, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P36,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_ModReqdItem_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqdItem_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqdItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqdItem_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_ModReqdItem),
+       offsetof(struct E_RABs_ToBeReleased_ModReqdItem, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_ModReqdItem_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_ModReqdItem_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqdItem = {
+       "E-RABs-ToBeReleased-ModReqdItem",
+       "E-RABs-ToBeReleased-ModReqdItem",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_ModReqdItem_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItem_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItem_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_ModReqdItem_tags_1, /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItem_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItem_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_ModReqdItem_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_ModReqdItem_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.c b/e2ap/lib/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.c
new file mode 100644 (file)
index 0000000..d149f0e
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer, uL_Forwarding_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-Forwarding-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer, dL_Forwarding_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-Forwarding-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P39,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_oms_1[] = { 1, 2, 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-Forwarding-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer),
+       offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_oms_1,       /* Optional members */
+       3, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer = {
+       "E-RABs-ToBeReleased-RelConfItem-SCG-Bearer",
+       "E-RABs-ToBeReleased-RelConfItem-SCG-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tags_1,      /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.c b/e2ap/lib/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.c
new file mode 100644 (file)
index 0000000..89a8a40
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer, dL_Forwarding_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-Forwarding-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P40,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer),
+       offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_oms_1,     /* Optional members */
+       2, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer = {
+       "E-RABs-ToBeReleased-RelConfItem-Split-Bearer",
+       "E-RABs-ToBeReleased-RelConfItem-Split-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-RelConfItem.c b/e2ap/lib/E-RABs-ToBeReleased-RelConfItem.c
new file mode 100644 (file)
index 0000000..c9f97e1
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-RelConfItem.h"
+
+#include "E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h"
+#include "E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeReleased_RelConfItem_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_RelConfItem_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_1[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem, choice.sCG_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sCG-Bearer"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem, choice.split_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "split-Bearer"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelConfItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_RelConfItem),
+       offsetof(struct E_RABs_ToBeReleased_RelConfItem, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_RelConfItem, present),
+       sizeof(((struct E_RABs_ToBeReleased_RelConfItem *)0)->present),
+       asn_MAP_E_RABs_ToBeReleased_RelConfItem_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem = {
+       "E-RABs-ToBeReleased-RelConfItem",
+       "E-RABs-ToBeReleased-RelConfItem",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_E_RABs_ToBeReleased_RelConfItem_constr_1, &asn_PER_type_E_RABs_ToBeReleased_RelConfItem_constr_1, CHOICE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_RelConfItem_1,
+       2,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_RelConfItem_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.c b/e2ap/lib/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.c
new file mode 100644 (file)
index 0000000..9d97b95
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer, uL_Forwarding_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-Forwarding-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer, dL_Forwarding_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-Forwarding-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P37,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_oms_1[] = { 1, 2, 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-Forwarding-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer),
+       offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_oms_1,        /* Optional members */
+       3, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer = {
+       "E-RABs-ToBeReleased-RelReqItem-SCG-Bearer",
+       "E-RABs-ToBeReleased-RelReqItem-SCG-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tags_1,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.c b/e2ap/lib/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.c
new file mode 100644 (file)
index 0000000..c9b4726
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer, dL_Forwarding_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-Forwarding-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P38,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer),
+       offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_oms_1,      /* Optional members */
+       2, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer = {
+       "E-RABs-ToBeReleased-RelReqItem-Split-Bearer",
+       "E-RABs-ToBeReleased-RelReqItem-Split-Bearer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-RelReqItem.c b/e2ap/lib/E-RABs-ToBeReleased-RelReqItem.c
new file mode 100644 (file)
index 0000000..b1e01ae
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-RelReqItem.h"
+
+#include "E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h"
+#include "E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeReleased_RelReqItem_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_RelReqItem_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_1[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem, choice.sCG_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sCG-Bearer"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem, choice.split_Bearer),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "split-Bearer"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelReqItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_RelReqItem),
+       offsetof(struct E_RABs_ToBeReleased_RelReqItem, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_RelReqItem, present),
+       sizeof(((struct E_RABs_ToBeReleased_RelReqItem *)0)->present),
+       asn_MAP_E_RABs_ToBeReleased_RelReqItem_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem = {
+       "E-RABs-ToBeReleased-RelReqItem",
+       "E-RABs-ToBeReleased-RelReqItem",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_E_RABs_ToBeReleased_RelReqItem_constr_1, &asn_PER_type_E_RABs_ToBeReleased_RelReqItem_constr_1, CHOICE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_RelReqItem_1,
+       2,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_RelReqItem_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.c
new file mode 100644 (file)
index 0000000..c6c4fd8
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_1[] = {
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P89,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_oms_1[] = { 0 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tag2el_1,
+       1,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent = {
+       "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent",
+       "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_1,
+       1,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.c
new file mode 100644 (file)
index 0000000..0b628f2
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_1[] = {
+       { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent, uL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent, dL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P88,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_oms_1[] = { 0, 1, 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_oms_1,     /* Optional members */
+       3, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent = {
+       "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent",
+       "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBChaConf-Item.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBChaConf-Item.c
new file mode 100644 (file)
index 0000000..d60d7e5
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBChaConf-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+#include "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h"
+#include "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h"
+static asn_oer_constraints_t asn_OER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration, choice.sgNBPDCPpresent),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPpresent"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration, choice.sgNBPDCPnotpresent),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPnotpresent"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */
+};
+static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration *)0)->present),
+       asn_MAP_resource_configuration_tag2el_4,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = {
+       "resource-configuration",
+       "resource-configuration",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_resource_configuration_constr_4, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint },
+       asn_MBR_resource_configuration_4,
+       2,      /* Elements count */
+       &asn_SPC_resource_configuration_specs_4 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item, en_DC_ResourceConfiguration),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EN_DC_ResourceConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "en-DC-ResourceConfiguration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item, resource_configuration),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_resource_configuration_4,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "resource-configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P87,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_Item),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item = {
+       "E-RABs-ToBeReleased-SgNBChaConf-Item",
+       "E-RABs-ToBeReleased-SgNBChaConf-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBChaConfList.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBChaConfList.c
new file mode 100644 (file)
index 0000000..0bf043e
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBChaConfList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeReleased_SgNBChaConfList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_SgNBChaConfList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConfList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P44,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConfList_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBChaConfList),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConfList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList = {
+       "E-RABs-ToBeReleased-SgNBChaConfList",
+       "E-RABs-ToBeReleased-SgNBChaConfList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeReleased_SgNBChaConfList_constr_1, &asn_PER_type_E_RABs_ToBeReleased_SgNBChaConfList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBChaConfList_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBChaConfList_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.c
new file mode 100644 (file)
index 0000000..9ee7595
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_1[] = {
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P61,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_oms_1[] = { 0 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tag2el_1,
+       1,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_oms_1,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent = {
+       "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent",
+       "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1,  /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_1,
+       1,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.c
new file mode 100644 (file)
index 0000000..89c13d3
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_1[] = {
+       { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent, dL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent, uL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P60,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_oms_1[] = { 0, 1, 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_oms_1,      /* Optional members */
+       3, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent = {
+       "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent",
+       "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBModReq-Item.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBModReq-Item.c
new file mode 100644 (file)
index 0000000..1a8d3ae
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBModReq-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+#include "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h"
+#include "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h"
+static asn_oer_constraints_t asn_OER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration, choice.sgNBPDCPpresent),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPpresent"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration, choice.sgNBPDCPnotpresent),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPnotpresent"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */
+};
+static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration *)0)->present),
+       asn_MAP_resource_configuration_tag2el_4,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = {
+       "resource-configuration",
+       "resource-configuration",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_resource_configuration_constr_4, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint },
+       asn_MBR_resource_configuration_4,
+       2,      /* Elements count */
+       &asn_SPC_resource_configuration_specs_4 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item, en_DC_ResourceConfiguration),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EN_DC_ResourceConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "en-DC-ResourceConfiguration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item, resource_configuration),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_resource_configuration_4,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "resource-configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P59,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReq_Item),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_oms_1,      /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item = {
+       "E-RABs-ToBeReleased-SgNBModReq-Item",
+       "E-RABs-ToBeReleased-SgNBModReq-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBModReq-List.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBModReq-List.c
new file mode 100644 (file)
index 0000000..fcf5674
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBModReq-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeReleased_SgNBModReq_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_SgNBModReq_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P32,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_List_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReq_List),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List = {
+       "E-RABs-ToBeReleased-SgNBModReq-List",
+       "E-RABs-ToBeReleased-SgNBModReq-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeReleased_SgNBModReq_List_constr_1, &asn_PER_type_E_RABs_ToBeReleased_SgNBModReq_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBModReq_List_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_List_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBModReqd-Item.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBModReqd-Item.c
new file mode 100644 (file)
index 0000000..272935b
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBModReqd-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_Item, cause),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cause"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P71,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_SgNBModReqd_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReqd_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_Item_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReqd_Item),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_Item, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBModReqd_Item_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_SgNBModReqd_Item_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item = {
+       "E-RABs-ToBeReleased-SgNBModReqd-Item",
+       "E-RABs-ToBeReleased-SgNBModReqd-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_Item_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_Item_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBModReqdList.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBModReqdList.c
new file mode 100644 (file)
index 0000000..d586e7d
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBModReqdList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeReleased_SgNBModReqdList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_SgNBModReqdList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReqdList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P36,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReqdList_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReqdList),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReqdList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList = {
+       "E-RABs-ToBeReleased-SgNBModReqdList",
+       "E-RABs-ToBeReleased-SgNBModReqdList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeReleased_SgNBModReqdList_constr_1, &asn_PER_type_E_RABs_ToBeReleased_SgNBModReqdList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBModReqdList_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBModReqdList_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.c
new file mode 100644 (file)
index 0000000..68d415a
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_1[] = {
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P85,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_oms_1[] = { 0 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tag2el_1,
+       1,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent = {
+       "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent",
+       "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_1,
+       1,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.c
new file mode 100644 (file)
index 0000000..4499ffa
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_1[] = {
+       { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent, uL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent, dL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P84,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_oms_1[] = { 0, 1, 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_oms_1,     /* Optional members */
+       3, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent = {
+       "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent",
+       "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBRelConf-Item.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBRelConf-Item.c
new file mode 100644 (file)
index 0000000..eab4724
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBRelConf-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+#include "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h"
+#include "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h"
+static asn_oer_constraints_t asn_OER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration, choice.sgNBPDCPpresent),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPpresent"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration, choice.sgNBPDCPnotpresent),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPnotpresent"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */
+};
+static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration *)0)->present),
+       asn_MAP_resource_configuration_tag2el_4,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = {
+       "resource-configuration",
+       "resource-configuration",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_resource_configuration_constr_4, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint },
+       asn_MBR_resource_configuration_4,
+       2,      /* Elements count */
+       &asn_SPC_resource_configuration_specs_4 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item, en_DC_ResourceConfiguration),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EN_DC_ResourceConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "en-DC-ResourceConfiguration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item, resource_configuration),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_resource_configuration_4,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "resource-configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P83,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_Item),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item = {
+       "E-RABs-ToBeReleased-SgNBRelConf-Item",
+       "E-RABs-ToBeReleased-SgNBRelConf-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBRelConfList.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBRelConfList.c
new file mode 100644 (file)
index 0000000..d2fae28
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBRelConfList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeReleased_SgNBRelConfList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_SgNBRelConfList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConfList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P42,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConfList_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelConfList),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConfList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList = {
+       "E-RABs-ToBeReleased-SgNBRelConfList",
+       "E-RABs-ToBeReleased-SgNBRelConfList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeReleased_SgNBRelConfList_constr_1, &asn_PER_type_E_RABs_ToBeReleased_SgNBRelConfList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelConfList_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelConfList_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.c
new file mode 100644 (file)
index 0000000..089a9ea
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_1[] = {
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P80,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_oms_1[] = { 0 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tag2el_1,
+       1,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_oms_1,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent = {
+       "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent",
+       "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tags_1,  /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_1,
+       1,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.c
new file mode 100644 (file)
index 0000000..24dce08
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h"
+
+#include "GTPtunnelEndpoint.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_1[] = {
+       { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent, uL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent, dL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P79,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_oms_1[] = { 0, 1, 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_oms_1,      /* Optional members */
+       3, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent = {
+       "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent",
+       "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBRelReq-Item.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBRelReq-Item.c
new file mode 100644 (file)
index 0000000..ae82f64
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBRelReq-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+#include "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h"
+#include "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h"
+static asn_oer_constraints_t asn_OER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = {
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration, choice.sgNBPDCPpresent),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPpresent"
+               },
+       { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration, choice.sgNBPDCPnotpresent),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBPDCPnotpresent"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */
+};
+static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration *)0)->present),
+       asn_MAP_resource_configuration_tag2el_4,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = {
+       "resource-configuration",
+       "resource-configuration",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_resource_configuration_constr_4, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint },
+       asn_MBR_resource_configuration_4,
+       2,      /* Elements count */
+       &asn_SPC_resource_configuration_specs_4 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item, en_DC_ResourceConfiguration),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EN_DC_ResourceConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "en-DC-ResourceConfiguration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item, resource_configuration),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_resource_configuration_4,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "resource-configuration"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P78,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_Item),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_oms_1,      /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item = {
+       "E-RABs-ToBeReleased-SgNBRelReq-Item",
+       "E-RABs-ToBeReleased-SgNBRelReq-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBRelReqList.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBRelReqList.c
new file mode 100644 (file)
index 0000000..96f7f04
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBRelReqList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeReleased_SgNBRelReqList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_SgNBRelReqList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReqList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P39,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReqList_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReqList),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReqList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList = {
+       "E-RABs-ToBeReleased-SgNBRelReqList",
+       "E-RABs-ToBeReleased-SgNBRelReqList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList_tags_1,      /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeReleased_SgNBRelReqList_constr_1, &asn_PER_type_E_RABs_ToBeReleased_SgNBRelReqList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelReqList_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelReqList_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBRelReqd-Item.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBRelReqd-Item.c
new file mode 100644 (file)
index 0000000..ecf67e3
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBRelReqd-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_Item, rlc_Mode_transferred),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RLCMode,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "rlc-Mode-transferred"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P82,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeReleased_SgNBRelReqd_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReqd_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rlc-Mode-transferred */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_Item_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReqd_Item),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_Item, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelReqd_Item_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelReqd_Item_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item = {
+       "E-RABs-ToBeReleased-SgNBRelReqd-Item",
+       "E-RABs-ToBeReleased-SgNBRelReqd-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_Item_1,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_Item_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeReleased-SgNBRelReqdList.c b/e2ap/lib/E-RABs-ToBeReleased-SgNBRelReqdList.c
new file mode 100644 (file)
index 0000000..9f648b5
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeReleased-SgNBRelReqdList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeReleased_SgNBRelReqdList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_SgNBRelReqdList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReqdList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P41,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReqdList_specs_1 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReqdList),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReqdList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList = {
+       "E-RABs-ToBeReleased-SgNBRelReqdList",
+       "E-RABs-ToBeReleased-SgNBRelReqdList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList_tags_1,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeReleased_SgNBRelReqdList_constr_1, &asn_PER_type_E_RABs_ToBeReleased_SgNBRelReqdList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelReqdList_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelReqdList_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeSetup-Item.c b/e2ap/lib/E-RABs-ToBeSetup-Item.c
new file mode 100644 (file)
index 0000000..616e49e
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeSetup-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_Item, e_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-Level-QoS-Parameters"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeSetup_Item, dL_Forwarding),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_DL_Forwarding,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-Forwarding"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_Item, uL_GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-GTPtunnelEndpoint"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeSetup_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P1,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeSetup_Item_oms_1[] = { 2, 4 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeSetup_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeSetup_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* uL-GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetup_Item_specs_1 = {
+       sizeof(struct E_RABs_ToBeSetup_Item),
+       offsetof(struct E_RABs_ToBeSetup_Item, _asn_ctx),
+       asn_MAP_E_RABs_ToBeSetup_Item_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeSetup_Item_oms_1,    /* Optional members */
+       2, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_Item = {
+       "E-RABs-ToBeSetup-Item",
+       "E-RABs-ToBeSetup-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeSetup_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeSetup_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeSetup_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeSetup_Item_tags_1,   /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeSetup_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeSetup_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeSetup_Item_1,
+       5,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeSetup_Item_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeSetup-List.c b/e2ap/lib/E-RABs-ToBeSetup-List.c
new file mode 100644 (file)
index 0000000..923e1af
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeSetup-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeSetup_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+asn_per_constraints_t asn_PER_type_E_RABs_ToBeSetup_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P6,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeSetup_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeSetup_List_specs_1 = {
+       sizeof(struct E_RABs_ToBeSetup_List),
+       offsetof(struct E_RABs_ToBeSetup_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_List = {
+       "E-RABs-ToBeSetup-List",
+       "E-RABs-ToBeSetup-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeSetup_List_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeSetup_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeSetup_List_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeSetup_List_tags_1,   /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeSetup_List_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeSetup_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeSetup_List_constr_1, &asn_PER_type_E_RABs_ToBeSetup_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeSetup_List_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeSetup_List_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeSetup-ListRetrieve.c b/e2ap/lib/E-RABs-ToBeSetup-ListRetrieve.c
new file mode 100644 (file)
index 0000000..198985d
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeSetup-ListRetrieve.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_E_RABs_ToBeSetup_ListRetrieve_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+asn_per_constraints_t asn_PER_type_E_RABs_ToBeSetup_ListRetrieve_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_ListRetrieve_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P27,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeSetup_ListRetrieve_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeSetup_ListRetrieve_specs_1 = {
+       sizeof(struct E_RABs_ToBeSetup_ListRetrieve),
+       offsetof(struct E_RABs_ToBeSetup_ListRetrieve, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_ListRetrieve = {
+       "E-RABs-ToBeSetup-ListRetrieve",
+       "E-RABs-ToBeSetup-ListRetrieve",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_E_RABs_ToBeSetup_ListRetrieve_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeSetup_ListRetrieve_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeSetup_ListRetrieve_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeSetup_ListRetrieve_tags_1,   /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeSetup_ListRetrieve_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeSetup_ListRetrieve_tags_1[0]), /* 1 */
+       { &asn_OER_type_E_RABs_ToBeSetup_ListRetrieve_constr_1, &asn_PER_type_E_RABs_ToBeSetup_ListRetrieve_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_E_RABs_ToBeSetup_ListRetrieve_1,
+       1,      /* Single element */
+       &asn_SPC_E_RABs_ToBeSetup_ListRetrieve_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/E-RABs-ToBeSetupRetrieve-Item.c b/e2ap/lib/E-RABs-ToBeSetupRetrieve-Item.c
new file mode 100644 (file)
index 0000000..c349d19
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E-RABs-ToBeSetupRetrieve-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetupRetrieve_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_Item, e_RAB_Level_QoS_Parameters),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_Level_QoS_Parameters,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-Level-QoS-Parameters"
+               },
+       { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeSetupRetrieve_Item, bearerType),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BearerType,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "bearerType"
+               },
+       { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeSetupRetrieve_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P43,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_E_RABs_ToBeSetupRetrieve_Item_oms_1[] = { 2, 3 };
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeSetupRetrieve_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeSetupRetrieve_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-Level-QoS-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bearerType */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetupRetrieve_Item_specs_1 = {
+       sizeof(struct E_RABs_ToBeSetupRetrieve_Item),
+       offsetof(struct E_RABs_ToBeSetupRetrieve_Item, _asn_ctx),
+       asn_MAP_E_RABs_ToBeSetupRetrieve_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E_RABs_ToBeSetupRetrieve_Item_oms_1,    /* Optional members */
+       2, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetupRetrieve_Item = {
+       "E-RABs-ToBeSetupRetrieve-Item",
+       "E-RABs-ToBeSetupRetrieve-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeSetupRetrieve_Item_tags_1,
+       sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_Item_tags_1[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeSetupRetrieve_Item_tags_1,   /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_Item_tags_1)
+               /sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeSetupRetrieve_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeSetupRetrieve_Item_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/E2AP-PDU.c b/e2ap/lib/E2AP-PDU.c
new file mode 100644 (file)
index 0000000..d321093
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Descriptions"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E2AP-PDU.h"
+
+#include "InitiatingMessageE2.h"
+#include "SuccessfulOutcomeE2.h"
+#include "UnsuccessfulOutcomeE2.h"
+static asn_oer_constraints_t asn_OER_type_E2AP_PDU_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_E2AP_PDU_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_E2AP_PDU_1[] = {
+       { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.initiatingMessage),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_InitiatingMessageE2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "initiatingMessage"
+               },
+       { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.successfulOutcome),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SuccessfulOutcomeE2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "successfulOutcome"
+               },
+       { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.unsuccessfulOutcome),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UnsuccessfulOutcomeE2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "unsuccessfulOutcome"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2AP_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 */
+};
+static asn_CHOICE_specifics_t asn_SPC_E2AP_PDU_specs_1 = {
+       sizeof(struct E2AP_PDU),
+       offsetof(struct E2AP_PDU, _asn_ctx),
+       offsetof(struct E2AP_PDU, present),
+       sizeof(((struct E2AP_PDU *)0)->present),
+       asn_MAP_E2AP_PDU_tag2el_1,
+       3,      /* Count of tags in the map */
+       0, 0,
+       3       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_E2AP_PDU = {
+       "E2AP-PDU",
+       "E2AP-PDU",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_E2AP_PDU_constr_1, &asn_PER_type_E2AP_PDU_constr_1, CHOICE_constraint },
+       asn_MBR_E2AP_PDU_1,
+       3,      /* Elements count */
+       &asn_SPC_E2AP_PDU_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/E2SM-gNB-X2-actionDefinition.c b/e2ap/lib/E2SM-gNB-X2-actionDefinition.c
new file mode 100644 (file)
index 0000000..92d16b7
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E2SM-gNB-X2-actionDefinition.h"
+
+#include "ActionParameter-Item.h"
+static int
+memb_actionParameter_List_constraint_1(const 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 >= 1 && size <= 255)) {
+               /* Perform validation of the inner elements */
+               return td->encoding_constraints.general_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_oer_constraints_t asn_OER_type_actionParameter_List_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..255)) */};
+static asn_per_constraints_t asn_PER_type_actionParameter_List_constr_3 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  255 }      /* (SIZE(1..255)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_actionParameter_List_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..255)) */};
+static asn_per_constraints_t asn_PER_memb_actionParameter_List_constr_3 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  255 }      /* (SIZE(1..255)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_actionParameter_List_3[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ActionParameter_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_actionParameter_List_tags_3[] = {
+       (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_actionParameter_List_specs_3 = {
+       sizeof(struct E2SM_gNB_X2_actionDefinition__actionParameter_List),
+       offsetof(struct E2SM_gNB_X2_actionDefinition__actionParameter_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_actionParameter_List_3 = {
+       "actionParameter-List",
+       "actionParameter-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_actionParameter_List_tags_3,
+       sizeof(asn_DEF_actionParameter_List_tags_3)
+               /sizeof(asn_DEF_actionParameter_List_tags_3[0]) - 1, /* 1 */
+       asn_DEF_actionParameter_List_tags_3,    /* Same as above */
+       sizeof(asn_DEF_actionParameter_List_tags_3)
+               /sizeof(asn_DEF_actionParameter_List_tags_3[0]), /* 2 */
+       { &asn_OER_type_actionParameter_List_constr_3, &asn_PER_type_actionParameter_List_constr_3, SEQUENCE_OF_constraint },
+       asn_MBR_actionParameter_List_3,
+       1,      /* Single element */
+       &asn_SPC_actionParameter_List_specs_3   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E2SM_gNB_X2_actionDefinition_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_actionDefinition, style_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Style_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "style-ID"
+               },
+       { ATF_POINTER, 1, offsetof(struct E2SM_gNB_X2_actionDefinition, actionParameter_List),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               0,
+               &asn_DEF_actionParameter_List_3,
+               0,
+               { &asn_OER_memb_actionParameter_List_constr_3, &asn_PER_memb_actionParameter_List_constr_3,  memb_actionParameter_List_constraint_1 },
+               0, 0, /* No default value */
+               "actionParameter-List"
+               },
+};
+static const int asn_MAP_E2SM_gNB_X2_actionDefinition_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_E2SM_gNB_X2_actionDefinition_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_gNB_X2_actionDefinition_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* style-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* actionParameter-List */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2SM_gNB_X2_actionDefinition_specs_1 = {
+       sizeof(struct E2SM_gNB_X2_actionDefinition),
+       offsetof(struct E2SM_gNB_X2_actionDefinition, _asn_ctx),
+       asn_MAP_E2SM_gNB_X2_actionDefinition_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_E2SM_gNB_X2_actionDefinition_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_actionDefinition = {
+       "E2SM-gNB-X2-actionDefinition",
+       "E2SM-gNB-X2-actionDefinition",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E2SM_gNB_X2_actionDefinition_tags_1,
+       sizeof(asn_DEF_E2SM_gNB_X2_actionDefinition_tags_1)
+               /sizeof(asn_DEF_E2SM_gNB_X2_actionDefinition_tags_1[0]), /* 1 */
+       asn_DEF_E2SM_gNB_X2_actionDefinition_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E2SM_gNB_X2_actionDefinition_tags_1)
+               /sizeof(asn_DEF_E2SM_gNB_X2_actionDefinition_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E2SM_gNB_X2_actionDefinition_1,
+       2,      /* Elements count */
+       &asn_SPC_E2SM_gNB_X2_actionDefinition_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E2SM-gNB-X2-callProcessID.c b/e2ap/lib/E2SM-gNB-X2-callProcessID.c
new file mode 100644 (file)
index 0000000..2b94da6
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E2SM-gNB-X2-callProcessID.h"
+
+static asn_TYPE_member_t asn_MBR_E2SM_gNB_X2_callProcessID_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_callProcessID, callProcess_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CallProcess_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "callProcess-ID"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_gNB_X2_callProcessID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_gNB_X2_callProcessID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* callProcess-ID */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2SM_gNB_X2_callProcessID_specs_1 = {
+       sizeof(struct E2SM_gNB_X2_callProcessID),
+       offsetof(struct E2SM_gNB_X2_callProcessID, _asn_ctx),
+       asn_MAP_E2SM_gNB_X2_callProcessID_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_callProcessID = {
+       "E2SM-gNB-X2-callProcessID",
+       "E2SM-gNB-X2-callProcessID",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E2SM_gNB_X2_callProcessID_tags_1,
+       sizeof(asn_DEF_E2SM_gNB_X2_callProcessID_tags_1)
+               /sizeof(asn_DEF_E2SM_gNB_X2_callProcessID_tags_1[0]), /* 1 */
+       asn_DEF_E2SM_gNB_X2_callProcessID_tags_1,       /* Same as above */
+       sizeof(asn_DEF_E2SM_gNB_X2_callProcessID_tags_1)
+               /sizeof(asn_DEF_E2SM_gNB_X2_callProcessID_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E2SM_gNB_X2_callProcessID_1,
+       1,      /* Elements count */
+       &asn_SPC_E2SM_gNB_X2_callProcessID_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/E2SM-gNB-X2-controlHeader.c b/e2ap/lib/E2SM-gNB-X2-controlHeader.c
new file mode 100644 (file)
index 0000000..27320ba
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E2SM-gNB-X2-controlHeader.h"
+
+static asn_TYPE_member_t asn_MBR_E2SM_gNB_X2_controlHeader_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_controlHeader, interface_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_Interface_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "interface-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_controlHeader, interfaceDirection),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_InterfaceDirection,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "interfaceDirection"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_gNB_X2_controlHeader_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_gNB_X2_controlHeader_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interface-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* interfaceDirection */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2SM_gNB_X2_controlHeader_specs_1 = {
+       sizeof(struct E2SM_gNB_X2_controlHeader),
+       offsetof(struct E2SM_gNB_X2_controlHeader, _asn_ctx),
+       asn_MAP_E2SM_gNB_X2_controlHeader_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_controlHeader = {
+       "E2SM-gNB-X2-controlHeader",
+       "E2SM-gNB-X2-controlHeader",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E2SM_gNB_X2_controlHeader_tags_1,
+       sizeof(asn_DEF_E2SM_gNB_X2_controlHeader_tags_1)
+               /sizeof(asn_DEF_E2SM_gNB_X2_controlHeader_tags_1[0]), /* 1 */
+       asn_DEF_E2SM_gNB_X2_controlHeader_tags_1,       /* Same as above */
+       sizeof(asn_DEF_E2SM_gNB_X2_controlHeader_tags_1)
+               /sizeof(asn_DEF_E2SM_gNB_X2_controlHeader_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E2SM_gNB_X2_controlHeader_1,
+       2,      /* Elements count */
+       &asn_SPC_E2SM_gNB_X2_controlHeader_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/E2SM-gNB-X2-controlMessage.c b/e2ap/lib/E2SM-gNB-X2-controlMessage.c
new file mode 100644 (file)
index 0000000..c647131
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E2SM-gNB-X2-controlMessage.h"
+
+static asn_TYPE_member_t asn_MBR_E2SM_gNB_X2_controlMessage_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_controlMessage, interfaceMessage),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_InterfaceMessage,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "interfaceMessage"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_gNB_X2_controlMessage_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_gNB_X2_controlMessage_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* interfaceMessage */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2SM_gNB_X2_controlMessage_specs_1 = {
+       sizeof(struct E2SM_gNB_X2_controlMessage),
+       offsetof(struct E2SM_gNB_X2_controlMessage, _asn_ctx),
+       asn_MAP_E2SM_gNB_X2_controlMessage_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_controlMessage = {
+       "E2SM-gNB-X2-controlMessage",
+       "E2SM-gNB-X2-controlMessage",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E2SM_gNB_X2_controlMessage_tags_1,
+       sizeof(asn_DEF_E2SM_gNB_X2_controlMessage_tags_1)
+               /sizeof(asn_DEF_E2SM_gNB_X2_controlMessage_tags_1[0]), /* 1 */
+       asn_DEF_E2SM_gNB_X2_controlMessage_tags_1,      /* Same as above */
+       sizeof(asn_DEF_E2SM_gNB_X2_controlMessage_tags_1)
+               /sizeof(asn_DEF_E2SM_gNB_X2_controlMessage_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E2SM_gNB_X2_controlMessage_1,
+       1,      /* Elements count */
+       &asn_SPC_E2SM_gNB_X2_controlMessage_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/E2SM-gNB-X2-eventTriggerDefinition.c b/e2ap/lib/E2SM-gNB-X2-eventTriggerDefinition.c
new file mode 100644 (file)
index 0000000..632d716
--- /dev/null
@@ -0,0 +1,162 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E2SM-gNB-X2-eventTriggerDefinition.h"
+
+#include "InterfaceProtocolIE-Item.h"
+static int
+memb_interfaceProtocolIE_List_constraint_1(const 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 >= 1 && size <= 15)) {
+               /* Perform validation of the inner elements */
+               return td->encoding_constraints.general_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_oer_constraints_t asn_OER_type_interfaceProtocolIE_List_constr_5 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..15)) */};
+static asn_per_constraints_t asn_PER_type_interfaceProtocolIE_List_constr_5 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       4,  4,  1,  15 }       /* (SIZE(1..15)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_interfaceProtocolIE_List_constr_5 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..15)) */};
+static asn_per_constraints_t asn_PER_memb_interfaceProtocolIE_List_constr_5 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       4,  4,  1,  15 }       /* (SIZE(1..15)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_interfaceProtocolIE_List_5[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_InterfaceProtocolIE_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_interfaceProtocolIE_List_tags_5[] = {
+       (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_interfaceProtocolIE_List_specs_5 = {
+       sizeof(struct E2SM_gNB_X2_eventTriggerDefinition__interfaceProtocolIE_List),
+       offsetof(struct E2SM_gNB_X2_eventTriggerDefinition__interfaceProtocolIE_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_interfaceProtocolIE_List_5 = {
+       "interfaceProtocolIE-List",
+       "interfaceProtocolIE-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_interfaceProtocolIE_List_tags_5,
+       sizeof(asn_DEF_interfaceProtocolIE_List_tags_5)
+               /sizeof(asn_DEF_interfaceProtocolIE_List_tags_5[0]) - 1, /* 1 */
+       asn_DEF_interfaceProtocolIE_List_tags_5,        /* Same as above */
+       sizeof(asn_DEF_interfaceProtocolIE_List_tags_5)
+               /sizeof(asn_DEF_interfaceProtocolIE_List_tags_5[0]), /* 2 */
+       { &asn_OER_type_interfaceProtocolIE_List_constr_5, &asn_PER_type_interfaceProtocolIE_List_constr_5, SEQUENCE_OF_constraint },
+       asn_MBR_interfaceProtocolIE_List_5,
+       1,      /* Single element */
+       &asn_SPC_interfaceProtocolIE_List_specs_5       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E2SM_gNB_X2_eventTriggerDefinition_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_eventTriggerDefinition, interface_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_Interface_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "interface-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_eventTriggerDefinition, interfaceDirection),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_InterfaceDirection,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "interfaceDirection"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_eventTriggerDefinition, interfaceMessageType),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_InterfaceMessageType,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "interfaceMessageType"
+               },
+       { ATF_POINTER, 1, offsetof(struct E2SM_gNB_X2_eventTriggerDefinition, interfaceProtocolIE_List),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               0,
+               &asn_DEF_interfaceProtocolIE_List_5,
+               0,
+               { &asn_OER_memb_interfaceProtocolIE_List_constr_5, &asn_PER_memb_interfaceProtocolIE_List_constr_5,  memb_interfaceProtocolIE_List_constraint_1 },
+               0, 0, /* No default value */
+               "interfaceProtocolIE-List"
+               },
+};
+static const int asn_MAP_E2SM_gNB_X2_eventTriggerDefinition_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_E2SM_gNB_X2_eventTriggerDefinition_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_gNB_X2_eventTriggerDefinition_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interface-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* interfaceDirection */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* interfaceMessageType */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* interfaceProtocolIE-List */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2SM_gNB_X2_eventTriggerDefinition_specs_1 = {
+       sizeof(struct E2SM_gNB_X2_eventTriggerDefinition),
+       offsetof(struct E2SM_gNB_X2_eventTriggerDefinition, _asn_ctx),
+       asn_MAP_E2SM_gNB_X2_eventTriggerDefinition_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_E2SM_gNB_X2_eventTriggerDefinition_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_eventTriggerDefinition = {
+       "E2SM-gNB-X2-eventTriggerDefinition",
+       "E2SM-gNB-X2-eventTriggerDefinition",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E2SM_gNB_X2_eventTriggerDefinition_tags_1,
+       sizeof(asn_DEF_E2SM_gNB_X2_eventTriggerDefinition_tags_1)
+               /sizeof(asn_DEF_E2SM_gNB_X2_eventTriggerDefinition_tags_1[0]), /* 1 */
+       asn_DEF_E2SM_gNB_X2_eventTriggerDefinition_tags_1,      /* Same as above */
+       sizeof(asn_DEF_E2SM_gNB_X2_eventTriggerDefinition_tags_1)
+               /sizeof(asn_DEF_E2SM_gNB_X2_eventTriggerDefinition_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E2SM_gNB_X2_eventTriggerDefinition_1,
+       4,      /* Elements count */
+       &asn_SPC_E2SM_gNB_X2_eventTriggerDefinition_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/E2SM-gNB-X2-indicationHeader.c b/e2ap/lib/E2SM-gNB-X2-indicationHeader.c
new file mode 100644 (file)
index 0000000..52b1e4a
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E2SM-gNB-X2-indicationHeader.h"
+
+static asn_TYPE_member_t asn_MBR_E2SM_gNB_X2_indicationHeader_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_indicationHeader, interface_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_Interface_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "interface-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_indicationHeader, interfaceDirection),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_InterfaceDirection,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "interfaceDirection"
+               },
+       { ATF_POINTER, 1, offsetof(struct E2SM_gNB_X2_indicationHeader, timestamp),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TimeStamp,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "timestamp"
+               },
+};
+static const int asn_MAP_E2SM_gNB_X2_indicationHeader_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_E2SM_gNB_X2_indicationHeader_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_gNB_X2_indicationHeader_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interface-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* interfaceDirection */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* timestamp */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2SM_gNB_X2_indicationHeader_specs_1 = {
+       sizeof(struct E2SM_gNB_X2_indicationHeader),
+       offsetof(struct E2SM_gNB_X2_indicationHeader, _asn_ctx),
+       asn_MAP_E2SM_gNB_X2_indicationHeader_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_E2SM_gNB_X2_indicationHeader_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_indicationHeader = {
+       "E2SM-gNB-X2-indicationHeader",
+       "E2SM-gNB-X2-indicationHeader",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E2SM_gNB_X2_indicationHeader_tags_1,
+       sizeof(asn_DEF_E2SM_gNB_X2_indicationHeader_tags_1)
+               /sizeof(asn_DEF_E2SM_gNB_X2_indicationHeader_tags_1[0]), /* 1 */
+       asn_DEF_E2SM_gNB_X2_indicationHeader_tags_1,    /* Same as above */
+       sizeof(asn_DEF_E2SM_gNB_X2_indicationHeader_tags_1)
+               /sizeof(asn_DEF_E2SM_gNB_X2_indicationHeader_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E2SM_gNB_X2_indicationHeader_1,
+       3,      /* Elements count */
+       &asn_SPC_E2SM_gNB_X2_indicationHeader_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/E2SM-gNB-X2-indicationMessage.c b/e2ap/lib/E2SM-gNB-X2-indicationMessage.c
new file mode 100644 (file)
index 0000000..e8b648a
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "E2SM-gNB-X2-indicationMessage.h"
+
+static asn_TYPE_member_t asn_MBR_E2SM_gNB_X2_indicationMessage_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_indicationMessage, interfaceMessage),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_InterfaceMessage,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "interfaceMessage"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_gNB_X2_indicationMessage_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_gNB_X2_indicationMessage_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* interfaceMessage */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2SM_gNB_X2_indicationMessage_specs_1 = {
+       sizeof(struct E2SM_gNB_X2_indicationMessage),
+       offsetof(struct E2SM_gNB_X2_indicationMessage, _asn_ctx),
+       asn_MAP_E2SM_gNB_X2_indicationMessage_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_indicationMessage = {
+       "E2SM-gNB-X2-indicationMessage",
+       "E2SM-gNB-X2-indicationMessage",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E2SM_gNB_X2_indicationMessage_tags_1,
+       sizeof(asn_DEF_E2SM_gNB_X2_indicationMessage_tags_1)
+               /sizeof(asn_DEF_E2SM_gNB_X2_indicationMessage_tags_1[0]), /* 1 */
+       asn_DEF_E2SM_gNB_X2_indicationMessage_tags_1,   /* Same as above */
+       sizeof(asn_DEF_E2SM_gNB_X2_indicationMessage_tags_1)
+               /sizeof(asn_DEF_E2SM_gNB_X2_indicationMessage_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E2SM_gNB_X2_indicationMessage_1,
+       1,      /* Elements count */
+       &asn_SPC_E2SM_gNB_X2_indicationMessage_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/EARFCN.c b/e2ap/lib/EARFCN.c
new file mode 100644 (file)
index 0000000..3f54c57
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "EARFCN.h"
+
+int
+EARFCN_constraint(const 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 >= 0 && value <= 65535)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_EARFCN_constr_1 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+asn_per_constraints_t asn_PER_type_EARFCN_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_EARFCN_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_EARFCN = {
+       "EARFCN",
+       "EARFCN",
+       &asn_OP_NativeInteger,
+       asn_DEF_EARFCN_tags_1,
+       sizeof(asn_DEF_EARFCN_tags_1)
+               /sizeof(asn_DEF_EARFCN_tags_1[0]), /* 1 */
+       asn_DEF_EARFCN_tags_1,  /* Same as above */
+       sizeof(asn_DEF_EARFCN_tags_1)
+               /sizeof(asn_DEF_EARFCN_tags_1[0]), /* 1 */
+       { &asn_OER_type_EARFCN_constr_1, &asn_PER_type_EARFCN_constr_1, EARFCN_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/EARFCNExtension.c b/e2ap/lib/EARFCNExtension.c
new file mode 100644 (file)
index 0000000..bcf015a
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "EARFCNExtension.h"
+
+int
+EARFCNExtension_constraint(const 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 >= 65536 && value <= 262143)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_EARFCNExtension_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_EARFCNExtension_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  18, -1,  65536,  262143 }  /* (65536..262143,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_EARFCNExtension_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_EARFCNExtension = {
+       "EARFCNExtension",
+       "EARFCNExtension",
+       &asn_OP_NativeInteger,
+       asn_DEF_EARFCNExtension_tags_1,
+       sizeof(asn_DEF_EARFCNExtension_tags_1)
+               /sizeof(asn_DEF_EARFCNExtension_tags_1[0]), /* 1 */
+       asn_DEF_EARFCNExtension_tags_1, /* Same as above */
+       sizeof(asn_DEF_EARFCNExtension_tags_1)
+               /sizeof(asn_DEF_EARFCNExtension_tags_1[0]), /* 1 */
+       { &asn_OER_type_EARFCNExtension_constr_1, &asn_PER_type_EARFCNExtension_constr_1, EARFCNExtension_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/ECGI.c b/e2ap/lib/ECGI.c
new file mode 100644 (file)
index 0000000..d7bbca7
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ECGI.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ECGI_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ECGI, pLMN_Identity),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pLMN-Identity"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ECGI, eUTRANcellIdentifier),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EUTRANCellIdentifier,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "eUTRANcellIdentifier"
+               },
+       { ATF_POINTER, 1, offsetof(struct ECGI, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P134,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ECGI_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_ECGI_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ECGI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eUTRANcellIdentifier */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ECGI_specs_1 = {
+       sizeof(struct ECGI),
+       offsetof(struct ECGI, _asn_ctx),
+       asn_MAP_ECGI_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_ECGI_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ECGI = {
+       "ECGI",
+       "ECGI",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ECGI_tags_1,
+       sizeof(asn_DEF_ECGI_tags_1)
+               /sizeof(asn_DEF_ECGI_tags_1[0]), /* 1 */
+       asn_DEF_ECGI_tags_1,    /* Same as above */
+       sizeof(asn_DEF_ECGI_tags_1)
+               /sizeof(asn_DEF_ECGI_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ECGI_1,
+       3,      /* Elements count */
+       &asn_SPC_ECGI_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/EN-DC-ResourceConfiguration.c b/e2ap/lib/EN-DC-ResourceConfiguration.c
new file mode 100644 (file)
index 0000000..2e5d8cb
--- /dev/null
@@ -0,0 +1,236 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "EN-DC-ResourceConfiguration.h"
+
+#include "ProtocolExtensionContainer.h"
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_pDCPatSgNB_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_pDCPatSgNB_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_mCGresources_constr_6 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_mCGresources_constr_6 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_sCGresources_constr_10 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_sCGresources_constr_10 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_pDCPatSgNB_value2enum_2[] = {
+       { 0,    7,      "present" },
+       { 1,    11,     "not-present" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_pDCPatSgNB_enum2value_2[] = {
+       1,      /* not-present(1) */
+       0       /* present(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_pDCPatSgNB_specs_2 = {
+       asn_MAP_pDCPatSgNB_value2enum_2,        /* "tag" => N; sorted by tag */
+       asn_MAP_pDCPatSgNB_enum2value_2,        /* 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_pDCPatSgNB_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_pDCPatSgNB_2 = {
+       "pDCPatSgNB",
+       "pDCPatSgNB",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_pDCPatSgNB_tags_2,
+       sizeof(asn_DEF_pDCPatSgNB_tags_2)
+               /sizeof(asn_DEF_pDCPatSgNB_tags_2[0]) - 1, /* 1 */
+       asn_DEF_pDCPatSgNB_tags_2,      /* Same as above */
+       sizeof(asn_DEF_pDCPatSgNB_tags_2)
+               /sizeof(asn_DEF_pDCPatSgNB_tags_2[0]), /* 2 */
+       { &asn_OER_type_pDCPatSgNB_constr_2, &asn_PER_type_pDCPatSgNB_constr_2, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_pDCPatSgNB_specs_2     /* Additional specs */
+};
+
+static const asn_INTEGER_enum_map_t asn_MAP_mCGresources_value2enum_6[] = {
+       { 0,    7,      "present" },
+       { 1,    11,     "not-present" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_mCGresources_enum2value_6[] = {
+       1,      /* not-present(1) */
+       0       /* present(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_mCGresources_specs_6 = {
+       asn_MAP_mCGresources_value2enum_6,      /* "tag" => N; sorted by tag */
+       asn_MAP_mCGresources_enum2value_6,      /* 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_mCGresources_tags_6[] = {
+       (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_mCGresources_6 = {
+       "mCGresources",
+       "mCGresources",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_mCGresources_tags_6,
+       sizeof(asn_DEF_mCGresources_tags_6)
+               /sizeof(asn_DEF_mCGresources_tags_6[0]) - 1, /* 1 */
+       asn_DEF_mCGresources_tags_6,    /* Same as above */
+       sizeof(asn_DEF_mCGresources_tags_6)
+               /sizeof(asn_DEF_mCGresources_tags_6[0]), /* 2 */
+       { &asn_OER_type_mCGresources_constr_6, &asn_PER_type_mCGresources_constr_6, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_mCGresources_specs_6   /* Additional specs */
+};
+
+static const asn_INTEGER_enum_map_t asn_MAP_sCGresources_value2enum_10[] = {
+       { 0,    7,      "present" },
+       { 1,    11,     "not-present" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_sCGresources_enum2value_10[] = {
+       1,      /* not-present(1) */
+       0       /* present(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_sCGresources_specs_10 = {
+       asn_MAP_sCGresources_value2enum_10,     /* "tag" => N; sorted by tag */
+       asn_MAP_sCGresources_enum2value_10,     /* 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_sCGresources_tags_10[] = {
+       (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_sCGresources_10 = {
+       "sCGresources",
+       "sCGresources",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_sCGresources_tags_10,
+       sizeof(asn_DEF_sCGresources_tags_10)
+               /sizeof(asn_DEF_sCGresources_tags_10[0]) - 1, /* 1 */
+       asn_DEF_sCGresources_tags_10,   /* Same as above */
+       sizeof(asn_DEF_sCGresources_tags_10)
+               /sizeof(asn_DEF_sCGresources_tags_10[0]), /* 2 */
+       { &asn_OER_type_sCGresources_constr_10, &asn_PER_type_sCGresources_constr_10, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_sCGresources_specs_10  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_EN_DC_ResourceConfiguration_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct EN_DC_ResourceConfiguration, pDCPatSgNB),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_pDCPatSgNB_2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pDCPatSgNB"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct EN_DC_ResourceConfiguration, mCGresources),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_mCGresources_6,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "mCGresources"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct EN_DC_ResourceConfiguration, sCGresources),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_sCGresources_10,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sCGresources"
+               },
+       { ATF_POINTER, 1, offsetof(struct EN_DC_ResourceConfiguration, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P137,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_EN_DC_ResourceConfiguration_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_EN_DC_ResourceConfiguration_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EN_DC_ResourceConfiguration_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDCPatSgNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mCGresources */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sCGresources */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EN_DC_ResourceConfiguration_specs_1 = {
+       sizeof(struct EN_DC_ResourceConfiguration),
+       offsetof(struct EN_DC_ResourceConfiguration, _asn_ctx),
+       asn_MAP_EN_DC_ResourceConfiguration_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_EN_DC_ResourceConfiguration_oms_1,      /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_EN_DC_ResourceConfiguration = {
+       "EN-DC-ResourceConfiguration",
+       "EN-DC-ResourceConfiguration",
+       &asn_OP_SEQUENCE,
+       asn_DEF_EN_DC_ResourceConfiguration_tags_1,
+       sizeof(asn_DEF_EN_DC_ResourceConfiguration_tags_1)
+               /sizeof(asn_DEF_EN_DC_ResourceConfiguration_tags_1[0]), /* 1 */
+       asn_DEF_EN_DC_ResourceConfiguration_tags_1,     /* Same as above */
+       sizeof(asn_DEF_EN_DC_ResourceConfiguration_tags_1)
+               /sizeof(asn_DEF_EN_DC_ResourceConfiguration_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_EN_DC_ResourceConfiguration_1,
+       4,      /* Elements count */
+       &asn_SPC_EN_DC_ResourceConfiguration_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENB-ID.c b/e2ap/lib/ENB-ID.c
new file mode 100644 (file)
index 0000000..e0e9702
--- /dev/null
@@ -0,0 +1,241 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENB-ID.h"
+
+static int
+memb_macro_eNB_ID_constraint_1(const 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 == 20)) {
+               /* 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_home_eNB_ID_constraint_1(const 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 == 28)) {
+               /* 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_short_Macro_eNB_ID_constraint_1(const 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 == 18)) {
+               /* 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_long_Macro_eNB_ID_constraint_1(const 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 == 21)) {
+               /* 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_oer_constraints_t asn_OER_memb_macro_eNB_ID_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       20      /* (SIZE(20..20)) */};
+static asn_per_constraints_t asn_PER_memb_macro_eNB_ID_constr_2 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  20,  20 }      /* (SIZE(20..20)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_home_eNB_ID_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       28      /* (SIZE(28..28)) */};
+static asn_per_constraints_t asn_PER_memb_home_eNB_ID_constr_3 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  28,  28 }      /* (SIZE(28..28)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = {
+       { 0, 0 },
+       18      /* (SIZE(18..18)) */};
+static asn_per_constraints_t asn_PER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  18,  18 }      /* (SIZE(18..18)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = {
+       { 0, 0 },
+       21      /* (SIZE(21..21)) */};
+static asn_per_constraints_t asn_PER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  21,  21 }      /* (SIZE(21..21)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ENB_ID_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_ENB_ID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ENB_ID_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.macro_eNB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_macro_eNB_ID_constr_2, &asn_PER_memb_macro_eNB_ID_constr_2,  memb_macro_eNB_ID_constraint_1 },
+               0, 0, /* No default value */
+               "macro-eNB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.home_eNB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_home_eNB_ID_constr_3, &asn_PER_memb_home_eNB_ID_constr_3,  memb_home_eNB_ID_constraint_1 },
+               0, 0, /* No default value */
+               "home-eNB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.short_Macro_eNB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_short_Macro_eNB_ID_constr_5, &asn_PER_memb_short_Macro_eNB_ID_constr_5,  memb_short_Macro_eNB_ID_constraint_1 },
+               0, 0, /* No default value */
+               "short-Macro-eNB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.long_Macro_eNB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_long_Macro_eNB_ID_constr_6, &asn_PER_memb_long_Macro_eNB_ID_constr_6,  memb_long_Macro_eNB_ID_constraint_1 },
+               0, 0, /* No default value */
+               "long-Macro-eNB-ID"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENB_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* macro-eNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* home-eNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* short-Macro-eNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* long-Macro-eNB-ID */
+};
+asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1 = {
+       sizeof(struct ENB_ID),
+       offsetof(struct ENB_ID, _asn_ctx),
+       offsetof(struct ENB_ID, present),
+       sizeof(((struct ENB_ID *)0)->present),
+       asn_MAP_ENB_ID_tag2el_1,
+       4,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_ENB_ID = {
+       "ENB-ID",
+       "ENB-ID",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_ENB_ID_constr_1, &asn_PER_type_ENB_ID_constr_1, CHOICE_constraint },
+       asn_MBR_ENB_ID_1,
+       4,      /* Elements count */
+       &asn_SPC_ENB_ID_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENBConfigurationUpdate.c b/e2ap/lib/ENBConfigurationUpdate.c
new file mode 100644 (file)
index 0000000..5915a3d
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENBConfigurationUpdate.h"
+
+asn_TYPE_member_t asn_MBR_ENBConfigurationUpdate_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P28,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENBConfigurationUpdate_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENBConfigurationUpdate_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdate_specs_1 = {
+       sizeof(struct ENBConfigurationUpdate),
+       offsetof(struct ENBConfigurationUpdate, _asn_ctx),
+       asn_MAP_ENBConfigurationUpdate_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdate = {
+       "ENBConfigurationUpdate",
+       "ENBConfigurationUpdate",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENBConfigurationUpdate_tags_1,
+       sizeof(asn_DEF_ENBConfigurationUpdate_tags_1)
+               /sizeof(asn_DEF_ENBConfigurationUpdate_tags_1[0]), /* 1 */
+       asn_DEF_ENBConfigurationUpdate_tags_1,  /* Same as above */
+       sizeof(asn_DEF_ENBConfigurationUpdate_tags_1)
+               /sizeof(asn_DEF_ENBConfigurationUpdate_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENBConfigurationUpdate_1,
+       1,      /* Elements count */
+       &asn_SPC_ENBConfigurationUpdate_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENBConfigurationUpdateAcknowledge.c b/e2ap/lib/ENBConfigurationUpdateAcknowledge.c
new file mode 100644 (file)
index 0000000..32babc1
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENBConfigurationUpdateAcknowledge.h"
+
+asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateAcknowledge_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateAcknowledge, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P29,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENBConfigurationUpdateAcknowledge_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENBConfigurationUpdateAcknowledge_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateAcknowledge_specs_1 = {
+       sizeof(struct ENBConfigurationUpdateAcknowledge),
+       offsetof(struct ENBConfigurationUpdateAcknowledge, _asn_ctx),
+       asn_MAP_ENBConfigurationUpdateAcknowledge_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateAcknowledge = {
+       "ENBConfigurationUpdateAcknowledge",
+       "ENBConfigurationUpdateAcknowledge",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENBConfigurationUpdateAcknowledge_tags_1,
+       sizeof(asn_DEF_ENBConfigurationUpdateAcknowledge_tags_1)
+               /sizeof(asn_DEF_ENBConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */
+       asn_DEF_ENBConfigurationUpdateAcknowledge_tags_1,       /* Same as above */
+       sizeof(asn_DEF_ENBConfigurationUpdateAcknowledge_tags_1)
+               /sizeof(asn_DEF_ENBConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENBConfigurationUpdateAcknowledge_1,
+       1,      /* Elements count */
+       &asn_SPC_ENBConfigurationUpdateAcknowledge_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENBConfigurationUpdateFailure.c b/e2ap/lib/ENBConfigurationUpdateFailure.c
new file mode 100644 (file)
index 0000000..b95e8f9
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENBConfigurationUpdateFailure.h"
+
+asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateFailure_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateFailure, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P30,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENBConfigurationUpdateFailure_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENBConfigurationUpdateFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateFailure_specs_1 = {
+       sizeof(struct ENBConfigurationUpdateFailure),
+       offsetof(struct ENBConfigurationUpdateFailure, _asn_ctx),
+       asn_MAP_ENBConfigurationUpdateFailure_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateFailure = {
+       "ENBConfigurationUpdateFailure",
+       "ENBConfigurationUpdateFailure",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENBConfigurationUpdateFailure_tags_1,
+       sizeof(asn_DEF_ENBConfigurationUpdateFailure_tags_1)
+               /sizeof(asn_DEF_ENBConfigurationUpdateFailure_tags_1[0]), /* 1 */
+       asn_DEF_ENBConfigurationUpdateFailure_tags_1,   /* Same as above */
+       sizeof(asn_DEF_ENBConfigurationUpdateFailure_tags_1)
+               /sizeof(asn_DEF_ENBConfigurationUpdateFailure_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENBConfigurationUpdateFailure_1,
+       1,      /* Elements count */
+       &asn_SPC_ENBConfigurationUpdateFailure_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENDCCellActivationFailure.c b/e2ap/lib/ENDCCellActivationFailure.c
new file mode 100644 (file)
index 0000000..84289cb
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENDCCellActivationFailure.h"
+
+asn_TYPE_member_t asn_MBR_ENDCCellActivationFailure_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationFailure, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P100,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCCellActivationFailure_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCCellActivationFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationFailure_specs_1 = {
+       sizeof(struct ENDCCellActivationFailure),
+       offsetof(struct ENDCCellActivationFailure, _asn_ctx),
+       asn_MAP_ENDCCellActivationFailure_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationFailure = {
+       "ENDCCellActivationFailure",
+       "ENDCCellActivationFailure",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCCellActivationFailure_tags_1,
+       sizeof(asn_DEF_ENDCCellActivationFailure_tags_1)
+               /sizeof(asn_DEF_ENDCCellActivationFailure_tags_1[0]), /* 1 */
+       asn_DEF_ENDCCellActivationFailure_tags_1,       /* Same as above */
+       sizeof(asn_DEF_ENDCCellActivationFailure_tags_1)
+               /sizeof(asn_DEF_ENDCCellActivationFailure_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCCellActivationFailure_1,
+       1,      /* Elements count */
+       &asn_SPC_ENDCCellActivationFailure_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENDCCellActivationRequest.c b/e2ap/lib/ENDCCellActivationRequest.c
new file mode 100644 (file)
index 0000000..75b4912
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENDCCellActivationRequest.h"
+
+asn_TYPE_member_t asn_MBR_ENDCCellActivationRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P98,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCCellActivationRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCCellActivationRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationRequest_specs_1 = {
+       sizeof(struct ENDCCellActivationRequest),
+       offsetof(struct ENDCCellActivationRequest, _asn_ctx),
+       asn_MAP_ENDCCellActivationRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationRequest = {
+       "ENDCCellActivationRequest",
+       "ENDCCellActivationRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCCellActivationRequest_tags_1,
+       sizeof(asn_DEF_ENDCCellActivationRequest_tags_1)
+               /sizeof(asn_DEF_ENDCCellActivationRequest_tags_1[0]), /* 1 */
+       asn_DEF_ENDCCellActivationRequest_tags_1,       /* Same as above */
+       sizeof(asn_DEF_ENDCCellActivationRequest_tags_1)
+               /sizeof(asn_DEF_ENDCCellActivationRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCCellActivationRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_ENDCCellActivationRequest_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENDCCellActivationResponse.c b/e2ap/lib/ENDCCellActivationResponse.c
new file mode 100644 (file)
index 0000000..20a5836
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENDCCellActivationResponse.h"
+
+asn_TYPE_member_t asn_MBR_ENDCCellActivationResponse_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationResponse, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P99,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCCellActivationResponse_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCCellActivationResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationResponse_specs_1 = {
+       sizeof(struct ENDCCellActivationResponse),
+       offsetof(struct ENDCCellActivationResponse, _asn_ctx),
+       asn_MAP_ENDCCellActivationResponse_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationResponse = {
+       "ENDCCellActivationResponse",
+       "ENDCCellActivationResponse",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCCellActivationResponse_tags_1,
+       sizeof(asn_DEF_ENDCCellActivationResponse_tags_1)
+               /sizeof(asn_DEF_ENDCCellActivationResponse_tags_1[0]), /* 1 */
+       asn_DEF_ENDCCellActivationResponse_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ENDCCellActivationResponse_tags_1)
+               /sizeof(asn_DEF_ENDCCellActivationResponse_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCCellActivationResponse_1,
+       1,      /* Elements count */
+       &asn_SPC_ENDCCellActivationResponse_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENDCConfigurationUpdate.c b/e2ap/lib/ENDCConfigurationUpdate.c
new file mode 100644 (file)
index 0000000..f658e4d
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENDCConfigurationUpdate.h"
+
+asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdate_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdate, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P91,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCConfigurationUpdate_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCConfigurationUpdate_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdate_specs_1 = {
+       sizeof(struct ENDCConfigurationUpdate),
+       offsetof(struct ENDCConfigurationUpdate, _asn_ctx),
+       asn_MAP_ENDCConfigurationUpdate_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdate = {
+       "ENDCConfigurationUpdate",
+       "ENDCConfigurationUpdate",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCConfigurationUpdate_tags_1,
+       sizeof(asn_DEF_ENDCConfigurationUpdate_tags_1)
+               /sizeof(asn_DEF_ENDCConfigurationUpdate_tags_1[0]), /* 1 */
+       asn_DEF_ENDCConfigurationUpdate_tags_1, /* Same as above */
+       sizeof(asn_DEF_ENDCConfigurationUpdate_tags_1)
+               /sizeof(asn_DEF_ENDCConfigurationUpdate_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCConfigurationUpdate_1,
+       1,      /* Elements count */
+       &asn_SPC_ENDCConfigurationUpdate_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENDCConfigurationUpdateAcknowledge.c b/e2ap/lib/ENDCConfigurationUpdateAcknowledge.c
new file mode 100644 (file)
index 0000000..2c20b37
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENDCConfigurationUpdateAcknowledge.h"
+
+asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateAcknowledge_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateAcknowledge, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P94,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCConfigurationUpdateAcknowledge_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCConfigurationUpdateAcknowledge_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateAcknowledge_specs_1 = {
+       sizeof(struct ENDCConfigurationUpdateAcknowledge),
+       offsetof(struct ENDCConfigurationUpdateAcknowledge, _asn_ctx),
+       asn_MAP_ENDCConfigurationUpdateAcknowledge_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateAcknowledge = {
+       "ENDCConfigurationUpdateAcknowledge",
+       "ENDCConfigurationUpdateAcknowledge",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCConfigurationUpdateAcknowledge_tags_1,
+       sizeof(asn_DEF_ENDCConfigurationUpdateAcknowledge_tags_1)
+               /sizeof(asn_DEF_ENDCConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */
+       asn_DEF_ENDCConfigurationUpdateAcknowledge_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ENDCConfigurationUpdateAcknowledge_tags_1)
+               /sizeof(asn_DEF_ENDCConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCConfigurationUpdateAcknowledge_1,
+       1,      /* Elements count */
+       &asn_SPC_ENDCConfigurationUpdateAcknowledge_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENDCConfigurationUpdateFailure.c b/e2ap/lib/ENDCConfigurationUpdateFailure.c
new file mode 100644 (file)
index 0000000..7b4248c
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENDCConfigurationUpdateFailure.h"
+
+asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateFailure_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateFailure, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P97,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCConfigurationUpdateFailure_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCConfigurationUpdateFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateFailure_specs_1 = {
+       sizeof(struct ENDCConfigurationUpdateFailure),
+       offsetof(struct ENDCConfigurationUpdateFailure, _asn_ctx),
+       asn_MAP_ENDCConfigurationUpdateFailure_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateFailure = {
+       "ENDCConfigurationUpdateFailure",
+       "ENDCConfigurationUpdateFailure",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCConfigurationUpdateFailure_tags_1,
+       sizeof(asn_DEF_ENDCConfigurationUpdateFailure_tags_1)
+               /sizeof(asn_DEF_ENDCConfigurationUpdateFailure_tags_1[0]), /* 1 */
+       asn_DEF_ENDCConfigurationUpdateFailure_tags_1,  /* Same as above */
+       sizeof(asn_DEF_ENDCConfigurationUpdateFailure_tags_1)
+               /sizeof(asn_DEF_ENDCConfigurationUpdateFailure_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCConfigurationUpdateFailure_1,
+       1,      /* Elements count */
+       &asn_SPC_ENDCConfigurationUpdateFailure_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENDCPartialResetConfirm.c b/e2ap/lib/ENDCPartialResetConfirm.c
new file mode 100644 (file)
index 0000000..5f41e37
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENDCPartialResetConfirm.h"
+
+asn_TYPE_member_t asn_MBR_ENDCPartialResetConfirm_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetConfirm, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P104,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCPartialResetConfirm_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCPartialResetConfirm_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCPartialResetConfirm_specs_1 = {
+       sizeof(struct ENDCPartialResetConfirm),
+       offsetof(struct ENDCPartialResetConfirm, _asn_ctx),
+       asn_MAP_ENDCPartialResetConfirm_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetConfirm = {
+       "ENDCPartialResetConfirm",
+       "ENDCPartialResetConfirm",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCPartialResetConfirm_tags_1,
+       sizeof(asn_DEF_ENDCPartialResetConfirm_tags_1)
+               /sizeof(asn_DEF_ENDCPartialResetConfirm_tags_1[0]), /* 1 */
+       asn_DEF_ENDCPartialResetConfirm_tags_1, /* Same as above */
+       sizeof(asn_DEF_ENDCPartialResetConfirm_tags_1)
+               /sizeof(asn_DEF_ENDCPartialResetConfirm_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCPartialResetConfirm_1,
+       1,      /* Elements count */
+       &asn_SPC_ENDCPartialResetConfirm_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENDCPartialResetRequired.c b/e2ap/lib/ENDCPartialResetRequired.c
new file mode 100644 (file)
index 0000000..a536d24
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENDCPartialResetRequired.h"
+
+asn_TYPE_member_t asn_MBR_ENDCPartialResetRequired_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetRequired, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P103,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCPartialResetRequired_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCPartialResetRequired_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCPartialResetRequired_specs_1 = {
+       sizeof(struct ENDCPartialResetRequired),
+       offsetof(struct ENDCPartialResetRequired, _asn_ctx),
+       asn_MAP_ENDCPartialResetRequired_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetRequired = {
+       "ENDCPartialResetRequired",
+       "ENDCPartialResetRequired",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCPartialResetRequired_tags_1,
+       sizeof(asn_DEF_ENDCPartialResetRequired_tags_1)
+               /sizeof(asn_DEF_ENDCPartialResetRequired_tags_1[0]), /* 1 */
+       asn_DEF_ENDCPartialResetRequired_tags_1,        /* Same as above */
+       sizeof(asn_DEF_ENDCPartialResetRequired_tags_1)
+               /sizeof(asn_DEF_ENDCPartialResetRequired_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCPartialResetRequired_1,
+       1,      /* Elements count */
+       &asn_SPC_ENDCPartialResetRequired_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENDCX2RemovalFailure.c b/e2ap/lib/ENDCX2RemovalFailure.c
new file mode 100644 (file)
index 0000000..f7adad7
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENDCX2RemovalFailure.h"
+
+asn_TYPE_member_t asn_MBR_ENDCX2RemovalFailure_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalFailure, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P117,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCX2RemovalFailure_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCX2RemovalFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalFailure_specs_1 = {
+       sizeof(struct ENDCX2RemovalFailure),
+       offsetof(struct ENDCX2RemovalFailure, _asn_ctx),
+       asn_MAP_ENDCX2RemovalFailure_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalFailure = {
+       "ENDCX2RemovalFailure",
+       "ENDCX2RemovalFailure",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCX2RemovalFailure_tags_1,
+       sizeof(asn_DEF_ENDCX2RemovalFailure_tags_1)
+               /sizeof(asn_DEF_ENDCX2RemovalFailure_tags_1[0]), /* 1 */
+       asn_DEF_ENDCX2RemovalFailure_tags_1,    /* Same as above */
+       sizeof(asn_DEF_ENDCX2RemovalFailure_tags_1)
+               /sizeof(asn_DEF_ENDCX2RemovalFailure_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCX2RemovalFailure_1,
+       1,      /* Elements count */
+       &asn_SPC_ENDCX2RemovalFailure_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENDCX2RemovalRequest.c b/e2ap/lib/ENDCX2RemovalRequest.c
new file mode 100644 (file)
index 0000000..9919c02
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENDCX2RemovalRequest.h"
+
+asn_TYPE_member_t asn_MBR_ENDCX2RemovalRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P111,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCX2RemovalRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCX2RemovalRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalRequest_specs_1 = {
+       sizeof(struct ENDCX2RemovalRequest),
+       offsetof(struct ENDCX2RemovalRequest, _asn_ctx),
+       asn_MAP_ENDCX2RemovalRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalRequest = {
+       "ENDCX2RemovalRequest",
+       "ENDCX2RemovalRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCX2RemovalRequest_tags_1,
+       sizeof(asn_DEF_ENDCX2RemovalRequest_tags_1)
+               /sizeof(asn_DEF_ENDCX2RemovalRequest_tags_1[0]), /* 1 */
+       asn_DEF_ENDCX2RemovalRequest_tags_1,    /* Same as above */
+       sizeof(asn_DEF_ENDCX2RemovalRequest_tags_1)
+               /sizeof(asn_DEF_ENDCX2RemovalRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCX2RemovalRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_ENDCX2RemovalRequest_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENDCX2RemovalResponse.c b/e2ap/lib/ENDCX2RemovalResponse.c
new file mode 100644 (file)
index 0000000..e2256a6
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENDCX2RemovalResponse.h"
+
+asn_TYPE_member_t asn_MBR_ENDCX2RemovalResponse_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalResponse, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P114,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCX2RemovalResponse_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCX2RemovalResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalResponse_specs_1 = {
+       sizeof(struct ENDCX2RemovalResponse),
+       offsetof(struct ENDCX2RemovalResponse, _asn_ctx),
+       asn_MAP_ENDCX2RemovalResponse_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalResponse = {
+       "ENDCX2RemovalResponse",
+       "ENDCX2RemovalResponse",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCX2RemovalResponse_tags_1,
+       sizeof(asn_DEF_ENDCX2RemovalResponse_tags_1)
+               /sizeof(asn_DEF_ENDCX2RemovalResponse_tags_1[0]), /* 1 */
+       asn_DEF_ENDCX2RemovalResponse_tags_1,   /* Same as above */
+       sizeof(asn_DEF_ENDCX2RemovalResponse_tags_1)
+               /sizeof(asn_DEF_ENDCX2RemovalResponse_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCX2RemovalResponse_1,
+       1,      /* Elements count */
+       &asn_SPC_ENDCX2RemovalResponse_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENDCX2SetupFailure.c b/e2ap/lib/ENDCX2SetupFailure.c
new file mode 100644 (file)
index 0000000..f84fe3d
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENDCX2SetupFailure.h"
+
+asn_TYPE_member_t asn_MBR_ENDCX2SetupFailure_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupFailure, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P90,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCX2SetupFailure_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCX2SetupFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupFailure_specs_1 = {
+       sizeof(struct ENDCX2SetupFailure),
+       offsetof(struct ENDCX2SetupFailure, _asn_ctx),
+       asn_MAP_ENDCX2SetupFailure_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupFailure = {
+       "ENDCX2SetupFailure",
+       "ENDCX2SetupFailure",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCX2SetupFailure_tags_1,
+       sizeof(asn_DEF_ENDCX2SetupFailure_tags_1)
+               /sizeof(asn_DEF_ENDCX2SetupFailure_tags_1[0]), /* 1 */
+       asn_DEF_ENDCX2SetupFailure_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ENDCX2SetupFailure_tags_1)
+               /sizeof(asn_DEF_ENDCX2SetupFailure_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCX2SetupFailure_1,
+       1,      /* Elements count */
+       &asn_SPC_ENDCX2SetupFailure_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENDCX2SetupRequest.c b/e2ap/lib/ENDCX2SetupRequest.c
new file mode 100644 (file)
index 0000000..05dbdaf
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENDCX2SetupRequest.h"
+
+asn_TYPE_member_t asn_MBR_ENDCX2SetupRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P84,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCX2SetupRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCX2SetupRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupRequest_specs_1 = {
+       sizeof(struct ENDCX2SetupRequest),
+       offsetof(struct ENDCX2SetupRequest, _asn_ctx),
+       asn_MAP_ENDCX2SetupRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupRequest = {
+       "ENDCX2SetupRequest",
+       "ENDCX2SetupRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCX2SetupRequest_tags_1,
+       sizeof(asn_DEF_ENDCX2SetupRequest_tags_1)
+               /sizeof(asn_DEF_ENDCX2SetupRequest_tags_1[0]), /* 1 */
+       asn_DEF_ENDCX2SetupRequest_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ENDCX2SetupRequest_tags_1)
+               /sizeof(asn_DEF_ENDCX2SetupRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCX2SetupRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_ENDCX2SetupRequest_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ENDCX2SetupResponse.c b/e2ap/lib/ENDCX2SetupResponse.c
new file mode 100644 (file)
index 0000000..ae050e2
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ENDCX2SetupResponse.h"
+
+asn_TYPE_member_t asn_MBR_ENDCX2SetupResponse_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupResponse, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P87,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCX2SetupResponse_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCX2SetupResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupResponse_specs_1 = {
+       sizeof(struct ENDCX2SetupResponse),
+       offsetof(struct ENDCX2SetupResponse, _asn_ctx),
+       asn_MAP_ENDCX2SetupResponse_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupResponse = {
+       "ENDCX2SetupResponse",
+       "ENDCX2SetupResponse",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCX2SetupResponse_tags_1,
+       sizeof(asn_DEF_ENDCX2SetupResponse_tags_1)
+               /sizeof(asn_DEF_ENDCX2SetupResponse_tags_1[0]), /* 1 */
+       asn_DEF_ENDCX2SetupResponse_tags_1,     /* Same as above */
+       sizeof(asn_DEF_ENDCX2SetupResponse_tags_1)
+               /sizeof(asn_DEF_ENDCX2SetupResponse_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCX2SetupResponse_1,
+       1,      /* Elements count */
+       &asn_SPC_ENDCX2SetupResponse_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/EPLMNs.c b/e2ap/lib/EPLMNs.c
new file mode 100644 (file)
index 0000000..334ca7e
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "EPLMNs.h"
+
+static asn_oer_constraints_t asn_OER_type_EPLMNs_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..15)) */};
+asn_per_constraints_t asn_PER_type_EPLMNs_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       4,  4,  1,  15 }       /* (SIZE(1..15)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_EPLMNs_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_EPLMNs_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_EPLMNs_specs_1 = {
+       sizeof(struct EPLMNs),
+       offsetof(struct EPLMNs, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_EPLMNs = {
+       "EPLMNs",
+       "EPLMNs",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_EPLMNs_tags_1,
+       sizeof(asn_DEF_EPLMNs_tags_1)
+               /sizeof(asn_DEF_EPLMNs_tags_1[0]), /* 1 */
+       asn_DEF_EPLMNs_tags_1,  /* Same as above */
+       sizeof(asn_DEF_EPLMNs_tags_1)
+               /sizeof(asn_DEF_EPLMNs_tags_1[0]), /* 1 */
+       { &asn_OER_type_EPLMNs_constr_1, &asn_PER_type_EPLMNs_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_EPLMNs_1,
+       1,      /* Single element */
+       &asn_SPC_EPLMNs_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/ERABActivityNotifyItem.c b/e2ap/lib/ERABActivityNotifyItem.c
new file mode 100644 (file)
index 0000000..b0b3bfc
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ERABActivityNotifyItem.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ERABActivityNotifyItem_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ERABActivityNotifyItem, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ERABActivityNotifyItem, activityReport),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UserPlaneTrafficActivityReport,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "activityReport"
+               },
+       { ATF_POINTER, 1, offsetof(struct ERABActivityNotifyItem, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P138,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ERABActivityNotifyItem_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_ERABActivityNotifyItem_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ERABActivityNotifyItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* activityReport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ERABActivityNotifyItem_specs_1 = {
+       sizeof(struct ERABActivityNotifyItem),
+       offsetof(struct ERABActivityNotifyItem, _asn_ctx),
+       asn_MAP_ERABActivityNotifyItem_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_ERABActivityNotifyItem_oms_1,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ERABActivityNotifyItem = {
+       "ERABActivityNotifyItem",
+       "ERABActivityNotifyItem",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ERABActivityNotifyItem_tags_1,
+       sizeof(asn_DEF_ERABActivityNotifyItem_tags_1)
+               /sizeof(asn_DEF_ERABActivityNotifyItem_tags_1[0]), /* 1 */
+       asn_DEF_ERABActivityNotifyItem_tags_1,  /* Same as above */
+       sizeof(asn_DEF_ERABActivityNotifyItem_tags_1)
+               /sizeof(asn_DEF_ERABActivityNotifyItem_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ERABActivityNotifyItem_1,
+       3,      /* Elements count */
+       &asn_SPC_ERABActivityNotifyItem_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/ERABActivityNotifyItemList.c b/e2ap/lib/ERABActivityNotifyItemList.c
new file mode 100644 (file)
index 0000000..005864b
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ERABActivityNotifyItemList.h"
+
+#include "ERABActivityNotifyItem.h"
+static asn_oer_constraints_t asn_OER_type_ERABActivityNotifyItemList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..256)) */};
+static asn_per_constraints_t asn_PER_type_ERABActivityNotifyItemList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       9,  9,  0,  256 }      /* (SIZE(0..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ERABActivityNotifyItemList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ERABActivityNotifyItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ERABActivityNotifyItemList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ERABActivityNotifyItemList_specs_1 = {
+       sizeof(struct ERABActivityNotifyItemList),
+       offsetof(struct ERABActivityNotifyItemList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ERABActivityNotifyItemList = {
+       "ERABActivityNotifyItemList",
+       "ERABActivityNotifyItemList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ERABActivityNotifyItemList_tags_1,
+       sizeof(asn_DEF_ERABActivityNotifyItemList_tags_1)
+               /sizeof(asn_DEF_ERABActivityNotifyItemList_tags_1[0]), /* 1 */
+       asn_DEF_ERABActivityNotifyItemList_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ERABActivityNotifyItemList_tags_1)
+               /sizeof(asn_DEF_ERABActivityNotifyItemList_tags_1[0]), /* 1 */
+       { &asn_OER_type_ERABActivityNotifyItemList_constr_1, &asn_PER_type_ERABActivityNotifyItemList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ERABActivityNotifyItemList_1,
+       1,      /* Single element */
+       &asn_SPC_ERABActivityNotifyItemList_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/EUTRA-Mode-Info.c b/e2ap/lib/EUTRA-Mode-Info.c
new file mode 100644 (file)
index 0000000..b21725e
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "EUTRA-Mode-Info.h"
+
+#include "FDD-Info.h"
+#include "TDD-Info.h"
+static asn_oer_constraints_t asn_OER_type_EUTRA_Mode_Info_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_EUTRA_Mode_Info_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_EUTRA_Mode_Info_1[] = {
+       { ATF_POINTER, 0, offsetof(struct EUTRA_Mode_Info, choice.fDD),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_FDD_Info,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "fDD"
+               },
+       { ATF_POINTER, 0, offsetof(struct EUTRA_Mode_Info, choice.tDD),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TDD_Info,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "tDD"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_EUTRA_Mode_Info_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fDD */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tDD */
+};
+asn_CHOICE_specifics_t asn_SPC_EUTRA_Mode_Info_specs_1 = {
+       sizeof(struct EUTRA_Mode_Info),
+       offsetof(struct EUTRA_Mode_Info, _asn_ctx),
+       offsetof(struct EUTRA_Mode_Info, present),
+       sizeof(((struct EUTRA_Mode_Info *)0)->present),
+       asn_MAP_EUTRA_Mode_Info_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_EUTRA_Mode_Info = {
+       "EUTRA-Mode-Info",
+       "EUTRA-Mode-Info",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_EUTRA_Mode_Info_constr_1, &asn_PER_type_EUTRA_Mode_Info_constr_1, CHOICE_constraint },
+       asn_MBR_EUTRA_Mode_Info_1,
+       2,      /* Elements count */
+       &asn_SPC_EUTRA_Mode_Info_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/EUTRANCellIdentifier.c b/e2ap/lib/EUTRANCellIdentifier.c
new file mode 100644 (file)
index 0000000..8e49582
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "EUTRANCellIdentifier.h"
+
+int
+EUTRANCellIdentifier_constraint(const 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 == 28)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_EUTRANCellIdentifier_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       28      /* (SIZE(28..28)) */};
+asn_per_constraints_t asn_PER_type_EUTRANCellIdentifier_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  28,  28 }      /* (SIZE(28..28)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_EUTRANCellIdentifier_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_EUTRANCellIdentifier = {
+       "EUTRANCellIdentifier",
+       "EUTRANCellIdentifier",
+       &asn_OP_BIT_STRING,
+       asn_DEF_EUTRANCellIdentifier_tags_1,
+       sizeof(asn_DEF_EUTRANCellIdentifier_tags_1)
+               /sizeof(asn_DEF_EUTRANCellIdentifier_tags_1[0]), /* 1 */
+       asn_DEF_EUTRANCellIdentifier_tags_1,    /* Same as above */
+       sizeof(asn_DEF_EUTRANCellIdentifier_tags_1)
+               /sizeof(asn_DEF_EUTRANCellIdentifier_tags_1[0]), /* 1 */
+       { &asn_OER_type_EUTRANCellIdentifier_constr_1, &asn_PER_type_EUTRANCellIdentifier_constr_1, EUTRANCellIdentifier_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/EUTRANRCellResourceCoordinationRequest.c b/e2ap/lib/EUTRANRCellResourceCoordinationRequest.c
new file mode 100644 (file)
index 0000000..3381161
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "EUTRANRCellResourceCoordinationRequest.h"
+
+asn_TYPE_member_t asn_MBR_EUTRANRCellResourceCoordinationRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P105,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_EUTRANRCellResourceCoordinationRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EUTRANRCellResourceCoordinationRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EUTRANRCellResourceCoordinationRequest_specs_1 = {
+       sizeof(struct EUTRANRCellResourceCoordinationRequest),
+       offsetof(struct EUTRANRCellResourceCoordinationRequest, _asn_ctx),
+       asn_MAP_EUTRANRCellResourceCoordinationRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationRequest = {
+       "EUTRANRCellResourceCoordinationRequest",
+       "EUTRANRCellResourceCoordinationRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_EUTRANRCellResourceCoordinationRequest_tags_1,
+       sizeof(asn_DEF_EUTRANRCellResourceCoordinationRequest_tags_1)
+               /sizeof(asn_DEF_EUTRANRCellResourceCoordinationRequest_tags_1[0]), /* 1 */
+       asn_DEF_EUTRANRCellResourceCoordinationRequest_tags_1,  /* Same as above */
+       sizeof(asn_DEF_EUTRANRCellResourceCoordinationRequest_tags_1)
+               /sizeof(asn_DEF_EUTRANRCellResourceCoordinationRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_EUTRANRCellResourceCoordinationRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_EUTRANRCellResourceCoordinationRequest_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/EUTRANRCellResourceCoordinationResponse.c b/e2ap/lib/EUTRANRCellResourceCoordinationResponse.c
new file mode 100644 (file)
index 0000000..59e480e
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "EUTRANRCellResourceCoordinationResponse.h"
+
+asn_TYPE_member_t asn_MBR_EUTRANRCellResourceCoordinationResponse_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationResponse, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P108,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_EUTRANRCellResourceCoordinationResponse_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EUTRANRCellResourceCoordinationResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EUTRANRCellResourceCoordinationResponse_specs_1 = {
+       sizeof(struct EUTRANRCellResourceCoordinationResponse),
+       offsetof(struct EUTRANRCellResourceCoordinationResponse, _asn_ctx),
+       asn_MAP_EUTRANRCellResourceCoordinationResponse_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationResponse = {
+       "EUTRANRCellResourceCoordinationResponse",
+       "EUTRANRCellResourceCoordinationResponse",
+       &asn_OP_SEQUENCE,
+       asn_DEF_EUTRANRCellResourceCoordinationResponse_tags_1,
+       sizeof(asn_DEF_EUTRANRCellResourceCoordinationResponse_tags_1)
+               /sizeof(asn_DEF_EUTRANRCellResourceCoordinationResponse_tags_1[0]), /* 1 */
+       asn_DEF_EUTRANRCellResourceCoordinationResponse_tags_1, /* Same as above */
+       sizeof(asn_DEF_EUTRANRCellResourceCoordinationResponse_tags_1)
+               /sizeof(asn_DEF_EUTRANRCellResourceCoordinationResponse_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_EUTRANRCellResourceCoordinationResponse_1,
+       1,      /* Elements count */
+       &asn_SPC_EUTRANRCellResourceCoordinationResponse_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/EUTRANTraceID.c b/e2ap/lib/EUTRANTraceID.c
new file mode 100644 (file)
index 0000000..981646f
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "EUTRANTraceID.h"
+
+int
+EUTRANTraceID_constraint(const 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 == 8)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_EUTRANTraceID_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       8       /* (SIZE(8..8)) */};
+asn_per_constraints_t asn_PER_type_EUTRANTraceID_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  8,  8 }        /* (SIZE(8..8)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_EUTRANTraceID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_EUTRANTraceID = {
+       "EUTRANTraceID",
+       "EUTRANTraceID",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_EUTRANTraceID_tags_1,
+       sizeof(asn_DEF_EUTRANTraceID_tags_1)
+               /sizeof(asn_DEF_EUTRANTraceID_tags_1[0]), /* 1 */
+       asn_DEF_EUTRANTraceID_tags_1,   /* Same as above */
+       sizeof(asn_DEF_EUTRANTraceID_tags_1)
+               /sizeof(asn_DEF_EUTRANTraceID_tags_1[0]), /* 1 */
+       { &asn_OER_type_EUTRANTraceID_constr_1, &asn_PER_type_EUTRANTraceID_constr_1, EUTRANTraceID_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/EncryptionAlgorithms.c b/e2ap/lib/EncryptionAlgorithms.c
new file mode 100644 (file)
index 0000000..4ccc294
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "EncryptionAlgorithms.h"
+
+int
+EncryptionAlgorithms_constraint(const 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 == 16)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_EncryptionAlgorithms_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+asn_per_constraints_t asn_PER_type_EncryptionAlgorithms_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  16,  16 }  /* (SIZE(16..16,...)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_EncryptionAlgorithms_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_EncryptionAlgorithms = {
+       "EncryptionAlgorithms",
+       "EncryptionAlgorithms",
+       &asn_OP_BIT_STRING,
+       asn_DEF_EncryptionAlgorithms_tags_1,
+       sizeof(asn_DEF_EncryptionAlgorithms_tags_1)
+               /sizeof(asn_DEF_EncryptionAlgorithms_tags_1[0]), /* 1 */
+       asn_DEF_EncryptionAlgorithms_tags_1,    /* Same as above */
+       sizeof(asn_DEF_EncryptionAlgorithms_tags_1)
+               /sizeof(asn_DEF_EncryptionAlgorithms_tags_1[0]), /* 1 */
+       { &asn_OER_type_EncryptionAlgorithms_constr_1, &asn_PER_type_EncryptionAlgorithms_constr_1, EncryptionAlgorithms_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/EnhancedRNTP.c b/e2ap/lib/EnhancedRNTP.c
new file mode 100644 (file)
index 0000000..6209a03
--- /dev/null
@@ -0,0 +1,123 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "EnhancedRNTP.h"
+
+#include "EnhancedRNTPStartTime.h"
+#include "ProtocolExtensionContainer.h"
+static int
+memb_enhancedRNTPBitmap_constraint_1(const 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 >= 12 && size <= 8800)) {
+               /* 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_oer_constraints_t asn_OER_memb_enhancedRNTPBitmap_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+static asn_per_constraints_t asn_PER_memb_enhancedRNTPBitmap_constr_2 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  14,  14,  12,  8800 }      /* (SIZE(12..8800,...)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_EnhancedRNTP_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTP, enhancedRNTPBitmap),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_enhancedRNTPBitmap_constr_2, &asn_PER_memb_enhancedRNTPBitmap_constr_2,  memb_enhancedRNTPBitmap_constraint_1 },
+               0, 0, /* No default value */
+               "enhancedRNTPBitmap"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTP, rNTP_High_Power_Threshold),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RNTP_Threshold,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "rNTP-High-Power-Threshold"
+               },
+       { ATF_POINTER, 2, offsetof(struct EnhancedRNTP, enhancedRNTPStartTime),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EnhancedRNTPStartTime,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "enhancedRNTPStartTime"
+               },
+       { ATF_POINTER, 1, offsetof(struct EnhancedRNTP, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P135,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_EnhancedRNTP_oms_1[] = { 2, 3 };
+static const ber_tlv_tag_t asn_DEF_EnhancedRNTP_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EnhancedRNTP_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* enhancedRNTPBitmap */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rNTP-High-Power-Threshold */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* enhancedRNTPStartTime */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_EnhancedRNTP_specs_1 = {
+       sizeof(struct EnhancedRNTP),
+       offsetof(struct EnhancedRNTP, _asn_ctx),
+       asn_MAP_EnhancedRNTP_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_EnhancedRNTP_oms_1,     /* Optional members */
+       2, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_EnhancedRNTP = {
+       "EnhancedRNTP",
+       "EnhancedRNTP",
+       &asn_OP_SEQUENCE,
+       asn_DEF_EnhancedRNTP_tags_1,
+       sizeof(asn_DEF_EnhancedRNTP_tags_1)
+               /sizeof(asn_DEF_EnhancedRNTP_tags_1[0]), /* 1 */
+       asn_DEF_EnhancedRNTP_tags_1,    /* Same as above */
+       sizeof(asn_DEF_EnhancedRNTP_tags_1)
+               /sizeof(asn_DEF_EnhancedRNTP_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_EnhancedRNTP_1,
+       4,      /* Elements count */
+       &asn_SPC_EnhancedRNTP_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/EnhancedRNTPStartTime.c b/e2ap/lib/EnhancedRNTPStartTime.c
new file mode 100644 (file)
index 0000000..bfb3d20
--- /dev/null
@@ -0,0 +1,139 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "EnhancedRNTPStartTime.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_startSFN_constraint_1(const 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 >= 0 && value <= 1023)) {
+               /* 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_startSubframeNumber_constraint_1(const 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 >= 0 && value <= 9)) {
+               /* 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_oer_constraints_t asn_OER_memb_startSFN_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_startSFN_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  10,  10,  0,  1023 }       /* (0..1023,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_startSubframeNumber_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_startSubframeNumber_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  9 }    /* (0..9,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_EnhancedRNTPStartTime_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTPStartTime, startSFN),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_startSFN_constr_2, &asn_PER_memb_startSFN_constr_2,  memb_startSFN_constraint_1 },
+               0, 0, /* No default value */
+               "startSFN"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTPStartTime, startSubframeNumber),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_startSubframeNumber_constr_3, &asn_PER_memb_startSubframeNumber_constr_3,  memb_startSubframeNumber_constraint_1 },
+               0, 0, /* No default value */
+               "startSubframeNumber"
+               },
+       { ATF_POINTER, 1, offsetof(struct EnhancedRNTPStartTime, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P136,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_EnhancedRNTPStartTime_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_EnhancedRNTPStartTime_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EnhancedRNTPStartTime_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startSFN */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* startSubframeNumber */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EnhancedRNTPStartTime_specs_1 = {
+       sizeof(struct EnhancedRNTPStartTime),
+       offsetof(struct EnhancedRNTPStartTime, _asn_ctx),
+       asn_MAP_EnhancedRNTPStartTime_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_EnhancedRNTPStartTime_oms_1,    /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_EnhancedRNTPStartTime = {
+       "EnhancedRNTPStartTime",
+       "EnhancedRNTPStartTime",
+       &asn_OP_SEQUENCE,
+       asn_DEF_EnhancedRNTPStartTime_tags_1,
+       sizeof(asn_DEF_EnhancedRNTPStartTime_tags_1)
+               /sizeof(asn_DEF_EnhancedRNTPStartTime_tags_1[0]), /* 1 */
+       asn_DEF_EnhancedRNTPStartTime_tags_1,   /* Same as above */
+       sizeof(asn_DEF_EnhancedRNTPStartTime_tags_1)
+               /sizeof(asn_DEF_EnhancedRNTPStartTime_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_EnhancedRNTPStartTime_1,
+       3,      /* Elements count */
+       &asn_SPC_EnhancedRNTPStartTime_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/ErrorIndication.c b/e2ap/lib/ErrorIndication.c
new file mode 100644 (file)
index 0000000..c2986ff
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ErrorIndication.h"
+
+asn_TYPE_member_t asn_MBR_ErrorIndication_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P21,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ErrorIndication_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1 = {
+       sizeof(struct ErrorIndication),
+       offsetof(struct ErrorIndication, _asn_ctx),
+       asn_MAP_ErrorIndication_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ErrorIndication = {
+       "ErrorIndication",
+       "ErrorIndication",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ErrorIndication_tags_1,
+       sizeof(asn_DEF_ErrorIndication_tags_1)
+               /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */
+       asn_DEF_ErrorIndication_tags_1, /* Same as above */
+       sizeof(asn_DEF_ErrorIndication_tags_1)
+               /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ErrorIndication_1,
+       1,      /* Elements count */
+       &asn_SPC_ErrorIndication_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/EventType.c b/e2ap/lib/EventType.c
new file mode 100644 (file)
index 0000000..5c6f476
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "EventType.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_EventType_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_EventType_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_EventType_value2enum_1[] = {
+       { 0,    22,     "change-of-serving-cell" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_EventType_enum2value_1[] = {
+       0       /* change-of-serving-cell(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_EventType_specs_1 = {
+       asn_MAP_EventType_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_EventType_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_EventType_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_EventType = {
+       "EventType",
+       "EventType",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_EventType_tags_1,
+       sizeof(asn_DEF_EventType_tags_1)
+               /sizeof(asn_DEF_EventType_tags_1[0]), /* 1 */
+       asn_DEF_EventType_tags_1,       /* Same as above */
+       sizeof(asn_DEF_EventType_tags_1)
+               /sizeof(asn_DEF_EventType_tags_1[0]), /* 1 */
+       { &asn_OER_type_EventType_constr_1, &asn_PER_type_EventType_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_EventType_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/ExpectedActivityPeriod.c b/e2ap/lib/ExpectedActivityPeriod.c
new file mode 100644 (file)
index 0000000..2be4b66
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ExpectedActivityPeriod.h"
+
+int
+ExpectedActivityPeriod_constraint(const 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 >= 1 && value <= 30) || (value == 40) || (value == 50) || (value == 60) || (value == 80) || (value == 100) || (value == 120) || (value == 150) || (value >= 180 && value <= 181))) {
+               /* 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 asn_oer_constraints_t asn_OER_type_ExpectedActivityPeriod_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_ExpectedActivityPeriod_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  1,  181 }  /* (1..181,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_ExpectedActivityPeriod_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ExpectedActivityPeriod = {
+       "ExpectedActivityPeriod",
+       "ExpectedActivityPeriod",
+       &asn_OP_NativeInteger,
+       asn_DEF_ExpectedActivityPeriod_tags_1,
+       sizeof(asn_DEF_ExpectedActivityPeriod_tags_1)
+               /sizeof(asn_DEF_ExpectedActivityPeriod_tags_1[0]), /* 1 */
+       asn_DEF_ExpectedActivityPeriod_tags_1,  /* Same as above */
+       sizeof(asn_DEF_ExpectedActivityPeriod_tags_1)
+               /sizeof(asn_DEF_ExpectedActivityPeriod_tags_1[0]), /* 1 */
+       { &asn_OER_type_ExpectedActivityPeriod_constr_1, &asn_PER_type_ExpectedActivityPeriod_constr_1, ExpectedActivityPeriod_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/ExpectedHOInterval.c b/e2ap/lib/ExpectedHOInterval.c
new file mode 100644 (file)
index 0000000..399f928
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ExpectedHOInterval.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ExpectedHOInterval_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_ExpectedHOInterval_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  6 }    /* (0..6,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_ExpectedHOInterval_value2enum_1[] = {
+       { 0,    5,      "sec15" },
+       { 1,    5,      "sec30" },
+       { 2,    5,      "sec60" },
+       { 3,    5,      "sec90" },
+       { 4,    6,      "sec120" },
+       { 5,    6,      "sec180" },
+       { 6,    9,      "long-time" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_ExpectedHOInterval_enum2value_1[] = {
+       6,      /* long-time(6) */
+       4,      /* sec120(4) */
+       0,      /* sec15(0) */
+       5,      /* sec180(5) */
+       1,      /* sec30(1) */
+       2,      /* sec60(2) */
+       3       /* sec90(3) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_ExpectedHOInterval_specs_1 = {
+       asn_MAP_ExpectedHOInterval_value2enum_1,        /* "tag" => N; sorted by tag */
+       asn_MAP_ExpectedHOInterval_enum2value_1,        /* N => "tag"; sorted by N */
+       7,      /* Number of elements in the maps */
+       8,      /* Extensions before this member */
+       1,      /* Strict enumeration */
+       0,      /* Native long size */
+       0
+};
+static const ber_tlv_tag_t asn_DEF_ExpectedHOInterval_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ExpectedHOInterval = {
+       "ExpectedHOInterval",
+       "ExpectedHOInterval",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_ExpectedHOInterval_tags_1,
+       sizeof(asn_DEF_ExpectedHOInterval_tags_1)
+               /sizeof(asn_DEF_ExpectedHOInterval_tags_1[0]), /* 1 */
+       asn_DEF_ExpectedHOInterval_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ExpectedHOInterval_tags_1)
+               /sizeof(asn_DEF_ExpectedHOInterval_tags_1[0]), /* 1 */
+       { &asn_OER_type_ExpectedHOInterval_constr_1, &asn_PER_type_ExpectedHOInterval_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_ExpectedHOInterval_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ExpectedIdlePeriod.c b/e2ap/lib/ExpectedIdlePeriod.c
new file mode 100644 (file)
index 0000000..e9cbbc1
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ExpectedIdlePeriod.h"
+
+int
+ExpectedIdlePeriod_constraint(const 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 >= 1 && value <= 30) || (value == 40) || (value == 50) || (value == 60) || (value == 80) || (value == 100) || (value == 120) || (value == 150) || (value >= 180 && value <= 181))) {
+               /* 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 asn_oer_constraints_t asn_OER_type_ExpectedIdlePeriod_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_ExpectedIdlePeriod_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  1,  181 }  /* (1..181,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_ExpectedIdlePeriod_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ExpectedIdlePeriod = {
+       "ExpectedIdlePeriod",
+       "ExpectedIdlePeriod",
+       &asn_OP_NativeInteger,
+       asn_DEF_ExpectedIdlePeriod_tags_1,
+       sizeof(asn_DEF_ExpectedIdlePeriod_tags_1)
+               /sizeof(asn_DEF_ExpectedIdlePeriod_tags_1[0]), /* 1 */
+       asn_DEF_ExpectedIdlePeriod_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ExpectedIdlePeriod_tags_1)
+               /sizeof(asn_DEF_ExpectedIdlePeriod_tags_1[0]), /* 1 */
+       { &asn_OER_type_ExpectedIdlePeriod_constr_1, &asn_PER_type_ExpectedIdlePeriod_constr_1, ExpectedIdlePeriod_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/ExpectedUEActivityBehaviour.c b/e2ap/lib/ExpectedUEActivityBehaviour.c
new file mode 100644 (file)
index 0000000..4eb2ee4
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ExpectedUEActivityBehaviour.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ExpectedUEActivityBehaviour_1[] = {
+       { ATF_POINTER, 4, offsetof(struct ExpectedUEActivityBehaviour, expectedActivityPeriod),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ExpectedActivityPeriod,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "expectedActivityPeriod"
+               },
+       { ATF_POINTER, 3, offsetof(struct ExpectedUEActivityBehaviour, expectedIdlePeriod),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ExpectedIdlePeriod,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "expectedIdlePeriod"
+               },
+       { ATF_POINTER, 2, offsetof(struct ExpectedUEActivityBehaviour, sourceofUEActivityBehaviourInformation),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SourceOfUEActivityBehaviourInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sourceofUEActivityBehaviourInformation"
+               },
+       { ATF_POINTER, 1, offsetof(struct ExpectedUEActivityBehaviour, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P143,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ExpectedUEActivityBehaviour_oms_1[] = { 0, 1, 2, 3 };
+static const ber_tlv_tag_t asn_DEF_ExpectedUEActivityBehaviour_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ExpectedUEActivityBehaviour_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* expectedActivityPeriod */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* expectedIdlePeriod */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sourceofUEActivityBehaviourInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEActivityBehaviour_specs_1 = {
+       sizeof(struct ExpectedUEActivityBehaviour),
+       offsetof(struct ExpectedUEActivityBehaviour, _asn_ctx),
+       asn_MAP_ExpectedUEActivityBehaviour_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_ExpectedUEActivityBehaviour_oms_1,      /* Optional members */
+       4, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ExpectedUEActivityBehaviour = {
+       "ExpectedUEActivityBehaviour",
+       "ExpectedUEActivityBehaviour",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ExpectedUEActivityBehaviour_tags_1,
+       sizeof(asn_DEF_ExpectedUEActivityBehaviour_tags_1)
+               /sizeof(asn_DEF_ExpectedUEActivityBehaviour_tags_1[0]), /* 1 */
+       asn_DEF_ExpectedUEActivityBehaviour_tags_1,     /* Same as above */
+       sizeof(asn_DEF_ExpectedUEActivityBehaviour_tags_1)
+               /sizeof(asn_DEF_ExpectedUEActivityBehaviour_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ExpectedUEActivityBehaviour_1,
+       4,      /* Elements count */
+       &asn_SPC_ExpectedUEActivityBehaviour_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/ExpectedUEBehaviour.c b/e2ap/lib/ExpectedUEBehaviour.c
new file mode 100644 (file)
index 0000000..abc2b79
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ExpectedUEBehaviour.h"
+
+#include "ExpectedUEActivityBehaviour.h"
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_ExpectedUEBehaviour_1[] = {
+       { ATF_POINTER, 3, offsetof(struct ExpectedUEBehaviour, expectedActivity),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ExpectedUEActivityBehaviour,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "expectedActivity"
+               },
+       { ATF_POINTER, 2, offsetof(struct ExpectedUEBehaviour, expectedHOInterval),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ExpectedHOInterval,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "expectedHOInterval"
+               },
+       { ATF_POINTER, 1, offsetof(struct ExpectedUEBehaviour, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P142,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ExpectedUEBehaviour_oms_1[] = { 0, 1, 2 };
+static const ber_tlv_tag_t asn_DEF_ExpectedUEBehaviour_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ExpectedUEBehaviour_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* expectedActivity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* expectedHOInterval */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEBehaviour_specs_1 = {
+       sizeof(struct ExpectedUEBehaviour),
+       offsetof(struct ExpectedUEBehaviour, _asn_ctx),
+       asn_MAP_ExpectedUEBehaviour_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_ExpectedUEBehaviour_oms_1,      /* Optional members */
+       3, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ExpectedUEBehaviour = {
+       "ExpectedUEBehaviour",
+       "ExpectedUEBehaviour",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ExpectedUEBehaviour_tags_1,
+       sizeof(asn_DEF_ExpectedUEBehaviour_tags_1)
+               /sizeof(asn_DEF_ExpectedUEBehaviour_tags_1[0]), /* 1 */
+       asn_DEF_ExpectedUEBehaviour_tags_1,     /* Same as above */
+       sizeof(asn_DEF_ExpectedUEBehaviour_tags_1)
+               /sizeof(asn_DEF_ExpectedUEBehaviour_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ExpectedUEBehaviour_1,
+       3,      /* Elements count */
+       &asn_SPC_ExpectedUEBehaviour_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/ExtendedBitRate.c b/e2ap/lib/ExtendedBitRate.c
new file mode 100644 (file)
index 0000000..d8b50cb
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ExtendedBitRate.h"
+
+int
+ExtendedBitRate_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+                       asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+       const INTEGER_t *st = (const INTEGER_t *)sptr;
+       long value;
+       
+       if(!sptr) {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: value not given (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+       
+       if(asn_INTEGER2long(st, &value)) {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: value too large (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+       
+       if((value >= 10000000001 && value <= 4000000000000)) {
+               /* 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 INTEGER,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ExtendedBitRate_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_ExtendedBitRate_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  42, -1,  10000000001,  4000000000000 }     /* (10000000001..4000000000000,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_ExtendedBitRate_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ExtendedBitRate = {
+       "ExtendedBitRate",
+       "ExtendedBitRate",
+       &asn_OP_INTEGER,
+       asn_DEF_ExtendedBitRate_tags_1,
+       sizeof(asn_DEF_ExtendedBitRate_tags_1)
+               /sizeof(asn_DEF_ExtendedBitRate_tags_1[0]), /* 1 */
+       asn_DEF_ExtendedBitRate_tags_1, /* Same as above */
+       sizeof(asn_DEF_ExtendedBitRate_tags_1)
+               /sizeof(asn_DEF_ExtendedBitRate_tags_1[0]), /* 1 */
+       { &asn_OER_type_ExtendedBitRate_constr_1, &asn_PER_type_ExtendedBitRate_constr_1, ExtendedBitRate_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/ExtendedULInterferenceOverloadInfo.c b/e2ap/lib/ExtendedULInterferenceOverloadInfo.c
new file mode 100644 (file)
index 0000000..dacde47
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ExtendedULInterferenceOverloadInfo.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_associatedSubframes_constraint_1(const 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 == 5)) {
+               /* 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_oer_constraints_t asn_OER_memb_associatedSubframes_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       5       /* (SIZE(5..5)) */};
+static asn_per_constraints_t asn_PER_memb_associatedSubframes_constr_2 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  5,  5 }        /* (SIZE(5..5)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ExtendedULInterferenceOverloadInfo_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ExtendedULInterferenceOverloadInfo, associatedSubframes),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_associatedSubframes_constr_2, &asn_PER_memb_associatedSubframes_constr_2,  memb_associatedSubframes_constraint_1 },
+               0, 0, /* No default value */
+               "associatedSubframes"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ExtendedULInterferenceOverloadInfo, extended_ul_InterferenceOverloadIndication),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UL_InterferenceOverloadIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "extended-ul-InterferenceOverloadIndication"
+               },
+       { ATF_POINTER, 1, offsetof(struct ExtendedULInterferenceOverloadInfo, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P144,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ExtendedULInterferenceOverloadInfo_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_ExtendedULInterferenceOverloadInfo_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ExtendedULInterferenceOverloadInfo_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* associatedSubframes */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* extended-ul-InterferenceOverloadIndication */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_ExtendedULInterferenceOverloadInfo_specs_1 = {
+       sizeof(struct ExtendedULInterferenceOverloadInfo),
+       offsetof(struct ExtendedULInterferenceOverloadInfo, _asn_ctx),
+       asn_MAP_ExtendedULInterferenceOverloadInfo_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_ExtendedULInterferenceOverloadInfo_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ExtendedULInterferenceOverloadInfo = {
+       "ExtendedULInterferenceOverloadInfo",
+       "ExtendedULInterferenceOverloadInfo",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ExtendedULInterferenceOverloadInfo_tags_1,
+       sizeof(asn_DEF_ExtendedULInterferenceOverloadInfo_tags_1)
+               /sizeof(asn_DEF_ExtendedULInterferenceOverloadInfo_tags_1[0]), /* 1 */
+       asn_DEF_ExtendedULInterferenceOverloadInfo_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ExtendedULInterferenceOverloadInfo_tags_1)
+               /sizeof(asn_DEF_ExtendedULInterferenceOverloadInfo_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ExtendedULInterferenceOverloadInfo_1,
+       3,      /* Elements count */
+       &asn_SPC_ExtendedULInterferenceOverloadInfo_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/FDD-Info.c b/e2ap/lib/FDD-Info.c
new file mode 100644 (file)
index 0000000..b0e2207
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "FDD-Info.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_FDD_Info_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_Info, uL_EARFCN),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EARFCN,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-EARFCN"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_Info, dL_EARFCN),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EARFCN,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-EARFCN"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_Info, uL_Transmission_Bandwidth),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Transmission_Bandwidth,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-Transmission-Bandwidth"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_Info, dL_Transmission_Bandwidth),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Transmission_Bandwidth,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-Transmission-Bandwidth"
+               },
+       { ATF_POINTER, 1, offsetof(struct FDD_Info, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P145,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_FDD_Info_oms_1[] = { 4 };
+static const ber_tlv_tag_t asn_DEF_FDD_Info_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_FDD_Info_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-EARFCN */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-EARFCN */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uL-Transmission-Bandwidth */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dL-Transmission-Bandwidth */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_FDD_Info_specs_1 = {
+       sizeof(struct FDD_Info),
+       offsetof(struct FDD_Info, _asn_ctx),
+       asn_MAP_FDD_Info_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_FDD_Info_oms_1, /* Optional members */
+       1, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_FDD_Info = {
+       "FDD-Info",
+       "FDD-Info",
+       &asn_OP_SEQUENCE,
+       asn_DEF_FDD_Info_tags_1,
+       sizeof(asn_DEF_FDD_Info_tags_1)
+               /sizeof(asn_DEF_FDD_Info_tags_1[0]), /* 1 */
+       asn_DEF_FDD_Info_tags_1,        /* Same as above */
+       sizeof(asn_DEF_FDD_Info_tags_1)
+               /sizeof(asn_DEF_FDD_Info_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_FDD_Info_1,
+       5,      /* Elements count */
+       &asn_SPC_FDD_Info_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/FDD-InfoNeighbourServedNRCell-Information.c b/e2ap/lib/FDD-InfoNeighbourServedNRCell-Information.c
new file mode 100644 (file)
index 0000000..b467631
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "FDD-InfoNeighbourServedNRCell-Information.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_FDD_InfoNeighbourServedNRCell_Information_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoNeighbourServedNRCell_Information, ul_NRFreqInfo),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRFreqInfo,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ul-NRFreqInfo"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoNeighbourServedNRCell_Information, dl_NRFreqInfo),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRFreqInfo,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dl-NRFreqInfo"
+               },
+       { ATF_POINTER, 1, offsetof(struct FDD_InfoNeighbourServedNRCell_Information, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P94,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_FDD_InfoNeighbourServedNRCell_Information_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_FDD_InfoNeighbourServedNRCell_Information_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_FDD_InfoNeighbourServedNRCell_Information_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ul-NRFreqInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-NRFreqInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_FDD_InfoNeighbourServedNRCell_Information_specs_1 = {
+       sizeof(struct FDD_InfoNeighbourServedNRCell_Information),
+       offsetof(struct FDD_InfoNeighbourServedNRCell_Information, _asn_ctx),
+       asn_MAP_FDD_InfoNeighbourServedNRCell_Information_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_FDD_InfoNeighbourServedNRCell_Information_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_FDD_InfoNeighbourServedNRCell_Information = {
+       "FDD-InfoNeighbourServedNRCell-Information",
+       "FDD-InfoNeighbourServedNRCell-Information",
+       &asn_OP_SEQUENCE,
+       asn_DEF_FDD_InfoNeighbourServedNRCell_Information_tags_1,
+       sizeof(asn_DEF_FDD_InfoNeighbourServedNRCell_Information_tags_1)
+               /sizeof(asn_DEF_FDD_InfoNeighbourServedNRCell_Information_tags_1[0]), /* 1 */
+       asn_DEF_FDD_InfoNeighbourServedNRCell_Information_tags_1,       /* Same as above */
+       sizeof(asn_DEF_FDD_InfoNeighbourServedNRCell_Information_tags_1)
+               /sizeof(asn_DEF_FDD_InfoNeighbourServedNRCell_Information_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_FDD_InfoNeighbourServedNRCell_Information_1,
+       3,      /* Elements count */
+       &asn_SPC_FDD_InfoNeighbourServedNRCell_Information_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/FDD-InfoServedNRCell-Information.c b/e2ap/lib/FDD-InfoServedNRCell-Information.c
new file mode 100644 (file)
index 0000000..6674a43
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "FDD-InfoServedNRCell-Information.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_FDD_InfoServedNRCell_Information_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoServedNRCell_Information, ul_NRFreqInfo),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRFreqInfo,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ul-NRFreqInfo"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoServedNRCell_Information, dl_NRFreqInfo),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRFreqInfo,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dl-NRFreqInfo"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoServedNRCell_Information, ul_NR_TxBW),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NR_TxBW,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ul-NR-TxBW"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoServedNRCell_Information, dl_NR_TxBW),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NR_TxBW,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dl-NR-TxBW"
+               },
+       { ATF_POINTER, 1, offsetof(struct FDD_InfoServedNRCell_Information, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P93,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_FDD_InfoServedNRCell_Information_oms_1[] = { 4 };
+static const ber_tlv_tag_t asn_DEF_FDD_InfoServedNRCell_Information_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_FDD_InfoServedNRCell_Information_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ul-NRFreqInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-NRFreqInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ul-NR-TxBW */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dl-NR-TxBW */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_FDD_InfoServedNRCell_Information_specs_1 = {
+       sizeof(struct FDD_InfoServedNRCell_Information),
+       offsetof(struct FDD_InfoServedNRCell_Information, _asn_ctx),
+       asn_MAP_FDD_InfoServedNRCell_Information_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_FDD_InfoServedNRCell_Information_oms_1, /* Optional members */
+       1, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_FDD_InfoServedNRCell_Information = {
+       "FDD-InfoServedNRCell-Information",
+       "FDD-InfoServedNRCell-Information",
+       &asn_OP_SEQUENCE,
+       asn_DEF_FDD_InfoServedNRCell_Information_tags_1,
+       sizeof(asn_DEF_FDD_InfoServedNRCell_Information_tags_1)
+               /sizeof(asn_DEF_FDD_InfoServedNRCell_Information_tags_1[0]), /* 1 */
+       asn_DEF_FDD_InfoServedNRCell_Information_tags_1,        /* Same as above */
+       sizeof(asn_DEF_FDD_InfoServedNRCell_Information_tags_1)
+               /sizeof(asn_DEF_FDD_InfoServedNRCell_Information_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_FDD_InfoServedNRCell_Information_1,
+       5,      /* Elements count */
+       &asn_SPC_FDD_InfoServedNRCell_Information_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/FiveGS-TAC.c b/e2ap/lib/FiveGS-TAC.c
new file mode 100644 (file)
index 0000000..a25d4f3
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "FiveGS-TAC.h"
+
+int
+FiveGS_TAC_constraint(const 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 == 3)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_FiveGS_TAC_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       3       /* (SIZE(3..3)) */};
+asn_per_constraints_t asn_PER_type_FiveGS_TAC_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  3,  3 }        /* (SIZE(3..3)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_FiveGS_TAC_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_FiveGS_TAC = {
+       "FiveGS-TAC",
+       "FiveGS-TAC",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_FiveGS_TAC_tags_1,
+       sizeof(asn_DEF_FiveGS_TAC_tags_1)
+               /sizeof(asn_DEF_FiveGS_TAC_tags_1[0]), /* 1 */
+       asn_DEF_FiveGS_TAC_tags_1,      /* Same as above */
+       sizeof(asn_DEF_FiveGS_TAC_tags_1)
+               /sizeof(asn_DEF_FiveGS_TAC_tags_1[0]), /* 1 */
+       { &asn_OER_type_FiveGS_TAC_constr_1, &asn_PER_type_FiveGS_TAC_constr_1, FiveGS_TAC_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ForbiddenInterRATs.c b/e2ap/lib/ForbiddenInterRATs.c
new file mode 100644 (file)
index 0000000..f2004b0
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ForbiddenInterRATs.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ForbiddenInterRATs_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_ForbiddenInterRATs_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_ForbiddenInterRATs_value2enum_1[] = {
+       { 0,    3,      "all" },
+       { 1,    5,      "geran" },
+       { 2,    5,      "utran" },
+       { 3,    8,      "cdma2000" },
+       { 4,    13,     "geranandutran" },
+       { 5,    16,     "cdma2000andutran" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_ForbiddenInterRATs_enum2value_1[] = {
+       0,      /* all(0) */
+       3,      /* cdma2000(3) */
+       5,      /* cdma2000andutran(5) */
+       1,      /* geran(1) */
+       4,      /* geranandutran(4) */
+       2       /* utran(2) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_ForbiddenInterRATs_specs_1 = {
+       asn_MAP_ForbiddenInterRATs_value2enum_1,        /* "tag" => N; sorted by tag */
+       asn_MAP_ForbiddenInterRATs_enum2value_1,        /* N => "tag"; sorted by N */
+       6,      /* 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_ForbiddenInterRATs_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ForbiddenInterRATs = {
+       "ForbiddenInterRATs",
+       "ForbiddenInterRATs",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_ForbiddenInterRATs_tags_1,
+       sizeof(asn_DEF_ForbiddenInterRATs_tags_1)
+               /sizeof(asn_DEF_ForbiddenInterRATs_tags_1[0]), /* 1 */
+       asn_DEF_ForbiddenInterRATs_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ForbiddenInterRATs_tags_1)
+               /sizeof(asn_DEF_ForbiddenInterRATs_tags_1[0]), /* 1 */
+       { &asn_OER_type_ForbiddenInterRATs_constr_1, &asn_PER_type_ForbiddenInterRATs_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_ForbiddenInterRATs_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ForbiddenLACs.c b/e2ap/lib/ForbiddenLACs.c
new file mode 100644 (file)
index 0000000..f6c164a
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ForbiddenLACs.h"
+
+static asn_oer_constraints_t asn_OER_type_ForbiddenLACs_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..4096)) */};
+asn_per_constraints_t asn_PER_type_ForbiddenLACs_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       12,  12,  1,  4096 }   /* (SIZE(1..4096)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ForbiddenLACs_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_LAC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ForbiddenLACs_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ForbiddenLACs_specs_1 = {
+       sizeof(struct ForbiddenLACs),
+       offsetof(struct ForbiddenLACs, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ForbiddenLACs = {
+       "ForbiddenLACs",
+       "ForbiddenLACs",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ForbiddenLACs_tags_1,
+       sizeof(asn_DEF_ForbiddenLACs_tags_1)
+               /sizeof(asn_DEF_ForbiddenLACs_tags_1[0]), /* 1 */
+       asn_DEF_ForbiddenLACs_tags_1,   /* Same as above */
+       sizeof(asn_DEF_ForbiddenLACs_tags_1)
+               /sizeof(asn_DEF_ForbiddenLACs_tags_1[0]), /* 1 */
+       { &asn_OER_type_ForbiddenLACs_constr_1, &asn_PER_type_ForbiddenLACs_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ForbiddenLACs_1,
+       1,      /* Single element */
+       &asn_SPC_ForbiddenLACs_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/ForbiddenLAs-Item.c b/e2ap/lib/ForbiddenLAs-Item.c
new file mode 100644 (file)
index 0000000..7c2f708
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ForbiddenLAs-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ForbiddenLAs_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ForbiddenLAs_Item, pLMN_Identity),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pLMN-Identity"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ForbiddenLAs_Item, forbiddenLACs),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ForbiddenLACs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "forbiddenLACs"
+               },
+       { ATF_POINTER, 1, offsetof(struct ForbiddenLAs_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P147,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ForbiddenLAs_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_ForbiddenLAs_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ForbiddenLAs_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* forbiddenLACs */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ForbiddenLAs_Item_specs_1 = {
+       sizeof(struct ForbiddenLAs_Item),
+       offsetof(struct ForbiddenLAs_Item, _asn_ctx),
+       asn_MAP_ForbiddenLAs_Item_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_ForbiddenLAs_Item_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ForbiddenLAs_Item = {
+       "ForbiddenLAs-Item",
+       "ForbiddenLAs-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ForbiddenLAs_Item_tags_1,
+       sizeof(asn_DEF_ForbiddenLAs_Item_tags_1)
+               /sizeof(asn_DEF_ForbiddenLAs_Item_tags_1[0]), /* 1 */
+       asn_DEF_ForbiddenLAs_Item_tags_1,       /* Same as above */
+       sizeof(asn_DEF_ForbiddenLAs_Item_tags_1)
+               /sizeof(asn_DEF_ForbiddenLAs_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ForbiddenLAs_Item_1,
+       3,      /* Elements count */
+       &asn_SPC_ForbiddenLAs_Item_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/ForbiddenLAs.c b/e2ap/lib/ForbiddenLAs.c
new file mode 100644 (file)
index 0000000..50b9209
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ForbiddenLAs.h"
+
+#include "ForbiddenLAs-Item.h"
+static asn_oer_constraints_t asn_OER_type_ForbiddenLAs_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16)) */};
+asn_per_constraints_t asn_PER_type_ForbiddenLAs_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       4,  4,  1,  16 }       /* (SIZE(1..16)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ForbiddenLAs_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ForbiddenLAs_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ForbiddenLAs_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ForbiddenLAs_specs_1 = {
+       sizeof(struct ForbiddenLAs),
+       offsetof(struct ForbiddenLAs, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ForbiddenLAs = {
+       "ForbiddenLAs",
+       "ForbiddenLAs",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ForbiddenLAs_tags_1,
+       sizeof(asn_DEF_ForbiddenLAs_tags_1)
+               /sizeof(asn_DEF_ForbiddenLAs_tags_1[0]), /* 1 */
+       asn_DEF_ForbiddenLAs_tags_1,    /* Same as above */
+       sizeof(asn_DEF_ForbiddenLAs_tags_1)
+               /sizeof(asn_DEF_ForbiddenLAs_tags_1[0]), /* 1 */
+       { &asn_OER_type_ForbiddenLAs_constr_1, &asn_PER_type_ForbiddenLAs_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ForbiddenLAs_1,
+       1,      /* Single element */
+       &asn_SPC_ForbiddenLAs_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/ForbiddenTACs.c b/e2ap/lib/ForbiddenTACs.c
new file mode 100644 (file)
index 0000000..8926af6
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ForbiddenTACs.h"
+
+static asn_oer_constraints_t asn_OER_type_ForbiddenTACs_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..4096)) */};
+asn_per_constraints_t asn_PER_type_ForbiddenTACs_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       12,  12,  1,  4096 }   /* (SIZE(1..4096)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ForbiddenTACs_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_TAC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ForbiddenTACs_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ForbiddenTACs_specs_1 = {
+       sizeof(struct ForbiddenTACs),
+       offsetof(struct ForbiddenTACs, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ForbiddenTACs = {
+       "ForbiddenTACs",
+       "ForbiddenTACs",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ForbiddenTACs_tags_1,
+       sizeof(asn_DEF_ForbiddenTACs_tags_1)
+               /sizeof(asn_DEF_ForbiddenTACs_tags_1[0]), /* 1 */
+       asn_DEF_ForbiddenTACs_tags_1,   /* Same as above */
+       sizeof(asn_DEF_ForbiddenTACs_tags_1)
+               /sizeof(asn_DEF_ForbiddenTACs_tags_1[0]), /* 1 */
+       { &asn_OER_type_ForbiddenTACs_constr_1, &asn_PER_type_ForbiddenTACs_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ForbiddenTACs_1,
+       1,      /* Single element */
+       &asn_SPC_ForbiddenTACs_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/ForbiddenTAs-Item.c b/e2ap/lib/ForbiddenTAs-Item.c
new file mode 100644 (file)
index 0000000..e1ee1bd
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ForbiddenTAs-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ForbiddenTAs_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ForbiddenTAs_Item, pLMN_Identity),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pLMN-Identity"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ForbiddenTAs_Item, forbiddenTACs),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ForbiddenTACs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "forbiddenTACs"
+               },
+       { ATF_POINTER, 1, offsetof(struct ForbiddenTAs_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P146,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ForbiddenTAs_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_ForbiddenTAs_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ForbiddenTAs_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* forbiddenTACs */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ForbiddenTAs_Item_specs_1 = {
+       sizeof(struct ForbiddenTAs_Item),
+       offsetof(struct ForbiddenTAs_Item, _asn_ctx),
+       asn_MAP_ForbiddenTAs_Item_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_ForbiddenTAs_Item_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ForbiddenTAs_Item = {
+       "ForbiddenTAs-Item",
+       "ForbiddenTAs-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ForbiddenTAs_Item_tags_1,
+       sizeof(asn_DEF_ForbiddenTAs_Item_tags_1)
+               /sizeof(asn_DEF_ForbiddenTAs_Item_tags_1[0]), /* 1 */
+       asn_DEF_ForbiddenTAs_Item_tags_1,       /* Same as above */
+       sizeof(asn_DEF_ForbiddenTAs_Item_tags_1)
+               /sizeof(asn_DEF_ForbiddenTAs_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ForbiddenTAs_Item_1,
+       3,      /* Elements count */
+       &asn_SPC_ForbiddenTAs_Item_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/ForbiddenTAs.c b/e2ap/lib/ForbiddenTAs.c
new file mode 100644 (file)
index 0000000..7930f00
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ForbiddenTAs.h"
+
+#include "ForbiddenTAs-Item.h"
+static asn_oer_constraints_t asn_OER_type_ForbiddenTAs_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16)) */};
+asn_per_constraints_t asn_PER_type_ForbiddenTAs_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       4,  4,  1,  16 }       /* (SIZE(1..16)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ForbiddenTAs_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ForbiddenTAs_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ForbiddenTAs_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ForbiddenTAs_specs_1 = {
+       sizeof(struct ForbiddenTAs),
+       offsetof(struct ForbiddenTAs, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ForbiddenTAs = {
+       "ForbiddenTAs",
+       "ForbiddenTAs",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ForbiddenTAs_tags_1,
+       sizeof(asn_DEF_ForbiddenTAs_tags_1)
+               /sizeof(asn_DEF_ForbiddenTAs_tags_1[0]), /* 1 */
+       asn_DEF_ForbiddenTAs_tags_1,    /* Same as above */
+       sizeof(asn_DEF_ForbiddenTAs_tags_1)
+               /sizeof(asn_DEF_ForbiddenTAs_tags_1[0]), /* 1 */
+       { &asn_OER_type_ForbiddenTAs_constr_1, &asn_PER_type_ForbiddenTAs_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ForbiddenTAs_1,
+       1,      /* Single element */
+       &asn_SPC_ForbiddenTAs_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/Fourframes.c b/e2ap/lib/Fourframes.c
new file mode 100644 (file)
index 0000000..0a0e854
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Fourframes.h"
+
+int
+Fourframes_constraint(const 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 == 24)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_Fourframes_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       24      /* (SIZE(24..24)) */};
+asn_per_constraints_t asn_PER_type_Fourframes_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  24,  24 }      /* (SIZE(24..24)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_Fourframes_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Fourframes = {
+       "Fourframes",
+       "Fourframes",
+       &asn_OP_BIT_STRING,
+       asn_DEF_Fourframes_tags_1,
+       sizeof(asn_DEF_Fourframes_tags_1)
+               /sizeof(asn_DEF_Fourframes_tags_1[0]), /* 1 */
+       asn_DEF_Fourframes_tags_1,      /* Same as above */
+       sizeof(asn_DEF_Fourframes_tags_1)
+               /sizeof(asn_DEF_Fourframes_tags_1[0]), /* 1 */
+       { &asn_OER_type_Fourframes_constr_1, &asn_PER_type_Fourframes_constr_1, Fourframes_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/FreqBandIndicator.c b/e2ap/lib/FreqBandIndicator.c
new file mode 100644 (file)
index 0000000..3f4d73f
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "FreqBandIndicator.h"
+
+int
+FreqBandIndicator_constraint(const 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 >= 1 && value <= 256)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_FreqBandIndicator_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_FreqBandIndicator_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  1,  256 }  /* (1..256,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_FreqBandIndicator_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_FreqBandIndicator = {
+       "FreqBandIndicator",
+       "FreqBandIndicator",
+       &asn_OP_NativeInteger,
+       asn_DEF_FreqBandIndicator_tags_1,
+       sizeof(asn_DEF_FreqBandIndicator_tags_1)
+               /sizeof(asn_DEF_FreqBandIndicator_tags_1[0]), /* 1 */
+       asn_DEF_FreqBandIndicator_tags_1,       /* Same as above */
+       sizeof(asn_DEF_FreqBandIndicator_tags_1)
+               /sizeof(asn_DEF_FreqBandIndicator_tags_1[0]), /* 1 */
+       { &asn_OER_type_FreqBandIndicator_constr_1, &asn_PER_type_FreqBandIndicator_constr_1, FreqBandIndicator_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/FreqBandIndicatorPriority.c b/e2ap/lib/FreqBandIndicatorPriority.c
new file mode 100644 (file)
index 0000000..e8b1fff
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "FreqBandIndicatorPriority.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_FreqBandIndicatorPriority_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_FreqBandIndicatorPriority_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_FreqBandIndicatorPriority_value2enum_1[] = {
+       { 0,    15,     "not-broadcasted" },
+       { 1,    11,     "broadcasted" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_FreqBandIndicatorPriority_enum2value_1[] = {
+       1,      /* broadcasted(1) */
+       0       /* not-broadcasted(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_FreqBandIndicatorPriority_specs_1 = {
+       asn_MAP_FreqBandIndicatorPriority_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_FreqBandIndicatorPriority_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_FreqBandIndicatorPriority_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_FreqBandIndicatorPriority = {
+       "FreqBandIndicatorPriority",
+       "FreqBandIndicatorPriority",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_FreqBandIndicatorPriority_tags_1,
+       sizeof(asn_DEF_FreqBandIndicatorPriority_tags_1)
+               /sizeof(asn_DEF_FreqBandIndicatorPriority_tags_1[0]), /* 1 */
+       asn_DEF_FreqBandIndicatorPriority_tags_1,       /* Same as above */
+       sizeof(asn_DEF_FreqBandIndicatorPriority_tags_1)
+               /sizeof(asn_DEF_FreqBandIndicatorPriority_tags_1[0]), /* 1 */
+       { &asn_OER_type_FreqBandIndicatorPriority_constr_1, &asn_PER_type_FreqBandIndicatorPriority_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_FreqBandIndicatorPriority_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/FreqBandNrItem.c b/e2ap/lib/FreqBandNrItem.c
new file mode 100644 (file)
index 0000000..5d4b581
--- /dev/null
@@ -0,0 +1,186 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "FreqBandNrItem.h"
+
+#include "ProtocolExtensionContainer.h"
+#include "SupportedSULFreqBandItem.h"
+static int
+memb_freqBandIndicatorNr_constraint_1(const 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 >= 1 && value <= 1024)) {
+               /* 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_supportedSULBandList_constraint_1(const 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 <= 32)) {
+               /* Perform validation of the inner elements */
+               return td->encoding_constraints.general_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_oer_constraints_t asn_OER_type_supportedSULBandList_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..32)) */};
+static asn_per_constraints_t asn_PER_type_supportedSULBandList_constr_3 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       6,  6,  0,  32 }       /* (SIZE(0..32)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  10,  10,  1,  1024 }       /* (1..1024,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_supportedSULBandList_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..32)) */};
+static asn_per_constraints_t asn_PER_memb_supportedSULBandList_constr_3 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       6,  6,  0,  32 }       /* (SIZE(0..32)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_supportedSULBandList_3[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SupportedSULFreqBandItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_supportedSULBandList_tags_3[] = {
+       (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_supportedSULBandList_specs_3 = {
+       sizeof(struct FreqBandNrItem__supportedSULBandList),
+       offsetof(struct FreqBandNrItem__supportedSULBandList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_supportedSULBandList_3 = {
+       "supportedSULBandList",
+       "supportedSULBandList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_supportedSULBandList_tags_3,
+       sizeof(asn_DEF_supportedSULBandList_tags_3)
+               /sizeof(asn_DEF_supportedSULBandList_tags_3[0]) - 1, /* 1 */
+       asn_DEF_supportedSULBandList_tags_3,    /* Same as above */
+       sizeof(asn_DEF_supportedSULBandList_tags_3)
+               /sizeof(asn_DEF_supportedSULBandList_tags_3[0]), /* 2 */
+       { &asn_OER_type_supportedSULBandList_constr_3, &asn_PER_type_supportedSULBandList_constr_3, SEQUENCE_OF_constraint },
+       asn_MBR_supportedSULBandList_3,
+       1,      /* Single element */
+       &asn_SPC_supportedSULBandList_specs_3   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_FreqBandNrItem_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct FreqBandNrItem, freqBandIndicatorNr),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_freqBandIndicatorNr_constr_2, &asn_PER_memb_freqBandIndicatorNr_constr_2,  memb_freqBandIndicatorNr_constraint_1 },
+               0, 0, /* No default value */
+               "freqBandIndicatorNr"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct FreqBandNrItem, supportedSULBandList),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               0,
+               &asn_DEF_supportedSULBandList_3,
+               0,
+               { &asn_OER_memb_supportedSULBandList_constr_3, &asn_PER_memb_supportedSULBandList_constr_3,  memb_supportedSULBandList_constraint_1 },
+               0, 0, /* No default value */
+               "supportedSULBandList"
+               },
+       { ATF_POINTER, 1, offsetof(struct FreqBandNrItem, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P148,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_FreqBandNrItem_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_FreqBandNrItem_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_FreqBandNrItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* freqBandIndicatorNr */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* supportedSULBandList */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_FreqBandNrItem_specs_1 = {
+       sizeof(struct FreqBandNrItem),
+       offsetof(struct FreqBandNrItem, _asn_ctx),
+       asn_MAP_FreqBandNrItem_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_FreqBandNrItem_oms_1,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_FreqBandNrItem = {
+       "FreqBandNrItem",
+       "FreqBandNrItem",
+       &asn_OP_SEQUENCE,
+       asn_DEF_FreqBandNrItem_tags_1,
+       sizeof(asn_DEF_FreqBandNrItem_tags_1)
+               /sizeof(asn_DEF_FreqBandNrItem_tags_1[0]), /* 1 */
+       asn_DEF_FreqBandNrItem_tags_1,  /* Same as above */
+       sizeof(asn_DEF_FreqBandNrItem_tags_1)
+               /sizeof(asn_DEF_FreqBandNrItem_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_FreqBandNrItem_1,
+       3,      /* Elements count */
+       &asn_SPC_FreqBandNrItem_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/GBR-QosInformation.c b/e2ap/lib/GBR-QosInformation.c
new file mode 100644 (file)
index 0000000..252de2f
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "GBR-QosInformation.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_GBR_QosInformation_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation, e_RAB_MaximumBitrateDL),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BitRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-MaximumBitrateDL"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation, e_RAB_MaximumBitrateUL),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BitRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-MaximumBitrateUL"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation, e_RAB_GuaranteedBitrateDL),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BitRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-GuaranteedBitrateDL"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation, e_RAB_GuaranteedBitrateUL),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BitRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-GuaranteedBitrateUL"
+               },
+       { ATF_POINTER, 1, offsetof(struct GBR_QosInformation, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P149,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_GBR_QosInformation_oms_1[] = { 4 };
+static const ber_tlv_tag_t asn_DEF_GBR_QosInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GBR_QosInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-MaximumBitrateDL */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-MaximumBitrateUL */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e-RAB-GuaranteedBitrateDL */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* e-RAB-GuaranteedBitrateUL */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_GBR_QosInformation_specs_1 = {
+       sizeof(struct GBR_QosInformation),
+       offsetof(struct GBR_QosInformation, _asn_ctx),
+       asn_MAP_GBR_QosInformation_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_GBR_QosInformation_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_GBR_QosInformation = {
+       "GBR-QosInformation",
+       "GBR-QosInformation",
+       &asn_OP_SEQUENCE,
+       asn_DEF_GBR_QosInformation_tags_1,
+       sizeof(asn_DEF_GBR_QosInformation_tags_1)
+               /sizeof(asn_DEF_GBR_QosInformation_tags_1[0]), /* 1 */
+       asn_DEF_GBR_QosInformation_tags_1,      /* Same as above */
+       sizeof(asn_DEF_GBR_QosInformation_tags_1)
+               /sizeof(asn_DEF_GBR_QosInformation_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_GBR_QosInformation_1,
+       5,      /* Elements count */
+       &asn_SPC_GBR_QosInformation_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/GNB-ID.c b/e2ap/lib/GNB-ID.c
new file mode 100644 (file)
index 0000000..b2c9bb5
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "GNB-ID.h"
+
+static int
+memb_gNB_ID_constraint_1(const 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 >= 22 && size <= 32)) {
+               /* 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_oer_constraints_t asn_OER_memb_gNB_ID_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(22..32)) */};
+static asn_per_constraints_t asn_PER_memb_gNB_ID_constr_2 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       4,  4,  22,  32 }      /* (SIZE(22..32)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_GNB_ID_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_GNB_ID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_GNB_ID_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct GNB_ID, choice.gNB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_gNB_ID_constr_2, &asn_PER_memb_gNB_ID_constr_2,  memb_gNB_ID_constraint_1 },
+               0, 0, /* No default value */
+               "gNB-ID"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_GNB_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-ID */
+};
+asn_CHOICE_specifics_t asn_SPC_GNB_ID_specs_1 = {
+       sizeof(struct GNB_ID),
+       offsetof(struct GNB_ID, _asn_ctx),
+       offsetof(struct GNB_ID, present),
+       sizeof(((struct GNB_ID *)0)->present),
+       asn_MAP_GNB_ID_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0,
+       1       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_GNB_ID = {
+       "GNB-ID",
+       "GNB-ID",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_GNB_ID_constr_1, &asn_PER_type_GNB_ID_constr_1, CHOICE_constraint },
+       asn_MBR_GNB_ID_1,
+       1,      /* Elements count */
+       &asn_SPC_GNB_ID_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/GNBOverloadInformation.c b/e2ap/lib/GNBOverloadInformation.c
new file mode 100644 (file)
index 0000000..f4cd6da
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "GNBOverloadInformation.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_GNBOverloadInformation_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_GNBOverloadInformation_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_GNBOverloadInformation_value2enum_1[] = {
+       { 0,    10,     "overloaded" },
+       { 1,    14,     "not-overloaded" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_GNBOverloadInformation_enum2value_1[] = {
+       1,      /* not-overloaded(1) */
+       0       /* overloaded(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_GNBOverloadInformation_specs_1 = {
+       asn_MAP_GNBOverloadInformation_value2enum_1,    /* "tag" => N; sorted by tag */
+       asn_MAP_GNBOverloadInformation_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_GNBOverloadInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_GNBOverloadInformation = {
+       "GNBOverloadInformation",
+       "GNBOverloadInformation",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_GNBOverloadInformation_tags_1,
+       sizeof(asn_DEF_GNBOverloadInformation_tags_1)
+               /sizeof(asn_DEF_GNBOverloadInformation_tags_1[0]), /* 1 */
+       asn_DEF_GNBOverloadInformation_tags_1,  /* Same as above */
+       sizeof(asn_DEF_GNBOverloadInformation_tags_1)
+               /sizeof(asn_DEF_GNBOverloadInformation_tags_1[0]), /* 1 */
+       { &asn_OER_type_GNBOverloadInformation_constr_1, &asn_PER_type_GNBOverloadInformation_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_GNBOverloadInformation_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/GNBStatusIndication.c b/e2ap/lib/GNBStatusIndication.c
new file mode 100644 (file)
index 0000000..fc0780a
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "GNBStatusIndication.h"
+
+asn_TYPE_member_t asn_MBR_GNBStatusIndication_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct GNBStatusIndication, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P119,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_GNBStatusIndication_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GNBStatusIndication_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_GNBStatusIndication_specs_1 = {
+       sizeof(struct GNBStatusIndication),
+       offsetof(struct GNBStatusIndication, _asn_ctx),
+       asn_MAP_GNBStatusIndication_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_GNBStatusIndication = {
+       "GNBStatusIndication",
+       "GNBStatusIndication",
+       &asn_OP_SEQUENCE,
+       asn_DEF_GNBStatusIndication_tags_1,
+       sizeof(asn_DEF_GNBStatusIndication_tags_1)
+               /sizeof(asn_DEF_GNBStatusIndication_tags_1[0]), /* 1 */
+       asn_DEF_GNBStatusIndication_tags_1,     /* Same as above */
+       sizeof(asn_DEF_GNBStatusIndication_tags_1)
+               /sizeof(asn_DEF_GNBStatusIndication_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_GNBStatusIndication_1,
+       1,      /* Elements count */
+       &asn_SPC_GNBStatusIndication_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/GTP-TEI.c b/e2ap/lib/GTP-TEI.c
new file mode 100644 (file)
index 0000000..cecb2a7
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "GTP-TEI.h"
+
+int
+GTP_TEI_constraint(const 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 == 4)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_GTP_TEI_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       4       /* (SIZE(4..4)) */};
+asn_per_constraints_t asn_PER_type_GTP_TEI_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  4,  4 }        /* (SIZE(4..4)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_GTP_TEI_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_GTP_TEI = {
+       "GTP-TEI",
+       "GTP-TEI",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_GTP_TEI_tags_1,
+       sizeof(asn_DEF_GTP_TEI_tags_1)
+               /sizeof(asn_DEF_GTP_TEI_tags_1[0]), /* 1 */
+       asn_DEF_GTP_TEI_tags_1, /* Same as above */
+       sizeof(asn_DEF_GTP_TEI_tags_1)
+               /sizeof(asn_DEF_GTP_TEI_tags_1[0]), /* 1 */
+       { &asn_OER_type_GTP_TEI_constr_1, &asn_PER_type_GTP_TEI_constr_1, GTP_TEI_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/GTPtunnelEndpoint.c b/e2ap/lib/GTPtunnelEndpoint.c
new file mode 100644 (file)
index 0000000..8d8eeb3
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "GTPtunnelEndpoint.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_GTPtunnelEndpoint_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct GTPtunnelEndpoint, transportLayerAddress),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TransportLayerAddress,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "transportLayerAddress"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct GTPtunnelEndpoint, gTP_TEID),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GTP_TEI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "gTP-TEID"
+               },
+       { ATF_POINTER, 1, offsetof(struct GTPtunnelEndpoint, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P152,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_GTPtunnelEndpoint_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_GTPtunnelEndpoint_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GTPtunnelEndpoint_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transportLayerAddress */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gTP-TEID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_GTPtunnelEndpoint_specs_1 = {
+       sizeof(struct GTPtunnelEndpoint),
+       offsetof(struct GTPtunnelEndpoint, _asn_ctx),
+       asn_MAP_GTPtunnelEndpoint_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_GTPtunnelEndpoint_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_GTPtunnelEndpoint = {
+       "GTPtunnelEndpoint",
+       "GTPtunnelEndpoint",
+       &asn_OP_SEQUENCE,
+       asn_DEF_GTPtunnelEndpoint_tags_1,
+       sizeof(asn_DEF_GTPtunnelEndpoint_tags_1)
+               /sizeof(asn_DEF_GTPtunnelEndpoint_tags_1[0]), /* 1 */
+       asn_DEF_GTPtunnelEndpoint_tags_1,       /* Same as above */
+       sizeof(asn_DEF_GTPtunnelEndpoint_tags_1)
+               /sizeof(asn_DEF_GTPtunnelEndpoint_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_GTPtunnelEndpoint_1,
+       3,      /* Elements count */
+       &asn_SPC_GTPtunnelEndpoint_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/GU-Group-ID.c b/e2ap/lib/GU-Group-ID.c
new file mode 100644 (file)
index 0000000..30320a3
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "GU-Group-ID.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_GU_Group_ID_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct GU_Group_ID, pLMN_Identity),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pLMN-Identity"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct GU_Group_ID, mME_Group_ID),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_MME_Group_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "mME-Group-ID"
+               },
+       { ATF_POINTER, 1, offsetof(struct GU_Group_ID, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P153,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_GU_Group_ID_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_GU_Group_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GU_Group_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mME-Group-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_GU_Group_ID_specs_1 = {
+       sizeof(struct GU_Group_ID),
+       offsetof(struct GU_Group_ID, _asn_ctx),
+       asn_MAP_GU_Group_ID_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_GU_Group_ID_oms_1,      /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_GU_Group_ID = {
+       "GU-Group-ID",
+       "GU-Group-ID",
+       &asn_OP_SEQUENCE,
+       asn_DEF_GU_Group_ID_tags_1,
+       sizeof(asn_DEF_GU_Group_ID_tags_1)
+               /sizeof(asn_DEF_GU_Group_ID_tags_1[0]), /* 1 */
+       asn_DEF_GU_Group_ID_tags_1,     /* Same as above */
+       sizeof(asn_DEF_GU_Group_ID_tags_1)
+               /sizeof(asn_DEF_GU_Group_ID_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_GU_Group_ID_1,
+       3,      /* Elements count */
+       &asn_SPC_GU_Group_ID_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/GUGroupIDList.c b/e2ap/lib/GUGroupIDList.c
new file mode 100644 (file)
index 0000000..b0d7543
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "GUGroupIDList.h"
+
+#include "GU-Group-ID.h"
+static asn_oer_constraints_t asn_OER_type_GUGroupIDList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16)) */};
+static asn_per_constraints_t asn_PER_type_GUGroupIDList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       4,  4,  1,  16 }       /* (SIZE(1..16)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GUGroupIDList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GU_Group_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_GUGroupIDList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_GUGroupIDList_specs_1 = {
+       sizeof(struct GUGroupIDList),
+       offsetof(struct GUGroupIDList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_GUGroupIDList = {
+       "GUGroupIDList",
+       "GUGroupIDList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_GUGroupIDList_tags_1,
+       sizeof(asn_DEF_GUGroupIDList_tags_1)
+               /sizeof(asn_DEF_GUGroupIDList_tags_1[0]), /* 1 */
+       asn_DEF_GUGroupIDList_tags_1,   /* Same as above */
+       sizeof(asn_DEF_GUGroupIDList_tags_1)
+               /sizeof(asn_DEF_GUGroupIDList_tags_1[0]), /* 1 */
+       { &asn_OER_type_GUGroupIDList_constr_1, &asn_PER_type_GUGroupIDList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_GUGroupIDList_1,
+       1,      /* Single element */
+       &asn_SPC_GUGroupIDList_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/GUMMEI.c b/e2ap/lib/GUMMEI.c
new file mode 100644 (file)
index 0000000..29e89e5
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "GUMMEI.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_GUMMEI_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct GUMMEI, gU_Group_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GU_Group_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "gU-Group-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct GUMMEI, mME_Code),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_MME_Code,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "mME-Code"
+               },
+       { ATF_POINTER, 1, offsetof(struct GUMMEI, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P154,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_GUMMEI_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_GUMMEI_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GUMMEI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gU-Group-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mME-Code */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GUMMEI_specs_1 = {
+       sizeof(struct GUMMEI),
+       offsetof(struct GUMMEI, _asn_ctx),
+       asn_MAP_GUMMEI_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_GUMMEI_oms_1,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_GUMMEI = {
+       "GUMMEI",
+       "GUMMEI",
+       &asn_OP_SEQUENCE,
+       asn_DEF_GUMMEI_tags_1,
+       sizeof(asn_DEF_GUMMEI_tags_1)
+               /sizeof(asn_DEF_GUMMEI_tags_1[0]), /* 1 */
+       asn_DEF_GUMMEI_tags_1,  /* Same as above */
+       sizeof(asn_DEF_GUMMEI_tags_1)
+               /sizeof(asn_DEF_GUMMEI_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_GUMMEI_1,
+       3,      /* Elements count */
+       &asn_SPC_GUMMEI_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/GlobalENB-ID.c b/e2ap/lib/GlobalENB-ID.c
new file mode 100644 (file)
index 0000000..bdc0f83
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "GlobalENB-ID.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_GlobalENB_ID_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID, pLMN_Identity),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pLMN-Identity"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID, eNB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_ENB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "eNB-ID"
+               },
+       { ATF_POINTER, 1, offsetof(struct GlobalENB_ID, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P150,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_GlobalENB_ID_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_GlobalENB_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GlobalENB_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1 = {
+       sizeof(struct GlobalENB_ID),
+       offsetof(struct GlobalENB_ID, _asn_ctx),
+       asn_MAP_GlobalENB_ID_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_GlobalENB_ID_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID = {
+       "GlobalENB-ID",
+       "GlobalENB-ID",
+       &asn_OP_SEQUENCE,
+       asn_DEF_GlobalENB_ID_tags_1,
+       sizeof(asn_DEF_GlobalENB_ID_tags_1)
+               /sizeof(asn_DEF_GlobalENB_ID_tags_1[0]), /* 1 */
+       asn_DEF_GlobalENB_ID_tags_1,    /* Same as above */
+       sizeof(asn_DEF_GlobalENB_ID_tags_1)
+               /sizeof(asn_DEF_GlobalENB_ID_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_GlobalENB_ID_1,
+       3,      /* Elements count */
+       &asn_SPC_GlobalENB_ID_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/GlobalGNB-ID.c b/e2ap/lib/GlobalGNB-ID.c
new file mode 100644 (file)
index 0000000..0bab5b9
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "GlobalGNB-ID.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_GlobalGNB_ID_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct GlobalGNB_ID, pLMN_Identity),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pLMN-Identity"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct GlobalGNB_ID, gNB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_GNB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "gNB-ID"
+               },
+       { ATF_POINTER, 1, offsetof(struct GlobalGNB_ID, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P151,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_GlobalGNB_ID_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_GlobalGNB_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GlobalGNB_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_GlobalGNB_ID_specs_1 = {
+       sizeof(struct GlobalGNB_ID),
+       offsetof(struct GlobalGNB_ID, _asn_ctx),
+       asn_MAP_GlobalGNB_ID_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_GlobalGNB_ID_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_GlobalGNB_ID = {
+       "GlobalGNB-ID",
+       "GlobalGNB-ID",
+       &asn_OP_SEQUENCE,
+       asn_DEF_GlobalGNB_ID_tags_1,
+       sizeof(asn_DEF_GlobalGNB_ID_tags_1)
+               /sizeof(asn_DEF_GlobalGNB_ID_tags_1[0]), /* 1 */
+       asn_DEF_GlobalGNB_ID_tags_1,    /* Same as above */
+       sizeof(asn_DEF_GlobalGNB_ID_tags_1)
+               /sizeof(asn_DEF_GlobalGNB_ID_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_GlobalGNB_ID_1,
+       3,      /* Elements count */
+       &asn_SPC_GlobalGNB_ID_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/HFN.c b/e2ap/lib/HFN.c
new file mode 100644 (file)
index 0000000..3a74251
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "HFN.h"
+
+int
+HFN_constraint(const 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 >= 0 && value <= 1048575)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_HFN_constr_1 CC_NOTUSED = {
+       { 4, 1 }        /* (0..1048575) */,
+       -1};
+asn_per_constraints_t asn_PER_type_HFN_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       20, -1,  0,  1048575 } /* (0..1048575) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_HFN_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_HFN = {
+       "HFN",
+       "HFN",
+       &asn_OP_NativeInteger,
+       asn_DEF_HFN_tags_1,
+       sizeof(asn_DEF_HFN_tags_1)
+               /sizeof(asn_DEF_HFN_tags_1[0]), /* 1 */
+       asn_DEF_HFN_tags_1,     /* Same as above */
+       sizeof(asn_DEF_HFN_tags_1)
+               /sizeof(asn_DEF_HFN_tags_1[0]), /* 1 */
+       { &asn_OER_type_HFN_constr_1, &asn_PER_type_HFN_constr_1, HFN_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/HFNModified.c b/e2ap/lib/HFNModified.c
new file mode 100644 (file)
index 0000000..4fe9e56
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "HFNModified.h"
+
+int
+HFNModified_constraint(const 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 >= 0 && value <= 131071)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_HFNModified_constr_1 CC_NOTUSED = {
+       { 4, 1 }        /* (0..131071) */,
+       -1};
+asn_per_constraints_t asn_PER_type_HFNModified_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       17, -1,  0,  131071 }  /* (0..131071) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_HFNModified_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_HFNModified = {
+       "HFNModified",
+       "HFNModified",
+       &asn_OP_NativeInteger,
+       asn_DEF_HFNModified_tags_1,
+       sizeof(asn_DEF_HFNModified_tags_1)
+               /sizeof(asn_DEF_HFNModified_tags_1[0]), /* 1 */
+       asn_DEF_HFNModified_tags_1,     /* Same as above */
+       sizeof(asn_DEF_HFNModified_tags_1)
+               /sizeof(asn_DEF_HFNModified_tags_1[0]), /* 1 */
+       { &asn_OER_type_HFNModified_constr_1, &asn_PER_type_HFNModified_constr_1, HFNModified_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/HFNforPDCP-SNlength18.c b/e2ap/lib/HFNforPDCP-SNlength18.c
new file mode 100644 (file)
index 0000000..1bfb28b
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "HFNforPDCP-SNlength18.h"
+
+int
+HFNforPDCP_SNlength18_constraint(const 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 >= 0 && value <= 16383)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_HFNforPDCP_SNlength18_constr_1 CC_NOTUSED = {
+       { 2, 1 }        /* (0..16383) */,
+       -1};
+asn_per_constraints_t asn_PER_type_HFNforPDCP_SNlength18_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       14,  14,  0,  16383 }  /* (0..16383) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_HFNforPDCP_SNlength18_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_HFNforPDCP_SNlength18 = {
+       "HFNforPDCP-SNlength18",
+       "HFNforPDCP-SNlength18",
+       &asn_OP_NativeInteger,
+       asn_DEF_HFNforPDCP_SNlength18_tags_1,
+       sizeof(asn_DEF_HFNforPDCP_SNlength18_tags_1)
+               /sizeof(asn_DEF_HFNforPDCP_SNlength18_tags_1[0]), /* 1 */
+       asn_DEF_HFNforPDCP_SNlength18_tags_1,   /* Same as above */
+       sizeof(asn_DEF_HFNforPDCP_SNlength18_tags_1)
+               /sizeof(asn_DEF_HFNforPDCP_SNlength18_tags_1[0]), /* 1 */
+       { &asn_OER_type_HFNforPDCP_SNlength18_constr_1, &asn_PER_type_HFNforPDCP_SNlength18_constr_1, HFNforPDCP_SNlength18_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/HWLoadIndicator.c b/e2ap/lib/HWLoadIndicator.c
new file mode 100644 (file)
index 0000000..dfa0073
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "HWLoadIndicator.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_HWLoadIndicator_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HWLoadIndicator, dLHWLoadIndicator),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_LoadIndicator,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dLHWLoadIndicator"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HWLoadIndicator, uLHWLoadIndicator),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_LoadIndicator,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uLHWLoadIndicator"
+               },
+       { ATF_POINTER, 1, offsetof(struct HWLoadIndicator, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P156,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_HWLoadIndicator_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_HWLoadIndicator_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_HWLoadIndicator_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dLHWLoadIndicator */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uLHWLoadIndicator */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_HWLoadIndicator_specs_1 = {
+       sizeof(struct HWLoadIndicator),
+       offsetof(struct HWLoadIndicator, _asn_ctx),
+       asn_MAP_HWLoadIndicator_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_HWLoadIndicator_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_HWLoadIndicator = {
+       "HWLoadIndicator",
+       "HWLoadIndicator",
+       &asn_OP_SEQUENCE,
+       asn_DEF_HWLoadIndicator_tags_1,
+       sizeof(asn_DEF_HWLoadIndicator_tags_1)
+               /sizeof(asn_DEF_HWLoadIndicator_tags_1[0]), /* 1 */
+       asn_DEF_HWLoadIndicator_tags_1, /* Same as above */
+       sizeof(asn_DEF_HWLoadIndicator_tags_1)
+               /sizeof(asn_DEF_HWLoadIndicator_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_HWLoadIndicator_1,
+       3,      /* Elements count */
+       &asn_SPC_HWLoadIndicator_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/HandoverCancel.c b/e2ap/lib/HandoverCancel.c
new file mode 100644 (file)
index 0000000..19f03e7
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "HandoverCancel.h"
+
+asn_TYPE_member_t asn_MBR_HandoverCancel_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverCancel, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P20,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_HandoverCancel_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_HandoverCancel_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_HandoverCancel_specs_1 = {
+       sizeof(struct HandoverCancel),
+       offsetof(struct HandoverCancel, _asn_ctx),
+       asn_MAP_HandoverCancel_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_HandoverCancel = {
+       "HandoverCancel",
+       "HandoverCancel",
+       &asn_OP_SEQUENCE,
+       asn_DEF_HandoverCancel_tags_1,
+       sizeof(asn_DEF_HandoverCancel_tags_1)
+               /sizeof(asn_DEF_HandoverCancel_tags_1[0]), /* 1 */
+       asn_DEF_HandoverCancel_tags_1,  /* Same as above */
+       sizeof(asn_DEF_HandoverCancel_tags_1)
+               /sizeof(asn_DEF_HandoverCancel_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_HandoverCancel_1,
+       1,      /* Elements count */
+       &asn_SPC_HandoverCancel_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/HandoverPreparationFailure.c b/e2ap/lib/HandoverPreparationFailure.c
new file mode 100644 (file)
index 0000000..93ba0a9
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "HandoverPreparationFailure.h"
+
+asn_TYPE_member_t asn_MBR_HandoverPreparationFailure_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationFailure, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P16,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_HandoverPreparationFailure_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_HandoverPreparationFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_HandoverPreparationFailure_specs_1 = {
+       sizeof(struct HandoverPreparationFailure),
+       offsetof(struct HandoverPreparationFailure, _asn_ctx),
+       asn_MAP_HandoverPreparationFailure_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_HandoverPreparationFailure = {
+       "HandoverPreparationFailure",
+       "HandoverPreparationFailure",
+       &asn_OP_SEQUENCE,
+       asn_DEF_HandoverPreparationFailure_tags_1,
+       sizeof(asn_DEF_HandoverPreparationFailure_tags_1)
+               /sizeof(asn_DEF_HandoverPreparationFailure_tags_1[0]), /* 1 */
+       asn_DEF_HandoverPreparationFailure_tags_1,      /* Same as above */
+       sizeof(asn_DEF_HandoverPreparationFailure_tags_1)
+               /sizeof(asn_DEF_HandoverPreparationFailure_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_HandoverPreparationFailure_1,
+       1,      /* Elements count */
+       &asn_SPC_HandoverPreparationFailure_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/HandoverReport.c b/e2ap/lib/HandoverReport.c
new file mode 100644 (file)
index 0000000..9ade6ec
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "HandoverReport.h"
+
+asn_TYPE_member_t asn_MBR_HandoverReport_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverReport, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P17,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_HandoverReport_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_HandoverReport_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_HandoverReport_specs_1 = {
+       sizeof(struct HandoverReport),
+       offsetof(struct HandoverReport, _asn_ctx),
+       asn_MAP_HandoverReport_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_HandoverReport = {
+       "HandoverReport",
+       "HandoverReport",
+       &asn_OP_SEQUENCE,
+       asn_DEF_HandoverReport_tags_1,
+       sizeof(asn_DEF_HandoverReport_tags_1)
+               /sizeof(asn_DEF_HandoverReport_tags_1[0]), /* 1 */
+       asn_DEF_HandoverReport_tags_1,  /* Same as above */
+       sizeof(asn_DEF_HandoverReport_tags_1)
+               /sizeof(asn_DEF_HandoverReport_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_HandoverReport_1,
+       1,      /* Elements count */
+       &asn_SPC_HandoverReport_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/HandoverReportType.c b/e2ap/lib/HandoverReportType.c
new file mode 100644 (file)
index 0000000..03a68ce
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "HandoverReportType.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_HandoverReportType_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_HandoverReportType_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_HandoverReportType_value2enum_1[] = {
+       { 0,    10,     "hoTooEarly" },
+       { 1,    13,     "hoToWrongCell" },
+       { 2,    16,     "interRATpingpong" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_HandoverReportType_enum2value_1[] = {
+       1,      /* hoToWrongCell(1) */
+       0,      /* hoTooEarly(0) */
+       2       /* interRATpingpong(2) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_HandoverReportType_specs_1 = {
+       asn_MAP_HandoverReportType_value2enum_1,        /* "tag" => N; sorted by tag */
+       asn_MAP_HandoverReportType_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_HandoverReportType_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_HandoverReportType = {
+       "HandoverReportType",
+       "HandoverReportType",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_HandoverReportType_tags_1,
+       sizeof(asn_DEF_HandoverReportType_tags_1)
+               /sizeof(asn_DEF_HandoverReportType_tags_1[0]), /* 1 */
+       asn_DEF_HandoverReportType_tags_1,      /* Same as above */
+       sizeof(asn_DEF_HandoverReportType_tags_1)
+               /sizeof(asn_DEF_HandoverReportType_tags_1[0]), /* 1 */
+       { &asn_OER_type_HandoverReportType_constr_1, &asn_PER_type_HandoverReportType_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_HandoverReportType_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/HandoverRequest.c b/e2ap/lib/HandoverRequest.c
new file mode 100644 (file)
index 0000000..fcae7fe
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "HandoverRequest.h"
+
+asn_TYPE_member_t asn_MBR_HandoverRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P14,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_HandoverRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_HandoverRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_HandoverRequest_specs_1 = {
+       sizeof(struct HandoverRequest),
+       offsetof(struct HandoverRequest, _asn_ctx),
+       asn_MAP_HandoverRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_HandoverRequest = {
+       "HandoverRequest",
+       "HandoverRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_HandoverRequest_tags_1,
+       sizeof(asn_DEF_HandoverRequest_tags_1)
+               /sizeof(asn_DEF_HandoverRequest_tags_1[0]), /* 1 */
+       asn_DEF_HandoverRequest_tags_1, /* Same as above */
+       sizeof(asn_DEF_HandoverRequest_tags_1)
+               /sizeof(asn_DEF_HandoverRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_HandoverRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_HandoverRequest_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/HandoverRequestAcknowledge.c b/e2ap/lib/HandoverRequestAcknowledge.c
new file mode 100644 (file)
index 0000000..d281e24
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "HandoverRequestAcknowledge.h"
+
+asn_TYPE_member_t asn_MBR_HandoverRequestAcknowledge_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P15,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_HandoverRequestAcknowledge_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_HandoverRequestAcknowledge_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_HandoverRequestAcknowledge_specs_1 = {
+       sizeof(struct HandoverRequestAcknowledge),
+       offsetof(struct HandoverRequestAcknowledge, _asn_ctx),
+       asn_MAP_HandoverRequestAcknowledge_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_HandoverRequestAcknowledge = {
+       "HandoverRequestAcknowledge",
+       "HandoverRequestAcknowledge",
+       &asn_OP_SEQUENCE,
+       asn_DEF_HandoverRequestAcknowledge_tags_1,
+       sizeof(asn_DEF_HandoverRequestAcknowledge_tags_1)
+               /sizeof(asn_DEF_HandoverRequestAcknowledge_tags_1[0]), /* 1 */
+       asn_DEF_HandoverRequestAcknowledge_tags_1,      /* Same as above */
+       sizeof(asn_DEF_HandoverRequestAcknowledge_tags_1)
+               /sizeof(asn_DEF_HandoverRequestAcknowledge_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_HandoverRequestAcknowledge_1,
+       1,      /* Elements count */
+       &asn_SPC_HandoverRequestAcknowledge_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/HandoverRestrictionList.c b/e2ap/lib/HandoverRestrictionList.c
new file mode 100644 (file)
index 0000000..97dc652
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "HandoverRestrictionList.h"
+
+#include "EPLMNs.h"
+#include "ForbiddenTAs.h"
+#include "ForbiddenLAs.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_HandoverRestrictionList_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRestrictionList, servingPLMN),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "servingPLMN"
+               },
+       { ATF_POINTER, 5, offsetof(struct HandoverRestrictionList, equivalentPLMNs),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EPLMNs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "equivalentPLMNs"
+               },
+       { ATF_POINTER, 4, offsetof(struct HandoverRestrictionList, forbiddenTAs),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ForbiddenTAs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "forbiddenTAs"
+               },
+       { ATF_POINTER, 3, offsetof(struct HandoverRestrictionList, forbiddenLAs),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ForbiddenLAs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "forbiddenLAs"
+               },
+       { ATF_POINTER, 2, offsetof(struct HandoverRestrictionList, forbiddenInterRATs),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ForbiddenInterRATs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "forbiddenInterRATs"
+               },
+       { ATF_POINTER, 1, offsetof(struct HandoverRestrictionList, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P155,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_HandoverRestrictionList_oms_1[] = { 1, 2, 3, 4, 5 };
+static const ber_tlv_tag_t asn_DEF_HandoverRestrictionList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_HandoverRestrictionList_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servingPLMN */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* equivalentPLMNs */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* forbiddenTAs */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* forbiddenLAs */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* forbiddenInterRATs */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_HandoverRestrictionList_specs_1 = {
+       sizeof(struct HandoverRestrictionList),
+       offsetof(struct HandoverRestrictionList, _asn_ctx),
+       asn_MAP_HandoverRestrictionList_tag2el_1,
+       6,      /* Count of tags in the map */
+       asn_MAP_HandoverRestrictionList_oms_1,  /* Optional members */
+       5, 0,   /* Root/Additions */
+       6,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_HandoverRestrictionList = {
+       "HandoverRestrictionList",
+       "HandoverRestrictionList",
+       &asn_OP_SEQUENCE,
+       asn_DEF_HandoverRestrictionList_tags_1,
+       sizeof(asn_DEF_HandoverRestrictionList_tags_1)
+               /sizeof(asn_DEF_HandoverRestrictionList_tags_1[0]), /* 1 */
+       asn_DEF_HandoverRestrictionList_tags_1, /* Same as above */
+       sizeof(asn_DEF_HandoverRestrictionList_tags_1)
+               /sizeof(asn_DEF_HandoverRestrictionList_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_HandoverRestrictionList_1,
+       6,      /* Elements count */
+       &asn_SPC_HandoverRestrictionList_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/INTEGER.c b/e2ap/lib/INTEGER.c
new file mode 100644 (file)
index 0000000..2a2f4d7
--- /dev/null
@@ -0,0 +1,1735 @@
+/*-
+ * Copyright (c) 2003-2014 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <INTEGER.h>
+#include <asn_codecs_prim.h>   /* Encoder and decoder of a primitive type */
+#include <errno.h>
+
+/*
+ * INTEGER basic type description.
+ */
+static const ber_tlv_tag_t asn_DEF_INTEGER_tags[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_operation_t asn_OP_INTEGER = {
+       INTEGER_free,
+       INTEGER_print,
+       INTEGER_compare,
+       ber_decode_primitive,
+       INTEGER_encode_der,
+       INTEGER_decode_xer,
+       INTEGER_encode_xer,
+#ifdef  ASN_DISABLE_OER_SUPPORT
+       0,
+       0,
+#else
+       INTEGER_decode_oer,     /* OER decoder */
+       INTEGER_encode_oer,     /* Canonical OER encoder */
+#endif  /* ASN_DISABLE_OER_SUPPORT */
+#ifdef ASN_DISABLE_PER_SUPPORT
+       0,
+       0,
+       0,
+       0,
+#else
+       INTEGER_decode_uper,    /* Unaligned PER decoder */
+       INTEGER_encode_uper,    /* Unaligned PER encoder */
+       INTEGER_decode_aper,    /* Aligned PER decoder */
+       INTEGER_encode_aper,    /* Aligned PER encoder */
+#endif /* ASN_DISABLE_PER_SUPPORT */
+       INTEGER_random_fill,
+       0       /* Use generic outmost tag fetcher */
+};
+asn_TYPE_descriptor_t asn_DEF_INTEGER = {
+       "INTEGER",
+       "INTEGER",
+       &asn_OP_INTEGER,
+       asn_DEF_INTEGER_tags,
+       sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]),
+       asn_DEF_INTEGER_tags,   /* Same as above */
+       sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]),
+       { 0, 0, asn_generic_no_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
+/*
+ * Encode INTEGER type using DER.
+ */
+asn_enc_rval_t
+INTEGER_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr,
+                   int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb,
+                   void *app_key) {
+    const INTEGER_t *st = (const INTEGER_t *)sptr;
+    asn_enc_rval_t rval;
+    INTEGER_t effective_integer;
+
+       ASN_DEBUG("%s %s as INTEGER (tm=%d)",
+               cb?"Encoding":"Estimating", td->name, tag_mode);
+
+       /*
+        * Canonicalize integer in the buffer.
+        * (Remove too long sign extension, remove some first 0x00 bytes)
+        */
+       if(st->buf) {
+               uint8_t *buf = st->buf;
+               uint8_t *end1 = buf + st->size - 1;
+               int shift;
+
+               /* Compute the number of superfluous leading bytes */
+               for(; buf < end1; buf++) {
+                       /*
+                        * If the contents octets of an integer value encoding
+                        * consist of more than one octet, then the bits of the
+                        * first octet and bit 8 of the second octet:
+                        * a) shall not all be ones; and
+                        * b) shall not all be zero.
+                        */
+                       switch(*buf) {
+                       case 0x00: if((buf[1] & 0x80) == 0)
+                                       continue;
+                               break;
+                       case 0xff: if((buf[1] & 0x80))
+                                       continue;
+                               break;
+                       }
+                       break;
+               }
+
+               /* Remove leading superfluous bytes from the integer */
+               shift = buf - st->buf;
+               if(shift) {
+            union {
+                const uint8_t *c_buf;
+                uint8_t *nc_buf;
+            } unconst;
+            unconst.c_buf = st->buf;
+            effective_integer.buf = unconst.nc_buf + shift;
+            effective_integer.size = st->size - shift;
+
+            st = &effective_integer;
+        }
+    }
+
+    rval = der_encode_primitive(td, st, tag_mode, tag, cb, app_key);
+    if(rval.structure_ptr == &effective_integer) {
+        rval.structure_ptr = sptr;
+    }
+    return rval;
+}
+
+static const asn_INTEGER_enum_map_t *INTEGER_map_enum2value(
+    const asn_INTEGER_specifics_t *specs, const char *lstart,
+    const char *lstop);
+
+/*
+ * INTEGER specific human-readable output.
+ */
+static ssize_t
+INTEGER__dump(const asn_TYPE_descriptor_t *td, const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key, int plainOrXER) {
+    const asn_INTEGER_specifics_t *specs =
+        (const asn_INTEGER_specifics_t *)td->specifics;
+       char scratch[32];
+       uint8_t *buf = st->buf;
+       uint8_t *buf_end = st->buf + st->size;
+       intmax_t value;
+       ssize_t wrote = 0;
+       char *p;
+       int ret;
+
+       if(specs && specs->field_unsigned)
+               ret = asn_INTEGER2umax(st, (uintmax_t *)&value);
+       else
+               ret = asn_INTEGER2imax(st, &value);
+
+       /* Simple case: the integer size is small */
+       if(ret == 0) {
+               const asn_INTEGER_enum_map_t *el;
+               el = (value >= 0 || !specs || !specs->field_unsigned)
+                       ? INTEGER_map_value2enum(specs, value) : 0;
+               if(el) {
+                       if(plainOrXER == 0)
+                               return asn__format_to_callback(cb, app_key,
+                                       "%" ASN_PRIdMAX " (%s)", value, el->enum_name);
+                       else
+                               return asn__format_to_callback(cb, app_key,
+                                       "<%s/>", el->enum_name);
+               } else if(plainOrXER && specs && specs->strict_enumeration) {
+                       ASN_DEBUG("ASN.1 forbids dealing with "
+                               "unknown value of ENUMERATED type");
+                       errno = EPERM;
+                       return -1;
+               } else {
+            return asn__format_to_callback(cb, app_key,
+                                           (specs && specs->field_unsigned)
+                                               ? "%" ASN_PRIuMAX
+                                               : "%" ASN_PRIdMAX,
+                                           value);
+        }
+       } else if(plainOrXER && specs && specs->strict_enumeration) {
+               /*
+                * Here and earlier, we cannot encode the ENUMERATED values
+                * if there is no corresponding identifier.
+                */
+               ASN_DEBUG("ASN.1 forbids dealing with "
+                       "unknown value of ENUMERATED type");
+               errno = EPERM;
+               return -1;
+       }
+
+       /* Output in the long xx:yy:zz... format */
+       /* TODO: replace with generic algorithm (Knuth TAOCP Vol 2, 4.3.1) */
+       for(p = scratch; buf < buf_end; buf++) {
+               const char * const h2c = "0123456789ABCDEF";
+               if((p - scratch) >= (ssize_t)(sizeof(scratch) - 4)) {
+                       /* Flush buffer */
+                       if(cb(scratch, p - scratch, app_key) < 0)
+                               return -1;
+                       wrote += p - scratch;
+                       p = scratch;
+               }
+               *p++ = h2c[*buf >> 4];
+               *p++ = h2c[*buf & 0x0F];
+               *p++ = 0x3a;    /* ":" */
+       }
+       if(p != scratch)
+               p--;    /* Remove the last ":" */
+
+       wrote += p - scratch;
+       return (cb(scratch, p - scratch, app_key) < 0) ? -1 : wrote;
+}
+
+/*
+ * INTEGER specific human-readable output.
+ */
+int
+INTEGER_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
+              asn_app_consume_bytes_f *cb, void *app_key) {
+    const INTEGER_t *st = (const INTEGER_t *)sptr;
+       ssize_t ret;
+
+       (void)ilevel;
+
+       if(!st || !st->buf)
+               ret = cb("<absent>", 8, app_key);
+       else
+               ret = INTEGER__dump(td, st, cb, app_key, 0);
+
+       return (ret < 0) ? -1 : 0;
+}
+
+struct e2v_key {
+       const char *start;
+       const char *stop;
+       const asn_INTEGER_enum_map_t *vemap;
+       const unsigned int *evmap;
+};
+static int
+INTEGER__compar_enum2value(const void *kp, const void *am) {
+       const struct e2v_key *key = (const struct e2v_key *)kp;
+       const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am;
+       const char *ptr, *end, *name;
+
+       /* Remap the element (sort by different criterion) */
+       el = key->vemap + key->evmap[el - key->vemap];
+
+       /* Compare strings */
+       for(ptr = key->start, end = key->stop, name = el->enum_name;
+                       ptr < end; ptr++, name++) {
+               if(*ptr != *name || !*name)
+                       return *(const unsigned char *)ptr
+                               - *(const unsigned char *)name;
+       }
+       return name[0] ? -1 : 0;
+}
+
+static const asn_INTEGER_enum_map_t *
+INTEGER_map_enum2value(const asn_INTEGER_specifics_t *specs, const char *lstart,
+                       const char *lstop) {
+    const asn_INTEGER_enum_map_t *el_found;
+       int count = specs ? specs->map_count : 0;
+       struct e2v_key key;
+       const char *lp;
+
+       if(!count) return NULL;
+
+       /* Guaranteed: assert(lstart < lstop); */
+       /* Figure out the tag name */
+       for(lstart++, lp = lstart; lp < lstop; lp++) {
+               switch(*lp) {
+               case 9: case 10: case 11: case 12: case 13: case 32: /* WSP */
+               case 0x2f: /* '/' */ case 0x3e: /* '>' */
+                       break;
+               default:
+                       continue;
+               }
+               break;
+       }
+       if(lp == lstop) return NULL;    /* No tag found */
+       lstop = lp;
+
+       key.start = lstart;
+       key.stop = lstop;
+       key.vemap = specs->value2enum;
+       key.evmap = specs->enum2value;
+       el_found = (asn_INTEGER_enum_map_t *)bsearch(&key,
+               specs->value2enum, count, sizeof(specs->value2enum[0]),
+               INTEGER__compar_enum2value);
+       if(el_found) {
+               /* Remap enum2value into value2enum */
+               el_found = key.vemap + key.evmap[el_found - key.vemap];
+       }
+       return el_found;
+}
+
+static int
+INTEGER__compar_value2enum(const void *kp, const void *am) {
+       long a = *(const long *)kp;
+       const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am;
+       long b = el->nat_value;
+       if(a < b) return -1;
+       else if(a == b) return 0;
+       else return 1;
+}
+
+const asn_INTEGER_enum_map_t *
+INTEGER_map_value2enum(const asn_INTEGER_specifics_t *specs, long value) {
+       int count = specs ? specs->map_count : 0;
+       if(!count) return 0;
+       return (asn_INTEGER_enum_map_t *)bsearch(&value, specs->value2enum,
+               count, sizeof(specs->value2enum[0]),
+               INTEGER__compar_value2enum);
+}
+
+static int
+INTEGER_st_prealloc(INTEGER_t *st, int min_size) {
+       void *p = MALLOC(min_size + 1);
+       if(p) {
+               void *b = st->buf;
+               st->size = 0;
+               st->buf = p;
+               FREEMEM(b);
+               return 0;
+       } else {
+               return -1;
+       }
+}
+
+/*
+ * Decode the chunk of XML text encoding INTEGER.
+ */
+static enum xer_pbd_rval
+INTEGER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr,
+                         const void *chunk_buf, size_t chunk_size) {
+    const asn_INTEGER_specifics_t *specs =
+        (const asn_INTEGER_specifics_t *)td->specifics;
+    INTEGER_t *st = (INTEGER_t *)sptr;
+       intmax_t dec_value;
+       intmax_t hex_value = 0;
+       const char *lp;
+       const char *lstart = (const char *)chunk_buf;
+       const char *lstop = lstart + chunk_size;
+       enum {
+               ST_LEADSPACE,
+               ST_SKIPSPHEX,
+               ST_WAITDIGITS,
+               ST_DIGITS,
+               ST_DIGITS_TRAILSPACE,
+               ST_HEXDIGIT1,
+               ST_HEXDIGIT2,
+               ST_HEXDIGITS_TRAILSPACE,
+               ST_HEXCOLON,
+               ST_END_ENUM,
+               ST_UNEXPECTED
+       } state = ST_LEADSPACE;
+       const char *dec_value_start = 0; /* INVARIANT: always !0 in ST_DIGITS */
+       const char *dec_value_end = 0;
+
+       if(chunk_size)
+               ASN_DEBUG("INTEGER body %ld 0x%2x..0x%2x",
+                       (long)chunk_size, *lstart, lstop[-1]);
+
+       if(INTEGER_st_prealloc(st, (chunk_size/3) + 1))
+               return XPBD_SYSTEM_FAILURE;
+
+       /*
+        * We may have received a tag here. It will be processed inline.
+        * Use strtoul()-like code and serialize the result.
+        */
+       for(lp = lstart; lp < lstop; lp++) {
+               int lv = *lp;
+               switch(lv) {
+               case 0x09: case 0x0a: case 0x0d: case 0x20:
+                       switch(state) {
+                       case ST_LEADSPACE:
+                       case ST_DIGITS_TRAILSPACE:
+                       case ST_HEXDIGITS_TRAILSPACE:
+                       case ST_SKIPSPHEX:
+                               continue;
+                       case ST_DIGITS:
+                               dec_value_end = lp;
+                               state = ST_DIGITS_TRAILSPACE;
+                               continue;
+                       case ST_HEXCOLON:
+                               state = ST_HEXDIGITS_TRAILSPACE;
+                               continue;
+                       default:
+                               break;
+                       }
+                       break;
+               case 0x2d:      /* '-' */
+                       if(state == ST_LEADSPACE) {
+                               dec_value = 0;
+                               dec_value_start = lp;
+                               state = ST_WAITDIGITS;
+                               continue;
+                       }
+                       break;
+               case 0x2b:      /* '+' */
+                       if(state == ST_LEADSPACE) {
+                               dec_value = 0;
+                               dec_value_start = lp;
+                               state = ST_WAITDIGITS;
+                               continue;
+                       }
+                       break;
+               case 0x30: case 0x31: case 0x32: case 0x33: case 0x34:
+               case 0x35: case 0x36: case 0x37: case 0x38: case 0x39:
+                       switch(state) {
+                       case ST_DIGITS: continue;
+                       case ST_SKIPSPHEX:      /* Fall through */
+                       case ST_HEXDIGIT1:
+                               hex_value = (lv - 0x30) << 4;
+                               state = ST_HEXDIGIT2;
+                               continue;
+                       case ST_HEXDIGIT2:
+                               hex_value += (lv - 0x30);
+                               state = ST_HEXCOLON;
+                               st->buf[st->size++] = (uint8_t)hex_value;
+                               continue;
+                       case ST_HEXCOLON:
+                               return XPBD_BROKEN_ENCODING;
+                       case ST_LEADSPACE:
+                               dec_value = 0;
+                               dec_value_start = lp;
+                               /* FALL THROUGH */
+                       case ST_WAITDIGITS:
+                               state = ST_DIGITS;
+                               continue;
+                       default:
+                               break;
+                       }
+                       break;
+               case 0x3c:      /* '<', start of XML encoded enumeration */
+                       if(state == ST_LEADSPACE) {
+                               const asn_INTEGER_enum_map_t *el;
+                               el = INTEGER_map_enum2value(
+                                       (const asn_INTEGER_specifics_t *)
+                                       td->specifics, lstart, lstop);
+                               if(el) {
+                                       ASN_DEBUG("Found \"%s\" => %ld",
+                                               el->enum_name, el->nat_value);
+                                       dec_value = el->nat_value;
+                                       state = ST_END_ENUM;
+                                       lp = lstop - 1;
+                                       continue;
+                               }
+                               ASN_DEBUG("Unknown identifier for INTEGER");
+                       }
+                       return XPBD_BROKEN_ENCODING;
+               case 0x3a:      /* ':' */
+                       if(state == ST_HEXCOLON) {
+                               /* This colon is expected */
+                               state = ST_HEXDIGIT1;
+                               continue;
+                       } else if(state == ST_DIGITS) {
+                               /* The colon here means that we have
+                                * decoded the first two hexadecimal
+                                * places as a decimal value.
+                                * Switch decoding mode. */
+                               ASN_DEBUG("INTEGER re-evaluate as hex form");
+                               state = ST_SKIPSPHEX;
+                               dec_value_start = 0;
+                               lp = lstart - 1;
+                               continue;
+                       } else {
+                               ASN_DEBUG("state %d at %ld", state, (long)(lp - lstart));
+                               break;
+                       }
+               /* [A-Fa-f] */
+               case 0x41:case 0x42:case 0x43:case 0x44:case 0x45:case 0x46:
+               case 0x61:case 0x62:case 0x63:case 0x64:case 0x65:case 0x66:
+                       switch(state) {
+                       case ST_SKIPSPHEX:
+                       case ST_LEADSPACE: /* Fall through */
+                       case ST_HEXDIGIT1:
+                               hex_value = lv - ((lv < 0x61) ? 0x41 : 0x61);
+                               hex_value += 10;
+                               hex_value <<= 4;
+                               state = ST_HEXDIGIT2;
+                               continue;
+                       case ST_HEXDIGIT2:
+                               hex_value += lv - ((lv < 0x61) ? 0x41 : 0x61);
+                               hex_value += 10;
+                               st->buf[st->size++] = (uint8_t)hex_value;
+                               state = ST_HEXCOLON;
+                               continue;
+                       case ST_DIGITS:
+                               ASN_DEBUG("INTEGER re-evaluate as hex form");
+                               state = ST_SKIPSPHEX;
+                               dec_value_start = 0;
+                               lp = lstart - 1;
+                               continue;
+                       default:
+                               break;
+                       }
+                       break;
+               }
+
+               /* Found extra non-numeric stuff */
+               ASN_DEBUG("INTEGER :: Found non-numeric 0x%2x at %ld",
+                       lv, (long)(lp - lstart));
+               state = ST_UNEXPECTED;
+               break;
+       }
+
+       switch(state) {
+       case ST_END_ENUM:
+               /* Got a complete and valid enumeration encoded as a tag. */
+               break;
+       case ST_DIGITS:
+               dec_value_end = lstop;
+               /* FALL THROUGH */
+       case ST_DIGITS_TRAILSPACE:
+               /* The last symbol encountered was a digit. */
+        switch(asn_strtoimax_lim(dec_value_start, &dec_value_end, &dec_value)) {
+        case ASN_STRTOX_OK:
+            if(specs && specs->field_unsigned && (uintmax_t) dec_value <= ULONG_MAX) {
+                break;
+            } else if(dec_value >= LONG_MIN && dec_value <= LONG_MAX) {
+                break;
+            } else {
+                /*
+                 * We model INTEGER on long for XER,
+                 * to avoid rewriting all the tests at once.
+                 */
+                ASN_DEBUG("INTEGER exceeds long range");
+            }
+            /* Fall through */
+        case ASN_STRTOX_ERROR_RANGE:
+            ASN_DEBUG("INTEGER decode %s hit range limit", td->name);
+            return XPBD_DECODER_LIMIT;
+               case ASN_STRTOX_ERROR_INVAL:
+               case ASN_STRTOX_EXPECT_MORE:
+               case ASN_STRTOX_EXTRA_DATA:
+                       return XPBD_BROKEN_ENCODING;
+               }
+               break;
+       case ST_HEXCOLON:
+       case ST_HEXDIGITS_TRAILSPACE:
+               st->buf[st->size] = 0;  /* Just in case termination */
+               return XPBD_BODY_CONSUMED;
+       case ST_HEXDIGIT1:
+       case ST_HEXDIGIT2:
+       case ST_SKIPSPHEX:
+               return XPBD_BROKEN_ENCODING;
+       case ST_LEADSPACE:
+               /* Content not found */
+               return XPBD_NOT_BODY_IGNORE;
+       case ST_WAITDIGITS:
+       case ST_UNEXPECTED:
+               ASN_DEBUG("INTEGER: No useful digits (state %d)", state);
+               return XPBD_BROKEN_ENCODING;    /* No digits */
+       }
+
+       /*
+        * Convert the result of parsing of enumeration or a straight
+        * decimal value into a BER representation.
+        */
+       if(asn_imax2INTEGER(st, dec_value)) {
+                ASN_DEBUG("INTEGER decode %s conversion failed", td->name);
+               return XPBD_SYSTEM_FAILURE;
+        }
+
+       return XPBD_BODY_CONSUMED;
+}
+
+asn_dec_rval_t
+INTEGER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx,
+                   const asn_TYPE_descriptor_t *td, void **sptr,
+                   const char *opt_mname, const void *buf_ptr, size_t size) {
+    return xer_decode_primitive(opt_codec_ctx, td,
+               sptr, sizeof(INTEGER_t), opt_mname,
+               buf_ptr, size, INTEGER__xer_body_decode);
+}
+
+asn_enc_rval_t
+INTEGER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr,
+                   int ilevel, enum xer_encoder_flags_e flags,
+                   asn_app_consume_bytes_f *cb, void *app_key) {
+    const INTEGER_t *st = (const INTEGER_t *)sptr;
+       asn_enc_rval_t er = {0,0,0};
+
+       (void)ilevel;
+       (void)flags;
+       
+       if(!st || !st->buf)
+               ASN__ENCODE_FAILED;
+
+       er.encoded = INTEGER__dump(td, st, cb, app_key, 1);
+       if(er.encoded < 0) ASN__ENCODE_FAILED;
+
+       ASN__ENCODED_OK(er);
+}
+
+#ifndef        ASN_DISABLE_PER_SUPPORT
+
+asn_dec_rval_t
+INTEGER_decode_uper(const asn_codec_ctx_t *opt_codec_ctx,
+                    const asn_TYPE_descriptor_t *td,
+                    const asn_per_constraints_t *constraints, void **sptr,
+                    asn_per_data_t *pd) {
+    const asn_INTEGER_specifics_t *specs =
+        (const asn_INTEGER_specifics_t *)td->specifics;
+    asn_dec_rval_t rval = { RC_OK, 0 };
+       INTEGER_t *st = (INTEGER_t *)*sptr;
+       const asn_per_constraint_t *ct;
+       int repeat;
+
+       (void)opt_codec_ctx;
+
+       if(!st) {
+               st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st)));
+               if(!st) ASN__DECODE_FAILED;
+       }
+
+       if(!constraints) constraints = td->encoding_constraints.per_constraints;
+       ct = constraints ? &constraints->value : 0;
+
+       if(ct && ct->flags & APC_EXTENSIBLE) {
+               int inext = per_get_few_bits(pd, 1);
+               if(inext < 0) ASN__DECODE_STARVED;
+               if(inext) ct = 0;
+       }
+
+       FREEMEM(st->buf);
+       st->buf = 0;
+       st->size = 0;
+       if(ct) {
+               if(ct->flags & APC_SEMI_CONSTRAINED) {
+                       st->buf = (uint8_t *)CALLOC(1, 2);
+                       if(!st->buf) ASN__DECODE_FAILED;
+                       st->size = 1;
+               } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) {
+                       size_t size = (ct->range_bits + 7) >> 3;
+                       st->buf = (uint8_t *)MALLOC(1 + size + 1);
+                       if(!st->buf) ASN__DECODE_FAILED;
+                       st->size = size;
+               }
+       }
+
+       /* X.691-2008/11, #13.2.2, constrained whole number */
+       if(ct && ct->flags != APC_UNCONSTRAINED) {
+               /* #11.5.6 */
+               ASN_DEBUG("Integer with range %d bits", ct->range_bits);
+               if(ct->range_bits >= 0) {
+                       if((size_t)ct->range_bits > 8 * sizeof(unsigned long))
+                               ASN__DECODE_FAILED;
+
+                       if(specs && specs->field_unsigned) {
+                               unsigned long uvalue = 0;
+                               if(uper_get_constrained_whole_number(pd,
+                                       &uvalue, ct->range_bits))
+                                       ASN__DECODE_STARVED;
+                               ASN_DEBUG("Got value %lu + low %ld",
+                                       uvalue, ct->lower_bound);
+                               uvalue += ct->lower_bound;
+                               if(asn_ulong2INTEGER(st, uvalue))
+                                       ASN__DECODE_FAILED;
+                       } else {
+                               unsigned long uvalue = 0;
+                               long svalue;
+                               if(uper_get_constrained_whole_number(pd,
+                                       &uvalue, ct->range_bits))
+                                       ASN__DECODE_STARVED;
+                               ASN_DEBUG("Got value %lu + low %ld",
+                                       uvalue, ct->lower_bound);
+                if(per_long_range_unrebase(uvalue, ct->lower_bound,
+                                           ct->upper_bound, &svalue)
+                   || asn_long2INTEGER(st, svalue)) {
+                    ASN__DECODE_FAILED;
+                }
+                       }
+                       return rval;
+               }
+       } else {
+               ASN_DEBUG("Decoding unconstrained integer %s", td->name);
+       }
+
+       /* X.691, #12.2.3, #12.2.4 */
+       do {
+               ssize_t len = 0;
+               void *p = NULL;
+               int ret = 0;
+
+               /* Get the PER length */
+               len = uper_get_length(pd, -1, 0, &repeat);
+               if(len < 0) ASN__DECODE_STARVED;
+
+               p = REALLOC(st->buf, st->size + len + 1);
+               if(!p) ASN__DECODE_FAILED;
+               st->buf = (uint8_t *)p;
+
+               ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len);
+               if(ret < 0) ASN__DECODE_STARVED;
+               st->size += len;
+       } while(repeat);
+       st->buf[st->size] = 0;  /* JIC */
+
+       /* #12.2.3 */
+       if(ct && ct->lower_bound) {
+               /*
+                * TODO: replace by in-place arithmetics.
+                */
+               long value = 0;
+               if(asn_INTEGER2long(st, &value))
+                       ASN__DECODE_FAILED;
+               if(asn_imax2INTEGER(st, value + ct->lower_bound))
+                       ASN__DECODE_FAILED;
+       }
+
+       return rval;
+}
+
+asn_enc_rval_t
+INTEGER_encode_uper(const asn_TYPE_descriptor_t *td,
+                    const asn_per_constraints_t *constraints, const void *sptr,
+                    asn_per_outp_t *po) {
+       const asn_INTEGER_specifics_t *specs =
+               (const asn_INTEGER_specifics_t *)td->specifics;
+       asn_enc_rval_t er = {0,0,0};
+       const INTEGER_t *st = (const INTEGER_t *)sptr;
+       const uint8_t *buf;
+       const uint8_t *end;
+       const asn_per_constraint_t *ct;
+       long value = 0;
+
+       if(!st || st->size == 0) ASN__ENCODE_FAILED;
+
+       if(!constraints) constraints = td->encoding_constraints.per_constraints;
+       ct = constraints ? &constraints->value : 0;
+
+       er.encoded = 0;
+
+       if(ct) {
+               int inext = 0;
+               if(specs && specs->field_unsigned) {
+                       unsigned long uval;
+                       if(asn_INTEGER2ulong(st, &uval))
+                               ASN__ENCODE_FAILED;
+                       /* Check proper range */
+                       if(ct->flags & APC_SEMI_CONSTRAINED) {
+                               if(uval < (unsigned long)ct->lower_bound)
+                                       inext = 1;
+                       } else if(ct->range_bits >= 0) {
+                               if(uval < (unsigned long)ct->lower_bound
+                               || uval > (unsigned long)ct->upper_bound)
+                                       inext = 1;
+                       }
+                       ASN_DEBUG("Value %lu (%02x/%" ASN_PRI_SIZE ") lb %lu ub %lu %s",
+                               uval, st->buf[0], st->size,
+                               ct->lower_bound, ct->upper_bound,
+                               inext ? "ext" : "fix");
+                       value = uval;
+               } else {
+                       if(asn_INTEGER2long(st, &value))
+                               ASN__ENCODE_FAILED;
+                       /* Check proper range */
+                       if(ct->flags & APC_SEMI_CONSTRAINED) {
+                               if(value < ct->lower_bound)
+                                       inext = 1;
+                       } else if(ct->range_bits >= 0) {
+                               if(value < ct->lower_bound
+                               || value > ct->upper_bound)
+                                       inext = 1;
+                       }
+                       ASN_DEBUG("Value %ld (%02x/%" ASN_PRI_SIZE ") lb %ld ub %ld %s",
+                               value, st->buf[0], st->size,
+                               ct->lower_bound, ct->upper_bound,
+                               inext ? "ext" : "fix");
+               }
+               if(ct->flags & APC_EXTENSIBLE) {
+                       if(per_put_few_bits(po, inext, 1))
+                               ASN__ENCODE_FAILED;
+                       if(inext) ct = 0;
+               } else if(inext) {
+                       ASN__ENCODE_FAILED;
+               }
+       }
+
+
+       /* X.691-11/2008, #13.2.2, test if constrained whole number */
+       if(ct && ct->range_bits >= 0) {
+        unsigned long v;
+               /* #11.5.6 -> #11.3 */
+               ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits",
+                       value, value - ct->lower_bound, ct->range_bits);
+       if(specs && specs->field_unsigned) {
+               if (  ((unsigned long)ct->lower_bound > (unsigned long)(ct->upper_bound)
+                  || ((unsigned long)value < (unsigned long)ct->lower_bound))
+                  || ((unsigned long)value > (unsigned long)ct->upper_bound)
+               ) {
+                       ASN_DEBUG("Value %lu to-be-encoded is outside the bounds [%lu, %lu]!",
+                               value, ct->lower_bound, ct->upper_bound);
+                       ASN__ENCODE_FAILED;
+               }
+               v = (unsigned long)value - (unsigned long)ct->lower_bound;
+       } else {
+               if(per_long_range_rebase(value, ct->lower_bound, ct->upper_bound, &v)) {
+                       ASN__ENCODE_FAILED;
+               }
+       }
+        if(uper_put_constrained_whole_number_u(po, v, ct->range_bits))
+               ASN__ENCODE_FAILED;
+       ASN__ENCODED_OK(er);
+       }
+
+       if(ct && ct->lower_bound) {
+               ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound);
+               /* TODO: adjust lower bound */
+               ASN__ENCODE_FAILED;
+       }
+
+       for(buf = st->buf, end = st->buf + st->size; buf < end;) {
+        int need_eom = 0;
+        ssize_t mayEncode = uper_put_length(po, end - buf, &need_eom);
+        if(mayEncode < 0)
+                       ASN__ENCODE_FAILED;
+               if(per_put_many_bits(po, buf, 8 * mayEncode))
+                       ASN__ENCODE_FAILED;
+               buf += mayEncode;
+        if(need_eom && uper_put_length(po, 0, 0)) ASN__ENCODE_FAILED;
+    }
+
+       ASN__ENCODED_OK(er);
+}
+
+asn_dec_rval_t
+INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
+                    const asn_TYPE_descriptor_t *td,
+                    const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) {
+       const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics;
+       asn_dec_rval_t rval = { RC_OK, 0 };
+       INTEGER_t *st = (INTEGER_t *)*sptr;
+       const asn_per_constraint_t *ct;
+       int repeat;
+
+       (void)opt_codec_ctx;
+
+       if(!st) {
+               st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st)));
+               if(!st) ASN__DECODE_FAILED;
+       }
+
+       if(!constraints) constraints = td->encoding_constraints.per_constraints;
+       ct = constraints ? &constraints->value : 0;
+
+       if(ct && ct->flags & APC_EXTENSIBLE) {
+               int inext = per_get_few_bits(pd, 1);
+               if(inext < 0) ASN__DECODE_STARVED;
+               if(inext) ct = 0;
+       }
+
+       FREEMEM(st->buf);
+       st->buf = 0;
+       st->size = 0;
+       if(ct) {
+               if(ct->flags & APC_SEMI_CONSTRAINED) {
+                       st->buf = (uint8_t *)CALLOC(1, 2);
+                       if(!st->buf) ASN__DECODE_FAILED;
+                       st->size = 1;
+               } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) {
+                       size_t size = (ct->range_bits + 7) >> 3;
+                       st->buf = (uint8_t *)MALLOC(1 + size + 1);
+                       if(!st->buf) ASN__DECODE_FAILED;
+                       st->size = size;
+               }
+       }
+
+       /* X.691, #12.2.2 */
+       if(ct && ct->flags != APC_UNCONSTRAINED) {
+               /* #10.5.6 */
+               ASN_DEBUG("Integer with range %d bits", ct->range_bits);
+               if(ct->range_bits >= 0) {
+                       if (ct->range_bits > 16) {
+                               int max_range_bytes = (ct->range_bits >> 3) +
+                                                     (((ct->range_bits % 8) > 0) ? 1 : 0);
+                               int length = 0, i;
+                               long value = 0;
+
+                               for (i = 1; ; i++) {
+                                       int upper = 1 << i;
+                                       if (upper >= max_range_bytes)
+                                               break;
+                               }
+                               ASN_DEBUG("Can encode %d (%d bytes) in %d bits", ct->range_bits,
+                                         max_range_bytes, i);
+
+                               if ((length = per_get_few_bits(pd, i)) < 0)
+                                       ASN__DECODE_FAILED;
+
+                               /* X.691 #12.2.6 length determinant + lb (1) */
+                               length += 1;
+                               ASN_DEBUG("Got length %d", length);
+                               if (aper_get_align(pd) != 0)
+                                       ASN__DECODE_FAILED;
+                               while (length--) {
+                                       int buf = per_get_few_bits(pd, 8);
+                                       if (buf < 0)
+                                               ASN__DECODE_FAILED;
+                                       value += (((long)buf) << (8 * length));
+                               }
+
+                               value += ct->lower_bound;
+                               if((specs && specs->field_unsigned)
+                                       ? asn_uint642INTEGER(st, (unsigned long)value)
+                                       : asn_int642INTEGER(st, value))
+                                       ASN__DECODE_FAILED;
+                               ASN_DEBUG("Got value %ld + low %ld",
+                                         value, ct->lower_bound);
+                       } else {
+                               long value = 0;
+                               if (ct->range_bits < 8) {
+                                       value = per_get_few_bits(pd, ct->range_bits);
+                                       if(value < 0) ASN__DECODE_STARVED;
+                               } else if (ct->range_bits == 8) {
+                                       if (aper_get_align(pd) < 0)
+                                               ASN__DECODE_FAILED;
+                                       value = per_get_few_bits(pd, ct->range_bits);
+                                       if(value < 0) ASN__DECODE_STARVED;
+                               } else {
+                                       /* Align */
+                                       if (aper_get_align(pd) < 0)
+                                               ASN__DECODE_FAILED;
+                                       value = per_get_few_bits(pd, 16);
+                                       if(value < 0) ASN__DECODE_STARVED;
+                               }
+                               value += ct->lower_bound;
+                               if((specs && specs->field_unsigned)
+                                       ? asn_ulong2INTEGER(st, value)
+                                       : asn_long2INTEGER(st, value))
+                                       ASN__DECODE_FAILED;
+                               ASN_DEBUG("Got value %ld + low %ld",
+                                         value, ct->lower_bound);
+                       }
+                       return rval;
+               } else {
+                       ASN__DECODE_FAILED;
+               }
+       } else {
+               ASN_DEBUG("Decoding unconstrained integer %s", td->name);
+       }
+
+       /* X.691, #12.2.3, #12.2.4 */
+       do {
+               ssize_t len;
+               void *p;
+               int ret;
+
+               /* Get the PER length */
+               len = aper_get_length(pd, -1, -1, &repeat);
+               if(len < 0) ASN__DECODE_STARVED;
+
+               p = REALLOC(st->buf, st->size + len + 1);
+               if(!p) ASN__DECODE_FAILED;
+               st->buf = (uint8_t *)p;
+
+               ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len);
+               if(ret < 0) ASN__DECODE_STARVED;
+               st->size += len;
+       } while(repeat);
+       st->buf[st->size] = 0;  /* JIC */
+
+       /* #12.2.3 */
+       if(ct && ct->lower_bound) {
+               /*
+                * TODO: replace by in-place arithmetics.
+                */
+               long value;
+               if(asn_INTEGER2long(st, &value))
+                       ASN__DECODE_FAILED;
+               if(asn_long2INTEGER(st, value + ct->lower_bound))
+                       ASN__DECODE_FAILED;
+       }
+
+       return rval;
+}
+
+asn_enc_rval_t
+INTEGER_encode_aper(const asn_TYPE_descriptor_t *td,
+                    const asn_per_constraints_t *constraints,
+                    const void *sptr, asn_per_outp_t *po) {
+       const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics;
+       asn_enc_rval_t er = {0,0,0};
+       const INTEGER_t *st = (const INTEGER_t *)sptr;
+       const uint8_t *buf;
+       const uint8_t *end;
+       const asn_per_constraint_t *ct;
+       long value = 0;
+
+       if(!st || st->size == 0) ASN__ENCODE_FAILED;
+
+       if(!constraints) constraints = td->encoding_constraints.per_constraints;
+       ct = constraints ? &constraints->value : 0;
+
+       er.encoded = 0;
+
+       if(ct) {
+               int inext = 0;
+               if(specs && specs->field_unsigned) {
+                       unsigned long uval;
+                       if(asn_INTEGER2ulong(st, &uval))
+                               ASN__ENCODE_FAILED;
+                       /* Check proper range */
+                       if(ct->flags & APC_SEMI_CONSTRAINED) {
+                               if(uval < (unsigned long)ct->lower_bound)
+                                       inext = 1;
+                       } else if(ct->range_bits >= 0) {
+                               if(uval < (unsigned long)ct->lower_bound
+                                       || uval > (unsigned long)ct->upper_bound)
+                                       inext = 1;
+                       }
+                       ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s",
+                                 uval, st->buf[0], st->size,
+                                 ct->lower_bound, ct->upper_bound,
+                                 inext ? "ext" : "fix");
+                       value = uval;
+               } else {
+                       if(asn_INTEGER2long(st, &value)) ASN__ENCODE_FAILED;
+                       /* Check proper range */
+                       if(ct->flags & APC_SEMI_CONSTRAINED) {
+                               if(value < ct->lower_bound)
+                                       inext = 1;
+                       } else if(ct->range_bits >= 0) {
+                               if(value < ct->lower_bound
+                                       || value > ct->upper_bound)
+                                       inext = 1;
+                       }
+                       ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s",
+                                 value, st->buf[0], st->size,
+                                 ct->lower_bound, ct->upper_bound,
+                                 inext ? "ext" : "fix");
+               }
+               if(ct->flags & APC_EXTENSIBLE) {
+                       if(per_put_few_bits(po, inext, 1))
+                               ASN__ENCODE_FAILED;
+                       if(inext) ct = 0;
+               } else if(inext) {
+                       ASN__ENCODE_FAILED;
+               }
+       }
+
+       /* X.691, #12.2.2 */
+       if(ct && ct->range_bits >= 0) {
+               unsigned long v;
+
+               /* #10.5.6 */
+               ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits",
+                         value, value - ct->lower_bound, ct->range_bits);
+
+               v = value - ct->lower_bound;
+
+               /* #12 <= 8 -> alignment ? */
+               if (ct->range_bits < 8) {
+                       if(per_put_few_bits(po, 0x00 | v, ct->range_bits))
+                               ASN__ENCODE_FAILED;
+               } else if (ct->range_bits == 8) {
+                       if(aper_put_align(po) < 0)
+                               ASN__ENCODE_FAILED;
+                       if(per_put_few_bits(po, 0x00 | v, ct->range_bits))
+                               ASN__ENCODE_FAILED;
+               } else if (ct->range_bits <= 16) {
+                       /* Consume the bytes to align on octet */
+                       if(aper_put_align(po) < 0)
+                               ASN__ENCODE_FAILED;
+                       if(per_put_few_bits(po, 0x0000 | v,
+                                           16))
+                               ASN__ENCODE_FAILED;
+               } else {
+                       /* TODO: extend to >64 bits */
+                       int64_t v64 = v;
+                       int i, j;
+                       int max_range_bytes = (ct->range_bits >> 3) +
+                                             (((ct->range_bits % 8) > 0) ? 1 : 0);
+
+                       for (i = 1; ; i++) {
+                               int upper = 1 << i;
+                               if (upper >= max_range_bytes)
+                                       break;
+                       }
+
+                       for (j = sizeof(int64_t) -1; j != 0; j--) {
+                               int64_t val;
+                               val = v64 >> (j * 8);
+                               if (val != 0)
+                                       break;
+                       }
+
+                       /* Putting length in the minimum number of bits ex: 5 = 3bits */
+                       if (per_put_few_bits(po, j, i))
+                               ASN__ENCODE_FAILED;
+
+                       /* Consume the bits to align on octet */
+                       if (aper_put_align(po) < 0)
+                               ASN__ENCODE_FAILED;
+                       /* Put the value */
+                       for (i = 0; i <= j; i++) {
+                               if(per_put_few_bits(po, (v64 >> (8 * (j - i))) & 0xff, 8))
+                                       ASN__ENCODE_FAILED;
+                       }
+               }
+               ASN__ENCODED_OK(er);
+       }
+
+       if(ct && ct->lower_bound) {
+               ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound);
+               /* TODO: adjust lower bound */
+               ASN__ENCODE_FAILED;
+       }
+
+       for(buf = st->buf, end = st->buf + st->size; buf < end;) {
+               ssize_t mayEncode = aper_put_length(po, -1, end - buf);
+               if(mayEncode < 0)
+                       ASN__ENCODE_FAILED;
+               if(per_put_many_bits(po, buf, 8 * mayEncode))
+                       ASN__ENCODE_FAILED;
+               buf += mayEncode;
+       }
+
+       ASN__ENCODED_OK(er);
+}
+
+#endif /* ASN_DISABLE_PER_SUPPORT */
+
+static intmax_t
+asn__integer_convert(const uint8_t *b, const uint8_t *end) {
+    uintmax_t value;
+
+    /* Perform the sign initialization */
+    /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */
+    if((*b >> 7)) {
+        value = (uintmax_t)(-1);
+    } else {
+        value = 0;
+    }
+
+    /* Conversion engine */
+    for(; b < end; b++) {
+        value = (value << 8) | *b;
+    }
+
+    return value;
+}
+
+int
+asn_INTEGER2imax(const INTEGER_t *iptr, intmax_t *lptr) {
+       uint8_t *b, *end;
+       size_t size;
+
+       /* Sanity checking */
+       if(!iptr || !iptr->buf || !lptr) {
+               errno = EINVAL;
+               return -1;
+       }
+
+       /* Cache the begin/end of the buffer */
+       b = iptr->buf;  /* Start of the INTEGER buffer */
+       size = iptr->size;
+       end = b + size; /* Where to stop */
+
+       if(size > sizeof(intmax_t)) {
+               uint8_t *end1 = end - 1;
+               /*
+                * Slightly more advanced processing,
+                * able to process INTEGERs with >sizeof(intmax_t) bytes
+                * when the actual value is small, e.g. for intmax_t == int32_t
+                * (0x0000000000abcdef INTEGER would yield a fine 0x00abcdef int32_t)
+                */
+               /* Skip out the insignificant leading bytes */
+               for(; b < end1; b++) {
+                       switch(*b) {
+                               case 0x00: if((b[1] & 0x80) == 0) continue; break;
+                               case 0xff: if((b[1] & 0x80) != 0) continue; break;
+                       }
+                       break;
+               }
+
+               size = end - b;
+               if(size > sizeof(intmax_t)) {
+                       /* Still cannot fit the sizeof(intmax_t) */
+                       errno = ERANGE;
+                       return -1;
+               }
+       }
+
+       /* Shortcut processing of a corner case */
+       if(end == b) {
+               *lptr = 0;
+               return 0;
+       }
+
+       *lptr = asn__integer_convert(b, end);
+       return 0;
+}
+
+/* FIXME: negative INTEGER values are silently interpreted as large unsigned ones. */
+int
+asn_INTEGER2umax(const INTEGER_t *iptr, uintmax_t *lptr) {
+       uint8_t *b, *end;
+       uintmax_t value;
+       size_t size;
+
+       if(!iptr || !iptr->buf || !lptr) {
+               errno = EINVAL;
+               return -1;
+       }
+
+       b = iptr->buf;
+       size = iptr->size;
+       end = b + size;
+
+       /* If all extra leading bytes are zeroes, ignore them */
+       for(; size > sizeof(value); b++, size--) {
+               if(*b) {
+                       /* Value won't fit into uintmax_t */
+                       errno = ERANGE;
+                       return -1;
+               }
+       }
+
+       /* Conversion engine */
+       for(value = 0; b < end; b++)
+               value = (value << 8) | *b;
+
+       *lptr = value;
+       return 0;
+}
+
+int
+asn_umax2INTEGER(INTEGER_t *st, uintmax_t value) {
+    uint8_t *buf;
+    uint8_t *end;
+    uint8_t *b;
+    int shr;
+
+    if(value <= ((~(uintmax_t)0) >> 1)) {
+        return asn_imax2INTEGER(st, value);
+    }
+
+    buf = (uint8_t *)MALLOC(1 + sizeof(value));
+    if(!buf) return -1;
+
+    end = buf + (sizeof(value) + 1);
+    buf[0] = 0; /* INTEGERs are signed. 0-byte indicates positive. */
+    for(b = buf + 1, shr = (sizeof(value) - 1) * 8; b < end; shr -= 8, b++)
+        *b = (uint8_t)(value >> shr);
+
+    if(st->buf) FREEMEM(st->buf);
+    st->buf = buf;
+    st->size = 1 + sizeof(value);
+
+       return 0;
+}
+
+int
+asn_imax2INTEGER(INTEGER_t *st, intmax_t value) {
+       uint8_t *buf, *bp;
+       uint8_t *p;
+       uint8_t *pstart;
+       uint8_t *pend1;
+       int littleEndian = 1;   /* Run-time detection */
+       int add;
+
+       if(!st) {
+               errno = EINVAL;
+               return -1;
+       }
+
+       buf = (uint8_t *)(long *)MALLOC(sizeof(value));
+       if(!buf) return -1;
+
+       if(*(char *)&littleEndian) {
+               pstart = (uint8_t *)&value + sizeof(value) - 1;
+               pend1 = (uint8_t *)&value;
+               add = -1;
+       } else {
+               pstart = (uint8_t *)&value;
+               pend1 = pstart + sizeof(value) - 1;
+               add = 1;
+       }
+
+       /*
+        * If the contents octet consists of more than one octet,
+        * then bits of the first octet and bit 8 of the second octet:
+        * a) shall not all be ones; and
+        * b) shall not all be zero.
+        */
+       for(p = pstart; p != pend1; p += add) {
+               switch(*p) {
+               case 0x00: if((*(p+add) & 0x80) == 0)
+                               continue;
+                       break;
+               case 0xff: if((*(p+add) & 0x80))
+                               continue;
+                       break;
+               }
+               break;
+       }
+       /* Copy the integer body */
+       for(bp = buf, pend1 += add; p != pend1; p += add)
+               *bp++ = *p;
+
+       if(st->buf) FREEMEM(st->buf);
+       st->buf = buf;
+       st->size = bp - buf;
+
+       return 0;
+}
+
+int
+asn_INTEGER2long(const INTEGER_t *iptr, long *l) {
+    intmax_t v;
+    if(asn_INTEGER2imax(iptr, &v) == 0) {
+        if(v < LONG_MIN || v > LONG_MAX) {
+            errno = ERANGE;
+            return -1;
+        }
+        *l = v;
+        return 0;
+    } else {
+        return -1;
+    }
+}
+
+int
+asn_INTEGER2ulong(const INTEGER_t *iptr, unsigned long *l) {
+    uintmax_t v;
+    if(asn_INTEGER2umax(iptr, &v) == 0) {
+        if(v > ULONG_MAX) {
+            errno = ERANGE;
+            return -1;
+        }
+        *l = v;
+        return 0;
+    } else {
+        return -1;
+    }
+}
+
+int
+asn_long2INTEGER(INTEGER_t *st, long value) {
+    return asn_imax2INTEGER(st, value);
+}
+
+int
+asn_ulong2INTEGER(INTEGER_t *st, unsigned long value) {
+    return asn_imax2INTEGER(st, value);
+}
+
+
+int
+asn_uint642INTEGER(INTEGER_t *st, uint64_t value) {
+       uint8_t *buf;
+       uint8_t *end;
+       uint8_t *b;
+       int shr;
+
+       if(value <= INT64_MAX)
+               return asn_int642INTEGER(st, value);
+
+       buf = (uint8_t *)MALLOC(1 + sizeof(value));
+       if(!buf) return -1;
+
+       end = buf + (sizeof(value) + 1);
+       buf[0] = 0;
+       for(b = buf + 1, shr = (sizeof(value)-1)*8; b < end; shr -= 8, b++)
+               *b = (uint8_t)(value >> shr);
+
+       if(st->buf) FREEMEM(st->buf);
+       st->buf = buf;
+       st->size = 1 + sizeof(value);
+
+       return 0;
+}
+
+int
+asn_int642INTEGER(INTEGER_t *st, int64_t value) {
+       uint8_t *buf, *bp;
+       uint8_t *p;
+       uint8_t *pstart;
+       uint8_t *pend1;
+       int littleEndian = 1;   /* Run-time detection */
+       int add;
+
+       if(!st) {
+               errno = EINVAL;
+               return -1;
+       }
+
+       buf = (uint8_t *)MALLOC(sizeof(value));
+       if(!buf) return -1;
+
+       if(*(char *)&littleEndian) {
+               pstart = (uint8_t *)&value + sizeof(value) - 1;
+               pend1 = (uint8_t *)&value;
+               add = -1;
+       } else {
+               pstart = (uint8_t *)&value;
+               pend1 = pstart + sizeof(value) - 1;
+               add = 1;
+       }
+
+       /*
+        * If the contents octet consists of more than one octet,
+        * then bits of the first octet and bit 8 of the second octet:
+        * a) shall not all be ones; and
+        * b) shall not all be zero.
+        */
+       for(p = pstart; p != pend1; p += add) {
+               switch(*p) {
+               case 0x00: if((*(p+add) & 0x80) == 0)
+                               continue;
+                       break;
+               case 0xff: if((*(p+add) & 0x80))
+                               continue;
+                       break;
+               }
+               break;
+       }
+       /* Copy the integer body */
+       for(pstart = p, bp = buf, pend1 += add; p != pend1; p += add)
+               *bp++ = *p;
+
+       if(st->buf) FREEMEM(st->buf);
+       st->buf = buf;
+       st->size = bp - buf;
+
+       return 0;
+}
+
+/*
+ * Parse the number in the given string until the given *end position,
+ * returning the position after the last parsed character back using the
+ * same (*end) pointer.
+ * WARNING: This behavior is different from the standard strtol/strtoimax(3).
+ */
+enum asn_strtox_result_e
+asn_strtoimax_lim(const char *str, const char **end, intmax_t *intp) {
+       int sign = 1;
+       intmax_t value;
+
+#define ASN1_INTMAX_MAX ((~(uintmax_t)0) >> 1)
+    const intmax_t upper_boundary = ASN1_INTMAX_MAX / 10;
+       intmax_t last_digit_max = ASN1_INTMAX_MAX % 10;
+#undef  ASN1_INTMAX_MAX
+
+       if(str >= *end) return ASN_STRTOX_ERROR_INVAL;
+
+       switch(*str) {
+       case '-':
+               last_digit_max++;
+               sign = -1;
+               /* FALL THROUGH */
+       case '+':
+               str++;
+               if(str >= *end) {
+                       *end = str;
+                       return ASN_STRTOX_EXPECT_MORE;
+               }
+       }
+
+       for(value = 0; str < (*end); str++) {
+               switch(*str) {
+               case 0x30: case 0x31: case 0x32: case 0x33: case 0x34:
+               case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: {
+                       int d = *str - '0';
+                       if(value < upper_boundary) {
+                               value = value * 10 + d;
+                       } else if(value == upper_boundary) {
+                               if(d <= last_digit_max) {
+                                       if(sign > 0) {
+                                               value = value * 10 + d;
+                                       } else {
+                                               sign = 1;
+                                               value = -value * 10 - d;
+                                       }
+                               } else {
+                                       *end = str;
+                                       return ASN_STRTOX_ERROR_RANGE;
+                               }
+                       } else {
+                               *end = str;
+                               return ASN_STRTOX_ERROR_RANGE;
+                       }
+                   }
+                   continue;
+               default:
+                   *end = str;
+                   *intp = sign * value;
+                   return ASN_STRTOX_EXTRA_DATA;
+               }
+       }
+
+       *end = str;
+       *intp = sign * value;
+       return ASN_STRTOX_OK;
+}
+
+/*
+ * Parse the number in the given string until the given *end position,
+ * returning the position after the last parsed character back using the
+ * same (*end) pointer.
+ * WARNING: This behavior is different from the standard strtoul/strtoumax(3).
+ */
+enum asn_strtox_result_e
+asn_strtoumax_lim(const char *str, const char **end, uintmax_t *uintp) {
+       uintmax_t value;
+
+#define ASN1_UINTMAX_MAX ((~(uintmax_t)0))
+    const uintmax_t upper_boundary = ASN1_UINTMAX_MAX / 10;
+    uintmax_t last_digit_max = ASN1_UINTMAX_MAX % 10;
+#undef ASN1_UINTMAX_MAX
+
+    if(str >= *end) return ASN_STRTOX_ERROR_INVAL;
+
+       switch(*str) {
+       case '-':
+        return ASN_STRTOX_ERROR_INVAL;
+       case '+':
+               str++;
+               if(str >= *end) {
+                       *end = str;
+                       return ASN_STRTOX_EXPECT_MORE;
+               }
+       }
+
+       for(value = 0; str < (*end); str++) {
+               switch(*str) {
+               case 0x30: case 0x31: case 0x32: case 0x33: case 0x34:
+               case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: {
+                       unsigned int d = *str - '0';
+                       if(value < upper_boundary) {
+                               value = value * 10 + d;
+                       } else if(value == upper_boundary) {
+                               if(d <= last_digit_max) {
+                    value = value * 10 + d;
+                } else {
+                                       *end = str;
+                                       return ASN_STRTOX_ERROR_RANGE;
+                               }
+                       } else {
+                               *end = str;
+                               return ASN_STRTOX_ERROR_RANGE;
+                       }
+                   }
+                   continue;
+               default:
+                   *end = str;
+                   *uintp = value;
+                   return ASN_STRTOX_EXTRA_DATA;
+               }
+       }
+
+       *end = str;
+       *uintp = value;
+       return ASN_STRTOX_OK;
+}
+
+enum asn_strtox_result_e
+asn_strtol_lim(const char *str, const char **end, long *lp) {
+    intmax_t value;
+    switch(asn_strtoimax_lim(str, end, &value)) {
+    case ASN_STRTOX_ERROR_RANGE:
+        return ASN_STRTOX_ERROR_RANGE;
+    case ASN_STRTOX_ERROR_INVAL:
+        return ASN_STRTOX_ERROR_INVAL;
+    case ASN_STRTOX_EXPECT_MORE:
+        return ASN_STRTOX_EXPECT_MORE;
+    case ASN_STRTOX_OK:
+        if(value >= LONG_MIN && value <= LONG_MAX) {
+            *lp = value;
+            return ASN_STRTOX_OK;
+        } else {
+            return ASN_STRTOX_ERROR_RANGE;
+        }
+    case ASN_STRTOX_EXTRA_DATA:
+        if(value >= LONG_MIN && value <= LONG_MAX) {
+            *lp = value;
+            return ASN_STRTOX_EXTRA_DATA;
+        } else {
+            return ASN_STRTOX_ERROR_RANGE;
+        }
+    }
+
+    assert(!"Unreachable");
+    return ASN_STRTOX_ERROR_INVAL;
+}
+
+enum asn_strtox_result_e
+asn_strtoul_lim(const char *str, const char **end, unsigned long *ulp) {
+    uintmax_t value;
+    switch(asn_strtoumax_lim(str, end, &value)) {
+    case ASN_STRTOX_ERROR_RANGE:
+        return ASN_STRTOX_ERROR_RANGE;
+    case ASN_STRTOX_ERROR_INVAL:
+        return ASN_STRTOX_ERROR_INVAL;
+    case ASN_STRTOX_EXPECT_MORE:
+        return ASN_STRTOX_EXPECT_MORE;
+    case ASN_STRTOX_OK:
+        if(value <= ULONG_MAX) {
+            *ulp = value;
+            return ASN_STRTOX_OK;
+        } else {
+            return ASN_STRTOX_ERROR_RANGE;
+        }
+    case ASN_STRTOX_EXTRA_DATA:
+        if(value <= ULONG_MAX) {
+            *ulp = value;
+            return ASN_STRTOX_EXTRA_DATA;
+        } else {
+            return ASN_STRTOX_ERROR_RANGE;
+        }
+    }
+
+    assert(!"Unreachable");
+    return ASN_STRTOX_ERROR_INVAL;
+}
+
+int
+INTEGER_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
+                     const void *bptr) {
+    const INTEGER_t *a = aptr;
+    const INTEGER_t *b = bptr;
+
+    (void)td;
+
+    if(a && b) {
+        if(a->size && b->size) {
+            int sign_a = (a->buf[0] & 0x80) ? -1 : 1;
+            int sign_b = (b->buf[0] & 0x80) ? -1 : 1;
+
+            if(sign_a < sign_b) return -1;
+            if(sign_a > sign_b) return 1;
+
+            /* The shortest integer wins, unless comparing negatives */
+            if(a->size < b->size) {
+                return -1 * sign_a;
+            } else if(a->size > b->size) {
+                return 1 * sign_b;
+            }
+
+            return sign_a * memcmp(a->buf, b->buf, a->size);
+        } else if(a->size) {
+            int sign = (a->buf[0] & 0x80) ? -1 : 1;
+            return (1) * sign;
+        } else if(b->size) {
+            int sign = (a->buf[0] & 0x80) ? -1 : 1;
+            return (-1) * sign;
+        } else {
+            return 0;
+        }
+    } else if(!a && !b) {
+        return 0;
+    } else if(!a) {
+        return -1;
+    } else {
+        return 1;
+    }
+
+}
+
+asn_random_fill_result_t
+INTEGER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr,
+                    const asn_encoding_constraints_t *constraints,
+                    size_t max_length) {
+    const asn_INTEGER_specifics_t *specs =
+        (const asn_INTEGER_specifics_t *)td->specifics;
+    asn_random_fill_result_t result_ok = {ARFILL_OK, 1};
+    asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0};
+    asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0};
+    INTEGER_t *st = *sptr;
+    const asn_INTEGER_enum_map_t *emap;
+    size_t emap_len;
+    intmax_t value;
+    int find_inside_map;
+
+    if(max_length == 0) return result_skipped;
+
+    if(st == NULL) {
+        st = (INTEGER_t *)CALLOC(1, sizeof(*st));
+        if(st == NULL) {
+            return result_failed;
+        }
+    }
+
+    if(specs) {
+        emap = specs->value2enum;
+        emap_len = specs->map_count;
+        if(specs->strict_enumeration) {
+            find_inside_map = emap_len > 0;
+        } else {
+            find_inside_map = emap_len ? asn_random_between(0, 1) : 0;
+        }
+    } else {
+        emap = 0;
+        emap_len = 0;
+        find_inside_map = 0;
+    }
+
+    if(find_inside_map) {
+        assert(emap_len > 0);
+        value = emap[asn_random_between(0, emap_len - 1)].nat_value;
+    } else {
+        const asn_per_constraints_t *ct;
+
+        static const long variants[] = {
+            -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384,
+            -16383, -257,   -256,   -255,   -254,   -129,   -128,   -127,
+            -126,   -1,     0,      1,      126,    127,    128,    129,
+            254,    255,    256,    257,    16383,  16384,  16385,  32767,
+            32768,  32769,  65534,  65535,  65536,  65537};
+        if(specs && specs->field_unsigned) {
+            assert(variants[18] == 0);
+            value = variants[asn_random_between(
+                18, sizeof(variants) / sizeof(variants[0]) - 1)];
+        } else {
+            value = variants[asn_random_between(
+                0, sizeof(variants) / sizeof(variants[0]) - 1)];
+        }
+
+        if(!constraints) constraints = &td->encoding_constraints;
+        ct = constraints ? constraints->per_constraints : 0;
+        if(ct && (ct->value.flags & APC_CONSTRAINED)) {
+            if(value < ct->value.lower_bound || value > ct->value.upper_bound) {
+                value = asn_random_between(ct->value.lower_bound,
+                                           ct->value.upper_bound);
+            }
+        }
+    }
+
+    if(asn_imax2INTEGER(st, value)) {
+        if(st == *sptr) {
+            ASN_STRUCT_RESET(*td, st);
+        } else {
+            ASN_STRUCT_FREE(*td, st);
+        }
+        return result_failed;
+    } else {
+        *sptr = st;
+        result_ok.length = st->size;
+        return result_ok;
+    }
+}
diff --git a/e2ap/lib/INTEGER_oer.c b/e2ap/lib/INTEGER_oer.c
new file mode 100644 (file)
index 0000000..110689b
--- /dev/null
@@ -0,0 +1,179 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN_DISABLE_OER_SUPPORT
+
+#include <asn_internal.h>
+#include <INTEGER.h>
+#include <errno.h>
+
+asn_dec_rval_t
+INTEGER_decode_oer(const asn_codec_ctx_t *opt_codec_ctx,
+                   const asn_TYPE_descriptor_t *td,
+                   const asn_oer_constraints_t *constraints, void **sptr,
+                   const void *ptr, size_t size) {
+    const asn_INTEGER_specifics_t *specs =
+        (const asn_INTEGER_specifics_t *)td->specifics;
+    asn_dec_rval_t rval = {RC_OK, 0};
+    INTEGER_t *st = (INTEGER_t *)*sptr;
+    struct asn_oer_constraint_number_s ct = {0, 0};
+    size_t req_bytes;
+
+    (void)opt_codec_ctx;
+    (void)specs;
+
+    if(!st) {
+        st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st)));
+        if(!st) ASN__DECODE_FAILED;
+    }
+
+    FREEMEM(st->buf);
+    st->buf = 0;
+    st->size = 0;
+
+    if(!constraints) constraints = td->encoding_constraints.oer_constraints;
+    if(constraints) ct = constraints->value;
+
+    if(ct.width) {
+        req_bytes = ct.width;
+    } else {
+        /* No lower bound and no upper bound, effectively */
+
+        ssize_t consumed = oer_fetch_length(ptr, size, &req_bytes);
+        if(consumed == 0) {
+            ASN__DECODE_STARVED;
+        } else if(consumed == -1) {
+            ASN__DECODE_FAILED;
+        }
+        rval.consumed += consumed;
+        ptr = (const char *)ptr + consumed;
+        size -= consumed;
+    }
+
+    if(req_bytes > size) {
+        ASN__DECODE_STARVED;
+    }
+
+    if(ct.positive) {
+        /* X.969 08/2015 10.2(a) */
+        unsigned msb;   /* Most significant bit */
+        size_t useful_size;
+
+        /* Check most significant bit */
+        msb = *(const uint8_t *)ptr >> 7; /* yields 0 or 1 */
+        useful_size = msb + req_bytes;
+        st->buf = (uint8_t *)MALLOC(useful_size + 1);
+        if(!st->buf) {
+            ASN__DECODE_FAILED;
+        }
+
+        /*
+         * Record a large unsigned in a way not to confuse it
+         * with signed value.
+         */
+        st->buf[0] = '\0';
+        memcpy(st->buf + msb, ptr, req_bytes);
+        st->buf[useful_size] = '\0';    /* Just in case, 0-terminate */
+        st->size = useful_size;
+
+        rval.consumed += req_bytes;
+        return rval;
+    } else {
+        /* X.969 08/2015 10.2(b) */
+        st->buf = (uint8_t *)MALLOC(req_bytes + 1);
+        if(!st->buf) {
+            ASN__DECODE_FAILED;
+        }
+
+        memcpy(st->buf, ptr, req_bytes);
+        st->buf[req_bytes] = '\0'; /* Just in case, 0-terminate */
+        st->size = req_bytes;
+
+        rval.consumed += req_bytes;
+        return rval;
+    }
+}
+
+/*
+ * Encode as Canonical OER.
+ */
+asn_enc_rval_t
+INTEGER_encode_oer(const asn_TYPE_descriptor_t *td,
+                   const asn_oer_constraints_t *constraints, const void *sptr,
+                   asn_app_consume_bytes_f *cb, void *app_key) {
+    const INTEGER_t *st = sptr;
+    asn_enc_rval_t er = {0,0,0};
+    struct asn_oer_constraint_number_s ct = {0, 0};
+    const uint8_t *buf;
+    const uint8_t *end;
+    size_t useful_bytes;
+    size_t req_bytes = 0;
+    int sign = 0;
+
+    if(!st || st->size == 0) ASN__ENCODE_FAILED;
+
+    if(!constraints) constraints = td->encoding_constraints.oer_constraints;
+    if(constraints) ct = constraints->value;
+
+    er.encoded = 0;
+
+    buf = st->buf;
+    end = buf + st->size;
+
+    sign = (buf && buf < end) ? buf[0] & 0x80 : 0;
+
+    /* Ignore 9 leading zeroes or ones */
+    if(ct.positive) {
+        if(sign) {
+            /* The value given is a signed value. Can't proceed. */
+            ASN__ENCODE_FAILED;
+        }
+        /* Remove leading zeros. */
+        for(; buf + 1 < end; buf++) {
+            if(buf[0] != 0x0) break;
+        }
+    } else {
+        for(; buf + 1 < end; buf++) {
+            if(buf[0] == 0x0 && (buf[1] & 0x80) == 0) {
+                continue;
+            } else if(buf[0] == 0xff && (buf[1] & 0x80) != 0) {
+                continue;
+            }
+            break;
+        }
+    }
+
+    useful_bytes = end - buf;
+    if(ct.width) {
+        req_bytes = ct.width;
+    } else {
+        ssize_t r = oer_serialize_length(useful_bytes, cb, app_key);
+        if(r < 0) {
+            ASN__ENCODE_FAILED;
+        }
+        er.encoded += r;
+        req_bytes = useful_bytes;
+    }
+
+    if(req_bytes < useful_bytes) {
+        ASN__ENCODE_FAILED;
+    }
+
+    er.encoded += req_bytes;
+
+    for(; req_bytes > useful_bytes; req_bytes--) {
+        if(cb(sign?"\xff":"\0", 1, app_key) < 0) {
+            ASN__ENCODE_FAILED;
+        }
+    }
+
+    if(cb(buf, useful_bytes, app_key) < 0) {
+        ASN__ENCODE_FAILED;
+    }
+
+    ASN__ENCODED_OK(er);
+}
+
+#endif  /* ASN_DISABLE_OER_SUPPORT */
diff --git a/e2ap/lib/InitiatingMessage.c b/e2ap/lib/InitiatingMessage.c
new file mode 100644 (file)
index 0000000..9b4c435
--- /dev/null
@@ -0,0 +1,1027 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Descriptions"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "InitiatingMessage.h"
+
+static const long asn_VAL_1_id_handoverPreparation = 0;
+static const long asn_VAL_1_reject = 0;
+static const long asn_VAL_2_id_reset = 7;
+static const long asn_VAL_2_reject = 0;
+static const long asn_VAL_3_id_x2Setup = 6;
+static const long asn_VAL_3_reject = 0;
+static const long asn_VAL_4_id_resourceStatusReportingInitiation = 9;
+static const long asn_VAL_4_reject = 0;
+static const long asn_VAL_5_id_eNBConfigurationUpdate = 8;
+static const long asn_VAL_5_reject = 0;
+static const long asn_VAL_6_id_mobilitySettingsChange = 12;
+static const long asn_VAL_6_reject = 0;
+static const long asn_VAL_7_id_cellActivation = 15;
+static const long asn_VAL_7_reject = 0;
+static const long asn_VAL_8_id_seNBAdditionPreparation = 19;
+static const long asn_VAL_8_reject = 0;
+static const long asn_VAL_9_id_meNBinitiatedSeNBModificationPreparation = 21;
+static const long asn_VAL_9_reject = 0;
+static const long asn_VAL_10_id_seNBinitiatedSeNBModification = 22;
+static const long asn_VAL_10_reject = 0;
+static const long asn_VAL_11_id_seNBinitiatedSeNBRelease = 24;
+static const long asn_VAL_11_reject = 0;
+static const long asn_VAL_12_id_x2Removal = 18;
+static const long asn_VAL_12_reject = 0;
+static const long asn_VAL_13_id_retrieveUEContext = 26;
+static const long asn_VAL_13_reject = 0;
+static const long asn_VAL_14_id_sgNBAdditionPreparation = 27;
+static const long asn_VAL_14_reject = 0;
+static const long asn_VAL_15_id_meNBinitiatedSgNBModificationPreparation = 29;
+static const long asn_VAL_15_reject = 0;
+static const long asn_VAL_16_id_sgNBinitiatedSgNBModification = 30;
+static const long asn_VAL_16_reject = 0;
+static const long asn_VAL_17_id_meNBinitiatedSgNBRelease = 31;
+static const long asn_VAL_17_ignore = 1;
+static const long asn_VAL_18_id_sgNBinitiatedSgNBRelease = 32;
+static const long asn_VAL_18_reject = 0;
+static const long asn_VAL_19_id_sgNBChange = 34;
+static const long asn_VAL_19_reject = 0;
+static const long asn_VAL_20_id_endcX2Setup = 36;
+static const long asn_VAL_20_reject = 0;
+static const long asn_VAL_21_id_endcConfigurationUpdate = 37;
+static const long asn_VAL_21_reject = 0;
+static const long asn_VAL_22_id_endcCellActivation = 39;
+static const long asn_VAL_22_reject = 0;
+static const long asn_VAL_23_id_endcPartialReset = 40;
+static const long asn_VAL_23_reject = 0;
+static const long asn_VAL_24_id_eUTRANRCellResourceCoordination = 41;
+static const long asn_VAL_24_reject = 0;
+static const long asn_VAL_25_id_endcX2Removal = 43;
+static const long asn_VAL_25_reject = 0;
+static const long asn_VAL_26_id_snStatusTransfer = 4;
+static const long asn_VAL_26_ignore = 1;
+static const long asn_VAL_27_id_uEContextRelease = 5;
+static const long asn_VAL_27_ignore = 1;
+static const long asn_VAL_28_id_handoverCancel = 1;
+static const long asn_VAL_28_ignore = 1;
+static const long asn_VAL_29_id_errorIndication = 3;
+static const long asn_VAL_29_ignore = 1;
+static const long asn_VAL_30_id_resourceStatusReporting = 10;
+static const long asn_VAL_30_ignore = 1;
+static const long asn_VAL_31_id_loadIndication = 2;
+static const long asn_VAL_31_ignore = 1;
+static const long asn_VAL_32_id_privateMessage = 11;
+static const long asn_VAL_32_ignore = 1;
+static const long asn_VAL_33_id_rLFIndication = 13;
+static const long asn_VAL_33_ignore = 1;
+static const long asn_VAL_34_id_handoverReport = 14;
+static const long asn_VAL_34_ignore = 1;
+static const long asn_VAL_35_id_x2Release = 16;
+static const long asn_VAL_35_reject = 0;
+static const long asn_VAL_36_id_x2APMessageTransfer = 17;
+static const long asn_VAL_36_reject = 0;
+static const long asn_VAL_37_id_seNBReconfigurationCompletion = 20;
+static const long asn_VAL_37_ignore = 1;
+static const long asn_VAL_38_id_meNBinitiatedSeNBRelease = 23;
+static const long asn_VAL_38_ignore = 1;
+static const long asn_VAL_39_id_seNBCounterCheck = 25;
+static const long asn_VAL_39_reject = 0;
+static const long asn_VAL_40_id_sgNBReconfigurationCompletion = 28;
+static const long asn_VAL_40_ignore = 1;
+static const long asn_VAL_41_id_sgNBCounterCheck = 33;
+static const long asn_VAL_41_reject = 0;
+static const long asn_VAL_42_id_rRCTransfer = 35;
+static const long asn_VAL_42_reject = 0;
+static const long asn_VAL_43_id_secondaryRATDataUsageReport = 38;
+static const long asn_VAL_43_reject = 0;
+static const long asn_VAL_44_id_SgNBActivityNotification = 42;
+static const long asn_VAL_44_reject = 0;
+static const long asn_VAL_45_id_dataForwardingAddressIndication = 44;
+static const long asn_VAL_45_ignore = 1;
+static const long asn_VAL_46_id_gNBStatusIndication = 45;
+static const long asn_VAL_46_ignore = 1;
+static const asn_ioc_cell_t asn_IOS_X2AP_ELEMENTARY_PROCEDURES_1_rows[] = {
+       { "&InitiatingMessage", aioc__type, &asn_DEF_HandoverRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_HandoverRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_HandoverPreparationFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_handoverPreparation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_reset },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_X2SetupRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_X2SetupResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_X2SetupFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_x2Setup },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResourceStatusResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ResourceStatusFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_resourceStatusReportingInitiation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENBConfigurationUpdate },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENBConfigurationUpdateAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENBConfigurationUpdateFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_eNBConfigurationUpdate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_MobilityChangeRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_MobilityChangeAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_MobilityChangeFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_mobilitySettingsChange },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_CellActivationRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_CellActivationResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_CellActivationFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_cellActivation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBAdditionRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SeNBAdditionRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SeNBAdditionRequestReject },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_seNBAdditionPreparation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBModificationRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationRequestReject },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_meNBinitiatedSeNBModificationPreparation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBModificationRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationConfirm },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationRefuse },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_seNBinitiatedSeNBModification },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBReleaseRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SeNBReleaseConfirm },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_seNBinitiatedSeNBRelease },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_X2RemovalRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_X2RemovalResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_X2RemovalFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_x2Removal },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RetrieveUEContextRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_RetrieveUEContextResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RetrieveUEContextFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_13_id_retrieveUEContext },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBAdditionRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBAdditionRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SgNBAdditionRequestReject },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_14_id_sgNBAdditionPreparation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBModificationRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationRequestReject },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_15_id_meNBinitiatedSgNBModificationPreparation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBModificationRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationConfirm },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationRefuse },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_16_id_sgNBinitiatedSgNBModification },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBReleaseRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBReleaseRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SgNBReleaseRequestReject },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_17_id_meNBinitiatedSgNBRelease },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBReleaseRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBReleaseConfirm },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_18_id_sgNBinitiatedSgNBRelease },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBChangeRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBChangeConfirm },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SgNBChangeRefuse },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_19_id_sgNBChange },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCX2SetupRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2SetupResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2SetupFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_20_id_endcX2Setup },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCConfigurationUpdate },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCConfigurationUpdateAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCConfigurationUpdateFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_21_id_endcConfigurationUpdate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCCellActivationRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCCellActivationResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCCellActivationFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_22_id_endcCellActivation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCPartialResetRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCPartialResetConfirm },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_23_id_endcPartialReset },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_EUTRANRCellResourceCoordinationRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_EUTRANRCellResourceCoordinationResponse },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_24_id_eUTRANRCellResourceCoordination },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCX2RemovalRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2RemovalResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2RemovalFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_25_id_endcX2Removal },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SNStatusTransfer },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_26_id_snStatusTransfer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextRelease },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_27_id_uEContextRelease },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_HandoverCancel },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_28_id_handoverCancel },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_29_id_errorIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusUpdate },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_30_id_resourceStatusReporting },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_LoadInformation },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_31_id_loadIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_PrivateMessage },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_32_id_privateMessage },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RLFIndication },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_33_id_rLFIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_HandoverReport },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_34_id_handoverReport },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_X2Release },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_35_id_x2Release },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_X2APMessageTransfer },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_36_id_x2APMessageTransfer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBReconfigurationComplete },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_37_id_seNBReconfigurationCompletion },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBReleaseRequest },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_38_id_meNBinitiatedSeNBRelease },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBCounterCheckRequest },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_39_id_seNBCounterCheck },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBReconfigurationComplete },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_40_id_sgNBReconfigurationCompletion },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBCounterCheckRequest },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_41_id_sgNBCounterCheck },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RRCTransfer },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_42_id_rRCTransfer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SecondaryRATDataUsageReport },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_43_id_secondaryRATDataUsageReport },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBActivityNotification },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_44_id_SgNBActivityNotification },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_DataForwardingAddressIndication },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_45_id_dataForwardingAddressIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_GNBStatusIndication },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_46_id_gNBStatusIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_ignore }
+};
+static const asn_ioc_set_t asn_IOS_X2AP_ELEMENTARY_PROCEDURES_1[] = {
+       { 46, 5, asn_IOS_X2AP_ELEMENTARY_PROCEDURES_1_rows }
+};
+static int
+memb_procedureCode_constraint_1(const 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 >= 0 && value <= 255)) {
+               /* 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_type_selector_result_t
+select_InitiatingMessage_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2AP_ELEMENTARY_PROCEDURES_1;
+       size_t constraining_column = 3; /* &procedureCode */
+       size_t for_column = 4; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_InitiatingMessage_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2AP_ELEMENTARY_PROCEDURES_1;
+       size_t constraining_column = 3; /* &procedureCode */
+       size_t for_column = 0; /* &InitiatingMessage */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_oer_constraints_t asn_OER_memb_procedureCode_constr_2 CC_NOTUSED = {
+       { 1, 1 }        /* (0..255) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       8,  8,  0,  255 }      /* (0..255) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_value_4[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.HandoverRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_HandoverRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "HandoverRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ResetRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ResetRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ResetRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.X2SetupRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_X2SetupRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "X2SetupRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ResourceStatusRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ResourceStatusRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ResourceStatusRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ENBConfigurationUpdate),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENBConfigurationUpdate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ENBConfigurationUpdate"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.MobilityChangeRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MobilityChangeRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MobilityChangeRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.CellActivationRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellActivationRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CellActivationRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SeNBAdditionRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBAdditionRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBAdditionRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SeNBModificationRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBModificationRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBModificationRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SeNBModificationRequired),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBModificationRequired,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBModificationRequired"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SeNBReleaseRequired),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBReleaseRequired,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBReleaseRequired"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.X2RemovalRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_X2RemovalRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "X2RemovalRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RetrieveUEContextRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RetrieveUEContextRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RetrieveUEContextRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SgNBAdditionRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBAdditionRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBAdditionRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SgNBModificationRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBModificationRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBModificationRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SgNBModificationRequired),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBModificationRequired,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBModificationRequired"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SgNBReleaseRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBReleaseRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBReleaseRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SgNBReleaseRequired),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBReleaseRequired,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBReleaseRequired"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SgNBChangeRequired),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBChangeRequired,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBChangeRequired"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ENDCX2SetupRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCX2SetupRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ENDCX2SetupRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ENDCConfigurationUpdate),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCConfigurationUpdate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ENDCConfigurationUpdate"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ENDCCellActivationRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCCellActivationRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ENDCCellActivationRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ENDCPartialResetRequired),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCPartialResetRequired,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ENDCPartialResetRequired"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.EUTRANRCellResourceCoordinationRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_EUTRANRCellResourceCoordinationRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "EUTRANRCellResourceCoordinationRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ENDCX2RemovalRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCX2RemovalRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ENDCX2RemovalRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SNStatusTransfer),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SNStatusTransfer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SNStatusTransfer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.UEContextRelease),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UEContextRelease,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UEContextRelease"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.HandoverCancel),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_HandoverCancel,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "HandoverCancel"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ErrorIndication),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ErrorIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ErrorIndication"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ResourceStatusUpdate),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ResourceStatusUpdate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ResourceStatusUpdate"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.LoadInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_LoadInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "LoadInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.PrivateMessage),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_PrivateMessage,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PrivateMessage"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RLFIndication),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RLFIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RLFIndication"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.HandoverReport),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_HandoverReport,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "HandoverReport"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.X2Release),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_X2Release,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "X2Release"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.X2APMessageTransfer),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_X2APMessageTransfer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "X2APMessageTransfer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SeNBReconfigurationComplete),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBReconfigurationComplete,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBReconfigurationComplete"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SeNBReleaseRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBReleaseRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBReleaseRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SeNBCounterCheckRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBCounterCheckRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBCounterCheckRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SgNBReconfigurationComplete),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBReconfigurationComplete,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBReconfigurationComplete"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SgNBCounterCheckRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBCounterCheckRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBCounterCheckRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RRCTransfer),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RRCTransfer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RRCTransfer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SecondaryRATDataUsageReport),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SecondaryRATDataUsageReport,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SecondaryRATDataUsageReport"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SgNBActivityNotification),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBActivityNotification,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBActivityNotification"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.DataForwardingAddressIndication),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_DataForwardingAddressIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "DataForwardingAddressIndication"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.GNBStatusIndication),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GNBStatusIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GNBStatusIndication"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 45 }, /* HandoverRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 44 }, /* ResetRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 43 }, /* X2SetupRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 42 }, /* ResourceStatusRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 41 }, /* ENBConfigurationUpdate */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 40 }, /* MobilityChangeRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 39 }, /* CellActivationRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 38 }, /* SeNBAdditionRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 37 }, /* SeNBModificationRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 36 }, /* SeNBModificationRequired */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 35 }, /* SeNBReleaseRequired */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -11, 34 }, /* X2RemovalRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -12, 33 }, /* RetrieveUEContextRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 13, -13, 32 }, /* SgNBAdditionRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 14, -14, 31 }, /* SgNBModificationRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 15, -15, 30 }, /* SgNBModificationRequired */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 16, -16, 29 }, /* SgNBReleaseRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 17, -17, 28 }, /* SgNBReleaseRequired */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 18, -18, 27 }, /* SgNBChangeRequired */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 19, -19, 26 }, /* ENDCX2SetupRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 20, -20, 25 }, /* ENDCConfigurationUpdate */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 21, -21, 24 }, /* ENDCCellActivationRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 22, -22, 23 }, /* ENDCPartialResetRequired */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 23, -23, 22 }, /* EUTRANRCellResourceCoordinationRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 24, -24, 21 }, /* ENDCX2RemovalRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 25, -25, 20 }, /* SNStatusTransfer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 26, -26, 19 }, /* UEContextRelease */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 27, -27, 18 }, /* HandoverCancel */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 28, -28, 17 }, /* ErrorIndication */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 29, -29, 16 }, /* ResourceStatusUpdate */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 30, -30, 15 }, /* LoadInformation */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 31, -31, 14 }, /* PrivateMessage */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 32, -32, 13 }, /* RLFIndication */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 33, -33, 12 }, /* HandoverReport */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 34, -34, 11 }, /* X2Release */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 35, -35, 10 }, /* X2APMessageTransfer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 36, -36, 9 }, /* SeNBReconfigurationComplete */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 37, -37, 8 }, /* SeNBReleaseRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 38, -38, 7 }, /* SeNBCounterCheckRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 39, -39, 6 }, /* SgNBReconfigurationComplete */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 40, -40, 5 }, /* SgNBCounterCheckRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 41, -41, 4 }, /* RRCTransfer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 42, -42, 3 }, /* SecondaryRATDataUsageReport */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 43, -43, 2 }, /* SgNBActivityNotification */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 44, -44, 1 }, /* DataForwardingAddressIndication */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 45, -45, 0 } /* GNBStatusIndication */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = {
+       sizeof(struct InitiatingMessage__value),
+       offsetof(struct InitiatingMessage__value, _asn_ctx),
+       offsetof(struct InitiatingMessage__value, present),
+       sizeof(((struct InitiatingMessage__value *)0)->present),
+       asn_MAP_value_tag2el_4,
+       46,     /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_4 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_4,
+       46,     /* Elements count */
+       &asn_SPC_value_specs_4  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_InitiatingMessage_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, procedureCode),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProcedureCode,
+               0,
+               { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2,  memb_procedureCode_constraint_1 },
+               0, 0, /* No default value */
+               "procedureCode"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_InitiatingMessage_criticality_type,
+               { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3,  memb_criticality_constraint_1 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_4,
+               select_InitiatingMessage_value_type,
+               { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4,  memb_value_constraint_1 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_InitiatingMessage_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1 = {
+       sizeof(struct InitiatingMessage),
+       offsetof(struct InitiatingMessage, _asn_ctx),
+       asn_MAP_InitiatingMessage_tag2el_1,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_InitiatingMessage = {
+       "InitiatingMessage",
+       "InitiatingMessage",
+       &asn_OP_SEQUENCE,
+       asn_DEF_InitiatingMessage_tags_1,
+       sizeof(asn_DEF_InitiatingMessage_tags_1)
+               /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */
+       asn_DEF_InitiatingMessage_tags_1,       /* Same as above */
+       sizeof(asn_DEF_InitiatingMessage_tags_1)
+               /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_InitiatingMessage_1,
+       3,      /* Elements count */
+       &asn_SPC_InitiatingMessage_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/InitiatingMessageE2.c b/e2ap/lib/InitiatingMessageE2.c
new file mode 100644 (file)
index 0000000..4138633
--- /dev/null
@@ -0,0 +1,347 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Descriptions"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "InitiatingMessageE2.h"
+
+static const long asn_VAL_1_id_ricSubscription = 201;
+static const long asn_VAL_1_reject = 0;
+static const long asn_VAL_2_id_ricSubscriptionDelete = 202;
+static const long asn_VAL_2_reject = 0;
+static const long asn_VAL_3_id_ricServiceUpdate = 203;
+static const long asn_VAL_3_reject = 0;
+static const long asn_VAL_4_id_ricControl = 204;
+static const long asn_VAL_4_reject = 0;
+static const long asn_VAL_5_id_ricIndication = 205;
+static const long asn_VAL_5_ignore = 1;
+static const long asn_VAL_6_id_ricServiceQuery = 206;
+static const long asn_VAL_6_ignore = 1;
+static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = {
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_ricSubscription },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_ricSubscriptionDelete },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_ricServiceUpdate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_ricControl },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_ricIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_ricServiceQuery },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_ignore }
+};
+static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = {
+       { 6, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows }
+};
+static int
+memb_procedureCode_constraint_1(const 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 >= 0 && value <= 255)) {
+               /* 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_type_selector_result_t
+select_InitiatingMessageE2_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1;
+       size_t constraining_column = 3; /* &procedureCode */
+       size_t for_column = 4; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessageE2, procedureCode));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_InitiatingMessageE2_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1;
+       size_t constraining_column = 3; /* &procedureCode */
+       size_t for_column = 0; /* &InitiatingMessage */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessageE2, procedureCode));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_oer_constraints_t asn_OER_memb_procedureCode_constr_2 CC_NOTUSED = {
+       { 1, 1 }        /* (0..255) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       8,  8,  0,  255 }      /* (0..255) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_value_4[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessageE2__value, choice.RICsubscriptionRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICsubscriptionRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICsubscriptionRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessageE2__value, choice.RICsubscriptionDeleteRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICsubscriptionDeleteRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICsubscriptionDeleteRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessageE2__value, choice.RICserviceUpdate),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICserviceUpdate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICserviceUpdate"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessageE2__value, choice.RICcontrolRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICcontrolRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICcontrolRequest"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessageE2__value, choice.RICindication),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICindication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICindication"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessageE2__value, choice.RICserviceQuery),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICserviceQuery,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICserviceQuery"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 5 }, /* RICsubscriptionRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 4 }, /* RICsubscriptionDeleteRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 3 }, /* RICserviceUpdate */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 2 }, /* RICcontrolRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 1 }, /* RICindication */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 0 } /* RICserviceQuery */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = {
+       sizeof(struct InitiatingMessageE2__value),
+       offsetof(struct InitiatingMessageE2__value, _asn_ctx),
+       offsetof(struct InitiatingMessageE2__value, present),
+       sizeof(((struct InitiatingMessageE2__value *)0)->present),
+       asn_MAP_value_tag2el_4,
+       6,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_4 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_4,
+       6,      /* Elements count */
+       &asn_SPC_value_specs_4  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_InitiatingMessageE2_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessageE2, procedureCode),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProcedureCode,
+               0,
+               { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2,  memb_procedureCode_constraint_1 },
+               0, 0, /* No default value */
+               "procedureCode"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessageE2, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_InitiatingMessageE2_criticality_type,
+               { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3,  memb_criticality_constraint_1 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct InitiatingMessageE2, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_4,
+               select_InitiatingMessageE2_value_type,
+               { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4,  memb_value_constraint_1 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_InitiatingMessageE2_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_InitiatingMessageE2_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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessageE2_specs_1 = {
+       sizeof(struct InitiatingMessageE2),
+       offsetof(struct InitiatingMessageE2, _asn_ctx),
+       asn_MAP_InitiatingMessageE2_tag2el_1,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_InitiatingMessageE2 = {
+       "InitiatingMessageE2",
+       "InitiatingMessageE2",
+       &asn_OP_SEQUENCE,
+       asn_DEF_InitiatingMessageE2_tags_1,
+       sizeof(asn_DEF_InitiatingMessageE2_tags_1)
+               /sizeof(asn_DEF_InitiatingMessageE2_tags_1[0]), /* 1 */
+       asn_DEF_InitiatingMessageE2_tags_1,     /* Same as above */
+       sizeof(asn_DEF_InitiatingMessageE2_tags_1)
+               /sizeof(asn_DEF_InitiatingMessageE2_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_InitiatingMessageE2_1,
+       3,      /* Elements count */
+       &asn_SPC_InitiatingMessageE2_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/InitiatingNodeType-EndcConfigUpdate.c b/e2ap/lib/InitiatingNodeType-EndcConfigUpdate.c
new file mode 100644 (file)
index 0000000..de65734
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "InitiatingNodeType-EndcConfigUpdate.h"
+
+#include "ProtocolIE-Container.h"
+static asn_oer_constraints_t asn_OER_type_InitiatingNodeType_EndcConfigUpdate_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_InitiatingNodeType_EndcConfigUpdate_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_InitiatingNodeType_EndcConfigUpdate_1[] = {
+       { ATF_POINTER, 0, offsetof(struct InitiatingNodeType_EndcConfigUpdate, choice.init_eNB),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P92,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "init-eNB"
+               },
+       { ATF_POINTER, 0, offsetof(struct InitiatingNodeType_EndcConfigUpdate, choice.init_en_gNB),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P93,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "init-en-gNB"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_InitiatingNodeType_EndcConfigUpdate_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* init-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* init-en-gNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_InitiatingNodeType_EndcConfigUpdate_specs_1 = {
+       sizeof(struct InitiatingNodeType_EndcConfigUpdate),
+       offsetof(struct InitiatingNodeType_EndcConfigUpdate, _asn_ctx),
+       offsetof(struct InitiatingNodeType_EndcConfigUpdate, present),
+       sizeof(((struct InitiatingNodeType_EndcConfigUpdate *)0)->present),
+       asn_MAP_InitiatingNodeType_EndcConfigUpdate_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_InitiatingNodeType_EndcConfigUpdate = {
+       "InitiatingNodeType-EndcConfigUpdate",
+       "InitiatingNodeType-EndcConfigUpdate",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_InitiatingNodeType_EndcConfigUpdate_constr_1, &asn_PER_type_InitiatingNodeType_EndcConfigUpdate_constr_1, CHOICE_constraint },
+       asn_MBR_InitiatingNodeType_EndcConfigUpdate_1,
+       2,      /* Elements count */
+       &asn_SPC_InitiatingNodeType_EndcConfigUpdate_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/InitiatingNodeType-EndcX2Removal.c b/e2ap/lib/InitiatingNodeType-EndcX2Removal.c
new file mode 100644 (file)
index 0000000..ad44297
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "InitiatingNodeType-EndcX2Removal.h"
+
+#include "ProtocolIE-Container.h"
+static asn_oer_constraints_t asn_OER_type_InitiatingNodeType_EndcX2Removal_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_InitiatingNodeType_EndcX2Removal_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_InitiatingNodeType_EndcX2Removal_1[] = {
+       { ATF_POINTER, 0, offsetof(struct InitiatingNodeType_EndcX2Removal, choice.init_eNB),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P112,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "init-eNB"
+               },
+       { ATF_POINTER, 0, offsetof(struct InitiatingNodeType_EndcX2Removal, choice.init_en_gNB),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P113,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "init-en-gNB"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_InitiatingNodeType_EndcX2Removal_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* init-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* init-en-gNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_InitiatingNodeType_EndcX2Removal_specs_1 = {
+       sizeof(struct InitiatingNodeType_EndcX2Removal),
+       offsetof(struct InitiatingNodeType_EndcX2Removal, _asn_ctx),
+       offsetof(struct InitiatingNodeType_EndcX2Removal, present),
+       sizeof(((struct InitiatingNodeType_EndcX2Removal *)0)->present),
+       asn_MAP_InitiatingNodeType_EndcX2Removal_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_InitiatingNodeType_EndcX2Removal = {
+       "InitiatingNodeType-EndcX2Removal",
+       "InitiatingNodeType-EndcX2Removal",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_InitiatingNodeType_EndcX2Removal_constr_1, &asn_PER_type_InitiatingNodeType_EndcX2Removal_constr_1, CHOICE_constraint },
+       asn_MBR_InitiatingNodeType_EndcX2Removal_1,
+       2,      /* Elements count */
+       &asn_SPC_InitiatingNodeType_EndcX2Removal_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/InitiatingNodeType-EndcX2Setup.c b/e2ap/lib/InitiatingNodeType-EndcX2Setup.c
new file mode 100644 (file)
index 0000000..6313a3c
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "InitiatingNodeType-EndcX2Setup.h"
+
+#include "ProtocolIE-Container.h"
+static asn_oer_constraints_t asn_OER_type_InitiatingNodeType_EndcX2Setup_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_InitiatingNodeType_EndcX2Setup_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_InitiatingNodeType_EndcX2Setup_1[] = {
+       { ATF_POINTER, 0, offsetof(struct InitiatingNodeType_EndcX2Setup, choice.init_eNB),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P85,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "init-eNB"
+               },
+       { ATF_POINTER, 0, offsetof(struct InitiatingNodeType_EndcX2Setup, choice.init_en_gNB),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P86,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "init-en-gNB"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_InitiatingNodeType_EndcX2Setup_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* init-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* init-en-gNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_InitiatingNodeType_EndcX2Setup_specs_1 = {
+       sizeof(struct InitiatingNodeType_EndcX2Setup),
+       offsetof(struct InitiatingNodeType_EndcX2Setup, _asn_ctx),
+       offsetof(struct InitiatingNodeType_EndcX2Setup, present),
+       sizeof(((struct InitiatingNodeType_EndcX2Setup *)0)->present),
+       asn_MAP_InitiatingNodeType_EndcX2Setup_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_InitiatingNodeType_EndcX2Setup = {
+       "InitiatingNodeType-EndcX2Setup",
+       "InitiatingNodeType-EndcX2Setup",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_InitiatingNodeType_EndcX2Setup_constr_1, &asn_PER_type_InitiatingNodeType_EndcX2Setup_constr_1, CHOICE_constraint },
+       asn_MBR_InitiatingNodeType_EndcX2Setup_1,
+       2,      /* Elements count */
+       &asn_SPC_InitiatingNodeType_EndcX2Setup_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/InitiatingNodeType-EutranrCellResourceCoordination.c b/e2ap/lib/InitiatingNodeType-EutranrCellResourceCoordination.c
new file mode 100644 (file)
index 0000000..59d4c81
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "InitiatingNodeType-EutranrCellResourceCoordination.h"
+
+#include "ProtocolIE-Container.h"
+static asn_oer_constraints_t asn_OER_type_InitiatingNodeType_EutranrCellResourceCoordination_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_InitiatingNodeType_EutranrCellResourceCoordination_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_InitiatingNodeType_EutranrCellResourceCoordination_1[] = {
+       { ATF_POINTER, 0, offsetof(struct InitiatingNodeType_EutranrCellResourceCoordination, choice.initiate_eNB),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P106,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "initiate-eNB"
+               },
+       { ATF_POINTER, 0, offsetof(struct InitiatingNodeType_EutranrCellResourceCoordination, choice.initiate_en_gNB),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P107,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "initiate-en-gNB"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_InitiatingNodeType_EutranrCellResourceCoordination_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initiate-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* initiate-en-gNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_InitiatingNodeType_EutranrCellResourceCoordination_specs_1 = {
+       sizeof(struct InitiatingNodeType_EutranrCellResourceCoordination),
+       offsetof(struct InitiatingNodeType_EutranrCellResourceCoordination, _asn_ctx),
+       offsetof(struct InitiatingNodeType_EutranrCellResourceCoordination, present),
+       sizeof(((struct InitiatingNodeType_EutranrCellResourceCoordination *)0)->present),
+       asn_MAP_InitiatingNodeType_EutranrCellResourceCoordination_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_InitiatingNodeType_EutranrCellResourceCoordination = {
+       "InitiatingNodeType-EutranrCellResourceCoordination",
+       "InitiatingNodeType-EutranrCellResourceCoordination",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_InitiatingNodeType_EutranrCellResourceCoordination_constr_1, &asn_PER_type_InitiatingNodeType_EutranrCellResourceCoordination_constr_1, CHOICE_constraint },
+       asn_MBR_InitiatingNodeType_EutranrCellResourceCoordination_1,
+       2,      /* Elements count */
+       &asn_SPC_InitiatingNodeType_EutranrCellResourceCoordination_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/IntegrityProtectionAlgorithms.c b/e2ap/lib/IntegrityProtectionAlgorithms.c
new file mode 100644 (file)
index 0000000..c77ff54
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "IntegrityProtectionAlgorithms.h"
+
+int
+IntegrityProtectionAlgorithms_constraint(const 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 == 16)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_IntegrityProtectionAlgorithms_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+asn_per_constraints_t asn_PER_type_IntegrityProtectionAlgorithms_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  16,  16 }  /* (SIZE(16..16,...)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_IntegrityProtectionAlgorithms_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_IntegrityProtectionAlgorithms = {
+       "IntegrityProtectionAlgorithms",
+       "IntegrityProtectionAlgorithms",
+       &asn_OP_BIT_STRING,
+       asn_DEF_IntegrityProtectionAlgorithms_tags_1,
+       sizeof(asn_DEF_IntegrityProtectionAlgorithms_tags_1)
+               /sizeof(asn_DEF_IntegrityProtectionAlgorithms_tags_1[0]), /* 1 */
+       asn_DEF_IntegrityProtectionAlgorithms_tags_1,   /* Same as above */
+       sizeof(asn_DEF_IntegrityProtectionAlgorithms_tags_1)
+               /sizeof(asn_DEF_IntegrityProtectionAlgorithms_tags_1[0]), /* 1 */
+       { &asn_OER_type_IntegrityProtectionAlgorithms_constr_1, &asn_PER_type_IntegrityProtectionAlgorithms_constr_1, IntegrityProtectionAlgorithms_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/Interface-ID.c b/e2ap/lib/Interface-ID.c
new file mode 100644 (file)
index 0000000..1aa2b52
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Interface-ID.h"
+
+#include "GlobalENB-ID.h"
+#include "GlobalGNB-ID.h"
+static asn_oer_constraints_t asn_OER_type_Interface_ID_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_Interface_ID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_Interface_ID_1[] = {
+       { ATF_POINTER, 0, offsetof(struct Interface_ID, choice.global_eNB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GlobalENB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "global-eNB-ID"
+               },
+       { ATF_POINTER, 0, offsetof(struct Interface_ID, choice.global_gNB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GlobalGNB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "global-gNB-ID"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_Interface_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-eNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* global-gNB-ID */
+};
+asn_CHOICE_specifics_t asn_SPC_Interface_ID_specs_1 = {
+       sizeof(struct Interface_ID),
+       offsetof(struct Interface_ID, _asn_ctx),
+       offsetof(struct Interface_ID, present),
+       sizeof(((struct Interface_ID *)0)->present),
+       asn_MAP_Interface_ID_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_Interface_ID = {
+       "Interface-ID",
+       "Interface-ID",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_Interface_ID_constr_1, &asn_PER_type_Interface_ID_constr_1, CHOICE_constraint },
+       asn_MBR_Interface_ID_1,
+       2,      /* Elements count */
+       &asn_SPC_Interface_ID_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/InterfaceDirection.c b/e2ap/lib/InterfaceDirection.c
new file mode 100644 (file)
index 0000000..d97d1d3
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "InterfaceDirection.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_InterfaceDirection_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_InterfaceDirection_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_InterfaceDirection_value2enum_1[] = {
+       { 0,    8,      "incoming" },
+       { 1,    8,      "outgoing" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_InterfaceDirection_enum2value_1[] = {
+       0,      /* incoming(0) */
+       1       /* outgoing(1) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_InterfaceDirection_specs_1 = {
+       asn_MAP_InterfaceDirection_value2enum_1,        /* "tag" => N; sorted by tag */
+       asn_MAP_InterfaceDirection_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_InterfaceDirection_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_InterfaceDirection = {
+       "InterfaceDirection",
+       "InterfaceDirection",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_InterfaceDirection_tags_1,
+       sizeof(asn_DEF_InterfaceDirection_tags_1)
+               /sizeof(asn_DEF_InterfaceDirection_tags_1[0]), /* 1 */
+       asn_DEF_InterfaceDirection_tags_1,      /* Same as above */
+       sizeof(asn_DEF_InterfaceDirection_tags_1)
+               /sizeof(asn_DEF_InterfaceDirection_tags_1[0]), /* 1 */
+       { &asn_OER_type_InterfaceDirection_constr_1, &asn_PER_type_InterfaceDirection_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_InterfaceDirection_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/InterfaceMessage.c b/e2ap/lib/InterfaceMessage.c
new file mode 100644 (file)
index 0000000..bf4c7a4
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "InterfaceMessage.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_InterfaceMessage_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_InterfaceMessage = {
+       "InterfaceMessage",
+       "InterfaceMessage",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_InterfaceMessage_tags_1,
+       sizeof(asn_DEF_InterfaceMessage_tags_1)
+               /sizeof(asn_DEF_InterfaceMessage_tags_1[0]), /* 1 */
+       asn_DEF_InterfaceMessage_tags_1,        /* Same as above */
+       sizeof(asn_DEF_InterfaceMessage_tags_1)
+               /sizeof(asn_DEF_InterfaceMessage_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/InterfaceMessageType.c b/e2ap/lib/InterfaceMessageType.c
new file mode 100644 (file)
index 0000000..5c69c95
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "InterfaceMessageType.h"
+
+asn_TYPE_member_t asn_MBR_InterfaceMessageType_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct InterfaceMessageType, procedureCode),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProcedureCode,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "procedureCode"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InterfaceMessageType, typeOfMessage),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TypeOfMessage,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "typeOfMessage"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_InterfaceMessageType_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_InterfaceMessageType_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* typeOfMessage */
+};
+asn_SEQUENCE_specifics_t asn_SPC_InterfaceMessageType_specs_1 = {
+       sizeof(struct InterfaceMessageType),
+       offsetof(struct InterfaceMessageType, _asn_ctx),
+       asn_MAP_InterfaceMessageType_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_InterfaceMessageType = {
+       "InterfaceMessageType",
+       "InterfaceMessageType",
+       &asn_OP_SEQUENCE,
+       asn_DEF_InterfaceMessageType_tags_1,
+       sizeof(asn_DEF_InterfaceMessageType_tags_1)
+               /sizeof(asn_DEF_InterfaceMessageType_tags_1[0]), /* 1 */
+       asn_DEF_InterfaceMessageType_tags_1,    /* Same as above */
+       sizeof(asn_DEF_InterfaceMessageType_tags_1)
+               /sizeof(asn_DEF_InterfaceMessageType_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_InterfaceMessageType_1,
+       2,      /* Elements count */
+       &asn_SPC_InterfaceMessageType_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/InterfaceProtocolIE-ID.c b/e2ap/lib/InterfaceProtocolIE-ID.c
new file mode 100644 (file)
index 0000000..e9edd76
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "InterfaceProtocolIE-ID.h"
+
+int
+InterfaceProtocolIE_ID_constraint(const 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 >= 0 && value <= 65535)) {
+               /* 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 ProtocolIE_ID,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_InterfaceProtocolIE_ID_constr_1 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+asn_per_constraints_t asn_PER_type_InterfaceProtocolIE_ID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_InterfaceProtocolIE_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_InterfaceProtocolIE_ID = {
+       "InterfaceProtocolIE-ID",
+       "InterfaceProtocolIE-ID",
+       &asn_OP_NativeInteger,
+       asn_DEF_InterfaceProtocolIE_ID_tags_1,
+       sizeof(asn_DEF_InterfaceProtocolIE_ID_tags_1)
+               /sizeof(asn_DEF_InterfaceProtocolIE_ID_tags_1[0]), /* 1 */
+       asn_DEF_InterfaceProtocolIE_ID_tags_1,  /* Same as above */
+       sizeof(asn_DEF_InterfaceProtocolIE_ID_tags_1)
+               /sizeof(asn_DEF_InterfaceProtocolIE_ID_tags_1[0]), /* 1 */
+       { &asn_OER_type_InterfaceProtocolIE_ID_constr_1, &asn_PER_type_InterfaceProtocolIE_ID_constr_1, InterfaceProtocolIE_ID_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/InterfaceProtocolIE-Item.c b/e2ap/lib/InterfaceProtocolIE-Item.c
new file mode 100644 (file)
index 0000000..a9c175d
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "InterfaceProtocolIE-Item.h"
+
+asn_TYPE_member_t asn_MBR_InterfaceProtocolIE_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct InterfaceProtocolIE_Item, interfaceProtocolIE_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_InterfaceProtocolIE_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "interfaceProtocolIE-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InterfaceProtocolIE_Item, interfaceProtocolIE_Test),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_InterfaceProtocolIE_Test,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "interfaceProtocolIE-Test"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InterfaceProtocolIE_Item, interfaceProtocolIE_Value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_InterfaceProtocolIE_Value,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "interfaceProtocolIE-Value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_InterfaceProtocolIE_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_InterfaceProtocolIE_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interfaceProtocolIE-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* interfaceProtocolIE-Test */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* interfaceProtocolIE-Value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_InterfaceProtocolIE_Item_specs_1 = {
+       sizeof(struct InterfaceProtocolIE_Item),
+       offsetof(struct InterfaceProtocolIE_Item, _asn_ctx),
+       asn_MAP_InterfaceProtocolIE_Item_tag2el_1,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_InterfaceProtocolIE_Item = {
+       "InterfaceProtocolIE-Item",
+       "InterfaceProtocolIE-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_InterfaceProtocolIE_Item_tags_1,
+       sizeof(asn_DEF_InterfaceProtocolIE_Item_tags_1)
+               /sizeof(asn_DEF_InterfaceProtocolIE_Item_tags_1[0]), /* 1 */
+       asn_DEF_InterfaceProtocolIE_Item_tags_1,        /* Same as above */
+       sizeof(asn_DEF_InterfaceProtocolIE_Item_tags_1)
+               /sizeof(asn_DEF_InterfaceProtocolIE_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_InterfaceProtocolIE_Item_1,
+       3,      /* Elements count */
+       &asn_SPC_InterfaceProtocolIE_Item_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/InterfaceProtocolIE-Test.c b/e2ap/lib/InterfaceProtocolIE-Test.c
new file mode 100644 (file)
index 0000000..73dafe1
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "InterfaceProtocolIE-Test.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_InterfaceProtocolIE_Test_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_InterfaceProtocolIE_Test_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  4 }    /* (0..4,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_InterfaceProtocolIE_Test_value2enum_1[] = {
+       { 0,    5,      "equal" },
+       { 1,    11,     "greaterthan" },
+       { 2,    8,      "lessthan" },
+       { 3,    8,      "contains" },
+       { 4,    7,      "present" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_InterfaceProtocolIE_Test_enum2value_1[] = {
+       3,      /* contains(3) */
+       0,      /* equal(0) */
+       1,      /* greaterthan(1) */
+       2,      /* lessthan(2) */
+       4       /* present(4) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_InterfaceProtocolIE_Test_specs_1 = {
+       asn_MAP_InterfaceProtocolIE_Test_value2enum_1,  /* "tag" => N; sorted by tag */
+       asn_MAP_InterfaceProtocolIE_Test_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_InterfaceProtocolIE_Test_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_InterfaceProtocolIE_Test = {
+       "InterfaceProtocolIE-Test",
+       "InterfaceProtocolIE-Test",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_InterfaceProtocolIE_Test_tags_1,
+       sizeof(asn_DEF_InterfaceProtocolIE_Test_tags_1)
+               /sizeof(asn_DEF_InterfaceProtocolIE_Test_tags_1[0]), /* 1 */
+       asn_DEF_InterfaceProtocolIE_Test_tags_1,        /* Same as above */
+       sizeof(asn_DEF_InterfaceProtocolIE_Test_tags_1)
+               /sizeof(asn_DEF_InterfaceProtocolIE_Test_tags_1[0]), /* 1 */
+       { &asn_OER_type_InterfaceProtocolIE_Test_constr_1, &asn_PER_type_InterfaceProtocolIE_Test_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_InterfaceProtocolIE_Test_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/InterfaceProtocolIE-Value.c b/e2ap/lib/InterfaceProtocolIE-Value.c
new file mode 100644 (file)
index 0000000..d149d13
--- /dev/null
@@ -0,0 +1,95 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "InterfaceProtocolIE-Value.h"
+
+static asn_oer_constraints_t asn_OER_type_InterfaceProtocolIE_Value_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_InterfaceProtocolIE_Value_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  4 }    /* (0..4,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_InterfaceProtocolIE_Value_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct InterfaceProtocolIE_Value, choice.valueInt),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "valueInt"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InterfaceProtocolIE_Value, choice.valueEnum),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "valueEnum"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InterfaceProtocolIE_Value, choice.valueBool),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BOOLEAN,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "valueBool"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InterfaceProtocolIE_Value, choice.valueBitS),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "valueBitS"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct InterfaceProtocolIE_Value, choice.valueOctS),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_OCTET_STRING,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "valueOctS"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_InterfaceProtocolIE_Value_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* valueInt */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* valueEnum */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* valueBool */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* valueBitS */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* valueOctS */
+};
+asn_CHOICE_specifics_t asn_SPC_InterfaceProtocolIE_Value_specs_1 = {
+       sizeof(struct InterfaceProtocolIE_Value),
+       offsetof(struct InterfaceProtocolIE_Value, _asn_ctx),
+       offsetof(struct InterfaceProtocolIE_Value, present),
+       sizeof(((struct InterfaceProtocolIE_Value *)0)->present),
+       asn_MAP_InterfaceProtocolIE_Value_tag2el_1,
+       5,      /* Count of tags in the map */
+       0, 0,
+       5       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_InterfaceProtocolIE_Value = {
+       "InterfaceProtocolIE-Value",
+       "InterfaceProtocolIE-Value",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_InterfaceProtocolIE_Value_constr_1, &asn_PER_type_InterfaceProtocolIE_Value_constr_1, CHOICE_constraint },
+       asn_MBR_InterfaceProtocolIE_Value_1,
+       5,      /* Elements count */
+       &asn_SPC_InterfaceProtocolIE_Value_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/InterfacesToTrace.c b/e2ap/lib/InterfacesToTrace.c
new file mode 100644 (file)
index 0000000..04ab998
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "InterfacesToTrace.h"
+
+int
+InterfacesToTrace_constraint(const 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 == 8)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_InterfacesToTrace_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       8       /* (SIZE(8..8)) */};
+asn_per_constraints_t asn_PER_type_InterfacesToTrace_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  8,  8 }        /* (SIZE(8..8)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_InterfacesToTrace_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_InterfacesToTrace = {
+       "InterfacesToTrace",
+       "InterfacesToTrace",
+       &asn_OP_BIT_STRING,
+       asn_DEF_InterfacesToTrace_tags_1,
+       sizeof(asn_DEF_InterfacesToTrace_tags_1)
+               /sizeof(asn_DEF_InterfacesToTrace_tags_1[0]), /* 1 */
+       asn_DEF_InterfacesToTrace_tags_1,       /* Same as above */
+       sizeof(asn_DEF_InterfacesToTrace_tags_1)
+               /sizeof(asn_DEF_InterfacesToTrace_tags_1[0]), /* 1 */
+       { &asn_OER_type_InterfacesToTrace_constr_1, &asn_PER_type_InterfacesToTrace_constr_1, InterfacesToTrace_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/InvokeIndication.c b/e2ap/lib/InvokeIndication.c
new file mode 100644 (file)
index 0000000..e89e3db
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "InvokeIndication.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_InvokeIndication_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_InvokeIndication_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_InvokeIndication_value2enum_1[] = {
+       { 0,    15,     "abs-information" },
+       { 1,    23,     "naics-information-start" },
+       { 2,    22,     "naics-information-stop" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_InvokeIndication_enum2value_1[] = {
+       0,      /* abs-information(0) */
+       1,      /* naics-information-start(1) */
+       2       /* naics-information-stop(2) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_InvokeIndication_specs_1 = {
+       asn_MAP_InvokeIndication_value2enum_1,  /* "tag" => N; sorted by tag */
+       asn_MAP_InvokeIndication_enum2value_1,  /* N => "tag"; sorted by N */
+       3,      /* 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_InvokeIndication_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_InvokeIndication = {
+       "InvokeIndication",
+       "InvokeIndication",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_InvokeIndication_tags_1,
+       sizeof(asn_DEF_InvokeIndication_tags_1)
+               /sizeof(asn_DEF_InvokeIndication_tags_1[0]), /* 1 */
+       asn_DEF_InvokeIndication_tags_1,        /* Same as above */
+       sizeof(asn_DEF_InvokeIndication_tags_1)
+               /sizeof(asn_DEF_InvokeIndication_tags_1[0]), /* 1 */
+       { &asn_OER_type_InvokeIndication_constr_1, &asn_PER_type_InvokeIndication_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_InvokeIndication_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/Key-eNodeB-Star.c b/e2ap/lib/Key-eNodeB-Star.c
new file mode 100644 (file)
index 0000000..bb314f1
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Key-eNodeB-Star.h"
+
+int
+Key_eNodeB_Star_constraint(const 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 == 256)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_Key_eNodeB_Star_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       256     /* (SIZE(256..256)) */};
+asn_per_constraints_t asn_PER_type_Key_eNodeB_Star_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  256,  256 }    /* (SIZE(256..256)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_Key_eNodeB_Star_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Key_eNodeB_Star = {
+       "Key-eNodeB-Star",
+       "Key-eNodeB-Star",
+       &asn_OP_BIT_STRING,
+       asn_DEF_Key_eNodeB_Star_tags_1,
+       sizeof(asn_DEF_Key_eNodeB_Star_tags_1)
+               /sizeof(asn_DEF_Key_eNodeB_Star_tags_1[0]), /* 1 */
+       asn_DEF_Key_eNodeB_Star_tags_1, /* Same as above */
+       sizeof(asn_DEF_Key_eNodeB_Star_tags_1)
+               /sizeof(asn_DEF_Key_eNodeB_Star_tags_1[0]), /* 1 */
+       { &asn_OER_type_Key_eNodeB_Star_constr_1, &asn_PER_type_Key_eNodeB_Star_constr_1, Key_eNodeB_Star_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/LAC.c b/e2ap/lib/LAC.c
new file mode 100644 (file)
index 0000000..5cde0d9
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "LAC.h"
+
+int
+LAC_constraint(const 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 == 2)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_LAC_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       2       /* (SIZE(2..2)) */};
+asn_per_constraints_t asn_PER_type_LAC_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  2,  2 }        /* (SIZE(2..2)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_LAC_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_LAC = {
+       "LAC",
+       "LAC",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_LAC_tags_1,
+       sizeof(asn_DEF_LAC_tags_1)
+               /sizeof(asn_DEF_LAC_tags_1[0]), /* 1 */
+       asn_DEF_LAC_tags_1,     /* Same as above */
+       sizeof(asn_DEF_LAC_tags_1)
+               /sizeof(asn_DEF_LAC_tags_1[0]), /* 1 */
+       { &asn_OER_type_LAC_constr_1, &asn_PER_type_LAC_constr_1, LAC_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/LCID.c b/e2ap/lib/LCID.c
new file mode 100644 (file)
index 0000000..5c2dfdc
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "LCID.h"
+
+int
+LCID_constraint(const 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 >= 1 && value <= 32)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_LCID_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_LCID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  5,  5,  1,  32 }   /* (1..32,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_LCID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_LCID = {
+       "LCID",
+       "LCID",
+       &asn_OP_NativeInteger,
+       asn_DEF_LCID_tags_1,
+       sizeof(asn_DEF_LCID_tags_1)
+               /sizeof(asn_DEF_LCID_tags_1[0]), /* 1 */
+       asn_DEF_LCID_tags_1,    /* Same as above */
+       sizeof(asn_DEF_LCID_tags_1)
+               /sizeof(asn_DEF_LCID_tags_1[0]), /* 1 */
+       { &asn_OER_type_LCID_constr_1, &asn_PER_type_LCID_constr_1, LCID_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/LHN-ID.c b/e2ap/lib/LHN-ID.c
new file mode 100644 (file)
index 0000000..9fe7dd9
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "LHN-ID.h"
+
+int
+LHN_ID_constraint(const 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 >= 32 && size <= 256)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_LHN_ID_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(32..256)) */};
+static asn_per_constraints_t asn_PER_type_LHN_ID_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  32,  256 }     /* (SIZE(32..256)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_LHN_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_LHN_ID = {
+       "LHN-ID",
+       "LHN-ID",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_LHN_ID_tags_1,
+       sizeof(asn_DEF_LHN_ID_tags_1)
+               /sizeof(asn_DEF_LHN_ID_tags_1[0]), /* 1 */
+       asn_DEF_LHN_ID_tags_1,  /* Same as above */
+       sizeof(asn_DEF_LHN_ID_tags_1)
+               /sizeof(asn_DEF_LHN_ID_tags_1[0]), /* 1 */
+       { &asn_OER_type_LHN_ID_constr_1, &asn_PER_type_LHN_ID_constr_1, LHN_ID_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/LastVisitedCell-Item.c b/e2ap/lib/LastVisitedCell-Item.c
new file mode 100644 (file)
index 0000000..21a3c61
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "LastVisitedCell-Item.h"
+
+#include "LastVisitedEUTRANCellInformation.h"
+#include "LastVisitedGERANCellInformation.h"
+static asn_oer_constraints_t asn_OER_type_LastVisitedCell_Item_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_LastVisitedCell_Item_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_LastVisitedCell_Item_1[] = {
+       { ATF_POINTER, 0, offsetof(struct LastVisitedCell_Item, choice.e_UTRAN_Cell),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_LastVisitedEUTRANCellInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-UTRAN-Cell"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct LastVisitedCell_Item, choice.uTRAN_Cell),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_LastVisitedUTRANCellInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uTRAN-Cell"
+               },
+       { ATF_POINTER, 0, offsetof(struct LastVisitedCell_Item, choice.gERAN_Cell),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_LastVisitedGERANCellInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "gERAN-Cell"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct LastVisitedCell_Item, choice.nG_RAN_Cell),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_LastVisitedNGRANCellInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nG-RAN-Cell"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_LastVisitedCell_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-UTRAN-Cell */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uTRAN-Cell */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gERAN-Cell */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* nG-RAN-Cell */
+};
+asn_CHOICE_specifics_t asn_SPC_LastVisitedCell_Item_specs_1 = {
+       sizeof(struct LastVisitedCell_Item),
+       offsetof(struct LastVisitedCell_Item, _asn_ctx),
+       offsetof(struct LastVisitedCell_Item, present),
+       sizeof(((struct LastVisitedCell_Item *)0)->present),
+       asn_MAP_LastVisitedCell_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       0, 0,
+       3       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_LastVisitedCell_Item = {
+       "LastVisitedCell-Item",
+       "LastVisitedCell-Item",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_LastVisitedCell_Item_constr_1, &asn_PER_type_LastVisitedCell_Item_constr_1, CHOICE_constraint },
+       asn_MBR_LastVisitedCell_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_LastVisitedCell_Item_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/LastVisitedEUTRANCellInformation.c b/e2ap/lib/LastVisitedEUTRANCellInformation.c
new file mode 100644 (file)
index 0000000..286e147
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "LastVisitedEUTRANCellInformation.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_LastVisitedEUTRANCellInformation_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct LastVisitedEUTRANCellInformation, global_Cell_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "global-Cell-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct LastVisitedEUTRANCellInformation, cellType),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CellType,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cellType"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct LastVisitedEUTRANCellInformation, time_UE_StayedInCell),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Time_UE_StayedInCell,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "time-UE-StayedInCell"
+               },
+       { ATF_POINTER, 1, offsetof(struct LastVisitedEUTRANCellInformation, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P157,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_LastVisitedEUTRANCellInformation_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_LastVisitedEUTRANCellInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_LastVisitedEUTRANCellInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-Cell-ID */
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_LastVisitedEUTRANCellInformation_specs_1 = {
+       sizeof(struct LastVisitedEUTRANCellInformation),
+       offsetof(struct LastVisitedEUTRANCellInformation, _asn_ctx),
+       asn_MAP_LastVisitedEUTRANCellInformation_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_LastVisitedEUTRANCellInformation_oms_1, /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_LastVisitedEUTRANCellInformation = {
+       "LastVisitedEUTRANCellInformation",
+       "LastVisitedEUTRANCellInformation",
+       &asn_OP_SEQUENCE,
+       asn_DEF_LastVisitedEUTRANCellInformation_tags_1,
+       sizeof(asn_DEF_LastVisitedEUTRANCellInformation_tags_1)
+               /sizeof(asn_DEF_LastVisitedEUTRANCellInformation_tags_1[0]), /* 1 */
+       asn_DEF_LastVisitedEUTRANCellInformation_tags_1,        /* Same as above */
+       sizeof(asn_DEF_LastVisitedEUTRANCellInformation_tags_1)
+               /sizeof(asn_DEF_LastVisitedEUTRANCellInformation_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_LastVisitedEUTRANCellInformation_1,
+       4,      /* Elements count */
+       &asn_SPC_LastVisitedEUTRANCellInformation_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/LastVisitedGERANCellInformation.c b/e2ap/lib/LastVisitedGERANCellInformation.c
new file mode 100644 (file)
index 0000000..48390eb
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "LastVisitedGERANCellInformation.h"
+
+static asn_oer_constraints_t asn_OER_type_LastVisitedGERANCellInformation_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_LastVisitedGERANCellInformation_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_LastVisitedGERANCellInformation_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct LastVisitedGERANCellInformation, choice.undefined),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NULL,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "undefined"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_LastVisitedGERANCellInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* undefined */
+};
+asn_CHOICE_specifics_t asn_SPC_LastVisitedGERANCellInformation_specs_1 = {
+       sizeof(struct LastVisitedGERANCellInformation),
+       offsetof(struct LastVisitedGERANCellInformation, _asn_ctx),
+       offsetof(struct LastVisitedGERANCellInformation, present),
+       sizeof(((struct LastVisitedGERANCellInformation *)0)->present),
+       asn_MAP_LastVisitedGERANCellInformation_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0,
+       1       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_LastVisitedGERANCellInformation = {
+       "LastVisitedGERANCellInformation",
+       "LastVisitedGERANCellInformation",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_LastVisitedGERANCellInformation_constr_1, &asn_PER_type_LastVisitedGERANCellInformation_constr_1, CHOICE_constraint },
+       asn_MBR_LastVisitedGERANCellInformation_1,
+       1,      /* Elements count */
+       &asn_SPC_LastVisitedGERANCellInformation_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/LastVisitedNGRANCellInformation.c b/e2ap/lib/LastVisitedNGRANCellInformation.c
new file mode 100644 (file)
index 0000000..a29248c
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "LastVisitedNGRANCellInformation.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_LastVisitedNGRANCellInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_LastVisitedNGRANCellInformation = {
+       "LastVisitedNGRANCellInformation",
+       "LastVisitedNGRANCellInformation",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_LastVisitedNGRANCellInformation_tags_1,
+       sizeof(asn_DEF_LastVisitedNGRANCellInformation_tags_1)
+               /sizeof(asn_DEF_LastVisitedNGRANCellInformation_tags_1[0]), /* 1 */
+       asn_DEF_LastVisitedNGRANCellInformation_tags_1, /* Same as above */
+       sizeof(asn_DEF_LastVisitedNGRANCellInformation_tags_1)
+               /sizeof(asn_DEF_LastVisitedNGRANCellInformation_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/LastVisitedUTRANCellInformation.c b/e2ap/lib/LastVisitedUTRANCellInformation.c
new file mode 100644 (file)
index 0000000..1c7cb70
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "LastVisitedUTRANCellInformation.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_LastVisitedUTRANCellInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_LastVisitedUTRANCellInformation = {
+       "LastVisitedUTRANCellInformation",
+       "LastVisitedUTRANCellInformation",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_LastVisitedUTRANCellInformation_tags_1,
+       sizeof(asn_DEF_LastVisitedUTRANCellInformation_tags_1)
+               /sizeof(asn_DEF_LastVisitedUTRANCellInformation_tags_1[0]), /* 1 */
+       asn_DEF_LastVisitedUTRANCellInformation_tags_1, /* Same as above */
+       sizeof(asn_DEF_LastVisitedUTRANCellInformation_tags_1)
+               /sizeof(asn_DEF_LastVisitedUTRANCellInformation_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/Limited-list.c b/e2ap/lib/Limited-list.c
new file mode 100644 (file)
index 0000000..29e48ad
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Limited-list.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_oer_constraints_t asn_OER_type_Limited_list_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16384)) */};
+asn_per_constraints_t asn_PER_type_Limited_list_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       14,  14,  1,  16384 }  /* (SIZE(1..16384)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct Limited_list__Member, nrCellID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRCGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nrCellID"
+               },
+       { ATF_POINTER, 1, offsetof(struct Limited_list__Member, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P98,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "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 }, /* nrCellID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+       sizeof(struct Limited_list__Member),
+       offsetof(struct Limited_list__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 */
+       2,      /* First extension addition */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+       "SEQUENCE",
+       "SEQUENCE",
+       &asn_OP_SEQUENCE,
+       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, 0, SEQUENCE_constraint },
+       asn_MBR_Member_2,
+       2,      /* Elements count */
+       &asn_SPC_Member_specs_2 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_Limited_list_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Member_2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_Limited_list_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_Limited_list_specs_1 = {
+       sizeof(struct Limited_list),
+       offsetof(struct Limited_list, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_Limited_list = {
+       "Limited-list",
+       "Limited-list",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_Limited_list_tags_1,
+       sizeof(asn_DEF_Limited_list_tags_1)
+               /sizeof(asn_DEF_Limited_list_tags_1[0]), /* 1 */
+       asn_DEF_Limited_list_tags_1,    /* Same as above */
+       sizeof(asn_DEF_Limited_list_tags_1)
+               /sizeof(asn_DEF_Limited_list_tags_1[0]), /* 1 */
+       { &asn_OER_type_Limited_list_constr_1, &asn_PER_type_Limited_list_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_Limited_list_1,
+       1,      /* Single element */
+       &asn_SPC_Limited_list_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/Links-to-log.c b/e2ap/lib/Links-to-log.c
new file mode 100644 (file)
index 0000000..054ebe4
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Links-to-log.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_Links_to_log_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_Links_to_log_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_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_Links_to_log_enum2value_1[] = {
+       2,      /* both-uplink-and-downlink(2) */
+       1,      /* downlink(1) */
+       0       /* uplink(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_Links_to_log_specs_1 = {
+       asn_MAP_Links_to_log_value2enum_1,      /* "tag" => N; sorted by tag */
+       asn_MAP_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_Links_to_log_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Links_to_log = {
+       "Links-to-log",
+       "Links-to-log",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_Links_to_log_tags_1,
+       sizeof(asn_DEF_Links_to_log_tags_1)
+               /sizeof(asn_DEF_Links_to_log_tags_1[0]), /* 1 */
+       asn_DEF_Links_to_log_tags_1,    /* Same as above */
+       sizeof(asn_DEF_Links_to_log_tags_1)
+               /sizeof(asn_DEF_Links_to_log_tags_1[0]), /* 1 */
+       { &asn_OER_type_Links_to_log_constr_1, &asn_PER_type_Links_to_log_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_Links_to_log_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/ListofEUTRACellsinEUTRACoordinationReq.c b/e2ap/lib/ListofEUTRACellsinEUTRACoordinationReq.c
new file mode 100644 (file)
index 0000000..d5afd61
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ListofEUTRACellsinEUTRACoordinationReq.h"
+
+#include "ECGI.h"
+static asn_oer_constraints_t asn_OER_type_ListofEUTRACellsinEUTRACoordinationReq_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..256)) */};
+static asn_per_constraints_t asn_PER_type_ListofEUTRACellsinEUTRACoordinationReq_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       9,  9,  0,  256 }      /* (SIZE(0..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ListofEUTRACellsinEUTRACoordinationReq_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ListofEUTRACellsinEUTRACoordinationReq_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ListofEUTRACellsinEUTRACoordinationReq_specs_1 = {
+       sizeof(struct ListofEUTRACellsinEUTRACoordinationReq),
+       offsetof(struct ListofEUTRACellsinEUTRACoordinationReq, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ListofEUTRACellsinEUTRACoordinationReq = {
+       "ListofEUTRACellsinEUTRACoordinationReq",
+       "ListofEUTRACellsinEUTRACoordinationReq",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ListofEUTRACellsinEUTRACoordinationReq_tags_1,
+       sizeof(asn_DEF_ListofEUTRACellsinEUTRACoordinationReq_tags_1)
+               /sizeof(asn_DEF_ListofEUTRACellsinEUTRACoordinationReq_tags_1[0]), /* 1 */
+       asn_DEF_ListofEUTRACellsinEUTRACoordinationReq_tags_1,  /* Same as above */
+       sizeof(asn_DEF_ListofEUTRACellsinEUTRACoordinationReq_tags_1)
+               /sizeof(asn_DEF_ListofEUTRACellsinEUTRACoordinationReq_tags_1[0]), /* 1 */
+       { &asn_OER_type_ListofEUTRACellsinEUTRACoordinationReq_constr_1, &asn_PER_type_ListofEUTRACellsinEUTRACoordinationReq_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ListofEUTRACellsinEUTRACoordinationReq_1,
+       1,      /* Single element */
+       &asn_SPC_ListofEUTRACellsinEUTRACoordinationReq_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/ListofEUTRACellsinEUTRACoordinationResp.c b/e2ap/lib/ListofEUTRACellsinEUTRACoordinationResp.c
new file mode 100644 (file)
index 0000000..bebe776
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ListofEUTRACellsinEUTRACoordinationResp.h"
+
+#include "ECGI.h"
+static asn_oer_constraints_t asn_OER_type_ListofEUTRACellsinEUTRACoordinationResp_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..256)) */};
+static asn_per_constraints_t asn_PER_type_ListofEUTRACellsinEUTRACoordinationResp_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       9,  9,  0,  256 }      /* (SIZE(0..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ListofEUTRACellsinEUTRACoordinationResp_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ListofEUTRACellsinEUTRACoordinationResp_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ListofEUTRACellsinEUTRACoordinationResp_specs_1 = {
+       sizeof(struct ListofEUTRACellsinEUTRACoordinationResp),
+       offsetof(struct ListofEUTRACellsinEUTRACoordinationResp, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ListofEUTRACellsinEUTRACoordinationResp = {
+       "ListofEUTRACellsinEUTRACoordinationResp",
+       "ListofEUTRACellsinEUTRACoordinationResp",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ListofEUTRACellsinEUTRACoordinationResp_tags_1,
+       sizeof(asn_DEF_ListofEUTRACellsinEUTRACoordinationResp_tags_1)
+               /sizeof(asn_DEF_ListofEUTRACellsinEUTRACoordinationResp_tags_1[0]), /* 1 */
+       asn_DEF_ListofEUTRACellsinEUTRACoordinationResp_tags_1, /* Same as above */
+       sizeof(asn_DEF_ListofEUTRACellsinEUTRACoordinationResp_tags_1)
+               /sizeof(asn_DEF_ListofEUTRACellsinEUTRACoordinationResp_tags_1[0]), /* 1 */
+       { &asn_OER_type_ListofEUTRACellsinEUTRACoordinationResp_constr_1, &asn_PER_type_ListofEUTRACellsinEUTRACoordinationResp_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ListofEUTRACellsinEUTRACoordinationResp_1,
+       1,      /* Single element */
+       &asn_SPC_ListofEUTRACellsinEUTRACoordinationResp_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/ListofEUTRACellsinNRCoordinationReq.c b/e2ap/lib/ListofEUTRACellsinNRCoordinationReq.c
new file mode 100644 (file)
index 0000000..ccdac7c
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ListofEUTRACellsinNRCoordinationReq.h"
+
+#include "ECGI.h"
+static asn_oer_constraints_t asn_OER_type_ListofEUTRACellsinNRCoordinationReq_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_ListofEUTRACellsinNRCoordinationReq_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ListofEUTRACellsinNRCoordinationReq_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ListofEUTRACellsinNRCoordinationReq_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ListofEUTRACellsinNRCoordinationReq_specs_1 = {
+       sizeof(struct ListofEUTRACellsinNRCoordinationReq),
+       offsetof(struct ListofEUTRACellsinNRCoordinationReq, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ListofEUTRACellsinNRCoordinationReq = {
+       "ListofEUTRACellsinNRCoordinationReq",
+       "ListofEUTRACellsinNRCoordinationReq",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ListofEUTRACellsinNRCoordinationReq_tags_1,
+       sizeof(asn_DEF_ListofEUTRACellsinNRCoordinationReq_tags_1)
+               /sizeof(asn_DEF_ListofEUTRACellsinNRCoordinationReq_tags_1[0]), /* 1 */
+       asn_DEF_ListofEUTRACellsinNRCoordinationReq_tags_1,     /* Same as above */
+       sizeof(asn_DEF_ListofEUTRACellsinNRCoordinationReq_tags_1)
+               /sizeof(asn_DEF_ListofEUTRACellsinNRCoordinationReq_tags_1[0]), /* 1 */
+       { &asn_OER_type_ListofEUTRACellsinNRCoordinationReq_constr_1, &asn_PER_type_ListofEUTRACellsinNRCoordinationReq_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ListofEUTRACellsinNRCoordinationReq_1,
+       1,      /* Single element */
+       &asn_SPC_ListofEUTRACellsinNRCoordinationReq_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/ListofNRCellsinNRCoordinationReq.c b/e2ap/lib/ListofNRCellsinNRCoordinationReq.c
new file mode 100644 (file)
index 0000000..efc31bb
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ListofNRCellsinNRCoordinationReq.h"
+
+#include "NRCGI.h"
+static asn_oer_constraints_t asn_OER_type_ListofNRCellsinNRCoordinationReq_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..64)) */};
+static asn_per_constraints_t asn_PER_type_ListofNRCellsinNRCoordinationReq_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       7,  7,  0,  64 }       /* (SIZE(0..64)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ListofNRCellsinNRCoordinationReq_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_NRCGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ListofNRCellsinNRCoordinationReq_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ListofNRCellsinNRCoordinationReq_specs_1 = {
+       sizeof(struct ListofNRCellsinNRCoordinationReq),
+       offsetof(struct ListofNRCellsinNRCoordinationReq, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ListofNRCellsinNRCoordinationReq = {
+       "ListofNRCellsinNRCoordinationReq",
+       "ListofNRCellsinNRCoordinationReq",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ListofNRCellsinNRCoordinationReq_tags_1,
+       sizeof(asn_DEF_ListofNRCellsinNRCoordinationReq_tags_1)
+               /sizeof(asn_DEF_ListofNRCellsinNRCoordinationReq_tags_1[0]), /* 1 */
+       asn_DEF_ListofNRCellsinNRCoordinationReq_tags_1,        /* Same as above */
+       sizeof(asn_DEF_ListofNRCellsinNRCoordinationReq_tags_1)
+               /sizeof(asn_DEF_ListofNRCellsinNRCoordinationReq_tags_1[0]), /* 1 */
+       { &asn_OER_type_ListofNRCellsinNRCoordinationReq_constr_1, &asn_PER_type_ListofNRCellsinNRCoordinationReq_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ListofNRCellsinNRCoordinationReq_1,
+       1,      /* Single element */
+       &asn_SPC_ListofNRCellsinNRCoordinationReq_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/ListofNRCellsinNRCoordinationResp.c b/e2ap/lib/ListofNRCellsinNRCoordinationResp.c
new file mode 100644 (file)
index 0000000..dc00233
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ListofNRCellsinNRCoordinationResp.h"
+
+#include "NRCGI.h"
+static asn_oer_constraints_t asn_OER_type_ListofNRCellsinNRCoordinationResp_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..64)) */};
+static asn_per_constraints_t asn_PER_type_ListofNRCellsinNRCoordinationResp_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       7,  7,  0,  64 }       /* (SIZE(0..64)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ListofNRCellsinNRCoordinationResp_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_NRCGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ListofNRCellsinNRCoordinationResp_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ListofNRCellsinNRCoordinationResp_specs_1 = {
+       sizeof(struct ListofNRCellsinNRCoordinationResp),
+       offsetof(struct ListofNRCellsinNRCoordinationResp, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ListofNRCellsinNRCoordinationResp = {
+       "ListofNRCellsinNRCoordinationResp",
+       "ListofNRCellsinNRCoordinationResp",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ListofNRCellsinNRCoordinationResp_tags_1,
+       sizeof(asn_DEF_ListofNRCellsinNRCoordinationResp_tags_1)
+               /sizeof(asn_DEF_ListofNRCellsinNRCoordinationResp_tags_1[0]), /* 1 */
+       asn_DEF_ListofNRCellsinNRCoordinationResp_tags_1,       /* Same as above */
+       sizeof(asn_DEF_ListofNRCellsinNRCoordinationResp_tags_1)
+               /sizeof(asn_DEF_ListofNRCellsinNRCoordinationResp_tags_1[0]), /* 1 */
+       { &asn_OER_type_ListofNRCellsinNRCoordinationResp_constr_1, &asn_PER_type_ListofNRCellsinNRCoordinationResp_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ListofNRCellsinNRCoordinationResp_1,
+       1,      /* Single element */
+       &asn_SPC_ListofNRCellsinNRCoordinationResp_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/LoadIndicator.c b/e2ap/lib/LoadIndicator.c
new file mode 100644 (file)
index 0000000..966ac1d
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "LoadIndicator.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_LoadIndicator_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_LoadIndicator_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_LoadIndicator_value2enum_1[] = {
+       { 0,    7,      "lowLoad" },
+       { 1,    10,     "mediumLoad" },
+       { 2,    8,      "highLoad" },
+       { 3,    8,      "overLoad" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_LoadIndicator_enum2value_1[] = {
+       2,      /* highLoad(2) */
+       0,      /* lowLoad(0) */
+       1,      /* mediumLoad(1) */
+       3       /* overLoad(3) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_LoadIndicator_specs_1 = {
+       asn_MAP_LoadIndicator_value2enum_1,     /* "tag" => N; sorted by tag */
+       asn_MAP_LoadIndicator_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_LoadIndicator_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_LoadIndicator = {
+       "LoadIndicator",
+       "LoadIndicator",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_LoadIndicator_tags_1,
+       sizeof(asn_DEF_LoadIndicator_tags_1)
+               /sizeof(asn_DEF_LoadIndicator_tags_1[0]), /* 1 */
+       asn_DEF_LoadIndicator_tags_1,   /* Same as above */
+       sizeof(asn_DEF_LoadIndicator_tags_1)
+               /sizeof(asn_DEF_LoadIndicator_tags_1[0]), /* 1 */
+       { &asn_OER_type_LoadIndicator_constr_1, &asn_PER_type_LoadIndicator_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_LoadIndicator_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/LoadInformation.c b/e2ap/lib/LoadInformation.c
new file mode 100644 (file)
index 0000000..463a8be
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "LoadInformation.h"
+
+asn_TYPE_member_t asn_MBR_LoadInformation_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct LoadInformation, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P27,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_LoadInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_LoadInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_LoadInformation_specs_1 = {
+       sizeof(struct LoadInformation),
+       offsetof(struct LoadInformation, _asn_ctx),
+       asn_MAP_LoadInformation_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_LoadInformation = {
+       "LoadInformation",
+       "LoadInformation",
+       &asn_OP_SEQUENCE,
+       asn_DEF_LoadInformation_tags_1,
+       sizeof(asn_DEF_LoadInformation_tags_1)
+               /sizeof(asn_DEF_LoadInformation_tags_1[0]), /* 1 */
+       asn_DEF_LoadInformation_tags_1, /* Same as above */
+       sizeof(asn_DEF_LoadInformation_tags_1)
+               /sizeof(asn_DEF_LoadInformation_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_LoadInformation_1,
+       1,      /* Elements count */
+       &asn_SPC_LoadInformation_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/LocationReportingInformation.c b/e2ap/lib/LocationReportingInformation.c
new file mode 100644 (file)
index 0000000..0865d06
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "LocationReportingInformation.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_LocationReportingInformation_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct LocationReportingInformation, eventType),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EventType,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "eventType"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct LocationReportingInformation, reportArea),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ReportArea,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "reportArea"
+               },
+       { ATF_POINTER, 1, offsetof(struct LocationReportingInformation, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P158,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_LocationReportingInformation_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_LocationReportingInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_LocationReportingInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportArea */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_LocationReportingInformation_specs_1 = {
+       sizeof(struct LocationReportingInformation),
+       offsetof(struct LocationReportingInformation, _asn_ctx),
+       asn_MAP_LocationReportingInformation_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_LocationReportingInformation_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_LocationReportingInformation = {
+       "LocationReportingInformation",
+       "LocationReportingInformation",
+       &asn_OP_SEQUENCE,
+       asn_DEF_LocationReportingInformation_tags_1,
+       sizeof(asn_DEF_LocationReportingInformation_tags_1)
+               /sizeof(asn_DEF_LocationReportingInformation_tags_1[0]), /* 1 */
+       asn_DEF_LocationReportingInformation_tags_1,    /* Same as above */
+       sizeof(asn_DEF_LocationReportingInformation_tags_1)
+               /sizeof(asn_DEF_LocationReportingInformation_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_LocationReportingInformation_1,
+       3,      /* Elements count */
+       &asn_SPC_LocationReportingInformation_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/M1PeriodicReporting.c b/e2ap/lib/M1PeriodicReporting.c
new file mode 100644 (file)
index 0000000..a60d98c
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "M1PeriodicReporting.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_M1PeriodicReporting_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct M1PeriodicReporting, reportInterval),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ReportIntervalMDT,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "reportInterval"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct M1PeriodicReporting, reportAmount),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ReportAmountMDT,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "reportAmount"
+               },
+       { ATF_POINTER, 1, offsetof(struct M1PeriodicReporting, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P159,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_M1PeriodicReporting_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_M1PeriodicReporting_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_M1PeriodicReporting_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportInterval */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportAmount */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_M1PeriodicReporting_specs_1 = {
+       sizeof(struct M1PeriodicReporting),
+       offsetof(struct M1PeriodicReporting, _asn_ctx),
+       asn_MAP_M1PeriodicReporting_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_M1PeriodicReporting_oms_1,      /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_M1PeriodicReporting = {
+       "M1PeriodicReporting",
+       "M1PeriodicReporting",
+       &asn_OP_SEQUENCE,
+       asn_DEF_M1PeriodicReporting_tags_1,
+       sizeof(asn_DEF_M1PeriodicReporting_tags_1)
+               /sizeof(asn_DEF_M1PeriodicReporting_tags_1[0]), /* 1 */
+       asn_DEF_M1PeriodicReporting_tags_1,     /* Same as above */
+       sizeof(asn_DEF_M1PeriodicReporting_tags_1)
+               /sizeof(asn_DEF_M1PeriodicReporting_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_M1PeriodicReporting_1,
+       3,      /* Elements count */
+       &asn_SPC_M1PeriodicReporting_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/M1ReportingTrigger.c b/e2ap/lib/M1ReportingTrigger.c
new file mode 100644 (file)
index 0000000..dfdd816
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "M1ReportingTrigger.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_M1ReportingTrigger_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_M1ReportingTrigger_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_M1ReportingTrigger_value2enum_1[] = {
+       { 0,    8,      "periodic" },
+       { 1,    16,     "a2eventtriggered" },
+       { 2,    25,     "a2eventtriggered-periodic" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_M1ReportingTrigger_enum2value_1[] = {
+       1,      /* a2eventtriggered(1) */
+       2,      /* a2eventtriggered-periodic(2) */
+       0       /* periodic(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_M1ReportingTrigger_specs_1 = {
+       asn_MAP_M1ReportingTrigger_value2enum_1,        /* "tag" => N; sorted by tag */
+       asn_MAP_M1ReportingTrigger_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_M1ReportingTrigger_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_M1ReportingTrigger = {
+       "M1ReportingTrigger",
+       "M1ReportingTrigger",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_M1ReportingTrigger_tags_1,
+       sizeof(asn_DEF_M1ReportingTrigger_tags_1)
+               /sizeof(asn_DEF_M1ReportingTrigger_tags_1[0]), /* 1 */
+       asn_DEF_M1ReportingTrigger_tags_1,      /* Same as above */
+       sizeof(asn_DEF_M1ReportingTrigger_tags_1)
+               /sizeof(asn_DEF_M1ReportingTrigger_tags_1[0]), /* 1 */
+       { &asn_OER_type_M1ReportingTrigger_constr_1, &asn_PER_type_M1ReportingTrigger_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_M1ReportingTrigger_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/M1ThresholdEventA2.c b/e2ap/lib/M1ThresholdEventA2.c
new file mode 100644 (file)
index 0000000..d135afe
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "M1ThresholdEventA2.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_M1ThresholdEventA2_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct M1ThresholdEventA2, measurementThreshold),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_MeasurementThresholdA2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "measurementThreshold"
+               },
+       { ATF_POINTER, 1, offsetof(struct M1ThresholdEventA2, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P160,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_M1ThresholdEventA2_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_M1ThresholdEventA2_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_M1ThresholdEventA2_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measurementThreshold */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_M1ThresholdEventA2_specs_1 = {
+       sizeof(struct M1ThresholdEventA2),
+       offsetof(struct M1ThresholdEventA2, _asn_ctx),
+       asn_MAP_M1ThresholdEventA2_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_M1ThresholdEventA2_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_M1ThresholdEventA2 = {
+       "M1ThresholdEventA2",
+       "M1ThresholdEventA2",
+       &asn_OP_SEQUENCE,
+       asn_DEF_M1ThresholdEventA2_tags_1,
+       sizeof(asn_DEF_M1ThresholdEventA2_tags_1)
+               /sizeof(asn_DEF_M1ThresholdEventA2_tags_1[0]), /* 1 */
+       asn_DEF_M1ThresholdEventA2_tags_1,      /* Same as above */
+       sizeof(asn_DEF_M1ThresholdEventA2_tags_1)
+               /sizeof(asn_DEF_M1ThresholdEventA2_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_M1ThresholdEventA2_1,
+       2,      /* Elements count */
+       &asn_SPC_M1ThresholdEventA2_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/M3Configuration.c b/e2ap/lib/M3Configuration.c
new file mode 100644 (file)
index 0000000..287b8b3
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "M3Configuration.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_M3Configuration_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct M3Configuration, m3period),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_M3period,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "m3period"
+               },
+       { ATF_POINTER, 1, offsetof(struct M3Configuration, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P161,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_M3Configuration_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_M3Configuration_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_M3Configuration_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m3period */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_M3Configuration_specs_1 = {
+       sizeof(struct M3Configuration),
+       offsetof(struct M3Configuration, _asn_ctx),
+       asn_MAP_M3Configuration_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_M3Configuration_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_M3Configuration = {
+       "M3Configuration",
+       "M3Configuration",
+       &asn_OP_SEQUENCE,
+       asn_DEF_M3Configuration_tags_1,
+       sizeof(asn_DEF_M3Configuration_tags_1)
+               /sizeof(asn_DEF_M3Configuration_tags_1[0]), /* 1 */
+       asn_DEF_M3Configuration_tags_1, /* Same as above */
+       sizeof(asn_DEF_M3Configuration_tags_1)
+               /sizeof(asn_DEF_M3Configuration_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_M3Configuration_1,
+       2,      /* Elements count */
+       &asn_SPC_M3Configuration_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/M3period.c b/e2ap/lib/M3period.c
new file mode 100644 (file)
index 0000000..ca1cd72
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "M3period.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_M3period_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_M3period_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_M3period_value2enum_1[] = {
+       { 0,    5,      "ms100" },
+       { 1,    6,      "ms1000" },
+       { 2,    7,      "ms10000" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_M3period_enum2value_1[] = {
+       0,      /* ms100(0) */
+       1,      /* ms1000(1) */
+       2       /* ms10000(2) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_M3period_specs_1 = {
+       asn_MAP_M3period_value2enum_1,  /* "tag" => N; sorted by tag */
+       asn_MAP_M3period_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_M3period_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_M3period = {
+       "M3period",
+       "M3period",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_M3period_tags_1,
+       sizeof(asn_DEF_M3period_tags_1)
+               /sizeof(asn_DEF_M3period_tags_1[0]), /* 1 */
+       asn_DEF_M3period_tags_1,        /* Same as above */
+       sizeof(asn_DEF_M3period_tags_1)
+               /sizeof(asn_DEF_M3period_tags_1[0]), /* 1 */
+       { &asn_OER_type_M3period_constr_1, &asn_PER_type_M3period_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_M3period_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/M4Configuration.c b/e2ap/lib/M4Configuration.c
new file mode 100644 (file)
index 0000000..c739b27
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "M4Configuration.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_M4Configuration_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct M4Configuration, m4period),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_M4period,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "m4period"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct M4Configuration, m4_links_to_log),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Links_to_log,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "m4-links-to-log"
+               },
+       { ATF_POINTER, 1, offsetof(struct M4Configuration, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P162,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_M4Configuration_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_M4Configuration_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_M4Configuration_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m4period */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m4-links-to-log */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_M4Configuration_specs_1 = {
+       sizeof(struct M4Configuration),
+       offsetof(struct M4Configuration, _asn_ctx),
+       asn_MAP_M4Configuration_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_M4Configuration_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_M4Configuration = {
+       "M4Configuration",
+       "M4Configuration",
+       &asn_OP_SEQUENCE,
+       asn_DEF_M4Configuration_tags_1,
+       sizeof(asn_DEF_M4Configuration_tags_1)
+               /sizeof(asn_DEF_M4Configuration_tags_1[0]), /* 1 */
+       asn_DEF_M4Configuration_tags_1, /* Same as above */
+       sizeof(asn_DEF_M4Configuration_tags_1)
+               /sizeof(asn_DEF_M4Configuration_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_M4Configuration_1,
+       3,      /* Elements count */
+       &asn_SPC_M4Configuration_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/M4period.c b/e2ap/lib/M4period.c
new file mode 100644 (file)
index 0000000..9c3c420
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "M4period.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_M4period_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_M4period_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  4 }    /* (0..4,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_M4period_value2enum_1[] = {
+       { 0,    6,      "ms1024" },
+       { 1,    6,      "ms2048" },
+       { 2,    6,      "ms5120" },
+       { 3,    7,      "ms10240" },
+       { 4,    4,      "min1" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_M4period_enum2value_1[] = {
+       4,      /* min1(4) */
+       0,      /* ms1024(0) */
+       3,      /* ms10240(3) */
+       1,      /* ms2048(1) */
+       2       /* ms5120(2) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_M4period_specs_1 = {
+       asn_MAP_M4period_value2enum_1,  /* "tag" => N; sorted by tag */
+       asn_MAP_M4period_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_M4period_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_M4period = {
+       "M4period",
+       "M4period",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_M4period_tags_1,
+       sizeof(asn_DEF_M4period_tags_1)
+               /sizeof(asn_DEF_M4period_tags_1[0]), /* 1 */
+       asn_DEF_M4period_tags_1,        /* Same as above */
+       sizeof(asn_DEF_M4period_tags_1)
+               /sizeof(asn_DEF_M4period_tags_1[0]), /* 1 */
+       { &asn_OER_type_M4period_constr_1, &asn_PER_type_M4period_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_M4period_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/M5Configuration.c b/e2ap/lib/M5Configuration.c
new file mode 100644 (file)
index 0000000..5fcfb55
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "M5Configuration.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_M5Configuration_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct M5Configuration, m5period),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_M5period,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "m5period"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct M5Configuration, m5_links_to_log),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Links_to_log,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "m5-links-to-log"
+               },
+       { ATF_POINTER, 1, offsetof(struct M5Configuration, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P163,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_M5Configuration_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_M5Configuration_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_M5Configuration_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m5period */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m5-links-to-log */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_M5Configuration_specs_1 = {
+       sizeof(struct M5Configuration),
+       offsetof(struct M5Configuration, _asn_ctx),
+       asn_MAP_M5Configuration_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_M5Configuration_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_M5Configuration = {
+       "M5Configuration",
+       "M5Configuration",
+       &asn_OP_SEQUENCE,
+       asn_DEF_M5Configuration_tags_1,
+       sizeof(asn_DEF_M5Configuration_tags_1)
+               /sizeof(asn_DEF_M5Configuration_tags_1[0]), /* 1 */
+       asn_DEF_M5Configuration_tags_1, /* Same as above */
+       sizeof(asn_DEF_M5Configuration_tags_1)
+               /sizeof(asn_DEF_M5Configuration_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_M5Configuration_1,
+       3,      /* Elements count */
+       &asn_SPC_M5Configuration_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/M5period.c b/e2ap/lib/M5period.c
new file mode 100644 (file)
index 0000000..5274db0
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "M5period.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_M5period_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_M5period_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  4 }    /* (0..4,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_M5period_value2enum_1[] = {
+       { 0,    6,      "ms1024" },
+       { 1,    6,      "ms2048" },
+       { 2,    6,      "ms5120" },
+       { 3,    7,      "ms10240" },
+       { 4,    4,      "min1" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_M5period_enum2value_1[] = {
+       4,      /* min1(4) */
+       0,      /* ms1024(0) */
+       3,      /* ms10240(3) */
+       1,      /* ms2048(1) */
+       2       /* ms5120(2) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_M5period_specs_1 = {
+       asn_MAP_M5period_value2enum_1,  /* "tag" => N; sorted by tag */
+       asn_MAP_M5period_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_M5period_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_M5period = {
+       "M5period",
+       "M5period",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_M5period_tags_1,
+       sizeof(asn_DEF_M5period_tags_1)
+               /sizeof(asn_DEF_M5period_tags_1[0]), /* 1 */
+       asn_DEF_M5period_tags_1,        /* Same as above */
+       sizeof(asn_DEF_M5period_tags_1)
+               /sizeof(asn_DEF_M5period_tags_1[0]), /* 1 */
+       { &asn_OER_type_M5period_constr_1, &asn_PER_type_M5period_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_M5period_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/M6Configuration.c b/e2ap/lib/M6Configuration.c
new file mode 100644 (file)
index 0000000..fb5b844
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "M6Configuration.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_M6Configuration_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct M6Configuration, m6report_interval),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_M6report_interval,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "m6report-interval"
+               },
+       { ATF_POINTER, 1, offsetof(struct M6Configuration, m6delay_threshold),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_M6delay_threshold,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "m6delay-threshold"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct M6Configuration, m6_links_to_log),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Links_to_log,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "m6-links-to-log"
+               },
+       { ATF_POINTER, 1, offsetof(struct M6Configuration, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P164,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_M6Configuration_oms_1[] = { 1, 3 };
+static const ber_tlv_tag_t asn_DEF_M6Configuration_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_M6Configuration_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m6report-interval */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m6delay-threshold */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* m6-links-to-log */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_M6Configuration_specs_1 = {
+       sizeof(struct M6Configuration),
+       offsetof(struct M6Configuration, _asn_ctx),
+       asn_MAP_M6Configuration_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_M6Configuration_oms_1,  /* Optional members */
+       2, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_M6Configuration = {
+       "M6Configuration",
+       "M6Configuration",
+       &asn_OP_SEQUENCE,
+       asn_DEF_M6Configuration_tags_1,
+       sizeof(asn_DEF_M6Configuration_tags_1)
+               /sizeof(asn_DEF_M6Configuration_tags_1[0]), /* 1 */
+       asn_DEF_M6Configuration_tags_1, /* Same as above */
+       sizeof(asn_DEF_M6Configuration_tags_1)
+               /sizeof(asn_DEF_M6Configuration_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_M6Configuration_1,
+       4,      /* Elements count */
+       &asn_SPC_M6Configuration_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/M6delay-threshold.c b/e2ap/lib/M6delay-threshold.c
new file mode 100644 (file)
index 0000000..034b013
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "M6delay-threshold.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_M6delay_threshold_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_M6delay_threshold_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  11 }   /* (0..11,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_M6delay_threshold_value2enum_1[] = {
+       { 0,    4,      "ms30" },
+       { 1,    4,      "ms40" },
+       { 2,    4,      "ms50" },
+       { 3,    4,      "ms60" },
+       { 4,    4,      "ms70" },
+       { 5,    4,      "ms80" },
+       { 6,    4,      "ms90" },
+       { 7,    5,      "ms100" },
+       { 8,    5,      "ms150" },
+       { 9,    5,      "ms300" },
+       { 10,   5,      "ms500" },
+       { 11,   5,      "ms750" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_M6delay_threshold_enum2value_1[] = {
+       7,      /* ms100(7) */
+       8,      /* ms150(8) */
+       0,      /* ms30(0) */
+       9,      /* ms300(9) */
+       1,      /* ms40(1) */
+       2,      /* ms50(2) */
+       10,     /* ms500(10) */
+       3,      /* ms60(3) */
+       4,      /* ms70(4) */
+       11,     /* ms750(11) */
+       5,      /* ms80(5) */
+       6       /* ms90(6) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_M6delay_threshold_specs_1 = {
+       asn_MAP_M6delay_threshold_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_M6delay_threshold_enum2value_1, /* N => "tag"; sorted by N */
+       12,     /* Number of elements in the maps */
+       13,     /* Extensions before this member */
+       1,      /* Strict enumeration */
+       0,      /* Native long size */
+       0
+};
+static const ber_tlv_tag_t asn_DEF_M6delay_threshold_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_M6delay_threshold = {
+       "M6delay-threshold",
+       "M6delay-threshold",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_M6delay_threshold_tags_1,
+       sizeof(asn_DEF_M6delay_threshold_tags_1)
+               /sizeof(asn_DEF_M6delay_threshold_tags_1[0]), /* 1 */
+       asn_DEF_M6delay_threshold_tags_1,       /* Same as above */
+       sizeof(asn_DEF_M6delay_threshold_tags_1)
+               /sizeof(asn_DEF_M6delay_threshold_tags_1[0]), /* 1 */
+       { &asn_OER_type_M6delay_threshold_constr_1, &asn_PER_type_M6delay_threshold_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_M6delay_threshold_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/M6report-interval.c b/e2ap/lib/M6report-interval.c
new file mode 100644 (file)
index 0000000..0638828
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "M6report-interval.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_M6report_interval_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_M6report_interval_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_M6report_interval_value2enum_1[] = {
+       { 0,    6,      "ms1024" },
+       { 1,    6,      "ms2048" },
+       { 2,    6,      "ms5120" },
+       { 3,    7,      "ms10240" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_M6report_interval_enum2value_1[] = {
+       0,      /* ms1024(0) */
+       3,      /* ms10240(3) */
+       1,      /* ms2048(1) */
+       2       /* ms5120(2) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_M6report_interval_specs_1 = {
+       asn_MAP_M6report_interval_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_M6report_interval_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_M6report_interval_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_M6report_interval = {
+       "M6report-interval",
+       "M6report-interval",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_M6report_interval_tags_1,
+       sizeof(asn_DEF_M6report_interval_tags_1)
+               /sizeof(asn_DEF_M6report_interval_tags_1[0]), /* 1 */
+       asn_DEF_M6report_interval_tags_1,       /* Same as above */
+       sizeof(asn_DEF_M6report_interval_tags_1)
+               /sizeof(asn_DEF_M6report_interval_tags_1[0]), /* 1 */
+       { &asn_OER_type_M6report_interval_constr_1, &asn_PER_type_M6report_interval_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_M6report_interval_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/M7Configuration.c b/e2ap/lib/M7Configuration.c
new file mode 100644 (file)
index 0000000..c5f2257
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "M7Configuration.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_M7Configuration_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct M7Configuration, m7period),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_M7period,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "m7period"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct M7Configuration, m7_links_to_log),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Links_to_log,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "m7-links-to-log"
+               },
+       { ATF_POINTER, 1, offsetof(struct M7Configuration, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P165,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_M7Configuration_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_M7Configuration_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_M7Configuration_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m7period */
+    { (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_M7Configuration_specs_1 = {
+       sizeof(struct M7Configuration),
+       offsetof(struct M7Configuration, _asn_ctx),
+       asn_MAP_M7Configuration_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_M7Configuration_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_M7Configuration = {
+       "M7Configuration",
+       "M7Configuration",
+       &asn_OP_SEQUENCE,
+       asn_DEF_M7Configuration_tags_1,
+       sizeof(asn_DEF_M7Configuration_tags_1)
+               /sizeof(asn_DEF_M7Configuration_tags_1[0]), /* 1 */
+       asn_DEF_M7Configuration_tags_1, /* Same as above */
+       sizeof(asn_DEF_M7Configuration_tags_1)
+               /sizeof(asn_DEF_M7Configuration_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_M7Configuration_1,
+       3,      /* Elements count */
+       &asn_SPC_M7Configuration_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/M7period.c b/e2ap/lib/M7period.c
new file mode 100644 (file)
index 0000000..464a741
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "M7period.h"
+
+int
+M7period_constraint(const 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 >= 1 && value <= 60)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_M7period_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_M7period_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  6,  6,  1,  60 }   /* (1..60,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_M7period_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_M7period = {
+       "M7period",
+       "M7period",
+       &asn_OP_NativeInteger,
+       asn_DEF_M7period_tags_1,
+       sizeof(asn_DEF_M7period_tags_1)
+               /sizeof(asn_DEF_M7period_tags_1[0]), /* 1 */
+       asn_DEF_M7period_tags_1,        /* Same as above */
+       sizeof(asn_DEF_M7period_tags_1)
+               /sizeof(asn_DEF_M7period_tags_1[0]), /* 1 */
+       { &asn_OER_type_M7period_constr_1, &asn_PER_type_M7period_constr_1, M7period_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/MBMS-Service-Area-Identity-List.c b/e2ap/lib/MBMS-Service-Area-Identity-List.c
new file mode 100644 (file)
index 0000000..9e63cb0
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MBMS-Service-Area-Identity-List.h"
+
+static asn_oer_constraints_t asn_OER_type_MBMS_Service_Area_Identity_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_MBMS_Service_Area_Identity_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_MBMS_Service_Area_Identity_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_MBMS_Service_Area_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MBMS_Service_Area_Identity_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_MBMS_Service_Area_Identity_List_specs_1 = {
+       sizeof(struct MBMS_Service_Area_Identity_List),
+       offsetof(struct MBMS_Service_Area_Identity_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_MBMS_Service_Area_Identity_List = {
+       "MBMS-Service-Area-Identity-List",
+       "MBMS-Service-Area-Identity-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_MBMS_Service_Area_Identity_List_tags_1,
+       sizeof(asn_DEF_MBMS_Service_Area_Identity_List_tags_1)
+               /sizeof(asn_DEF_MBMS_Service_Area_Identity_List_tags_1[0]), /* 1 */
+       asn_DEF_MBMS_Service_Area_Identity_List_tags_1, /* Same as above */
+       sizeof(asn_DEF_MBMS_Service_Area_Identity_List_tags_1)
+               /sizeof(asn_DEF_MBMS_Service_Area_Identity_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_MBMS_Service_Area_Identity_List_constr_1, &asn_PER_type_MBMS_Service_Area_Identity_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_MBMS_Service_Area_Identity_List_1,
+       1,      /* Single element */
+       &asn_SPC_MBMS_Service_Area_Identity_List_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/MBMS-Service-Area-Identity.c b/e2ap/lib/MBMS-Service-Area-Identity.c
new file mode 100644 (file)
index 0000000..f5df8b0
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MBMS-Service-Area-Identity.h"
+
+int
+MBMS_Service_Area_Identity_constraint(const 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 == 2)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_MBMS_Service_Area_Identity_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       2       /* (SIZE(2..2)) */};
+asn_per_constraints_t asn_PER_type_MBMS_Service_Area_Identity_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  2,  2 }        /* (SIZE(2..2)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_MBMS_Service_Area_Identity_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_MBMS_Service_Area_Identity = {
+       "MBMS-Service-Area-Identity",
+       "MBMS-Service-Area-Identity",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_MBMS_Service_Area_Identity_tags_1,
+       sizeof(asn_DEF_MBMS_Service_Area_Identity_tags_1)
+               /sizeof(asn_DEF_MBMS_Service_Area_Identity_tags_1[0]), /* 1 */
+       asn_DEF_MBMS_Service_Area_Identity_tags_1,      /* Same as above */
+       sizeof(asn_DEF_MBMS_Service_Area_Identity_tags_1)
+               /sizeof(asn_DEF_MBMS_Service_Area_Identity_tags_1[0]), /* 1 */
+       { &asn_OER_type_MBMS_Service_Area_Identity_constr_1, &asn_PER_type_MBMS_Service_Area_Identity_constr_1, MBMS_Service_Area_Identity_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/MBSFN-Subframe-Info.c b/e2ap/lib/MBSFN-Subframe-Info.c
new file mode 100644 (file)
index 0000000..80c4f8a
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MBSFN-Subframe-Info.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_MBSFN_Subframe_Info_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MBSFN_Subframe_Info, radioframeAllocationPeriod),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RadioframeAllocationPeriod,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "radioframeAllocationPeriod"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MBSFN_Subframe_Info, radioframeAllocationOffset),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RadioframeAllocationOffset,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "radioframeAllocationOffset"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MBSFN_Subframe_Info, subframeAllocation),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_SubframeAllocation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "subframeAllocation"
+               },
+       { ATF_POINTER, 1, offsetof(struct MBSFN_Subframe_Info, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P168,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_MBSFN_Subframe_Info_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_MBSFN_Subframe_Info_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MBSFN_Subframe_Info_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioframeAllocationPeriod */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* radioframeAllocationOffset */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* subframeAllocation */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_MBSFN_Subframe_Info_specs_1 = {
+       sizeof(struct MBSFN_Subframe_Info),
+       offsetof(struct MBSFN_Subframe_Info, _asn_ctx),
+       asn_MAP_MBSFN_Subframe_Info_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_MBSFN_Subframe_Info_oms_1,      /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MBSFN_Subframe_Info = {
+       "MBSFN-Subframe-Info",
+       "MBSFN-Subframe-Info",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MBSFN_Subframe_Info_tags_1,
+       sizeof(asn_DEF_MBSFN_Subframe_Info_tags_1)
+               /sizeof(asn_DEF_MBSFN_Subframe_Info_tags_1[0]), /* 1 */
+       asn_DEF_MBSFN_Subframe_Info_tags_1,     /* Same as above */
+       sizeof(asn_DEF_MBSFN_Subframe_Info_tags_1)
+               /sizeof(asn_DEF_MBSFN_Subframe_Info_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MBSFN_Subframe_Info_1,
+       4,      /* Elements count */
+       &asn_SPC_MBSFN_Subframe_Info_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/MBSFN-Subframe-Infolist.c b/e2ap/lib/MBSFN-Subframe-Infolist.c
new file mode 100644 (file)
index 0000000..30a37c7
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MBSFN-Subframe-Infolist.h"
+
+#include "MBSFN-Subframe-Info.h"
+static asn_oer_constraints_t asn_OER_type_MBSFN_Subframe_Infolist_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..8)) */};
+static asn_per_constraints_t asn_PER_type_MBSFN_Subframe_Infolist_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       3,  3,  1,  8 }        /* (SIZE(1..8)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_MBSFN_Subframe_Infolist_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MBSFN_Subframe_Info,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MBSFN_Subframe_Infolist_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_MBSFN_Subframe_Infolist_specs_1 = {
+       sizeof(struct MBSFN_Subframe_Infolist),
+       offsetof(struct MBSFN_Subframe_Infolist, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_MBSFN_Subframe_Infolist = {
+       "MBSFN-Subframe-Infolist",
+       "MBSFN-Subframe-Infolist",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_MBSFN_Subframe_Infolist_tags_1,
+       sizeof(asn_DEF_MBSFN_Subframe_Infolist_tags_1)
+               /sizeof(asn_DEF_MBSFN_Subframe_Infolist_tags_1[0]), /* 1 */
+       asn_DEF_MBSFN_Subframe_Infolist_tags_1, /* Same as above */
+       sizeof(asn_DEF_MBSFN_Subframe_Infolist_tags_1)
+               /sizeof(asn_DEF_MBSFN_Subframe_Infolist_tags_1[0]), /* 1 */
+       { &asn_OER_type_MBSFN_Subframe_Infolist_constr_1, &asn_PER_type_MBSFN_Subframe_Infolist_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_MBSFN_Subframe_Infolist_1,
+       1,      /* Single element */
+       &asn_SPC_MBSFN_Subframe_Infolist_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/MDT-Activation.c b/e2ap/lib/MDT-Activation.c
new file mode 100644 (file)
index 0000000..df3cc24
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MDT-Activation.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_MDT_Activation_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_MDT_Activation_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_MDT_Activation_value2enum_1[] = {
+       { 0,    18,     "immediate-MDT-only" },
+       { 1,    23,     "immediate-MDT-and-Trace" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_MDT_Activation_enum2value_1[] = {
+       1,      /* immediate-MDT-and-Trace(1) */
+       0       /* immediate-MDT-only(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_MDT_Activation_specs_1 = {
+       asn_MAP_MDT_Activation_value2enum_1,    /* "tag" => N; sorted by tag */
+       asn_MAP_MDT_Activation_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_MDT_Activation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_MDT_Activation = {
+       "MDT-Activation",
+       "MDT-Activation",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_MDT_Activation_tags_1,
+       sizeof(asn_DEF_MDT_Activation_tags_1)
+               /sizeof(asn_DEF_MDT_Activation_tags_1[0]), /* 1 */
+       asn_DEF_MDT_Activation_tags_1,  /* Same as above */
+       sizeof(asn_DEF_MDT_Activation_tags_1)
+               /sizeof(asn_DEF_MDT_Activation_tags_1[0]), /* 1 */
+       { &asn_OER_type_MDT_Activation_constr_1, &asn_PER_type_MDT_Activation_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_MDT_Activation_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/MDT-Configuration.c b/e2ap/lib/MDT-Configuration.c
new file mode 100644 (file)
index 0000000..5a248a5
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MDT-Configuration.h"
+
+#include "M1ThresholdEventA2.h"
+#include "M1PeriodicReporting.h"
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_MDT_Configuration_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration, mdt_Activation),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_MDT_Activation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "mdt-Activation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration, areaScopeOfMDT),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_AreaScopeOfMDT,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "areaScopeOfMDT"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration, measurementsToActivate),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_MeasurementsToActivate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "measurementsToActivate"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration, m1reportingTrigger),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_M1ReportingTrigger,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "m1reportingTrigger"
+               },
+       { ATF_POINTER, 3, offsetof(struct MDT_Configuration, m1thresholdeventA2),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_M1ThresholdEventA2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "m1thresholdeventA2"
+               },
+       { ATF_POINTER, 2, offsetof(struct MDT_Configuration, m1periodicReporting),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_M1PeriodicReporting,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "m1periodicReporting"
+               },
+       { ATF_POINTER, 1, offsetof(struct MDT_Configuration, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P166,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_MDT_Configuration_oms_1[] = { 4, 5, 6 };
+static const ber_tlv_tag_t asn_DEF_MDT_Configuration_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MDT_Configuration_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mdt-Activation */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* areaScopeOfMDT */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* measurementsToActivate */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* m1reportingTrigger */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* m1thresholdeventA2 */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* m1periodicReporting */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_MDT_Configuration_specs_1 = {
+       sizeof(struct MDT_Configuration),
+       offsetof(struct MDT_Configuration, _asn_ctx),
+       asn_MAP_MDT_Configuration_tag2el_1,
+       7,      /* Count of tags in the map */
+       asn_MAP_MDT_Configuration_oms_1,        /* Optional members */
+       3, 0,   /* Root/Additions */
+       7,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MDT_Configuration = {
+       "MDT-Configuration",
+       "MDT-Configuration",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MDT_Configuration_tags_1,
+       sizeof(asn_DEF_MDT_Configuration_tags_1)
+               /sizeof(asn_DEF_MDT_Configuration_tags_1[0]), /* 1 */
+       asn_DEF_MDT_Configuration_tags_1,       /* Same as above */
+       sizeof(asn_DEF_MDT_Configuration_tags_1)
+               /sizeof(asn_DEF_MDT_Configuration_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MDT_Configuration_1,
+       7,      /* Elements count */
+       &asn_SPC_MDT_Configuration_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/MDT-Location-Info.c b/e2ap/lib/MDT-Location-Info.c
new file mode 100644 (file)
index 0000000..9befc3a
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MDT-Location-Info.h"
+
+int
+MDT_Location_Info_constraint(const 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 == 8)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_MDT_Location_Info_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       8       /* (SIZE(8..8)) */};
+static asn_per_constraints_t asn_PER_type_MDT_Location_Info_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  8,  8 }        /* (SIZE(8..8)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_MDT_Location_Info_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_MDT_Location_Info = {
+       "MDT-Location-Info",
+       "MDT-Location-Info",
+       &asn_OP_BIT_STRING,
+       asn_DEF_MDT_Location_Info_tags_1,
+       sizeof(asn_DEF_MDT_Location_Info_tags_1)
+               /sizeof(asn_DEF_MDT_Location_Info_tags_1[0]), /* 1 */
+       asn_DEF_MDT_Location_Info_tags_1,       /* Same as above */
+       sizeof(asn_DEF_MDT_Location_Info_tags_1)
+               /sizeof(asn_DEF_MDT_Location_Info_tags_1[0]), /* 1 */
+       { &asn_OER_type_MDT_Location_Info_constr_1, &asn_PER_type_MDT_Location_Info_constr_1, MDT_Location_Info_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/MDTPLMNList.c b/e2ap/lib/MDTPLMNList.c
new file mode 100644 (file)
index 0000000..819773c
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MDTPLMNList.h"
+
+static asn_oer_constraints_t asn_OER_type_MDTPLMNList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16)) */};
+asn_per_constraints_t asn_PER_type_MDTPLMNList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       4,  4,  1,  16 }       /* (SIZE(1..16)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_MDTPLMNList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MDTPLMNList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_MDTPLMNList_specs_1 = {
+       sizeof(struct MDTPLMNList),
+       offsetof(struct MDTPLMNList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_MDTPLMNList = {
+       "MDTPLMNList",
+       "MDTPLMNList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_MDTPLMNList_tags_1,
+       sizeof(asn_DEF_MDTPLMNList_tags_1)
+               /sizeof(asn_DEF_MDTPLMNList_tags_1[0]), /* 1 */
+       asn_DEF_MDTPLMNList_tags_1,     /* Same as above */
+       sizeof(asn_DEF_MDTPLMNList_tags_1)
+               /sizeof(asn_DEF_MDTPLMNList_tags_1[0]), /* 1 */
+       { &asn_OER_type_MDTPLMNList_constr_1, &asn_PER_type_MDTPLMNList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_MDTPLMNList_1,
+       1,      /* Single element */
+       &asn_SPC_MDTPLMNList_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/MME-Code.c b/e2ap/lib/MME-Code.c
new file mode 100644 (file)
index 0000000..88c63f7
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MME-Code.h"
+
+int
+MME_Code_constraint(const 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 == 1)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_MME_Code_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       1       /* (SIZE(1..1)) */};
+asn_per_constraints_t asn_PER_type_MME_Code_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  1,  1 }        /* (SIZE(1..1)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_MME_Code_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_MME_Code = {
+       "MME-Code",
+       "MME-Code",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_MME_Code_tags_1,
+       sizeof(asn_DEF_MME_Code_tags_1)
+               /sizeof(asn_DEF_MME_Code_tags_1[0]), /* 1 */
+       asn_DEF_MME_Code_tags_1,        /* Same as above */
+       sizeof(asn_DEF_MME_Code_tags_1)
+               /sizeof(asn_DEF_MME_Code_tags_1[0]), /* 1 */
+       { &asn_OER_type_MME_Code_constr_1, &asn_PER_type_MME_Code_constr_1, MME_Code_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/MME-Group-ID.c b/e2ap/lib/MME-Group-ID.c
new file mode 100644 (file)
index 0000000..2abf330
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MME-Group-ID.h"
+
+int
+MME_Group_ID_constraint(const 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 == 2)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_MME_Group_ID_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       2       /* (SIZE(2..2)) */};
+asn_per_constraints_t asn_PER_type_MME_Group_ID_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  2,  2 }        /* (SIZE(2..2)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_MME_Group_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_MME_Group_ID = {
+       "MME-Group-ID",
+       "MME-Group-ID",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_MME_Group_ID_tags_1,
+       sizeof(asn_DEF_MME_Group_ID_tags_1)
+               /sizeof(asn_DEF_MME_Group_ID_tags_1[0]), /* 1 */
+       asn_DEF_MME_Group_ID_tags_1,    /* Same as above */
+       sizeof(asn_DEF_MME_Group_ID_tags_1)
+               /sizeof(asn_DEF_MME_Group_ID_tags_1[0]), /* 1 */
+       { &asn_OER_type_MME_Group_ID_constr_1, &asn_PER_type_MME_Group_ID_constr_1, MME_Group_ID_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/MakeBeforeBreakIndicator.c b/e2ap/lib/MakeBeforeBreakIndicator.c
new file mode 100644 (file)
index 0000000..b867272
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MakeBeforeBreakIndicator.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_MakeBeforeBreakIndicator_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_MakeBeforeBreakIndicator_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_MakeBeforeBreakIndicator_value2enum_1[] = {
+       { 0,    4,      "true" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_MakeBeforeBreakIndicator_enum2value_1[] = {
+       0       /* true(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_MakeBeforeBreakIndicator_specs_1 = {
+       asn_MAP_MakeBeforeBreakIndicator_value2enum_1,  /* "tag" => N; sorted by tag */
+       asn_MAP_MakeBeforeBreakIndicator_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_MakeBeforeBreakIndicator_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_MakeBeforeBreakIndicator = {
+       "MakeBeforeBreakIndicator",
+       "MakeBeforeBreakIndicator",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_MakeBeforeBreakIndicator_tags_1,
+       sizeof(asn_DEF_MakeBeforeBreakIndicator_tags_1)
+               /sizeof(asn_DEF_MakeBeforeBreakIndicator_tags_1[0]), /* 1 */
+       asn_DEF_MakeBeforeBreakIndicator_tags_1,        /* Same as above */
+       sizeof(asn_DEF_MakeBeforeBreakIndicator_tags_1)
+               /sizeof(asn_DEF_MakeBeforeBreakIndicator_tags_1[0]), /* 1 */
+       { &asn_OER_type_MakeBeforeBreakIndicator_constr_1, &asn_PER_type_MakeBeforeBreakIndicator_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_MakeBeforeBreakIndicator_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/ManagementBasedMDTallowed.c b/e2ap/lib/ManagementBasedMDTallowed.c
new file mode 100644 (file)
index 0000000..2a340d7
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ManagementBasedMDTallowed.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ManagementBasedMDTallowed_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_ManagementBasedMDTallowed_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_ManagementBasedMDTallowed_value2enum_1[] = {
+       { 0,    7,      "allowed" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_ManagementBasedMDTallowed_enum2value_1[] = {
+       0       /* allowed(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_ManagementBasedMDTallowed_specs_1 = {
+       asn_MAP_ManagementBasedMDTallowed_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_ManagementBasedMDTallowed_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_ManagementBasedMDTallowed_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ManagementBasedMDTallowed = {
+       "ManagementBasedMDTallowed",
+       "ManagementBasedMDTallowed",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_ManagementBasedMDTallowed_tags_1,
+       sizeof(asn_DEF_ManagementBasedMDTallowed_tags_1)
+               /sizeof(asn_DEF_ManagementBasedMDTallowed_tags_1[0]), /* 1 */
+       asn_DEF_ManagementBasedMDTallowed_tags_1,       /* Same as above */
+       sizeof(asn_DEF_ManagementBasedMDTallowed_tags_1)
+               /sizeof(asn_DEF_ManagementBasedMDTallowed_tags_1[0]), /* 1 */
+       { &asn_OER_type_ManagementBasedMDTallowed_constr_1, &asn_PER_type_ManagementBasedMDTallowed_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_ManagementBasedMDTallowed_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/Masked-IMEISV.c b/e2ap/lib/Masked-IMEISV.c
new file mode 100644 (file)
index 0000000..61db879
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Masked-IMEISV.h"
+
+int
+Masked_IMEISV_constraint(const 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 == 64)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_Masked_IMEISV_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       64      /* (SIZE(64..64)) */};
+static asn_per_constraints_t asn_PER_type_Masked_IMEISV_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  64,  64 }      /* (SIZE(64..64)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_Masked_IMEISV_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Masked_IMEISV = {
+       "Masked-IMEISV",
+       "Masked-IMEISV",
+       &asn_OP_BIT_STRING,
+       asn_DEF_Masked_IMEISV_tags_1,
+       sizeof(asn_DEF_Masked_IMEISV_tags_1)
+               /sizeof(asn_DEF_Masked_IMEISV_tags_1[0]), /* 1 */
+       asn_DEF_Masked_IMEISV_tags_1,   /* Same as above */
+       sizeof(asn_DEF_Masked_IMEISV_tags_1)
+               /sizeof(asn_DEF_Masked_IMEISV_tags_1[0]), /* 1 */
+       { &asn_OER_type_Masked_IMEISV_constr_1, &asn_PER_type_Masked_IMEISV_constr_1, Masked_IMEISV_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/MeNBCoordinationAssistanceInformation.c b/e2ap/lib/MeNBCoordinationAssistanceInformation.c
new file mode 100644 (file)
index 0000000..e413d9e
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MeNBCoordinationAssistanceInformation.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_MeNBCoordinationAssistanceInformation_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_MeNBCoordinationAssistanceInformation_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_MeNBCoordinationAssistanceInformation_value2enum_1[] = {
+       { 0,    25,     "coordination-not-required" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_MeNBCoordinationAssistanceInformation_enum2value_1[] = {
+       0       /* coordination-not-required(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_MeNBCoordinationAssistanceInformation_specs_1 = {
+       asn_MAP_MeNBCoordinationAssistanceInformation_value2enum_1,     /* "tag" => N; sorted by tag */
+       asn_MAP_MeNBCoordinationAssistanceInformation_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_MeNBCoordinationAssistanceInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_MeNBCoordinationAssistanceInformation = {
+       "MeNBCoordinationAssistanceInformation",
+       "MeNBCoordinationAssistanceInformation",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_MeNBCoordinationAssistanceInformation_tags_1,
+       sizeof(asn_DEF_MeNBCoordinationAssistanceInformation_tags_1)
+               /sizeof(asn_DEF_MeNBCoordinationAssistanceInformation_tags_1[0]), /* 1 */
+       asn_DEF_MeNBCoordinationAssistanceInformation_tags_1,   /* Same as above */
+       sizeof(asn_DEF_MeNBCoordinationAssistanceInformation_tags_1)
+               /sizeof(asn_DEF_MeNBCoordinationAssistanceInformation_tags_1[0]), /* 1 */
+       { &asn_OER_type_MeNBCoordinationAssistanceInformation_constr_1, &asn_PER_type_MeNBCoordinationAssistanceInformation_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_MeNBCoordinationAssistanceInformation_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/MeNBResourceCoordinationInformation.c b/e2ap/lib/MeNBResourceCoordinationInformation.c
new file mode 100644 (file)
index 0000000..b79a46d
--- /dev/null
@@ -0,0 +1,161 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MeNBResourceCoordinationInformation.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_uLCoordinationInformation_constraint_1(const 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 >= 6 && size <= 4400)) {
+               /* 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_dLCoordinationInformation_constraint_1(const 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 >= 6 && size <= 4400)) {
+               /* 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_oer_constraints_t asn_OER_memb_uLCoordinationInformation_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+static asn_per_constraints_t asn_PER_memb_uLCoordinationInformation_constr_3 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  13,  13,  6,  4400 }       /* (SIZE(6..4400,...)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_dLCoordinationInformation_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+static asn_per_constraints_t asn_PER_memb_dLCoordinationInformation_constr_4 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  13,  13,  6,  4400 }       /* (SIZE(6..4400,...)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_MeNBResourceCoordinationInformation_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MeNBResourceCoordinationInformation, eUTRA_Cell_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "eUTRA-Cell-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MeNBResourceCoordinationInformation, uLCoordinationInformation),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_uLCoordinationInformation_constr_3, &asn_PER_memb_uLCoordinationInformation_constr_3,  memb_uLCoordinationInformation_constraint_1 },
+               0, 0, /* No default value */
+               "uLCoordinationInformation"
+               },
+       { ATF_POINTER, 2, offsetof(struct MeNBResourceCoordinationInformation, dLCoordinationInformation),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_dLCoordinationInformation_constr_4, &asn_PER_memb_dLCoordinationInformation_constr_4,  memb_dLCoordinationInformation_constraint_1 },
+               0, 0, /* No default value */
+               "dLCoordinationInformation"
+               },
+       { ATF_POINTER, 1, offsetof(struct MeNBResourceCoordinationInformation, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P167,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_MeNBResourceCoordinationInformation_oms_1[] = { 2, 3 };
+static const ber_tlv_tag_t asn_DEF_MeNBResourceCoordinationInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MeNBResourceCoordinationInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-Cell-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uLCoordinationInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dLCoordinationInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_MeNBResourceCoordinationInformation_specs_1 = {
+       sizeof(struct MeNBResourceCoordinationInformation),
+       offsetof(struct MeNBResourceCoordinationInformation, _asn_ctx),
+       asn_MAP_MeNBResourceCoordinationInformation_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_MeNBResourceCoordinationInformation_oms_1,      /* Optional members */
+       2, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MeNBResourceCoordinationInformation = {
+       "MeNBResourceCoordinationInformation",
+       "MeNBResourceCoordinationInformation",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MeNBResourceCoordinationInformation_tags_1,
+       sizeof(asn_DEF_MeNBResourceCoordinationInformation_tags_1)
+               /sizeof(asn_DEF_MeNBResourceCoordinationInformation_tags_1[0]), /* 1 */
+       asn_DEF_MeNBResourceCoordinationInformation_tags_1,     /* Same as above */
+       sizeof(asn_DEF_MeNBResourceCoordinationInformation_tags_1)
+               /sizeof(asn_DEF_MeNBResourceCoordinationInformation_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MeNBResourceCoordinationInformation_1,
+       4,      /* Elements count */
+       &asn_SPC_MeNBResourceCoordinationInformation_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/MeNBtoSeNBContainer.c b/e2ap/lib/MeNBtoSeNBContainer.c
new file mode 100644 (file)
index 0000000..36eea76
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MeNBtoSeNBContainer.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_MeNBtoSeNBContainer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_MeNBtoSeNBContainer = {
+       "MeNBtoSeNBContainer",
+       "MeNBtoSeNBContainer",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_MeNBtoSeNBContainer_tags_1,
+       sizeof(asn_DEF_MeNBtoSeNBContainer_tags_1)
+               /sizeof(asn_DEF_MeNBtoSeNBContainer_tags_1[0]), /* 1 */
+       asn_DEF_MeNBtoSeNBContainer_tags_1,     /* Same as above */
+       sizeof(asn_DEF_MeNBtoSeNBContainer_tags_1)
+               /sizeof(asn_DEF_MeNBtoSeNBContainer_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/MeNBtoSgNBContainer.c b/e2ap/lib/MeNBtoSgNBContainer.c
new file mode 100644 (file)
index 0000000..a04e600
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MeNBtoSgNBContainer.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_MeNBtoSgNBContainer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_MeNBtoSgNBContainer = {
+       "MeNBtoSgNBContainer",
+       "MeNBtoSgNBContainer",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_MeNBtoSgNBContainer_tags_1,
+       sizeof(asn_DEF_MeNBtoSgNBContainer_tags_1)
+               /sizeof(asn_DEF_MeNBtoSgNBContainer_tags_1[0]), /* 1 */
+       asn_DEF_MeNBtoSgNBContainer_tags_1,     /* Same as above */
+       sizeof(asn_DEF_MeNBtoSgNBContainer_tags_1)
+               /sizeof(asn_DEF_MeNBtoSgNBContainer_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/Measurement-ID.c b/e2ap/lib/Measurement-ID.c
new file mode 100644 (file)
index 0000000..baafb43
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Measurement-ID.h"
+
+int
+Measurement_ID_constraint(const 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 >= 1 && value <= 4095)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_Measurement_ID_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_Measurement_ID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  12,  12,  1,  4095 }       /* (1..4095,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_Measurement_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Measurement_ID = {
+       "Measurement-ID",
+       "Measurement-ID",
+       &asn_OP_NativeInteger,
+       asn_DEF_Measurement_ID_tags_1,
+       sizeof(asn_DEF_Measurement_ID_tags_1)
+               /sizeof(asn_DEF_Measurement_ID_tags_1[0]), /* 1 */
+       asn_DEF_Measurement_ID_tags_1,  /* Same as above */
+       sizeof(asn_DEF_Measurement_ID_tags_1)
+               /sizeof(asn_DEF_Measurement_ID_tags_1[0]), /* 1 */
+       { &asn_OER_type_Measurement_ID_constr_1, &asn_PER_type_Measurement_ID_constr_1, Measurement_ID_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/MeasurementFailureCause-Item.c b/e2ap/lib/MeasurementFailureCause-Item.c
new file mode 100644 (file)
index 0000000..07d84ce
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MeasurementFailureCause-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_MeasurementFailureCause_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_Item, measurementFailedReportCharacteristics),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ReportCharacteristics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "measurementFailedReportCharacteristics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_Item, cause),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cause"
+               },
+       { ATF_POINTER, 1, offsetof(struct MeasurementFailureCause_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P11,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_MeasurementFailureCause_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_MeasurementFailureCause_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MeasurementFailureCause_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measurementFailedReportCharacteristics */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_MeasurementFailureCause_Item_specs_1 = {
+       sizeof(struct MeasurementFailureCause_Item),
+       offsetof(struct MeasurementFailureCause_Item, _asn_ctx),
+       asn_MAP_MeasurementFailureCause_Item_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_MeasurementFailureCause_Item_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MeasurementFailureCause_Item = {
+       "MeasurementFailureCause-Item",
+       "MeasurementFailureCause-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MeasurementFailureCause_Item_tags_1,
+       sizeof(asn_DEF_MeasurementFailureCause_Item_tags_1)
+               /sizeof(asn_DEF_MeasurementFailureCause_Item_tags_1[0]), /* 1 */
+       asn_DEF_MeasurementFailureCause_Item_tags_1,    /* Same as above */
+       sizeof(asn_DEF_MeasurementFailureCause_Item_tags_1)
+               /sizeof(asn_DEF_MeasurementFailureCause_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MeasurementFailureCause_Item_1,
+       3,      /* Elements count */
+       &asn_SPC_MeasurementFailureCause_Item_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/MeasurementFailureCause-List.c b/e2ap/lib/MeasurementFailureCause-List.c
new file mode 100644 (file)
index 0000000..ae47d77
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MeasurementFailureCause-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_MeasurementFailureCause_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..32)) */};
+asn_per_constraints_t asn_PER_type_MeasurementFailureCause_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       5,  5,  1,  32 }       /* (SIZE(1..32)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_MeasurementFailureCause_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P12,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MeasurementFailureCause_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_MeasurementFailureCause_List_specs_1 = {
+       sizeof(struct MeasurementFailureCause_List),
+       offsetof(struct MeasurementFailureCause_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_MeasurementFailureCause_List = {
+       "MeasurementFailureCause-List",
+       "MeasurementFailureCause-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_MeasurementFailureCause_List_tags_1,
+       sizeof(asn_DEF_MeasurementFailureCause_List_tags_1)
+               /sizeof(asn_DEF_MeasurementFailureCause_List_tags_1[0]), /* 1 */
+       asn_DEF_MeasurementFailureCause_List_tags_1,    /* Same as above */
+       sizeof(asn_DEF_MeasurementFailureCause_List_tags_1)
+               /sizeof(asn_DEF_MeasurementFailureCause_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_MeasurementFailureCause_List_constr_1, &asn_PER_type_MeasurementFailureCause_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_MeasurementFailureCause_List_1,
+       1,      /* Single element */
+       &asn_SPC_MeasurementFailureCause_List_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/MeasurementInitiationResult-Item.c b/e2ap/lib/MeasurementInitiationResult-Item.c
new file mode 100644 (file)
index 0000000..46f3602
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MeasurementInitiationResult-Item.h"
+
+#include "MeasurementFailureCause-List.h"
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_MeasurementInitiationResult_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MeasurementInitiationResult_Item, cell_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cell-ID"
+               },
+       { ATF_POINTER, 2, offsetof(struct MeasurementInitiationResult_Item, measurementFailureCause_List),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_MeasurementFailureCause_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "measurementFailureCause-List"
+               },
+       { ATF_POINTER, 1, offsetof(struct MeasurementInitiationResult_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P10,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_MeasurementInitiationResult_Item_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_MeasurementInitiationResult_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MeasurementInitiationResult_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cell-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measurementFailureCause-List */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_MeasurementInitiationResult_Item_specs_1 = {
+       sizeof(struct MeasurementInitiationResult_Item),
+       offsetof(struct MeasurementInitiationResult_Item, _asn_ctx),
+       asn_MAP_MeasurementInitiationResult_Item_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_MeasurementInitiationResult_Item_oms_1, /* Optional members */
+       2, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MeasurementInitiationResult_Item = {
+       "MeasurementInitiationResult-Item",
+       "MeasurementInitiationResult-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MeasurementInitiationResult_Item_tags_1,
+       sizeof(asn_DEF_MeasurementInitiationResult_Item_tags_1)
+               /sizeof(asn_DEF_MeasurementInitiationResult_Item_tags_1[0]), /* 1 */
+       asn_DEF_MeasurementInitiationResult_Item_tags_1,        /* Same as above */
+       sizeof(asn_DEF_MeasurementInitiationResult_Item_tags_1)
+               /sizeof(asn_DEF_MeasurementInitiationResult_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MeasurementInitiationResult_Item_1,
+       3,      /* Elements count */
+       &asn_SPC_MeasurementInitiationResult_Item_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/MeasurementInitiationResult-List.c b/e2ap/lib/MeasurementInitiationResult-List.c
new file mode 100644 (file)
index 0000000..92046ff
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MeasurementInitiationResult-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_MeasurementInitiationResult_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_MeasurementInitiationResult_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_MeasurementInitiationResult_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P11,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MeasurementInitiationResult_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_MeasurementInitiationResult_List_specs_1 = {
+       sizeof(struct MeasurementInitiationResult_List),
+       offsetof(struct MeasurementInitiationResult_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_MeasurementInitiationResult_List = {
+       "MeasurementInitiationResult-List",
+       "MeasurementInitiationResult-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_MeasurementInitiationResult_List_tags_1,
+       sizeof(asn_DEF_MeasurementInitiationResult_List_tags_1)
+               /sizeof(asn_DEF_MeasurementInitiationResult_List_tags_1[0]), /* 1 */
+       asn_DEF_MeasurementInitiationResult_List_tags_1,        /* Same as above */
+       sizeof(asn_DEF_MeasurementInitiationResult_List_tags_1)
+               /sizeof(asn_DEF_MeasurementInitiationResult_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_MeasurementInitiationResult_List_constr_1, &asn_PER_type_MeasurementInitiationResult_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_MeasurementInitiationResult_List_1,
+       1,      /* Single element */
+       &asn_SPC_MeasurementInitiationResult_List_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/MeasurementThresholdA2.c b/e2ap/lib/MeasurementThresholdA2.c
new file mode 100644 (file)
index 0000000..73b87aa
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MeasurementThresholdA2.h"
+
+static asn_oer_constraints_t asn_OER_type_MeasurementThresholdA2_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_MeasurementThresholdA2_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_MeasurementThresholdA2_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MeasurementThresholdA2, choice.threshold_RSRP),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Threshold_RSRP,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "threshold-RSRP"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MeasurementThresholdA2, choice.threshold_RSRQ),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Threshold_RSRQ,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "threshold-RSRQ"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_MeasurementThresholdA2_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* threshold-RSRP */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* threshold-RSRQ */
+};
+asn_CHOICE_specifics_t asn_SPC_MeasurementThresholdA2_specs_1 = {
+       sizeof(struct MeasurementThresholdA2),
+       offsetof(struct MeasurementThresholdA2, _asn_ctx),
+       offsetof(struct MeasurementThresholdA2, present),
+       sizeof(((struct MeasurementThresholdA2 *)0)->present),
+       asn_MAP_MeasurementThresholdA2_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_MeasurementThresholdA2 = {
+       "MeasurementThresholdA2",
+       "MeasurementThresholdA2",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_MeasurementThresholdA2_constr_1, &asn_PER_type_MeasurementThresholdA2_constr_1, CHOICE_constraint },
+       asn_MBR_MeasurementThresholdA2_1,
+       2,      /* Elements count */
+       &asn_SPC_MeasurementThresholdA2_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/MeasurementsToActivate.c b/e2ap/lib/MeasurementsToActivate.c
new file mode 100644 (file)
index 0000000..0cc4da5
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MeasurementsToActivate.h"
+
+int
+MeasurementsToActivate_constraint(const 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 == 8)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_MeasurementsToActivate_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       8       /* (SIZE(8..8)) */};
+asn_per_constraints_t asn_PER_type_MeasurementsToActivate_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  8,  8 }        /* (SIZE(8..8)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_MeasurementsToActivate_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_MeasurementsToActivate = {
+       "MeasurementsToActivate",
+       "MeasurementsToActivate",
+       &asn_OP_BIT_STRING,
+       asn_DEF_MeasurementsToActivate_tags_1,
+       sizeof(asn_DEF_MeasurementsToActivate_tags_1)
+               /sizeof(asn_DEF_MeasurementsToActivate_tags_1[0]), /* 1 */
+       asn_DEF_MeasurementsToActivate_tags_1,  /* Same as above */
+       sizeof(asn_DEF_MeasurementsToActivate_tags_1)
+               /sizeof(asn_DEF_MeasurementsToActivate_tags_1[0]), /* 1 */
+       { &asn_OER_type_MeasurementsToActivate_constr_1, &asn_PER_type_MeasurementsToActivate_constr_1, MeasurementsToActivate_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/MobilityChangeAcknowledge.c b/e2ap/lib/MobilityChangeAcknowledge.c
new file mode 100644 (file)
index 0000000..186a982
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MobilityChangeAcknowledge.h"
+
+asn_TYPE_member_t asn_MBR_MobilityChangeAcknowledge_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeAcknowledge, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P36,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MobilityChangeAcknowledge_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MobilityChangeAcknowledge_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeAcknowledge_specs_1 = {
+       sizeof(struct MobilityChangeAcknowledge),
+       offsetof(struct MobilityChangeAcknowledge, _asn_ctx),
+       asn_MAP_MobilityChangeAcknowledge_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MobilityChangeAcknowledge = {
+       "MobilityChangeAcknowledge",
+       "MobilityChangeAcknowledge",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MobilityChangeAcknowledge_tags_1,
+       sizeof(asn_DEF_MobilityChangeAcknowledge_tags_1)
+               /sizeof(asn_DEF_MobilityChangeAcknowledge_tags_1[0]), /* 1 */
+       asn_DEF_MobilityChangeAcknowledge_tags_1,       /* Same as above */
+       sizeof(asn_DEF_MobilityChangeAcknowledge_tags_1)
+               /sizeof(asn_DEF_MobilityChangeAcknowledge_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MobilityChangeAcknowledge_1,
+       1,      /* Elements count */
+       &asn_SPC_MobilityChangeAcknowledge_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/MobilityChangeFailure.c b/e2ap/lib/MobilityChangeFailure.c
new file mode 100644 (file)
index 0000000..64d1854
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MobilityChangeFailure.h"
+
+asn_TYPE_member_t asn_MBR_MobilityChangeFailure_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeFailure, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P37,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MobilityChangeFailure_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MobilityChangeFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeFailure_specs_1 = {
+       sizeof(struct MobilityChangeFailure),
+       offsetof(struct MobilityChangeFailure, _asn_ctx),
+       asn_MAP_MobilityChangeFailure_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MobilityChangeFailure = {
+       "MobilityChangeFailure",
+       "MobilityChangeFailure",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MobilityChangeFailure_tags_1,
+       sizeof(asn_DEF_MobilityChangeFailure_tags_1)
+               /sizeof(asn_DEF_MobilityChangeFailure_tags_1[0]), /* 1 */
+       asn_DEF_MobilityChangeFailure_tags_1,   /* Same as above */
+       sizeof(asn_DEF_MobilityChangeFailure_tags_1)
+               /sizeof(asn_DEF_MobilityChangeFailure_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MobilityChangeFailure_1,
+       1,      /* Elements count */
+       &asn_SPC_MobilityChangeFailure_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/MobilityChangeRequest.c b/e2ap/lib/MobilityChangeRequest.c
new file mode 100644 (file)
index 0000000..f57a971
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MobilityChangeRequest.h"
+
+asn_TYPE_member_t asn_MBR_MobilityChangeRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P35,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MobilityChangeRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MobilityChangeRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeRequest_specs_1 = {
+       sizeof(struct MobilityChangeRequest),
+       offsetof(struct MobilityChangeRequest, _asn_ctx),
+       asn_MAP_MobilityChangeRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MobilityChangeRequest = {
+       "MobilityChangeRequest",
+       "MobilityChangeRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MobilityChangeRequest_tags_1,
+       sizeof(asn_DEF_MobilityChangeRequest_tags_1)
+               /sizeof(asn_DEF_MobilityChangeRequest_tags_1[0]), /* 1 */
+       asn_DEF_MobilityChangeRequest_tags_1,   /* Same as above */
+       sizeof(asn_DEF_MobilityChangeRequest_tags_1)
+               /sizeof(asn_DEF_MobilityChangeRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MobilityChangeRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_MobilityChangeRequest_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/MobilityInformation.c b/e2ap/lib/MobilityInformation.c
new file mode 100644 (file)
index 0000000..236e76e
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MobilityInformation.h"
+
+int
+MobilityInformation_constraint(const 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 == 32)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_MobilityInformation_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       32      /* (SIZE(32..32)) */};
+static asn_per_constraints_t asn_PER_type_MobilityInformation_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  32,  32 }      /* (SIZE(32..32)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_MobilityInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_MobilityInformation = {
+       "MobilityInformation",
+       "MobilityInformation",
+       &asn_OP_BIT_STRING,
+       asn_DEF_MobilityInformation_tags_1,
+       sizeof(asn_DEF_MobilityInformation_tags_1)
+               /sizeof(asn_DEF_MobilityInformation_tags_1[0]), /* 1 */
+       asn_DEF_MobilityInformation_tags_1,     /* Same as above */
+       sizeof(asn_DEF_MobilityInformation_tags_1)
+               /sizeof(asn_DEF_MobilityInformation_tags_1[0]), /* 1 */
+       { &asn_OER_type_MobilityInformation_constr_1, &asn_PER_type_MobilityInformation_constr_1, MobilityInformation_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/MobilityParametersInformation.c b/e2ap/lib/MobilityParametersInformation.c
new file mode 100644 (file)
index 0000000..6db601a
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MobilityParametersInformation.h"
+
+static int
+memb_handoverTriggerChange_constraint_1(const 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 >= -20 && value <= 20)) {
+               /* 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_oer_constraints_t asn_OER_memb_handoverTriggerChange_constr_2 CC_NOTUSED = {
+       { 1, 0 }        /* (-20..20) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_handoverTriggerChange_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       6,  6, -20,  20 }      /* (-20..20) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_MobilityParametersInformation_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityParametersInformation, handoverTriggerChange),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_handoverTriggerChange_constr_2, &asn_PER_memb_handoverTriggerChange_constr_2,  memb_handoverTriggerChange_constraint_1 },
+               0, 0, /* No default value */
+               "handoverTriggerChange"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MobilityParametersInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MobilityParametersInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* handoverTriggerChange */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_MobilityParametersInformation_specs_1 = {
+       sizeof(struct MobilityParametersInformation),
+       offsetof(struct MobilityParametersInformation, _asn_ctx),
+       asn_MAP_MobilityParametersInformation_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MobilityParametersInformation = {
+       "MobilityParametersInformation",
+       "MobilityParametersInformation",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MobilityParametersInformation_tags_1,
+       sizeof(asn_DEF_MobilityParametersInformation_tags_1)
+               /sizeof(asn_DEF_MobilityParametersInformation_tags_1[0]), /* 1 */
+       asn_DEF_MobilityParametersInformation_tags_1,   /* Same as above */
+       sizeof(asn_DEF_MobilityParametersInformation_tags_1)
+               /sizeof(asn_DEF_MobilityParametersInformation_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MobilityParametersInformation_1,
+       1,      /* Elements count */
+       &asn_SPC_MobilityParametersInformation_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/MobilityParametersModificationRange.c b/e2ap/lib/MobilityParametersModificationRange.c
new file mode 100644 (file)
index 0000000..29374f6
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MobilityParametersModificationRange.h"
+
+static int
+memb_handoverTriggerChangeLowerLimit_constraint_1(const 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 >= -20 && value <= 20)) {
+               /* 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_handoverTriggerChangeUpperLimit_constraint_1(const 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 >= -20 && value <= 20)) {
+               /* 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_oer_constraints_t asn_OER_memb_handoverTriggerChangeLowerLimit_constr_2 CC_NOTUSED = {
+       { 1, 0 }        /* (-20..20) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_handoverTriggerChangeLowerLimit_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       6,  6, -20,  20 }      /* (-20..20) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_handoverTriggerChangeUpperLimit_constr_3 CC_NOTUSED = {
+       { 1, 0 }        /* (-20..20) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_handoverTriggerChangeUpperLimit_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED,       6,  6, -20,  20 }      /* (-20..20) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_MobilityParametersModificationRange_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityParametersModificationRange, handoverTriggerChangeLowerLimit),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_handoverTriggerChangeLowerLimit_constr_2, &asn_PER_memb_handoverTriggerChangeLowerLimit_constr_2,  memb_handoverTriggerChangeLowerLimit_constraint_1 },
+               0, 0, /* No default value */
+               "handoverTriggerChangeLowerLimit"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityParametersModificationRange, handoverTriggerChangeUpperLimit),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_handoverTriggerChangeUpperLimit_constr_3, &asn_PER_memb_handoverTriggerChangeUpperLimit_constr_3,  memb_handoverTriggerChangeUpperLimit_constraint_1 },
+               0, 0, /* No default value */
+               "handoverTriggerChangeUpperLimit"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MobilityParametersModificationRange_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MobilityParametersModificationRange_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* handoverTriggerChangeLowerLimit */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* handoverTriggerChangeUpperLimit */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_MobilityParametersModificationRange_specs_1 = {
+       sizeof(struct MobilityParametersModificationRange),
+       offsetof(struct MobilityParametersModificationRange, _asn_ctx),
+       asn_MAP_MobilityParametersModificationRange_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MobilityParametersModificationRange = {
+       "MobilityParametersModificationRange",
+       "MobilityParametersModificationRange",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MobilityParametersModificationRange_tags_1,
+       sizeof(asn_DEF_MobilityParametersModificationRange_tags_1)
+               /sizeof(asn_DEF_MobilityParametersModificationRange_tags_1[0]), /* 1 */
+       asn_DEF_MobilityParametersModificationRange_tags_1,     /* Same as above */
+       sizeof(asn_DEF_MobilityParametersModificationRange_tags_1)
+               /sizeof(asn_DEF_MobilityParametersModificationRange_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MobilityParametersModificationRange_1,
+       2,      /* Elements count */
+       &asn_SPC_MobilityParametersModificationRange_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/MultibandInfoList.c b/e2ap/lib/MultibandInfoList.c
new file mode 100644 (file)
index 0000000..899df18
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "MultibandInfoList.h"
+
+#include "BandInfo.h"
+static asn_oer_constraints_t asn_OER_type_MultibandInfoList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16)) */};
+static asn_per_constraints_t asn_PER_type_MultibandInfoList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       4,  4,  1,  16 }       /* (SIZE(1..16)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_MultibandInfoList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_BandInfo,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MultibandInfoList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_MultibandInfoList_specs_1 = {
+       sizeof(struct MultibandInfoList),
+       offsetof(struct MultibandInfoList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_MultibandInfoList = {
+       "MultibandInfoList",
+       "MultibandInfoList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_MultibandInfoList_tags_1,
+       sizeof(asn_DEF_MultibandInfoList_tags_1)
+               /sizeof(asn_DEF_MultibandInfoList_tags_1[0]), /* 1 */
+       asn_DEF_MultibandInfoList_tags_1,       /* Same as above */
+       sizeof(asn_DEF_MultibandInfoList_tags_1)
+               /sizeof(asn_DEF_MultibandInfoList_tags_1[0]), /* 1 */
+       { &asn_OER_type_MultibandInfoList_constr_1, &asn_PER_type_MultibandInfoList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_MultibandInfoList_1,
+       1,      /* Single element */
+       &asn_SPC_MultibandInfoList_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/NR-TxBW.c b/e2ap/lib/NR-TxBW.c
new file mode 100644 (file)
index 0000000..9f453ad
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "NR-TxBW.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_NR_TxBW_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct NR_TxBW, nRSCS),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRSCS,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nRSCS"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct NR_TxBW, nRNRB),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRNRB,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nRNRB"
+               },
+       { ATF_POINTER, 1, offsetof(struct NR_TxBW, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P175,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_NR_TxBW_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_NR_TxBW_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_NR_TxBW_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRSCS */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRNRB */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_NR_TxBW_specs_1 = {
+       sizeof(struct NR_TxBW),
+       offsetof(struct NR_TxBW, _asn_ctx),
+       asn_MAP_NR_TxBW_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_NR_TxBW_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_NR_TxBW = {
+       "NR-TxBW",
+       "NR-TxBW",
+       &asn_OP_SEQUENCE,
+       asn_DEF_NR_TxBW_tags_1,
+       sizeof(asn_DEF_NR_TxBW_tags_1)
+               /sizeof(asn_DEF_NR_TxBW_tags_1[0]), /* 1 */
+       asn_DEF_NR_TxBW_tags_1, /* Same as above */
+       sizeof(asn_DEF_NR_TxBW_tags_1)
+               /sizeof(asn_DEF_NR_TxBW_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_NR_TxBW_1,
+       3,      /* Elements count */
+       &asn_SPC_NR_TxBW_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/NRCGI.c b/e2ap/lib/NRCGI.c
new file mode 100644 (file)
index 0000000..607202c
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "NRCGI.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_NRCGI_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct NRCGI, pLMN_Identity),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pLMN-Identity"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct NRCGI, nRcellIdentifier),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRCellIdentifier,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nRcellIdentifier"
+               },
+       { ATF_POINTER, 1, offsetof(struct NRCGI, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P174,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_NRCGI_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_NRCGI_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_NRCGI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRcellIdentifier */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1 = {
+       sizeof(struct NRCGI),
+       offsetof(struct NRCGI, _asn_ctx),
+       asn_MAP_NRCGI_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_NRCGI_oms_1,    /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_NRCGI = {
+       "NRCGI",
+       "NRCGI",
+       &asn_OP_SEQUENCE,
+       asn_DEF_NRCGI_tags_1,
+       sizeof(asn_DEF_NRCGI_tags_1)
+               /sizeof(asn_DEF_NRCGI_tags_1[0]), /* 1 */
+       asn_DEF_NRCGI_tags_1,   /* Same as above */
+       sizeof(asn_DEF_NRCGI_tags_1)
+               /sizeof(asn_DEF_NRCGI_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_NRCGI_1,
+       3,      /* Elements count */
+       &asn_SPC_NRCGI_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/NRCellIdentifier.c b/e2ap/lib/NRCellIdentifier.c
new file mode 100644 (file)
index 0000000..4a193d7
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "NRCellIdentifier.h"
+
+int
+NRCellIdentifier_constraint(const 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 == 36)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_NRCellIdentifier_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       36      /* (SIZE(36..36)) */};
+asn_per_constraints_t asn_PER_type_NRCellIdentifier_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  36,  36 }      /* (SIZE(36..36)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_NRCellIdentifier_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NRCellIdentifier = {
+       "NRCellIdentifier",
+       "NRCellIdentifier",
+       &asn_OP_BIT_STRING,
+       asn_DEF_NRCellIdentifier_tags_1,
+       sizeof(asn_DEF_NRCellIdentifier_tags_1)
+               /sizeof(asn_DEF_NRCellIdentifier_tags_1[0]), /* 1 */
+       asn_DEF_NRCellIdentifier_tags_1,        /* Same as above */
+       sizeof(asn_DEF_NRCellIdentifier_tags_1)
+               /sizeof(asn_DEF_NRCellIdentifier_tags_1[0]), /* 1 */
+       { &asn_OER_type_NRCellIdentifier_constr_1, &asn_PER_type_NRCellIdentifier_constr_1, NRCellIdentifier_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/NRFreqInfo.c b/e2ap/lib/NRFreqInfo.c
new file mode 100644 (file)
index 0000000..3edcb67
--- /dev/null
@@ -0,0 +1,197 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "NRFreqInfo.h"
+
+#include "SULInformation.h"
+#include "ProtocolExtensionContainer.h"
+#include "FreqBandNrItem.h"
+static int
+memb_nRARFCN_constraint_1(const 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 >= 0 && value <= 3279165)) {
+               /* 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_freqBandListNr_constraint_1(const 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 >= 1 && size <= 32)) {
+               /* Perform validation of the inner elements */
+               return td->encoding_constraints.general_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_oer_constraints_t asn_OER_type_freqBandListNr_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..32)) */};
+static asn_per_constraints_t asn_PER_type_freqBandListNr_constr_3 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       5,  5,  1,  32 }       /* (SIZE(1..32)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_nRARFCN_constr_2 CC_NOTUSED = {
+       { 4, 1 }        /* (0..3279165) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_nRARFCN_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       22, -1,  0,  3279165 } /* (0..3279165) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_freqBandListNr_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..32)) */};
+static asn_per_constraints_t asn_PER_memb_freqBandListNr_constr_3 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       5,  5,  1,  32 }       /* (SIZE(1..32)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_freqBandListNr_3[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_FreqBandNrItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_freqBandListNr_tags_3[] = {
+       (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_freqBandListNr_specs_3 = {
+       sizeof(struct NRFreqInfo__freqBandListNr),
+       offsetof(struct NRFreqInfo__freqBandListNr, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_freqBandListNr_3 = {
+       "freqBandListNr",
+       "freqBandListNr",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_freqBandListNr_tags_3,
+       sizeof(asn_DEF_freqBandListNr_tags_3)
+               /sizeof(asn_DEF_freqBandListNr_tags_3[0]) - 1, /* 1 */
+       asn_DEF_freqBandListNr_tags_3,  /* Same as above */
+       sizeof(asn_DEF_freqBandListNr_tags_3)
+               /sizeof(asn_DEF_freqBandListNr_tags_3[0]), /* 2 */
+       { &asn_OER_type_freqBandListNr_constr_3, &asn_PER_type_freqBandListNr_constr_3, SEQUENCE_OF_constraint },
+       asn_MBR_freqBandListNr_3,
+       1,      /* Single element */
+       &asn_SPC_freqBandListNr_specs_3 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_NRFreqInfo_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct NRFreqInfo, nRARFCN),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_nRARFCN_constr_2, &asn_PER_memb_nRARFCN_constr_2,  memb_nRARFCN_constraint_1 },
+               0, 0, /* No default value */
+               "nRARFCN"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct NRFreqInfo, freqBandListNr),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               0,
+               &asn_DEF_freqBandListNr_3,
+               0,
+               { &asn_OER_memb_freqBandListNr_constr_3, &asn_PER_memb_freqBandListNr_constr_3,  memb_freqBandListNr_constraint_1 },
+               0, 0, /* No default value */
+               "freqBandListNr"
+               },
+       { ATF_POINTER, 2, offsetof(struct NRFreqInfo, sULInformation),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SULInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sULInformation"
+               },
+       { ATF_POINTER, 1, offsetof(struct NRFreqInfo, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P173,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_NRFreqInfo_oms_1[] = { 2, 3 };
+static const ber_tlv_tag_t asn_DEF_NRFreqInfo_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_NRFreqInfo_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRARFCN */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* freqBandListNr */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sULInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_NRFreqInfo_specs_1 = {
+       sizeof(struct NRFreqInfo),
+       offsetof(struct NRFreqInfo, _asn_ctx),
+       asn_MAP_NRFreqInfo_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_NRFreqInfo_oms_1,       /* Optional members */
+       2, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_NRFreqInfo = {
+       "NRFreqInfo",
+       "NRFreqInfo",
+       &asn_OP_SEQUENCE,
+       asn_DEF_NRFreqInfo_tags_1,
+       sizeof(asn_DEF_NRFreqInfo_tags_1)
+               /sizeof(asn_DEF_NRFreqInfo_tags_1[0]), /* 1 */
+       asn_DEF_NRFreqInfo_tags_1,      /* Same as above */
+       sizeof(asn_DEF_NRFreqInfo_tags_1)
+               /sizeof(asn_DEF_NRFreqInfo_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_NRFreqInfo_1,
+       4,      /* Elements count */
+       &asn_SPC_NRFreqInfo_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/NRNRB.c b/e2ap/lib/NRNRB.c
new file mode 100644 (file)
index 0000000..fc65e4d
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "NRNRB.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_NRNRB_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_NRNRB_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  5,  5,  0,  28 }   /* (0..28,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_NRNRB_value2enum_1[] = {
+       { 0,    5,      "nrb11" },
+       { 1,    5,      "nrb18" },
+       { 2,    5,      "nrb24" },
+       { 3,    5,      "nrb25" },
+       { 4,    5,      "nrb31" },
+       { 5,    5,      "nrb32" },
+       { 6,    5,      "nrb38" },
+       { 7,    5,      "nrb51" },
+       { 8,    5,      "nrb52" },
+       { 9,    5,      "nrb65" },
+       { 10,   5,      "nrb66" },
+       { 11,   5,      "nrb78" },
+       { 12,   5,      "nrb79" },
+       { 13,   5,      "nrb93" },
+       { 14,   6,      "nrb106" },
+       { 15,   6,      "nrb107" },
+       { 16,   6,      "nrb121" },
+       { 17,   6,      "nrb132" },
+       { 18,   6,      "nrb133" },
+       { 19,   6,      "nrb135" },
+       { 20,   6,      "nrb160" },
+       { 21,   6,      "nrb162" },
+       { 22,   6,      "nrb189" },
+       { 23,   6,      "nrb216" },
+       { 24,   6,      "nrb217" },
+       { 25,   6,      "nrb245" },
+       { 26,   6,      "nrb264" },
+       { 27,   6,      "nrb270" },
+       { 28,   6,      "nrb273" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_NRNRB_enum2value_1[] = {
+       14,     /* nrb106(14) */
+       15,     /* nrb107(15) */
+       0,      /* nrb11(0) */
+       16,     /* nrb121(16) */
+       17,     /* nrb132(17) */
+       18,     /* nrb133(18) */
+       19,     /* nrb135(19) */
+       20,     /* nrb160(20) */
+       21,     /* nrb162(21) */
+       1,      /* nrb18(1) */
+       22,     /* nrb189(22) */
+       23,     /* nrb216(23) */
+       24,     /* nrb217(24) */
+       2,      /* nrb24(2) */
+       25,     /* nrb245(25) */
+       3,      /* nrb25(3) */
+       26,     /* nrb264(26) */
+       27,     /* nrb270(27) */
+       28,     /* nrb273(28) */
+       4,      /* nrb31(4) */
+       5,      /* nrb32(5) */
+       6,      /* nrb38(6) */
+       7,      /* nrb51(7) */
+       8,      /* nrb52(8) */
+       9,      /* nrb65(9) */
+       10,     /* nrb66(10) */
+       11,     /* nrb78(11) */
+       12,     /* nrb79(12) */
+       13      /* nrb93(13) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_NRNRB_specs_1 = {
+       asn_MAP_NRNRB_value2enum_1,     /* "tag" => N; sorted by tag */
+       asn_MAP_NRNRB_enum2value_1,     /* N => "tag"; sorted by N */
+       29,     /* Number of elements in the maps */
+       30,     /* Extensions before this member */
+       1,      /* Strict enumeration */
+       0,      /* Native long size */
+       0
+};
+static const ber_tlv_tag_t asn_DEF_NRNRB_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NRNRB = {
+       "NRNRB",
+       "NRNRB",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_NRNRB_tags_1,
+       sizeof(asn_DEF_NRNRB_tags_1)
+               /sizeof(asn_DEF_NRNRB_tags_1[0]), /* 1 */
+       asn_DEF_NRNRB_tags_1,   /* Same as above */
+       sizeof(asn_DEF_NRNRB_tags_1)
+               /sizeof(asn_DEF_NRNRB_tags_1[0]), /* 1 */
+       { &asn_OER_type_NRNRB_constr_1, &asn_PER_type_NRNRB_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_NRNRB_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/NRNeighbour-Information.c b/e2ap/lib/NRNeighbour-Information.c
new file mode 100644 (file)
index 0000000..adba0e3
--- /dev/null
@@ -0,0 +1,216 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "NRNeighbour-Information.h"
+
+#include "ProtocolExtensionContainer.h"
+#include "FDD-InfoNeighbourServedNRCell-Information.h"
+#include "TDD-InfoNeighbourServedNRCell-Information.h"
+static asn_oer_constraints_t asn_OER_type_nRNeighbourModeInfo_constr_8 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_nRNeighbourModeInfo_constr_8 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_NRNeighbour_Information_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..1024)) */};
+asn_per_constraints_t asn_PER_type_NRNeighbour_Information_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       10,  10,  1,  1024 }   /* (SIZE(1..1024)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_nRNeighbourModeInfo_8[] = {
+       { ATF_POINTER, 0, offsetof(struct NRNeighbour_Information__Member__nRNeighbourModeInfo, choice.fdd),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_FDD_InfoNeighbourServedNRCell_Information,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "fdd"
+               },
+       { ATF_POINTER, 0, offsetof(struct NRNeighbour_Information__Member__nRNeighbourModeInfo, choice.tdd),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TDD_InfoNeighbourServedNRCell_Information,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "tdd"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_nRNeighbourModeInfo_tag2el_8[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fdd */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tdd */
+};
+static asn_CHOICE_specifics_t asn_SPC_nRNeighbourModeInfo_specs_8 = {
+       sizeof(struct NRNeighbour_Information__Member__nRNeighbourModeInfo),
+       offsetof(struct NRNeighbour_Information__Member__nRNeighbourModeInfo, _asn_ctx),
+       offsetof(struct NRNeighbour_Information__Member__nRNeighbourModeInfo, present),
+       sizeof(((struct NRNeighbour_Information__Member__nRNeighbourModeInfo *)0)->present),
+       asn_MAP_nRNeighbourModeInfo_tag2el_8,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_nRNeighbourModeInfo_8 = {
+       "nRNeighbourModeInfo",
+       "nRNeighbourModeInfo",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_nRNeighbourModeInfo_constr_8, &asn_PER_type_nRNeighbourModeInfo_constr_8, CHOICE_constraint },
+       asn_MBR_nRNeighbourModeInfo_8,
+       2,      /* Elements count */
+       &asn_SPC_nRNeighbourModeInfo_specs_8    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct NRNeighbour_Information__Member, nrpCI),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRPCI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nrpCI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct NRNeighbour_Information__Member, nrCellID),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRCGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nrCellID"
+               },
+       { ATF_POINTER, 2, offsetof(struct NRNeighbour_Information__Member, fiveGS_TAC),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_FiveGS_TAC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "fiveGS-TAC"
+               },
+       { ATF_POINTER, 1, offsetof(struct NRNeighbour_Information__Member, configured_TAC),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TAC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "configured-TAC"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct NRNeighbour_Information__Member, measurementTimingConfiguration),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_OCTET_STRING,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "measurementTimingConfiguration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct NRNeighbour_Information__Member, nRNeighbourModeInfo),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_nRNeighbourModeInfo_8,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nRNeighbourModeInfo"
+               },
+       { ATF_POINTER, 1, offsetof(struct NRNeighbour_Information__Member, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P97,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_Member_oms_2[] = { 2, 3, 6 };
+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 }, /* nrpCI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nrCellID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* fiveGS-TAC */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* configured-TAC */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* measurementTimingConfiguration */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* nRNeighbourModeInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+       sizeof(struct NRNeighbour_Information__Member),
+       offsetof(struct NRNeighbour_Information__Member, _asn_ctx),
+       asn_MAP_Member_tag2el_2,
+       7,      /* Count of tags in the map */
+       asn_MAP_Member_oms_2,   /* Optional members */
+       3, 0,   /* Root/Additions */
+       7,      /* First extension addition */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+       "SEQUENCE",
+       "SEQUENCE",
+       &asn_OP_SEQUENCE,
+       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, 0, SEQUENCE_constraint },
+       asn_MBR_Member_2,
+       7,      /* Elements count */
+       &asn_SPC_Member_specs_2 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_NRNeighbour_Information_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Member_2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_NRNeighbour_Information_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_NRNeighbour_Information_specs_1 = {
+       sizeof(struct NRNeighbour_Information),
+       offsetof(struct NRNeighbour_Information, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_NRNeighbour_Information = {
+       "NRNeighbour-Information",
+       "NRNeighbour-Information",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_NRNeighbour_Information_tags_1,
+       sizeof(asn_DEF_NRNeighbour_Information_tags_1)
+               /sizeof(asn_DEF_NRNeighbour_Information_tags_1[0]), /* 1 */
+       asn_DEF_NRNeighbour_Information_tags_1, /* Same as above */
+       sizeof(asn_DEF_NRNeighbour_Information_tags_1)
+               /sizeof(asn_DEF_NRNeighbour_Information_tags_1[0]), /* 1 */
+       { &asn_OER_type_NRNeighbour_Information_constr_1, &asn_PER_type_NRNeighbour_Information_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_NRNeighbour_Information_1,
+       1,      /* Single element */
+       &asn_SPC_NRNeighbour_Information_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/NRPCI.c b/e2ap/lib/NRPCI.c
new file mode 100644 (file)
index 0000000..31c455b
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "NRPCI.h"
+
+int
+NRPCI_constraint(const 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 >= 0 && value <= 1007)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_NRPCI_constr_1 CC_NOTUSED = {
+       { 2, 1 }        /* (0..1007) */,
+       -1};
+asn_per_constraints_t asn_PER_type_NRPCI_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       10,  10,  0,  1007 }   /* (0..1007) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_NRPCI_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NRPCI = {
+       "NRPCI",
+       "NRPCI",
+       &asn_OP_NativeInteger,
+       asn_DEF_NRPCI_tags_1,
+       sizeof(asn_DEF_NRPCI_tags_1)
+               /sizeof(asn_DEF_NRPCI_tags_1[0]), /* 1 */
+       asn_DEF_NRPCI_tags_1,   /* Same as above */
+       sizeof(asn_DEF_NRPCI_tags_1)
+               /sizeof(asn_DEF_NRPCI_tags_1[0]), /* 1 */
+       { &asn_OER_type_NRPCI_constr_1, &asn_PER_type_NRPCI_constr_1, NRPCI_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/NRS-NSSS-PowerOffset.c b/e2ap/lib/NRS-NSSS-PowerOffset.c
new file mode 100644 (file)
index 0000000..0439c0c
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "NRS-NSSS-PowerOffset.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_NRS_NSSS_PowerOffset_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_NRS_NSSS_PowerOffset_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_NRS_NSSS_PowerOffset_value2enum_1[] = {
+       { 0,    10,     "minusThree" },
+       { 1,    4,      "zero" },
+       { 2,    5,      "three" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_NRS_NSSS_PowerOffset_enum2value_1[] = {
+       0,      /* minusThree(0) */
+       2,      /* three(2) */
+       1       /* zero(1) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_NRS_NSSS_PowerOffset_specs_1 = {
+       asn_MAP_NRS_NSSS_PowerOffset_value2enum_1,      /* "tag" => N; sorted by tag */
+       asn_MAP_NRS_NSSS_PowerOffset_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_NRS_NSSS_PowerOffset_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NRS_NSSS_PowerOffset = {
+       "NRS-NSSS-PowerOffset",
+       "NRS-NSSS-PowerOffset",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_NRS_NSSS_PowerOffset_tags_1,
+       sizeof(asn_DEF_NRS_NSSS_PowerOffset_tags_1)
+               /sizeof(asn_DEF_NRS_NSSS_PowerOffset_tags_1[0]), /* 1 */
+       asn_DEF_NRS_NSSS_PowerOffset_tags_1,    /* Same as above */
+       sizeof(asn_DEF_NRS_NSSS_PowerOffset_tags_1)
+               /sizeof(asn_DEF_NRS_NSSS_PowerOffset_tags_1[0]), /* 1 */
+       { &asn_OER_type_NRS_NSSS_PowerOffset_constr_1, &asn_PER_type_NRS_NSSS_PowerOffset_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_NRS_NSSS_PowerOffset_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/NRSCS.c b/e2ap/lib/NRSCS.c
new file mode 100644 (file)
index 0000000..c93eea2
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "NRSCS.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_NRSCS_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_NRSCS_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_NRSCS_value2enum_1[] = {
+       { 0,    5,      "scs15" },
+       { 1,    5,      "scs30" },
+       { 2,    5,      "scs60" },
+       { 3,    6,      "scs120" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_NRSCS_enum2value_1[] = {
+       3,      /* scs120(3) */
+       0,      /* scs15(0) */
+       1,      /* scs30(1) */
+       2       /* scs60(2) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_NRSCS_specs_1 = {
+       asn_MAP_NRSCS_value2enum_1,     /* "tag" => N; sorted by tag */
+       asn_MAP_NRSCS_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_NRSCS_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NRSCS = {
+       "NRSCS",
+       "NRSCS",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_NRSCS_tags_1,
+       sizeof(asn_DEF_NRSCS_tags_1)
+               /sizeof(asn_DEF_NRSCS_tags_1[0]), /* 1 */
+       asn_DEF_NRSCS_tags_1,   /* Same as above */
+       sizeof(asn_DEF_NRSCS_tags_1)
+               /sizeof(asn_DEF_NRSCS_tags_1[0]), /* 1 */
+       { &asn_OER_type_NRSCS_constr_1, &asn_PER_type_NRSCS_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_NRSCS_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/NRUESecurityCapabilities.c b/e2ap/lib/NRUESecurityCapabilities.c
new file mode 100644 (file)
index 0000000..bc14e68
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "NRUESecurityCapabilities.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_NRUESecurityCapabilities_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct NRUESecurityCapabilities, nRencryptionAlgorithms),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRencryptionAlgorithms,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nRencryptionAlgorithms"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct NRUESecurityCapabilities, nRintegrityProtectionAlgorithms),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRintegrityProtectionAlgorithms,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nRintegrityProtectionAlgorithms"
+               },
+       { ATF_POINTER, 1, offsetof(struct NRUESecurityCapabilities, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P176,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_NRUESecurityCapabilities_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_NRUESecurityCapabilities_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_NRUESecurityCapabilities_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRencryptionAlgorithms */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRintegrityProtectionAlgorithms */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_NRUESecurityCapabilities_specs_1 = {
+       sizeof(struct NRUESecurityCapabilities),
+       offsetof(struct NRUESecurityCapabilities, _asn_ctx),
+       asn_MAP_NRUESecurityCapabilities_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_NRUESecurityCapabilities_oms_1, /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_NRUESecurityCapabilities = {
+       "NRUESecurityCapabilities",
+       "NRUESecurityCapabilities",
+       &asn_OP_SEQUENCE,
+       asn_DEF_NRUESecurityCapabilities_tags_1,
+       sizeof(asn_DEF_NRUESecurityCapabilities_tags_1)
+               /sizeof(asn_DEF_NRUESecurityCapabilities_tags_1[0]), /* 1 */
+       asn_DEF_NRUESecurityCapabilities_tags_1,        /* Same as above */
+       sizeof(asn_DEF_NRUESecurityCapabilities_tags_1)
+               /sizeof(asn_DEF_NRUESecurityCapabilities_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_NRUESecurityCapabilities_1,
+       3,      /* Elements count */
+       &asn_SPC_NRUESecurityCapabilities_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/NRencryptionAlgorithms.c b/e2ap/lib/NRencryptionAlgorithms.c
new file mode 100644 (file)
index 0000000..8757321
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "NRencryptionAlgorithms.h"
+
+int
+NRencryptionAlgorithms_constraint(const 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 == 16)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_NRencryptionAlgorithms_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+asn_per_constraints_t asn_PER_type_NRencryptionAlgorithms_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  16,  16 }  /* (SIZE(16..16,...)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_NRencryptionAlgorithms_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NRencryptionAlgorithms = {
+       "NRencryptionAlgorithms",
+       "NRencryptionAlgorithms",
+       &asn_OP_BIT_STRING,
+       asn_DEF_NRencryptionAlgorithms_tags_1,
+       sizeof(asn_DEF_NRencryptionAlgorithms_tags_1)
+               /sizeof(asn_DEF_NRencryptionAlgorithms_tags_1[0]), /* 1 */
+       asn_DEF_NRencryptionAlgorithms_tags_1,  /* Same as above */
+       sizeof(asn_DEF_NRencryptionAlgorithms_tags_1)
+               /sizeof(asn_DEF_NRencryptionAlgorithms_tags_1[0]), /* 1 */
+       { &asn_OER_type_NRencryptionAlgorithms_constr_1, &asn_PER_type_NRencryptionAlgorithms_constr_1, NRencryptionAlgorithms_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/NRintegrityProtectionAlgorithms.c b/e2ap/lib/NRintegrityProtectionAlgorithms.c
new file mode 100644 (file)
index 0000000..1215d61
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "NRintegrityProtectionAlgorithms.h"
+
+int
+NRintegrityProtectionAlgorithms_constraint(const 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 == 16)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_NRintegrityProtectionAlgorithms_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+asn_per_constraints_t asn_PER_type_NRintegrityProtectionAlgorithms_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  16,  16 }  /* (SIZE(16..16,...)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_NRintegrityProtectionAlgorithms_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NRintegrityProtectionAlgorithms = {
+       "NRintegrityProtectionAlgorithms",
+       "NRintegrityProtectionAlgorithms",
+       &asn_OP_BIT_STRING,
+       asn_DEF_NRintegrityProtectionAlgorithms_tags_1,
+       sizeof(asn_DEF_NRintegrityProtectionAlgorithms_tags_1)
+               /sizeof(asn_DEF_NRintegrityProtectionAlgorithms_tags_1[0]), /* 1 */
+       asn_DEF_NRintegrityProtectionAlgorithms_tags_1, /* Same as above */
+       sizeof(asn_DEF_NRintegrityProtectionAlgorithms_tags_1)
+               /sizeof(asn_DEF_NRintegrityProtectionAlgorithms_tags_1[0]), /* 1 */
+       { &asn_OER_type_NRintegrityProtectionAlgorithms_constr_1, &asn_PER_type_NRintegrityProtectionAlgorithms_constr_1, NRintegrityProtectionAlgorithms_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/NRrestrictionin5GS.c b/e2ap/lib/NRrestrictionin5GS.c
new file mode 100644 (file)
index 0000000..49d253a
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "NRrestrictionin5GS.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_NRrestrictionin5GS_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_NRrestrictionin5GS_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_NRrestrictionin5GS_value2enum_1[] = {
+       { 0,    17,     "nRrestrictedin5GS" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_NRrestrictionin5GS_enum2value_1[] = {
+       0       /* nRrestrictedin5GS(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_NRrestrictionin5GS_specs_1 = {
+       asn_MAP_NRrestrictionin5GS_value2enum_1,        /* "tag" => N; sorted by tag */
+       asn_MAP_NRrestrictionin5GS_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_NRrestrictionin5GS_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NRrestrictionin5GS = {
+       "NRrestrictionin5GS",
+       "NRrestrictionin5GS",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_NRrestrictionin5GS_tags_1,
+       sizeof(asn_DEF_NRrestrictionin5GS_tags_1)
+               /sizeof(asn_DEF_NRrestrictionin5GS_tags_1[0]), /* 1 */
+       asn_DEF_NRrestrictionin5GS_tags_1,      /* Same as above */
+       sizeof(asn_DEF_NRrestrictionin5GS_tags_1)
+               /sizeof(asn_DEF_NRrestrictionin5GS_tags_1[0]), /* 1 */
+       { &asn_OER_type_NRrestrictionin5GS_constr_1, &asn_PER_type_NRrestrictionin5GS_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_NRrestrictionin5GS_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/NRrestrictioninEPSasSecondaryRAT.c b/e2ap/lib/NRrestrictioninEPSasSecondaryRAT.c
new file mode 100644 (file)
index 0000000..83bf846
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "NRrestrictioninEPSasSecondaryRAT.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_NRrestrictioninEPSasSecondaryRAT_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_NRrestrictioninEPSasSecondaryRAT_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_NRrestrictioninEPSasSecondaryRAT_value2enum_1[] = {
+       { 0,    31,     "nRrestrictedinEPSasSecondaryRAT" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_NRrestrictioninEPSasSecondaryRAT_enum2value_1[] = {
+       0       /* nRrestrictedinEPSasSecondaryRAT(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_NRrestrictioninEPSasSecondaryRAT_specs_1 = {
+       asn_MAP_NRrestrictioninEPSasSecondaryRAT_value2enum_1,  /* "tag" => N; sorted by tag */
+       asn_MAP_NRrestrictioninEPSasSecondaryRAT_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_NRrestrictioninEPSasSecondaryRAT_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NRrestrictioninEPSasSecondaryRAT = {
+       "NRrestrictioninEPSasSecondaryRAT",
+       "NRrestrictioninEPSasSecondaryRAT",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_NRrestrictioninEPSasSecondaryRAT_tags_1,
+       sizeof(asn_DEF_NRrestrictioninEPSasSecondaryRAT_tags_1)
+               /sizeof(asn_DEF_NRrestrictioninEPSasSecondaryRAT_tags_1[0]), /* 1 */
+       asn_DEF_NRrestrictioninEPSasSecondaryRAT_tags_1,        /* Same as above */
+       sizeof(asn_DEF_NRrestrictioninEPSasSecondaryRAT_tags_1)
+               /sizeof(asn_DEF_NRrestrictioninEPSasSecondaryRAT_tags_1[0]), /* 1 */
+       { &asn_OER_type_NRrestrictioninEPSasSecondaryRAT_constr_1, &asn_PER_type_NRrestrictioninEPSasSecondaryRAT_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_NRrestrictioninEPSasSecondaryRAT_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/NSSS-NumOccasionDifferentPrecoder.c b/e2ap/lib/NSSS-NumOccasionDifferentPrecoder.c
new file mode 100644 (file)
index 0000000..b750c65
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "NSSS-NumOccasionDifferentPrecoder.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_NSSS_NumOccasionDifferentPrecoder_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_NSSS_NumOccasionDifferentPrecoder_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_NSSS_NumOccasionDifferentPrecoder_value2enum_1[] = {
+       { 0,    3,      "two" },
+       { 1,    4,      "four" },
+       { 2,    5,      "eight" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_NSSS_NumOccasionDifferentPrecoder_enum2value_1[] = {
+       2,      /* eight(2) */
+       1,      /* four(1) */
+       0       /* two(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_NSSS_NumOccasionDifferentPrecoder_specs_1 = {
+       asn_MAP_NSSS_NumOccasionDifferentPrecoder_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_NSSS_NumOccasionDifferentPrecoder_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_NSSS_NumOccasionDifferentPrecoder_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NSSS_NumOccasionDifferentPrecoder = {
+       "NSSS-NumOccasionDifferentPrecoder",
+       "NSSS-NumOccasionDifferentPrecoder",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_NSSS_NumOccasionDifferentPrecoder_tags_1,
+       sizeof(asn_DEF_NSSS_NumOccasionDifferentPrecoder_tags_1)
+               /sizeof(asn_DEF_NSSS_NumOccasionDifferentPrecoder_tags_1[0]), /* 1 */
+       asn_DEF_NSSS_NumOccasionDifferentPrecoder_tags_1,       /* Same as above */
+       sizeof(asn_DEF_NSSS_NumOccasionDifferentPrecoder_tags_1)
+               /sizeof(asn_DEF_NSSS_NumOccasionDifferentPrecoder_tags_1[0]), /* 1 */
+       { &asn_OER_type_NSSS_NumOccasionDifferentPrecoder_constr_1, &asn_PER_type_NSSS_NumOccasionDifferentPrecoder_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_NSSS_NumOccasionDifferentPrecoder_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/NULL.c b/e2ap/lib/NULL.c
new file mode 100644 (file)
index 0000000..4a2914f
--- /dev/null
@@ -0,0 +1,299 @@
+/*-
+ * Copyright (c) 2003, 2005 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <asn_codecs_prim.h>
+#include <NULL.h>
+#include <BOOLEAN.h>   /* Implemented in terms of BOOLEAN type */
+
+/*
+ * NULL basic type description.
+ */
+static const ber_tlv_tag_t asn_DEF_NULL_tags[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (5 << 2))
+};
+asn_TYPE_operation_t asn_OP_NULL = {
+       BOOLEAN_free,
+       NULL_print,
+       NULL_compare,
+       BOOLEAN_decode_ber,     /* Implemented in terms of BOOLEAN */
+       NULL_encode_der,        /* Special handling of DER encoding */
+       NULL_decode_xer,
+       NULL_encode_xer,
+#ifdef ASN_DISABLE_OER_SUPPORT
+       0,
+       0,
+#else
+       NULL_decode_oer,
+       NULL_encode_oer,
+#endif  /* ASN_DISABLE_OER_SUPPORT */
+#ifdef ASN_DISABLE_PER_SUPPORT
+       0,
+       0,
+       0,
+       0,
+#else
+       NULL_decode_uper,       /* Unaligned PER decoder */
+       NULL_encode_uper,       /* Unaligned PER encoder */
+       NULL_decode_aper,       /* Aligned PER decoder */
+       NULL_encode_aper,       /* Aligned PER encoder */
+#endif /* ASN_DISABLE_PER_SUPPORT */
+       NULL_random_fill,
+       0       /* Use generic outmost tag fetcher */
+};
+asn_TYPE_descriptor_t asn_DEF_NULL = {
+       "NULL",
+       "NULL",
+       &asn_OP_NULL,
+       asn_DEF_NULL_tags,
+       sizeof(asn_DEF_NULL_tags) / sizeof(asn_DEF_NULL_tags[0]),
+       asn_DEF_NULL_tags,      /* Same as above */
+       sizeof(asn_DEF_NULL_tags) / sizeof(asn_DEF_NULL_tags[0]),
+       { 0, 0, asn_generic_no_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
+asn_enc_rval_t
+NULL_encode_der(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode,
+                ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) {
+       asn_enc_rval_t erval = {0,0,0};
+
+       erval.encoded = der_write_tags(td, 0, tag_mode, 0, tag, cb, app_key);
+       if(erval.encoded == -1) {
+               erval.failed_type = td;
+               erval.structure_ptr = ptr;
+       }
+
+       ASN__ENCODED_OK(erval);
+}
+
+asn_enc_rval_t
+NULL_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
+                enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb,
+                void *app_key) {
+       asn_enc_rval_t er = {0,0,0};
+
+       (void)td;
+       (void)sptr;
+       (void)ilevel;
+       (void)flags;
+       (void)cb;
+       (void)app_key;
+
+       /* XMLNullValue is empty */
+       er.encoded = 0;
+       ASN__ENCODED_OK(er);
+}
+
+
+static enum xer_pbd_rval
+NULL__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr,
+                      const void *chunk_buf, size_t chunk_size) {
+    (void)td;
+       (void)sptr;
+       (void)chunk_buf;    /* Going to be empty according to the rules below. */
+
+       /*
+        * There must be no content in self-terminating <NULL/> tag.
+        */
+       if(chunk_size)
+               return XPBD_BROKEN_ENCODING;
+       else
+               return XPBD_BODY_CONSUMED;
+}
+
+asn_dec_rval_t
+NULL_decode_xer(const asn_codec_ctx_t *opt_codec_ctx,
+                const asn_TYPE_descriptor_t *td, void **sptr,
+                const char *opt_mname, const void *buf_ptr, size_t size) {
+    return xer_decode_primitive(opt_codec_ctx, td,
+               sptr, sizeof(NULL_t), opt_mname, buf_ptr, size,
+               NULL__xer_body_decode);
+}
+
+int
+NULL_compare(const asn_TYPE_descriptor_t *td, const void *a, const void *b) {
+    (void)td;
+    (void)a;
+    (void)b;
+    return 0;
+}
+
+int
+NULL_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
+           asn_app_consume_bytes_f *cb, void *app_key) {
+    (void)td;  /* Unused argument */
+       (void)ilevel;   /* Unused argument */
+
+       if(sptr) {
+               return (cb("<present>", 9, app_key) < 0) ? -1 : 0;
+       } else {
+               return (cb("<absent>", 8, app_key) < 0) ? -1 : 0;
+       }
+}
+
+#ifndef ASN_DISABLE_OER_SUPPORT
+
+asn_dec_rval_t
+NULL_decode_oer(const asn_codec_ctx_t *opt_codec_ctx,
+                const asn_TYPE_descriptor_t *td,
+                const asn_oer_constraints_t *constraints, void **sptr,
+                const void *ptr, size_t size) {
+    asn_dec_rval_t rv = {RC_OK, 0};
+    (void)opt_codec_ctx;
+    (void)td;
+    (void)constraints;
+    (void)ptr;
+    (void)size;
+
+    if(!*sptr) {
+        *sptr = MALLOC(sizeof(NULL_t));
+        if(*sptr) {
+            *(NULL_t *)*sptr = 0;
+        } else {
+            ASN__DECODE_FAILED;
+        }
+    }
+
+    return rv;
+}
+
+asn_enc_rval_t
+NULL_encode_oer(const asn_TYPE_descriptor_t *td,
+                const asn_oer_constraints_t *constraints, const void *sptr,
+                asn_app_consume_bytes_f *cb, void *app_key) {
+    asn_enc_rval_t er = {0,0,0};
+
+    (void)td;
+    (void)sptr;
+    (void)constraints;
+    (void)cb;
+    (void)app_key;
+
+    er.encoded = 0; /* Encoding in 0 bytes. */
+
+    ASN__ENCODED_OK(er);
+}
+
+#endif /* ASN_DISABLE_OER_SUPPORT */
+
+#ifndef ASN_DISABLE_PER_SUPPORT
+
+asn_dec_rval_t
+NULL_decode_uper(const asn_codec_ctx_t *opt_codec_ctx,
+                 const asn_TYPE_descriptor_t *td,
+                 const asn_per_constraints_t *constraints, void **sptr,
+                 asn_per_data_t *pd) {
+    asn_dec_rval_t rv;
+
+       (void)opt_codec_ctx;
+       (void)td;
+       (void)constraints;
+       (void)pd;
+
+       if(!*sptr) {
+               *sptr = MALLOC(sizeof(NULL_t));
+               if(*sptr) {
+                       *(NULL_t *)*sptr = 0;
+               } else {
+                       ASN__DECODE_FAILED;
+               }
+       }
+
+       /*
+        * NULL type does not have content octets.
+        */
+
+       rv.code = RC_OK;
+       rv.consumed = 0;
+       return rv;
+}
+
+asn_enc_rval_t
+NULL_encode_uper(const asn_TYPE_descriptor_t *td,
+                 const asn_per_constraints_t *constraints, const void *sptr,
+                 asn_per_outp_t *po) {
+       asn_enc_rval_t er = {0,0,0};
+
+       (void)td;
+       (void)constraints;
+       (void)sptr;
+       (void)po;
+
+       er.encoded = 0;
+       ASN__ENCODED_OK(er);
+}
+
+asn_dec_rval_t
+NULL_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
+                 const asn_TYPE_descriptor_t *td,
+                 const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) {
+       asn_dec_rval_t rv = {RC_OK, 0};
+
+       (void)opt_codec_ctx;
+       (void)td;
+       (void)constraints;
+       (void)pd;
+
+       if(!*sptr) {
+               *sptr = MALLOC(sizeof(NULL_t));
+               if(*sptr) {
+                       *(NULL_t *)*sptr = 0;
+               } else {
+                       ASN__DECODE_FAILED;
+               }
+       }
+
+       /*
+        * NULL type does not have content octets.
+        */
+
+       rv.code = RC_OK;
+       rv.consumed = 0;
+       return rv;
+}
+
+
+asn_enc_rval_t
+NULL_encode_aper(const asn_TYPE_descriptor_t *td,
+                 const asn_per_constraints_t *constraints,
+                 const void *sptr, asn_per_outp_t *po) {
+       asn_enc_rval_t er = {0,0,0};
+
+       (void)td;
+       (void)constraints;
+       (void)sptr;
+       (void)po;
+
+       er.encoded = 0;
+       ASN__ENCODED_OK(er);
+}
+
+#endif  /* ASN_DISABLE_PER_SUPPORT */
+
+asn_random_fill_result_t
+NULL_random_fill(const asn_TYPE_descriptor_t *td, void **sptr,
+                    const asn_encoding_constraints_t *constr,
+                    size_t max_length) {
+    asn_random_fill_result_t result_ok = {ARFILL_OK, 1};
+    asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0};
+    asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0};
+    NULL_t *st = *sptr;
+
+    (void)td;
+    (void)constr;
+
+    if(max_length == 0) return result_skipped;
+
+    if(st == NULL) {
+        st = (NULL_t *)(*sptr = CALLOC(1, sizeof(*st)));
+        if(st == NULL) {
+            return result_failed;
+        }
+    }
+
+    return result_ok;
+}
+
diff --git a/e2ap/lib/NativeEnumerated.c b/e2ap/lib/NativeEnumerated.c
new file mode 100644 (file)
index 0000000..800da97
--- /dev/null
@@ -0,0 +1,367 @@
+/*-
+ * Copyright (c) 2004, 2007 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+/*
+ * Read the NativeInteger.h for the explanation wrt. differences between
+ * INTEGER and NativeInteger.
+ * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this
+ * implementation deals with the standard (machine-specific) representation
+ * of them instead of using the platform-independent buffer.
+ */
+#include <asn_internal.h>
+#include <NativeEnumerated.h>
+
+/*
+ * NativeEnumerated basic type description.
+ */
+static const ber_tlv_tag_t asn_DEF_NativeEnumerated_tags[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_operation_t asn_OP_NativeEnumerated = {
+       NativeInteger_free,
+       NativeInteger_print,
+       NativeInteger_compare,
+       NativeInteger_decode_ber,
+       NativeInteger_encode_der,
+       NativeInteger_decode_xer,
+       NativeEnumerated_encode_xer,
+#ifdef ASN_DISABLE_OER_SUPPORT
+       0,
+       0,
+#else
+       NativeEnumerated_decode_oer,
+       NativeEnumerated_encode_oer,
+#endif  /* ASN_DISABLE_OER_SUPPORT */
+#ifdef ASN_DISABLE_PER_SUPPORT
+       0,
+       0,
+       0,
+       0,
+#else
+       NativeEnumerated_decode_uper,
+       NativeEnumerated_encode_uper,
+       NativeEnumerated_decode_aper,
+       NativeEnumerated_encode_aper,
+#endif /* ASN_DISABLE_PER_SUPPORT */
+       NativeEnumerated_random_fill,
+       0       /* Use generic outmost tag fetcher */
+};
+asn_TYPE_descriptor_t asn_DEF_NativeEnumerated = {
+       "ENUMERATED",                   /* The ASN.1 type is still ENUMERATED */
+       "ENUMERATED",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_NativeEnumerated_tags,
+       sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]),
+       asn_DEF_NativeEnumerated_tags,  /* Same as above */
+       sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]),
+       { 0, 0, asn_generic_no_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
+asn_enc_rval_t
+NativeEnumerated_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr,
+                            int ilevel, enum xer_encoder_flags_e flags,
+                            asn_app_consume_bytes_f *cb, void *app_key) {
+    const asn_INTEGER_specifics_t *specs =
+        (const asn_INTEGER_specifics_t *)td->specifics;
+    asn_enc_rval_t er = {0,0,0};
+    const long *native = (const long *)sptr;
+    const asn_INTEGER_enum_map_t *el;
+
+    (void)ilevel;
+    (void)flags;
+
+    if(!native) ASN__ENCODE_FAILED;
+
+    el = INTEGER_map_value2enum(specs, *native);
+    if(el) {
+        er.encoded =
+            asn__format_to_callback(cb, app_key, "<%s/>", el->enum_name);
+        if(er.encoded < 0) ASN__ENCODE_FAILED;
+        ASN__ENCODED_OK(er);
+    } else {
+        ASN_DEBUG(
+            "ASN.1 forbids dealing with "
+            "unknown value of ENUMERATED type");
+        ASN__ENCODE_FAILED;
+    }
+}
+
+asn_dec_rval_t
+NativeEnumerated_decode_uper(const asn_codec_ctx_t *opt_codec_ctx,
+                             const asn_TYPE_descriptor_t *td,
+                             const asn_per_constraints_t *constraints,
+                             void **sptr, asn_per_data_t *pd) {
+    const asn_INTEGER_specifics_t *specs = td->specifics;
+    asn_dec_rval_t rval = { RC_OK, 0 };
+       long *native = (long *)*sptr;
+       const asn_per_constraint_t *ct;
+       long value;
+
+       (void)opt_codec_ctx;
+
+       if(constraints) ct = &constraints->value;
+       else if(td->encoding_constraints.per_constraints)
+               ct = &td->encoding_constraints.per_constraints->value;
+       else ASN__DECODE_FAILED;        /* Mandatory! */
+       if(!specs) ASN__DECODE_FAILED;
+
+       if(!native) {
+               native = (long *)(*sptr = CALLOC(1, sizeof(*native)));
+               if(!native) ASN__DECODE_FAILED;
+       }
+
+       ASN_DEBUG("Decoding %s as NativeEnumerated", td->name);
+
+       if(ct->flags & APC_EXTENSIBLE) {
+               int inext = per_get_few_bits(pd, 1);
+               if(inext < 0) ASN__DECODE_STARVED;
+               if(inext) ct = 0;
+       }
+
+       if(ct && ct->range_bits >= 0) {
+               value = per_get_few_bits(pd, ct->range_bits);
+               if(value < 0) ASN__DECODE_STARVED;
+               if(value >= (specs->extension
+                       ? specs->extension - 1 : specs->map_count))
+                       ASN__DECODE_FAILED;
+       } else {
+               if(!specs->extension)
+                       ASN__DECODE_FAILED;
+               /*
+                * X.691, #10.6: normally small non-negative whole number;
+                */
+               value = uper_get_nsnnwn(pd);
+               if(value < 0) ASN__DECODE_STARVED;
+               value += specs->extension - 1;
+               if(value >= specs->map_count)
+                       ASN__DECODE_FAILED;
+       }
+
+       *native = specs->value2enum[value].nat_value;
+       ASN_DEBUG("Decoded %s = %ld", td->name, *native);
+
+       return rval;
+}
+
+static int
+NativeEnumerated__compar_value2enum(const void *ap, const void *bp) {
+       const asn_INTEGER_enum_map_t *a = ap;
+       const asn_INTEGER_enum_map_t *b = bp;
+       if(a->nat_value == b->nat_value)
+               return 0;
+       if(a->nat_value < b->nat_value)
+               return -1;
+       return 1;
+}
+
+asn_enc_rval_t
+NativeEnumerated_encode_uper(const asn_TYPE_descriptor_t *td,
+                             const asn_per_constraints_t *constraints,
+                             const void *sptr, asn_per_outp_t *po) {
+       const asn_INTEGER_specifics_t *specs =
+        (const asn_INTEGER_specifics_t *)td->specifics;
+       asn_enc_rval_t er = {0,0,0};
+       long native, value;
+       const asn_per_constraint_t *ct;
+       int inext = 0;
+       asn_INTEGER_enum_map_t key;
+       const asn_INTEGER_enum_map_t *kf;
+
+       if(!sptr) ASN__ENCODE_FAILED;
+       if(!specs) ASN__ENCODE_FAILED;
+
+       if(constraints) ct = &constraints->value;
+       else if(td->encoding_constraints.per_constraints)
+               ct = &td->encoding_constraints.per_constraints->value;
+       else ASN__ENCODE_FAILED;        /* Mandatory! */
+
+       ASN_DEBUG("Encoding %s as NativeEnumerated", td->name);
+
+       er.encoded = 0;
+
+       native = *(const long *)sptr;
+
+       key.nat_value = native;
+       kf = bsearch(&key, specs->value2enum, specs->map_count,
+               sizeof(key), NativeEnumerated__compar_value2enum);
+       if(!kf) {
+               ASN_DEBUG("No element corresponds to %ld", native);
+               ASN__ENCODE_FAILED;
+       }
+       value = kf - specs->value2enum;
+
+       if(ct->range_bits >= 0) {
+               int cmpWith = specs->extension
+                               ? specs->extension - 1 : specs->map_count;
+               if(value >= cmpWith)
+                       inext = 1;
+       }
+       if(ct->flags & APC_EXTENSIBLE) {
+               if(per_put_few_bits(po, inext, 1))
+                       ASN__ENCODE_FAILED;
+               if(inext) ct = 0;
+       } else if(inext) {
+               ASN__ENCODE_FAILED;
+       }
+
+       if(ct && ct->range_bits >= 0) {
+               if(per_put_few_bits(po, value, ct->range_bits))
+                       ASN__ENCODE_FAILED;
+               ASN__ENCODED_OK(er);
+       }
+
+       if(!specs->extension)
+               ASN__ENCODE_FAILED;
+
+       /*
+        * X.691, #10.6: normally small non-negative whole number;
+        */
+       ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld",
+               value, specs->extension, inext,
+               value - (inext ? (specs->extension - 1) : 0));
+       if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0)))
+               ASN__ENCODE_FAILED;
+
+       ASN__ENCODED_OK(er);
+}
+
+asn_dec_rval_t
+NativeEnumerated_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
+                             const asn_TYPE_descriptor_t *td,
+                             const asn_per_constraints_t *constraints,
+                             void **sptr, asn_per_data_t *pd) {
+       const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics;
+       asn_dec_rval_t rval = { RC_OK, 0 };
+       long *native = (long *)*sptr;
+       const asn_per_constraint_t *ct;
+       long value;
+
+       (void)opt_codec_ctx;
+
+       if(constraints) ct = &constraints->value;
+       else if(td->encoding_constraints.per_constraints)
+               ct = &td->encoding_constraints.per_constraints->value;
+       else ASN__DECODE_FAILED;        /* Mandatory! */
+       if(!specs) ASN__DECODE_FAILED;
+
+       if(!native) {
+               native = (long *)(*sptr = CALLOC(1, sizeof(*native)));
+               if(!native) ASN__DECODE_FAILED;
+       }
+
+       ASN_DEBUG("Decoding %s as NativeEnumerated", td->name);
+
+       if(ct->flags & APC_EXTENSIBLE) {
+               int inext = per_get_few_bits(pd, 1);
+               if(inext < 0) ASN__DECODE_STARVED;
+               if(inext) ct = 0;
+       }
+
+       /* Deal with APER padding */
+       if(ct && ct->upper_bound >= 255) {
+               int padding = 0;
+               padding = (8 - (pd->moved % 8)) % 8;
+               ASN_DEBUG("For NativeEnumerated %s,offset= %lu Padding bits = %d", td->name, pd->moved, padding);
+               ASN_DEBUG("For NativeEnumerated %s, upper bound = %lu", td->name, ct->upper_bound);
+               if(padding > 0)
+                       per_get_few_bits(pd, padding);
+       }
+
+       if(ct && ct->range_bits >= 0) {
+               value = per_get_few_bits(pd, ct->range_bits);
+               if(value < 0) ASN__DECODE_STARVED;
+               if(value >= (specs->extension
+                            ? specs->extension - 1 : specs->map_count))
+                       ASN__DECODE_FAILED;
+       } else {
+               if(!specs->extension)
+                       ASN__DECODE_FAILED;
+               /*
+                * X.691, #10.6: normally small non-negative whole number;
+                */
+               value = uper_get_nsnnwn(pd);
+               if(value < 0) ASN__DECODE_STARVED;
+               value += specs->extension - 1;
+               if(value >= specs->map_count)
+                       ASN__DECODE_FAILED;
+       }
+
+       *native = specs->value2enum[value].nat_value;
+       ASN_DEBUG("Decoded %s = %ld", td->name, *native);
+
+       return rval;
+}
+
+asn_enc_rval_t
+NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td,
+                             const asn_per_constraints_t *constraints,
+                             const void *sptr, asn_per_outp_t *po) {
+       const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics;
+       asn_enc_rval_t er = {0,0,0};
+       long native, value;
+       const asn_per_constraint_t *ct;
+       int inext = 0;
+       asn_INTEGER_enum_map_t key;
+       asn_INTEGER_enum_map_t *kf;
+
+       if(!sptr) ASN__ENCODE_FAILED;
+       if(!specs) ASN__ENCODE_FAILED;
+
+       if(constraints) ct = &constraints->value;
+       else if(td->encoding_constraints.per_constraints)
+               ct = &td->encoding_constraints.per_constraints->value;
+       else ASN__ENCODE_FAILED;        /* Mandatory! */
+
+       ASN_DEBUG("Encoding %s as NativeEnumerated", td->name);
+
+       er.encoded = 0;
+
+       native = *(const long *)sptr;
+       if(native < 0) ASN__ENCODE_FAILED;
+
+       key.nat_value = native;
+       kf = bsearch(&key, specs->value2enum, specs->map_count,
+                    sizeof(key), NativeEnumerated__compar_value2enum);
+       if(!kf) {
+               ASN_DEBUG("No element corresponds to %ld", native);
+               ASN__ENCODE_FAILED;
+       }
+       value = kf - specs->value2enum;
+
+       if(ct->range_bits >= 0) {
+               int cmpWith = specs->extension
+                             ? specs->extension - 1 : specs->map_count;
+               if(value >= cmpWith)
+                       inext = 1;
+       }
+       if(ct->flags & APC_EXTENSIBLE) {
+               if(per_put_few_bits(po, inext, 1))
+                       ASN__ENCODE_FAILED;
+               if(inext) ct = 0;
+       } else if(inext) {
+               ASN__ENCODE_FAILED;
+       }
+
+       if(ct && ct->range_bits >= 0) {
+               if(per_put_few_bits(po, value, ct->range_bits))
+                       ASN__ENCODE_FAILED;
+               ASN__ENCODED_OK(er);
+       }
+
+       if(!specs->extension)
+               ASN__ENCODE_FAILED;
+
+       /*
+        * X.691, #10.6: normally small non-negative whole number;
+        */
+       ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld",
+                 value, specs->extension, inext,
+                 value - (inext ? (specs->extension - 1) : 0));
+       if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0)))
+               ASN__ENCODE_FAILED;
+
+       ASN__ENCODED_OK(er);
+}
diff --git a/e2ap/lib/NativeEnumerated_oer.c b/e2ap/lib/NativeEnumerated_oer.c
new file mode 100644 (file)
index 0000000..ee3c189
--- /dev/null
@@ -0,0 +1,149 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN_DISABLE_OER_SUPPORT
+
+#include <asn_internal.h>
+#include <NativeEnumerated.h>
+#include <errno.h>
+
+static long
+asn__nativeenumerated_convert(const uint8_t *b, const uint8_t *end) {
+    unsigned long value;
+
+    /* Perform the sign initialization */
+    /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */
+    if((*b >> 7)) {
+        value = (unsigned long)(-1);
+    } else {
+        value = 0;
+    }
+
+    /* Conversion engine */
+    for(; b < end; b++) {
+        value = (value << 8) | *b;
+    }
+
+    return value;
+}
+
+asn_dec_rval_t
+NativeEnumerated_decode_oer(const asn_codec_ctx_t *opt_codec_ctx,
+                            const asn_TYPE_descriptor_t *td,
+                            const asn_oer_constraints_t *constraints,
+                            void **nint_ptr, const void *ptr, size_t size) {
+    asn_dec_rval_t rval = {RC_OK, 0};
+    long *native = (long *)*nint_ptr;
+    const uint8_t *b = ptr;
+
+    (void)opt_codec_ctx;
+    (void)constraints;
+
+    if(size < 1) {
+        ASN__DECODE_STARVED;
+    }
+
+    if((*b & 0x80) == 0) {
+        /*
+         * X.696 (08/2015) #11.2 Short form for Enumerated.
+         */
+        if(!native) {
+            native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native)));
+            if(!native) ASN__DECODE_FAILED;
+        }
+
+        *native = *b;
+        rval.consumed = 1;
+    } else {
+        /*
+         * X.696 (08/2015) #11.4 Long form for Enumerated.
+         */
+        size_t length = *b & 0x7f;
+        const uint8_t *bend;
+        long value;
+
+        if(length < 1 || length > sizeof(*native)) {
+            ASN__DECODE_FAILED;
+        }
+        if((1 + length) > size) {
+            ASN__DECODE_STARVED;
+        }
+        b++;
+        bend = b + length;
+
+        value = asn__nativeenumerated_convert(b, bend);
+        if(value < 0) {
+            const asn_INTEGER_specifics_t *specs =
+                (const asn_INTEGER_specifics_t *)td->specifics;
+            if(specs && specs->field_unsigned) {
+                ASN__DECODE_FAILED;
+            }
+        }
+
+        if(!native) {
+            native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native)));
+            if(!native) ASN__DECODE_FAILED;
+        }
+
+        *native = value;
+
+        rval.consumed = (1 + length);
+    }
+
+    return rval;
+}
+
+/*
+ * Encode as Canonical OER.
+ */
+asn_enc_rval_t
+NativeEnumerated_encode_oer(const asn_TYPE_descriptor_t *td,
+                            const asn_oer_constraints_t *constraints,
+                            const void *sptr, asn_app_consume_bytes_f *cb,
+                            void *app_key) {
+    asn_enc_rval_t er = {0,0,0};
+    long native;
+
+    (void)constraints;
+
+    if(!sptr) ASN__ENCODE_FAILED;
+
+    native = *(const long *)sptr;
+
+    if(native >= 0 && native <= 127) {
+        /* #11.2 Short form */
+        uint8_t b = native;
+        er.encoded = 1;
+        if(cb(&b, er.encoded, app_key) < 0) {
+            ASN__ENCODE_FAILED;
+        }
+        ASN__ENCODED_OK(er);
+    } else {
+        /* #11.2 Long form */
+        uint8_t buf[1 + sizeof(native)];
+        uint8_t *b = &buf[sizeof(native)];  /* Last addressable */
+        long final_pattern = -1 * (native < 0);
+
+        for(;;) {
+            *b-- = native;
+            native >>= 8;
+            if(native == final_pattern) {
+                if(final_pattern) {
+                    if((b[1] & 0x80)) break;
+                } else {
+                    if(!(b[1] & 0x80)) break;
+                }
+            }
+        }
+        *b = 0x80 | (&buf[sizeof(native)] - b);
+        er.encoded = 1 + (&buf[sizeof(native)] - b);
+        if(cb(b, er.encoded, app_key) < 0) {
+            ASN__ENCODE_FAILED;
+        }
+        ASN__ENCODED_OK(er);
+    }
+}
+
+#endif  /* ASN_DISABLE_OER_SUPPORT */
diff --git a/e2ap/lib/NativeInteger.c b/e2ap/lib/NativeInteger.c
new file mode 100644 (file)
index 0000000..316e872
--- /dev/null
@@ -0,0 +1,550 @@
+/*-
+ * Copyright (c) 2004, 2005, 2006 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+/*
+ * Read the NativeInteger.h for the explanation wrt. differences between
+ * INTEGER and NativeInteger.
+ * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this
+ * implementation deals with the standard (machine-specific) representation
+ * of them instead of using the platform-independent buffer.
+ */
+#include <asn_internal.h>
+#include <NativeInteger.h>
+
+/*
+ * NativeInteger basic type description.
+ */
+static const ber_tlv_tag_t asn_DEF_NativeInteger_tags[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_operation_t asn_OP_NativeInteger = {
+       NativeInteger_free,
+       NativeInteger_print,
+       NativeInteger_compare,
+       NativeInteger_decode_ber,
+       NativeInteger_encode_der,
+       NativeInteger_decode_xer,
+       NativeInteger_encode_xer,
+#ifdef ASN_DISABLE_OER_SUPPORT
+       0,
+       0,
+#else
+       NativeInteger_decode_oer,       /* OER decoder */
+       NativeInteger_encode_oer,       /* Canonical OER encoder */
+#endif  /* ASN_DISABLE_OER_SUPPORT */
+#ifdef ASN_DISABLE_PER_SUPPORT
+       0,
+       0,
+       0,
+       0,
+#else
+       NativeInteger_decode_uper,      /* Unaligned PER decoder */
+       NativeInteger_encode_uper,      /* Unaligned PER encoder */
+       NativeInteger_decode_aper,      /* Aligned PER decoder */
+       NativeInteger_encode_aper,      /* Aligned PER encoder */
+#endif /* ASN_DISABLE_PER_SUPPORT */
+       NativeInteger_random_fill,
+       0       /* Use generic outmost tag fetcher */
+};
+asn_TYPE_descriptor_t asn_DEF_NativeInteger = {
+       "INTEGER",                      /* The ASN.1 type is still INTEGER */
+       "INTEGER",
+       &asn_OP_NativeInteger,
+       asn_DEF_NativeInteger_tags,
+       sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]),
+       asn_DEF_NativeInteger_tags,     /* Same as above */
+       sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]),
+       { 0, 0, asn_generic_no_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
+/*
+ * Decode INTEGER type.
+ */
+asn_dec_rval_t
+NativeInteger_decode_ber(const asn_codec_ctx_t *opt_codec_ctx,
+                         const asn_TYPE_descriptor_t *td, void **nint_ptr,
+                         const void *buf_ptr, size_t size, int tag_mode) {
+    const asn_INTEGER_specifics_t *specs =
+        (const asn_INTEGER_specifics_t *)td->specifics;
+    long *native = (long *)*nint_ptr;
+       asn_dec_rval_t rval;
+       ber_tlv_len_t length;
+
+       /*
+        * If the structure is not there, allocate it.
+        */
+       if(native == NULL) {
+               native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native)));
+               if(native == NULL) {
+                       rval.code = RC_FAIL;
+                       rval.consumed = 0;
+                       return rval;
+               }
+       }
+
+       ASN_DEBUG("Decoding %s as INTEGER (tm=%d)",
+               td->name, tag_mode);
+
+       /*
+        * Check tags.
+        */
+       rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size,
+                       tag_mode, 0, &length, 0);
+       if(rval.code != RC_OK)
+               return rval;
+
+       ASN_DEBUG("%s length is %d bytes", td->name, (int)length);
+
+       /*
+        * Make sure we have this length.
+        */
+       buf_ptr = ((const char *)buf_ptr) + rval.consumed;
+       size -= rval.consumed;
+       if(length > (ber_tlv_len_t)size) {
+               rval.code = RC_WMORE;
+               rval.consumed = 0;
+               return rval;
+       }
+
+       /*
+        * ASN.1 encoded INTEGER: buf_ptr, length
+        * Fill the native, at the same time checking for overflow.
+        * If overflow occured, return with RC_FAIL.
+        */
+       {
+               INTEGER_t tmp;
+               union {
+                       const void *constbuf;
+                       void *nonconstbuf;
+               } unconst_buf;
+               long l;
+
+               unconst_buf.constbuf = buf_ptr;
+               tmp.buf = (uint8_t *)unconst_buf.nonconstbuf;
+               tmp.size = length;
+
+               if((specs&&specs->field_unsigned)
+                       ? asn_INTEGER2ulong(&tmp, (unsigned long *)&l) /* sic */
+                       : asn_INTEGER2long(&tmp, &l)) {
+                       rval.code = RC_FAIL;
+                       rval.consumed = 0;
+                       return rval;
+               }
+
+               *native = l;
+       }
+
+       rval.code = RC_OK;
+       rval.consumed += length;
+
+       ASN_DEBUG("Took %ld/%ld bytes to encode %s (%ld)",
+               (long)rval.consumed, (long)length, td->name, (long)*native);
+
+       return rval;
+}
+
+/*
+ * Encode the NativeInteger using the standard INTEGER type DER encoder.
+ */
+asn_enc_rval_t
+NativeInteger_encode_der(const asn_TYPE_descriptor_t *sd, const void *ptr,
+                         int tag_mode, ber_tlv_tag_t tag,
+                         asn_app_consume_bytes_f *cb, void *app_key) {
+       unsigned long native = *(const unsigned long *)ptr; /* Disable sign ext. */
+       asn_enc_rval_t erval = {0,0,0};
+       INTEGER_t tmp;
+
+#ifdef WORDS_BIGENDIAN         /* Opportunistic optimization */
+
+       tmp.buf = (uint8_t *)&native;
+       tmp.size = sizeof(native);
+
+#else  /* Works even if WORDS_BIGENDIAN is not set where should've been */
+       uint8_t buf[sizeof(native)];
+       uint8_t *p;
+
+       /* Prepare a fake INTEGER */
+       for(p = buf + sizeof(buf) - 1; p >= buf; p--, native >>= 8)
+               *p = (uint8_t)native;
+
+       tmp.buf = buf;
+       tmp.size = sizeof(buf);
+#endif /* WORDS_BIGENDIAN */
+       
+       /* Encode fake INTEGER */
+       erval = INTEGER_encode_der(sd, &tmp, tag_mode, tag, cb, app_key);
+    if(erval.structure_ptr == &tmp) {
+        erval.structure_ptr = ptr;
+    }
+       return erval;
+}
+
+/*
+ * Decode the chunk of XML text encoding INTEGER.
+ */
+asn_dec_rval_t
+NativeInteger_decode_xer(const asn_codec_ctx_t *opt_codec_ctx,
+                         const asn_TYPE_descriptor_t *td, void **sptr,
+                         const char *opt_mname, const void *buf_ptr,
+                         size_t size) {
+    const asn_INTEGER_specifics_t *specs =
+        (const asn_INTEGER_specifics_t *)td->specifics;
+    asn_dec_rval_t rval;
+       INTEGER_t st;
+       void *st_ptr = (void *)&st;
+       long *native = (long *)*sptr;
+
+       if(!native) {
+               native = (long *)(*sptr = CALLOC(1, sizeof(*native)));
+               if(!native) ASN__DECODE_FAILED;
+       }
+
+       memset(&st, 0, sizeof(st));
+       rval = INTEGER_decode_xer(opt_codec_ctx, td, &st_ptr, 
+               opt_mname, buf_ptr, size);
+       if(rval.code == RC_OK) {
+               long l;
+               if((specs&&specs->field_unsigned)
+                       ? asn_INTEGER2ulong(&st, (unsigned long *)&l) /* sic */
+                       : asn_INTEGER2long(&st, &l)) {
+                       rval.code = RC_FAIL;
+                       rval.consumed = 0;
+               } else {
+                       *native = l;
+               }
+       } else {
+               /*
+                * Cannot restart from the middle;
+                * there is no place to save state in the native type.
+                * Request a continuation from the very beginning.
+                */
+               rval.consumed = 0;
+       }
+       ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &st);
+       return rval;
+}
+
+
+asn_enc_rval_t
+NativeInteger_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr,
+                         int ilevel, enum xer_encoder_flags_e flags,
+                         asn_app_consume_bytes_f *cb, void *app_key) {
+    const asn_INTEGER_specifics_t *specs =
+        (const asn_INTEGER_specifics_t *)td->specifics;
+    char scratch[32];  /* Enough for 64-bit int */
+       asn_enc_rval_t er = {0,0,0};
+       const long *native = (const long *)sptr;
+
+       (void)ilevel;
+       (void)flags;
+
+       if(!native) ASN__ENCODE_FAILED;
+
+       er.encoded = snprintf(scratch, sizeof(scratch),
+                       (specs && specs->field_unsigned)
+                       ? "%lu" : "%ld", *native);
+       if(er.encoded <= 0 || (size_t)er.encoded >= sizeof(scratch)
+               || cb(scratch, er.encoded, app_key) < 0)
+               ASN__ENCODE_FAILED;
+
+       ASN__ENCODED_OK(er);
+}
+
+#ifndef  ASN_DISABLE_PER_SUPPORT
+
+asn_dec_rval_t
+NativeInteger_decode_uper(const asn_codec_ctx_t *opt_codec_ctx,
+                          const asn_TYPE_descriptor_t *td,
+                          const asn_per_constraints_t *constraints, void **sptr,
+                          asn_per_data_t *pd) {
+    const asn_INTEGER_specifics_t *specs =
+        (const asn_INTEGER_specifics_t *)td->specifics;
+    asn_dec_rval_t rval;
+       long *native = (long *)*sptr;
+       INTEGER_t tmpint;
+       void *tmpintptr = &tmpint;
+
+       (void)opt_codec_ctx;
+       ASN_DEBUG("Decoding NativeInteger %s (UPER)", td->name);
+
+       if(!native) {
+               native = (long *)(*sptr = CALLOC(1, sizeof(*native)));
+               if(!native) ASN__DECODE_FAILED;
+       }
+
+       memset(&tmpint, 0, sizeof tmpint);
+       rval = INTEGER_decode_uper(opt_codec_ctx, td, constraints,
+                                  &tmpintptr, pd);
+       if(rval.code == RC_OK) {
+               if((specs&&specs->field_unsigned)
+                       ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native)
+                       : asn_INTEGER2long(&tmpint, native))
+                       rval.code = RC_FAIL;
+               else
+                       ASN_DEBUG("NativeInteger %s got value %ld",
+                               td->name, *native);
+       }
+       ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint);
+
+       return rval;
+}
+
+asn_enc_rval_t
+NativeInteger_encode_uper(const asn_TYPE_descriptor_t *td,
+                          const asn_per_constraints_t *constraints,
+                          const void *sptr, asn_per_outp_t *po) {
+    const asn_INTEGER_specifics_t *specs =
+        (const asn_INTEGER_specifics_t *)td->specifics;
+    asn_enc_rval_t er = {0,0,0};
+       long native;
+       INTEGER_t tmpint;
+
+       if(!sptr) ASN__ENCODE_FAILED;
+
+    native = *(const long *)sptr;
+
+    ASN_DEBUG("Encoding NativeInteger %s %ld (UPER)", td->name, native);
+
+       memset(&tmpint, 0, sizeof(tmpint));
+       if((specs&&specs->field_unsigned)
+               ? asn_ulong2INTEGER(&tmpint, native)
+               : asn_long2INTEGER(&tmpint, native))
+               ASN__ENCODE_FAILED;
+       er = INTEGER_encode_uper(td, constraints, &tmpint, po);
+       ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint);
+       return er;
+}
+
+asn_dec_rval_t
+NativeInteger_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
+                          const asn_TYPE_descriptor_t *td,
+                          const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) {
+
+       const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics;
+       asn_dec_rval_t rval;
+       long *native = (long *)*sptr;
+       INTEGER_t tmpint;
+       void *tmpintptr = &tmpint;
+
+       (void)opt_codec_ctx;
+       ASN_DEBUG("Decoding NativeInteger %s (APER)", td->name);
+
+       if(!native) {
+               native = (long *)(*sptr = CALLOC(1, sizeof(*native)));
+               if(!native) ASN__DECODE_FAILED;
+       }
+
+       memset(&tmpint, 0, sizeof tmpint);
+       rval = INTEGER_decode_aper(opt_codec_ctx, td, constraints,
+                                  &tmpintptr, pd);
+       if(rval.code == RC_OK) {
+               if((specs&&specs->field_unsigned)
+                       ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native)
+                       : asn_INTEGER2long(&tmpint, native))
+                       rval.code = RC_FAIL;
+               else
+                       ASN_DEBUG("NativeInteger %s got value %ld",
+                                 td->name, *native);
+       }
+       ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint);
+
+       return rval;
+}
+
+asn_enc_rval_t
+NativeInteger_encode_aper(const asn_TYPE_descriptor_t *td,
+                          const asn_per_constraints_t *constraints,
+                          const void *sptr, asn_per_outp_t *po) {
+
+       const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics;
+       asn_enc_rval_t er = {0,0,0};
+       long native;
+       INTEGER_t tmpint;
+
+       if(!sptr) ASN__ENCODE_FAILED;
+
+       native = *(const long *)sptr;
+
+       ASN_DEBUG("Encoding NativeInteger %s %ld (APER)", td->name, native);
+
+       memset(&tmpint, 0, sizeof(tmpint));
+       if((specs&&specs->field_unsigned)
+               ? asn_ulong2INTEGER(&tmpint, (unsigned long)native)
+               : asn_long2INTEGER(&tmpint, native))
+               ASN__ENCODE_FAILED;
+       er = INTEGER_encode_aper(td, constraints, &tmpint, po);
+       ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint);
+       return er;
+}
+
+#endif  /* ASN_DISABLE_PER_SUPPORT */
+
+/*
+ * INTEGER specific human-readable output.
+ */
+int
+NativeInteger_print(const asn_TYPE_descriptor_t *td, const void *sptr,
+                    int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+    const asn_INTEGER_specifics_t *specs =
+        (const asn_INTEGER_specifics_t *)td->specifics;
+    const long *native = (const long *)sptr;
+    char scratch[32]; /* Enough for 64-bit int */
+    int ret;
+
+    (void)td;       /* Unused argument */
+    (void)ilevel;   /* Unused argument */
+
+    if(native) {
+        long value = *native;
+        ret = snprintf(scratch, sizeof(scratch),
+                       (specs && specs->field_unsigned) ? "%lu" : "%ld", value);
+        assert(ret > 0 && (size_t)ret < sizeof(scratch));
+        if(cb(scratch, ret, app_key) < 0) return -1;
+        if(specs && (value >= 0 || !specs->field_unsigned)) {
+            const asn_INTEGER_enum_map_t *el =
+                INTEGER_map_value2enum(specs, value);
+            if(el) {
+                if(cb(" (", 2, app_key) < 0) return -1;
+                if(cb(el->enum_name, el->enum_len, app_key) < 0) return -1;
+                if(cb(")", 1, app_key) < 0) return -1;
+            }
+        }
+        return 0;
+       } else {
+               return (cb("<absent>", 8, app_key) < 0) ? -1 : 0;
+       }
+}
+
+void
+NativeInteger_free(const asn_TYPE_descriptor_t *td, void *ptr,
+                   enum asn_struct_free_method method) {
+    if(!td || !ptr)
+               return;
+
+       ASN_DEBUG("Freeing %s as INTEGER (%d, %p, Native)",
+               td->name, method, ptr);
+
+    switch(method) {
+    case ASFM_FREE_EVERYTHING:
+        FREEMEM(ptr);
+        break;
+    case ASFM_FREE_UNDERLYING:
+        break;
+    case ASFM_FREE_UNDERLYING_AND_RESET:
+        memset(ptr, 0, sizeof(long));
+        break;
+    }
+}
+
+int
+NativeInteger_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) {
+    (void)td;
+
+    if(aptr && bptr) {
+        const asn_INTEGER_specifics_t *specs =
+            (const asn_INTEGER_specifics_t *)td->specifics;
+        if(specs && specs->field_unsigned) {
+            const unsigned long *a = aptr;
+            const unsigned long *b = bptr;
+            if(*a < *b) {
+                return -1;
+            } else if(*a > *b) {
+                return 1;
+            } else {
+                return 0;
+            }
+        } else {
+            const long *a = aptr;
+            const long *b = bptr;
+            if(*a < *b) {
+                return -1;
+            } else if(*a > *b) {
+                return 1;
+            } else {
+                return 0;
+            }
+        }
+    } else if(!aptr) {
+        return -1;
+    } else {
+        return 1;
+    }
+}
+
+asn_random_fill_result_t
+NativeInteger_random_fill(const asn_TYPE_descriptor_t *td, void **sptr,
+                          const asn_encoding_constraints_t *constraints,
+                          size_t max_length) {
+    const asn_INTEGER_specifics_t *specs =
+        (const asn_INTEGER_specifics_t *)td->specifics;
+    asn_random_fill_result_t result_ok = {ARFILL_OK, 1};
+    asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0};
+    asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0};
+    long *st = *sptr;
+    const asn_INTEGER_enum_map_t *emap;
+    size_t emap_len;
+    intmax_t value;
+    int find_inside_map;
+
+    if(max_length == 0) return result_skipped;
+
+    if(st == NULL) {
+        st = (long *)CALLOC(1, sizeof(*st));
+        if(st == NULL) {
+            return result_failed;
+        }
+    }
+
+    if(specs) {
+        emap = specs->value2enum;
+        emap_len = specs->map_count;
+        if(specs->strict_enumeration) {
+            find_inside_map = emap_len > 0;
+        } else {
+            find_inside_map = emap_len ? asn_random_between(0, 1) : 0;
+        }
+    } else {
+        emap = 0;
+        emap_len = 0;
+        find_inside_map = 0;
+    }
+
+    if(find_inside_map) {
+        assert(emap_len > 0);
+        value = emap[asn_random_between(0, emap_len - 1)].nat_value;
+    } else {
+        const asn_per_constraints_t *ct;
+
+        static const long variants[] = {
+            -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384,
+            -16383, -257,   -256,   -255,   -254,   -129,   -128,   -127,
+            -126,   -1,     0,      1,      126,    127,    128,    129,
+            254,    255,    256,    257,    16383,  16384,  16385,  32767,
+            32768,  32769,  65534,  65535,  65536,  65537};
+        if(specs && specs->field_unsigned) {
+            assert(variants[18] == 0);
+            value = variants[asn_random_between(
+                18, sizeof(variants) / sizeof(variants[0]) - 1)];
+        } else {
+            value = variants[asn_random_between(
+                0, sizeof(variants) / sizeof(variants[0]) - 1)];
+        }
+
+        if(!constraints) constraints = &td->encoding_constraints;
+        ct = constraints ? constraints->per_constraints : 0;
+        if(ct && (ct->value.flags & APC_CONSTRAINED)) {
+            if(value < ct->value.lower_bound || value > ct->value.upper_bound) {
+                value = asn_random_between(ct->value.lower_bound,
+                                           ct->value.upper_bound);
+            }
+        }
+    }
+
+    *sptr = st;
+    *st = value;
+    return result_ok;
+}
diff --git a/e2ap/lib/NativeInteger_oer.c b/e2ap/lib/NativeInteger_oer.c
new file mode 100644 (file)
index 0000000..411413a
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN_DISABLE_OER_SUPPORT
+
+#include <asn_internal.h>
+#include <NativeInteger.h>
+#include <errno.h>
+
+asn_dec_rval_t
+NativeInteger_decode_oer(const asn_codec_ctx_t *opt_codec_ctx,
+                         const asn_TYPE_descriptor_t *td,
+                         const asn_oer_constraints_t *constraints,
+                         void **nint_ptr, const void *ptr, size_t size) {
+    const asn_INTEGER_specifics_t *specs =
+        (const asn_INTEGER_specifics_t *)td->specifics;
+    asn_dec_rval_t rval = {RC_OK, 0};
+    long *native = (long *)*nint_ptr;
+    INTEGER_t tmpint;
+    INTEGER_t *tmpintptr = &tmpint;
+
+    memset(&tmpint, 0, sizeof(tmpint));
+
+    if(!native) {
+        native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native)));
+        if(!native) ASN__DECODE_FAILED;
+    }
+
+    /*
+     * OPTIMIZATION: Encode directly rather than passing through INTEGER.
+     * Saves a memory allocation.
+     */
+    rval = INTEGER_decode_oer(opt_codec_ctx, td, constraints,
+                              (void **)&tmpintptr, ptr, size);
+    if(rval.code != RC_OK) {
+        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint);
+        return rval;
+    }
+
+    if(specs && specs->field_unsigned) {
+        unsigned long ul;
+        int ok = asn_INTEGER2ulong(&tmpint, &ul) == 0;
+        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint);
+        if(ok) {
+            *native = ul;
+        } else {
+            rval.code = RC_FAIL;
+            return rval;
+        }
+    } else {
+        long l;
+        int ok = asn_INTEGER2long(&tmpint, &l) == 0;
+        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint);
+        if(ok) {
+            *native = l;
+        } else {
+            rval.code = RC_FAIL;
+            return rval;
+        }
+    }
+
+    return rval;
+}
+
+/*
+ * Encode as Canonical OER.
+ */
+asn_enc_rval_t
+NativeInteger_encode_oer(const asn_TYPE_descriptor_t *td,
+                         const asn_oer_constraints_t *constraints,
+                         const void *sptr, asn_app_consume_bytes_f *cb,
+                         void *app_key) {
+    const asn_INTEGER_specifics_t *specs =
+        (const asn_INTEGER_specifics_t *)td->specifics;
+    INTEGER_t tmpint;
+    long native;
+
+    if(!sptr) ASN__ENCODE_FAILED;
+
+    native = *(const long *)sptr;
+    memset(&tmpint, 0, sizeof(tmpint));
+
+    ASN_DEBUG("Encoding %s %ld as NativeInteger", td ? td->name : "", native);
+
+    if((specs && specs->field_unsigned) ? asn_ulong2INTEGER(&tmpint, native)
+                                        : asn_long2INTEGER(&tmpint, native)) {
+        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint);
+        ASN__ENCODE_FAILED;
+    } else {
+        asn_enc_rval_t er =
+            INTEGER_encode_oer(td, constraints, &tmpint, cb, app_key);
+        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint);
+        return er;
+    }
+}
+
+#endif  /* ASN_DISABLE_OER_SUPPORT */
diff --git a/e2ap/lib/Neighbour-Information.c b/e2ap/lib/Neighbour-Information.c
new file mode 100644 (file)
index 0000000..b094b9b
--- /dev/null
@@ -0,0 +1,127 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Neighbour-Information.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_oer_constraints_t asn_OER_type_Neighbour_Information_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..512)) */};
+asn_per_constraints_t asn_PER_type_Neighbour_Information_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       10,  10,  0,  512 }    /* (SIZE(0..512)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct Neighbour_Information__Member, eCGI),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "eCGI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct Neighbour_Information__Member, pCI),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PCI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pCI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct Neighbour_Information__Member, eARFCN),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EARFCN,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "eARFCN"
+               },
+       { ATF_POINTER, 1, offsetof(struct Neighbour_Information__Member, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P172,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_Member_oms_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 }, /* eCGI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pCI */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* eARFCN */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+       sizeof(struct Neighbour_Information__Member),
+       offsetof(struct Neighbour_Information__Member, _asn_ctx),
+       asn_MAP_Member_tag2el_2,
+       4,      /* Count of tags in the map */
+       asn_MAP_Member_oms_2,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+       "SEQUENCE",
+       "SEQUENCE",
+       &asn_OP_SEQUENCE,
+       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, 0, SEQUENCE_constraint },
+       asn_MBR_Member_2,
+       4,      /* Elements count */
+       &asn_SPC_Member_specs_2 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_Neighbour_Information_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Member_2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_Neighbour_Information_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_Neighbour_Information_specs_1 = {
+       sizeof(struct Neighbour_Information),
+       offsetof(struct Neighbour_Information, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_Neighbour_Information = {
+       "Neighbour-Information",
+       "Neighbour-Information",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_Neighbour_Information_tags_1,
+       sizeof(asn_DEF_Neighbour_Information_tags_1)
+               /sizeof(asn_DEF_Neighbour_Information_tags_1[0]), /* 1 */
+       asn_DEF_Neighbour_Information_tags_1,   /* Same as above */
+       sizeof(asn_DEF_Neighbour_Information_tags_1)
+               /sizeof(asn_DEF_Neighbour_Information_tags_1[0]), /* 1 */
+       { &asn_OER_type_Neighbour_Information_constr_1, &asn_PER_type_Neighbour_Information_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_Neighbour_Information_1,
+       1,      /* Single element */
+       &asn_SPC_Neighbour_Information_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/NewDRBIDrequest.c b/e2ap/lib/NewDRBIDrequest.c
new file mode 100644 (file)
index 0000000..3b29cdf
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "NewDRBIDrequest.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_NewDRBIDrequest_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_NewDRBIDrequest_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_NewDRBIDrequest_value2enum_1[] = {
+       { 0,    4,      "true" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_NewDRBIDrequest_enum2value_1[] = {
+       0       /* true(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_NewDRBIDrequest_specs_1 = {
+       asn_MAP_NewDRBIDrequest_value2enum_1,   /* "tag" => N; sorted by tag */
+       asn_MAP_NewDRBIDrequest_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_NewDRBIDrequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NewDRBIDrequest = {
+       "NewDRBIDrequest",
+       "NewDRBIDrequest",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_NewDRBIDrequest_tags_1,
+       sizeof(asn_DEF_NewDRBIDrequest_tags_1)
+               /sizeof(asn_DEF_NewDRBIDrequest_tags_1[0]), /* 1 */
+       asn_DEF_NewDRBIDrequest_tags_1, /* Same as above */
+       sizeof(asn_DEF_NewDRBIDrequest_tags_1)
+               /sizeof(asn_DEF_NewDRBIDrequest_tags_1[0]), /* 1 */
+       { &asn_OER_type_NewDRBIDrequest_constr_1, &asn_PER_type_NewDRBIDrequest_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_NewDRBIDrequest_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/NextHopChainingCount.c b/e2ap/lib/NextHopChainingCount.c
new file mode 100644 (file)
index 0000000..a59ed14
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "NextHopChainingCount.h"
+
+int
+NextHopChainingCount_constraint(const 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 >= 0 && value <= 7)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_NextHopChainingCount_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..7) */,
+       -1};
+asn_per_constraints_t asn_PER_type_NextHopChainingCount_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       3,  3,  0,  7 }        /* (0..7) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_NextHopChainingCount_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NextHopChainingCount = {
+       "NextHopChainingCount",
+       "NextHopChainingCount",
+       &asn_OP_NativeInteger,
+       asn_DEF_NextHopChainingCount_tags_1,
+       sizeof(asn_DEF_NextHopChainingCount_tags_1)
+               /sizeof(asn_DEF_NextHopChainingCount_tags_1[0]), /* 1 */
+       asn_DEF_NextHopChainingCount_tags_1,    /* Same as above */
+       sizeof(asn_DEF_NextHopChainingCount_tags_1)
+               /sizeof(asn_DEF_NextHopChainingCount_tags_1[0]), /* 1 */
+       { &asn_OER_type_NextHopChainingCount_constr_1, &asn_PER_type_NextHopChainingCount_constr_1, NextHopChainingCount_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/Number-of-Antennaports.c b/e2ap/lib/Number-of-Antennaports.c
new file mode 100644 (file)
index 0000000..028efa2
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Number-of-Antennaports.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_Number_of_Antennaports_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_Number_of_Antennaports_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_Number_of_Antennaports_value2enum_1[] = {
+       { 0,    3,      "an1" },
+       { 1,    3,      "an2" },
+       { 2,    3,      "an4" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_Number_of_Antennaports_enum2value_1[] = {
+       0,      /* an1(0) */
+       1,      /* an2(1) */
+       2       /* an4(2) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_Number_of_Antennaports_specs_1 = {
+       asn_MAP_Number_of_Antennaports_value2enum_1,    /* "tag" => N; sorted by tag */
+       asn_MAP_Number_of_Antennaports_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_Number_of_Antennaports_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Number_of_Antennaports = {
+       "Number-of-Antennaports",
+       "Number-of-Antennaports",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_Number_of_Antennaports_tags_1,
+       sizeof(asn_DEF_Number_of_Antennaports_tags_1)
+               /sizeof(asn_DEF_Number_of_Antennaports_tags_1[0]), /* 1 */
+       asn_DEF_Number_of_Antennaports_tags_1,  /* Same as above */
+       sizeof(asn_DEF_Number_of_Antennaports_tags_1)
+               /sizeof(asn_DEF_Number_of_Antennaports_tags_1[0]), /* 1 */
+       { &asn_OER_type_Number_of_Antennaports_constr_1, &asn_PER_type_Number_of_Antennaports_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_Number_of_Antennaports_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/OBJECT_IDENTIFIER.c b/e2ap/lib/OBJECT_IDENTIFIER.c
new file mode 100644 (file)
index 0000000..8dccf01
--- /dev/null
@@ -0,0 +1,656 @@
+/*-
+ * Copyright (c) 2003, 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <INTEGER.h>
+#include <OBJECT_IDENTIFIER.h>
+#include <OCTET_STRING.h>
+#include <limits.h>    /* for CHAR_BIT */
+#include <errno.h>
+
+/*
+ * OBJECT IDENTIFIER basic type description.
+ */
+static const ber_tlv_tag_t asn_DEF_OBJECT_IDENTIFIER_tags[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (6 << 2))
+};
+asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER = {
+       ASN__PRIMITIVE_TYPE_free,
+       OBJECT_IDENTIFIER_print,
+       OCTET_STRING_compare,   /* Implemented in terms of a string comparison */
+       ber_decode_primitive,
+       der_encode_primitive,
+       OBJECT_IDENTIFIER_decode_xer,
+       OBJECT_IDENTIFIER_encode_xer,
+#ifdef ASN_DISABLE_OER_SUPPORT
+       0,
+       0,
+#else
+       OBJECT_IDENTIFIER_decode_oer,
+       OBJECT_IDENTIFIER_encode_oer,
+#endif  /* ASN_DISABLE_OER_SUPPORT */
+#ifdef ASN_DISABLE_PER_SUPPORT
+       0,
+       0,
+       0,
+       0,
+#else
+       OCTET_STRING_decode_uper,
+       OCTET_STRING_encode_uper,
+       OCTET_STRING_decode_aper,
+       OCTET_STRING_encode_aper,
+#endif /* ASN_DISABLE_PER_SUPPORT */
+       OBJECT_IDENTIFIER_random_fill,
+       0       /* Use generic outmost tag fetcher */
+};
+asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER = {
+       "OBJECT IDENTIFIER",
+       "OBJECT_IDENTIFIER",
+       &asn_OP_OBJECT_IDENTIFIER,
+       asn_DEF_OBJECT_IDENTIFIER_tags,
+       sizeof(asn_DEF_OBJECT_IDENTIFIER_tags)
+           / sizeof(asn_DEF_OBJECT_IDENTIFIER_tags[0]),
+       asn_DEF_OBJECT_IDENTIFIER_tags, /* Same as above */
+       sizeof(asn_DEF_OBJECT_IDENTIFIER_tags)
+           / sizeof(asn_DEF_OBJECT_IDENTIFIER_tags[0]),
+       { 0, 0, OBJECT_IDENTIFIER_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
+int
+OBJECT_IDENTIFIER_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+                             asn_app_constraint_failed_f *ctfailcb,
+                             void *app_key) {
+    const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr;
+
+       if(st && st->buf) {
+               if(st->size < 1) {
+                       ASN__CTFAIL(app_key, td, sptr,
+                               "%s: at least one numerical value "
+                               "expected (%s:%d)",
+                               td->name, __FILE__, __LINE__);
+                       return -1;
+               }
+       } else {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: value not given (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+
+       return 0;
+}
+
+static ssize_t
+OBJECT_IDENTIFIER_get_first_arcs(const uint8_t *arcbuf, size_t arcbuf_len,
+                                 asn_oid_arc_t *arc0, asn_oid_arc_t *arc1) {
+    asn_oid_arc_t value;
+
+    ssize_t rd = OBJECT_IDENTIFIER_get_single_arc(arcbuf, arcbuf_len, &value);
+    if(rd <= 0) return rd;
+
+    if(value >= 80) {
+        *arc0 = 2;
+        *arc1 = value - 80;
+    } else if(value >= 40) {
+        *arc0 = 1;
+        *arc1 = value - 40;
+    } else {
+        *arc0 = 0;
+        *arc1 = value;
+    }
+
+    return rd;
+}
+
+ssize_t
+OBJECT_IDENTIFIER_get_single_arc(const uint8_t *arcbuf, size_t arcbuf_len,
+                                 asn_oid_arc_t *ret_value) {
+    const uint8_t *b = arcbuf;
+    const uint8_t *arcend = arcbuf + arcbuf_len; /* End of arc */
+
+    if(arcbuf == arcend) {
+        return 0;
+    } else {
+        asn_oid_arc_t accum;
+       asn_oid_arc_t upper_limit = (ASN_OID_ARC_MAX >> 7);
+       /* When the value reaches "upper_limit", it can take */
+       /* at most one more digit. If it exceeds "upper_limit" */
+       /* but there are more digits - it's an Overflow condition */
+        /* Gather all bits into the accumulator */
+        for(accum = 0; b < arcend; b++) {
+            accum = (accum << 7) | (*b & ~0x80);
+            if((*b & 0x80) == 0) { // no more digits
+                if(accum <= ASN_OID_ARC_MAX) {
+                    *ret_value = accum;
+                    return 1 + (b - arcbuf);
+                } else {
+                    errno = ERANGE; /* Overflow */
+                    return -1;
+                }
+            } else { // to make sure we aren't wrapping around
+             if(accum > upper_limit) {
+                   errno = ERANGE; /* Overflow */
+                   return -1;
+             }
+           }
+        }
+        errno = EINVAL;
+        return -1;
+    }
+
+}
+
+static ssize_t
+OBJECT_IDENTIFIER__dump_body(const OBJECT_IDENTIFIER_t *st,
+                             asn_app_consume_bytes_f *cb, void *app_key) {
+    char scratch[32];
+    asn_oid_arc_t arc0, arc1;
+    size_t produced = 0;
+    size_t off = 0;
+    ssize_t rd;
+    int ret;
+
+    rd = OBJECT_IDENTIFIER_get_first_arcs(st->buf, st->size, &arc0, &arc1);
+    if(rd <= 0) {
+        return -1;
+    }
+
+    ret = snprintf(scratch, sizeof(scratch), "%"PRIu32".%"PRIu32, arc0, arc1);
+    if(ret >= (ssize_t)sizeof(scratch)) {
+        return -1;
+    }
+    produced += ret;
+    if(cb(scratch, ret, app_key) < 0)
+        return -1;
+
+    for(off = rd; ; ) {
+        asn_oid_arc_t arc;
+        rd = OBJECT_IDENTIFIER_get_single_arc(st->buf + off, st->size - off,
+                                              &arc);
+        if(rd < 0) {
+            return -1;
+        } else if(rd == 0) {
+            /* No more arcs. */
+            break;
+        } else {
+            off += rd;
+            assert(off <= st->size);
+            ret = snprintf(scratch, sizeof(scratch), ".%" PRIu32, arc);
+            if(ret >= (ssize_t)sizeof(scratch)) {
+                return -1;
+            }
+            produced += ret;
+            if(cb(scratch, ret, app_key) < 0) return -1;
+        }
+    }
+
+    if(off != st->size) {
+        ASN_DEBUG("Could not scan to the end of Object Identifier");
+        return -1;
+    }
+
+       return produced;
+}
+
+static enum xer_pbd_rval
+OBJECT_IDENTIFIER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr,
+                                   const void *chunk_buf, size_t chunk_size) {
+    OBJECT_IDENTIFIER_t *st = (OBJECT_IDENTIFIER_t *)sptr;
+       const char *chunk_end = (const char *)chunk_buf + chunk_size;
+       const char *endptr;
+       asn_oid_arc_t s_arcs[10];
+       asn_oid_arc_t *arcs = s_arcs;
+       ssize_t num_arcs;
+       ssize_t ret;
+
+       (void)td;
+
+    num_arcs = OBJECT_IDENTIFIER_parse_arcs(
+        (const char *)chunk_buf, chunk_size, arcs,
+        sizeof(s_arcs) / sizeof(s_arcs[0]), &endptr);
+    if(num_arcs < 0) {
+               /* Expecting more than zero arcs */
+               return XPBD_BROKEN_ENCODING;
+       } else if(num_arcs == 0) {
+               return XPBD_NOT_BODY_IGNORE;
+       }
+       assert(endptr == chunk_end);
+
+       if((size_t)num_arcs > sizeof(s_arcs)/sizeof(s_arcs[0])) {
+               arcs = (asn_oid_arc_t *)MALLOC(num_arcs * sizeof(asn_oid_arc_t));
+               if(!arcs) return XPBD_SYSTEM_FAILURE;
+        ret = OBJECT_IDENTIFIER_parse_arcs((const char *)chunk_buf, chunk_size,
+                                           arcs, num_arcs, &endptr);
+        if(ret != num_arcs)
+                       return XPBD_SYSTEM_FAILURE;     /* assert?.. */
+       }
+
+       /*
+        * Convert arcs into BER representation.
+        */
+       ret = OBJECT_IDENTIFIER_set_arcs(st, arcs, num_arcs);
+       if(arcs != s_arcs) FREEMEM(arcs);
+
+       return ret ? XPBD_SYSTEM_FAILURE : XPBD_BODY_CONSUMED;
+}
+
+asn_dec_rval_t
+OBJECT_IDENTIFIER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx,
+                             const asn_TYPE_descriptor_t *td, void **sptr,
+                             const char *opt_mname, const void *buf_ptr,
+                             size_t size) {
+    return xer_decode_primitive(opt_codec_ctx, td,
+               sptr, sizeof(OBJECT_IDENTIFIER_t), opt_mname,
+                       buf_ptr, size, OBJECT_IDENTIFIER__xer_body_decode);
+}
+
+asn_enc_rval_t
+OBJECT_IDENTIFIER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr,
+                             int ilevel, enum xer_encoder_flags_e flags,
+                             asn_app_consume_bytes_f *cb, void *app_key) {
+    const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr;
+    asn_enc_rval_t er = {0,0,0};
+
+    (void)ilevel;
+    (void)flags;
+
+    if(!st || !st->buf) {
+        ASN__ENCODE_FAILED;
+    }
+
+    er.encoded = OBJECT_IDENTIFIER__dump_body(st, cb, app_key);
+    if(er.encoded < 0) ASN__ENCODE_FAILED;
+
+    ASN__ENCODED_OK(er);
+}
+
+int
+OBJECT_IDENTIFIER_print(const asn_TYPE_descriptor_t *td, const void *sptr,
+                        int ilevel, asn_app_consume_bytes_f *cb,
+                        void *app_key) {
+    const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr;
+
+       (void)td;       /* Unused argument */
+       (void)ilevel;   /* Unused argument */
+
+       if(!st || !st->buf)
+               return (cb("<absent>", 8, app_key) < 0) ? -1 : 0;
+
+       /* Dump preamble */
+       if(cb("{ ", 2, app_key) < 0)
+               return -1;
+
+    if(OBJECT_IDENTIFIER__dump_body(st, cb, app_key) < 0) {
+        return -1;
+    }
+
+    return (cb(" }", 2, app_key) < 0) ? -1 : 0;
+}
+
+ssize_t
+OBJECT_IDENTIFIER_get_arcs(const OBJECT_IDENTIFIER_t *st, asn_oid_arc_t *arcs,
+                           size_t arc_slots) {
+    asn_oid_arc_t arc0, arc1;
+    size_t num_arcs = 0;
+    size_t off;
+    ssize_t rd;
+
+    if(!st || !st->buf) {
+        errno = EINVAL;
+        return -1;
+    }
+
+    rd = OBJECT_IDENTIFIER_get_first_arcs(st->buf, st->size, &arc0, &arc1);
+    if(rd <= 0) {
+        return -1;
+    }
+    num_arcs = 2;
+    switch(arc_slots) {
+    default:
+    case 2:
+        arcs[1] = arc1;
+        /* Fall through */
+    case 1:
+        arcs[0] = arc0;
+        /* Fall through */
+    case 0:
+        break;
+    }
+
+    for(off = rd; ; ) {
+        asn_oid_arc_t arc;
+        rd = OBJECT_IDENTIFIER_get_single_arc(st->buf + off, st->size - off,
+                                              &arc);
+        if(rd < 0) {
+            return -1;
+        } else if(rd == 0) {
+            /* No more arcs. */
+            break;
+        } else {
+            off += rd;
+            if(num_arcs < arc_slots) {
+                arcs[num_arcs] = arc;
+            }
+            num_arcs++;
+        }
+    }
+
+    if(off != st->size) {
+        return -1;
+    }
+
+    return num_arcs;
+}
+
+
+/*
+ * Save the single value as an object identifier arc.
+ */
+ssize_t
+OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, size_t arcbuf_len,
+                                 asn_oid_arc_t value) {
+    /*
+        * The following conditions must hold:
+        * assert(arcbuf);
+        */
+    uint8_t scratch[((sizeof(value) * CHAR_BIT + 6) / 7)];
+    uint8_t *scratch_end = &scratch[sizeof(scratch)-1];
+    uint8_t *b;
+    size_t result_len;
+    uint8_t mask;
+
+    for(b = scratch_end, mask = 0; ; mask = 0x80, b--) {
+        *b = mask | (value & 0x7f);
+        value >>= 7;
+        if(!value) {
+            break;
+        }
+    }
+
+    result_len = (scratch_end - b) + 1;
+
+    if(result_len > arcbuf_len) {
+        return -1;
+    }
+
+    memcpy(arcbuf, b, result_len);
+
+       return result_len;
+}
+
+int
+OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *st, const asn_oid_arc_t *arcs,
+                           size_t arc_slots) {
+    uint8_t *buf;
+    uint8_t *bp;
+    ssize_t wrote;
+    asn_oid_arc_t arc0;
+    asn_oid_arc_t arc1;
+    size_t size;
+    size_t i;
+
+    if(!st || !arcs || arc_slots < 2) {
+        errno = EINVAL;
+               return -1;
+       }
+
+    arc0 = arcs[0];
+    arc1 = arcs[1];
+
+       if(arc0 <= 1) {
+               if(arc1 >= 40) {
+                       /* 8.19.4: At most 39 subsequent values (including 0) */
+                       errno = ERANGE;
+                       return -1;
+               }
+    } else if(arc0 == 2) {
+        if(arc1 > ASN_OID_ARC_MAX - 80) {
+            errno = ERANGE;
+            return -1;
+        }
+    } else if(arc0 > 2) {
+        /* 8.19.4: Only three values are allocated from the root node */
+        errno = ERANGE;
+        return -1;
+    }
+
+    /*
+        * After above tests it is known that the value of arc0 is completely
+        * trustworthy (0..2). However, the arc1's value is still meaningless.
+        */
+
+    /*
+     * Roughly estimate the maximum size necessary to encode these arcs.
+     * This estimation implicitly takes in account the following facts,
+     * that cancel each other:
+     *         * the first two arcs are encoded in a single value.
+     *         * the first value may require more space (+1 byte)
+     *         * the value of the first arc which is in range (0..2)
+     */
+    size = ((sizeof(asn_oid_arc_t) * CHAR_BIT + 6) / 7) * arc_slots;
+    bp = buf = (uint8_t *)MALLOC(size + 1);
+    if(!buf) {
+        /* ENOMEM */
+        return -1;
+    }
+
+    wrote = OBJECT_IDENTIFIER_set_single_arc(bp, size, arc0 * 40 + arc1);
+    if(wrote <= 0) {
+        FREEMEM(buf);
+        return -1;
+    }
+    assert((size_t)wrote <= size);
+    bp += wrote;
+    size -= wrote;
+
+    for(i = 2; i < arc_slots; i++) {
+               wrote = OBJECT_IDENTIFIER_set_single_arc(bp, size, arcs[i]);
+        if(wrote <= 0) {
+            FREEMEM(buf);
+            return -1;
+        }
+        assert((size_t)wrote <= size);
+        bp += wrote;
+        size -= wrote;
+    }
+
+    /*
+        * Replace buffer.
+        */
+       st->size = bp - buf;
+       bp = st->buf;
+       st->buf = buf;
+       st->buf[st->size] = '\0';
+       if(bp) FREEMEM(bp);
+
+       return 0;
+}
+
+ssize_t
+OBJECT_IDENTIFIER_parse_arcs(const char *oid_text, ssize_t oid_txt_length,
+                             asn_oid_arc_t *arcs, size_t arcs_count,
+                             const char **opt_oid_text_end) {
+    size_t num_arcs = 0;
+    const char *oid_end;
+       enum {
+               ST_LEADSPACE,
+               ST_TAILSPACE,
+               ST_AFTERVALUE,  /* Next character ought to be '.' or a space */
+               ST_WAITDIGITS   /* Next character is expected to be a digit */
+       } state = ST_LEADSPACE;
+
+       if(!oid_text || oid_txt_length < -1 || (arcs_count && !arcs)) {
+               if(opt_oid_text_end) *opt_oid_text_end = oid_text;
+               errno = EINVAL;
+               return -1;
+       }
+
+       if(oid_txt_length == -1)
+               oid_txt_length = strlen(oid_text);
+
+#define _OID_CAPTURE_ARC(oid_text, oid_end)                       \
+    do {                                                          \
+        const char *endp = oid_end;                               \
+        unsigned long value;                                      \
+        switch(asn_strtoul_lim(oid_text, &endp, &value)) {        \
+        case ASN_STRTOX_EXTRA_DATA:                               \
+        case ASN_STRTOX_OK:                                       \
+            if(value <= ASN_OID_ARC_MAX) {                        \
+                if(num_arcs < arcs_count) arcs[num_arcs] = value; \
+                num_arcs++;                                       \
+                oid_text = endp - 1;                              \
+                break;                                            \
+            }                                                     \
+            /* Fall through */                                    \
+        case ASN_STRTOX_ERROR_RANGE:                              \
+            if(opt_oid_text_end) *opt_oid_text_end = oid_text;    \
+            errno = ERANGE;                                       \
+            return -1;                                            \
+        case ASN_STRTOX_ERROR_INVAL:                              \
+        case ASN_STRTOX_EXPECT_MORE:                              \
+            if(opt_oid_text_end) *opt_oid_text_end = oid_text;    \
+            errno = EINVAL;                                       \
+            return -1;                                            \
+        }                                                         \
+    } while(0)
+
+    for(oid_end = oid_text + oid_txt_length; oid_text<oid_end; oid_text++) {
+           switch(*oid_text) {
+           case 0x09: case 0x0a: case 0x0d: case 0x20: /* whitespace */
+               switch(state) {
+               case ST_LEADSPACE:
+               case ST_TAILSPACE:
+                       continue;
+               case ST_AFTERVALUE:
+                       state = ST_TAILSPACE;
+                       continue;
+               case ST_WAITDIGITS:
+                       break;  /* Digits expected after ".", got whitespace */
+               }
+               break;
+           case 0x2e:  /* '.' */
+               switch(state) {
+               case ST_LEADSPACE:
+               case ST_TAILSPACE:
+               case ST_WAITDIGITS:
+                       if(opt_oid_text_end)
+                               *opt_oid_text_end = oid_text;
+                       errno = EINVAL; /* Broken OID */
+                       return -1;
+                       break;
+               case ST_AFTERVALUE:
+                       state = ST_WAITDIGITS;
+                       continue;
+               }
+               break;
+           case 0x30: case 0x31: case 0x32: case 0x33: case 0x34:
+           case 0x35: case 0x36: case 0x37: case 0x38: case 0x39:
+               switch(state) {
+               case ST_TAILSPACE:
+               case ST_AFTERVALUE:
+                       if(opt_oid_text_end)
+                               *opt_oid_text_end = oid_text;
+                       errno = EINVAL; /* "1. 1" => broken OID */
+                       return -1;
+               case ST_LEADSPACE:
+               case ST_WAITDIGITS:
+                       _OID_CAPTURE_ARC(oid_text, oid_end);
+                       state = ST_AFTERVALUE;
+                       continue;
+               }
+               break;
+           default:
+               /* Unexpected symbols */
+               state = ST_WAITDIGITS;
+               break;
+           } /* switch() */
+           break;
+       } /* for() */
+
+
+       if(opt_oid_text_end) *opt_oid_text_end = oid_text;
+
+       /* Finalize last arc */
+       switch(state) {
+       case ST_LEADSPACE:
+               return 0; /* No OID found in input data */
+       case ST_WAITDIGITS:
+               errno = EINVAL; /* Broken OID */
+               return -1;
+       case ST_AFTERVALUE:
+       case ST_TAILSPACE:
+               return num_arcs;
+       }
+
+       errno = EINVAL; /* Broken OID */
+       return -1;
+}
+
+/*
+ * Generate values from the list of interesting values, or just a random
+ * value up to the upper limit.
+ */
+static asn_oid_arc_t
+OBJECT_IDENTIFIER__biased_random_arc(asn_oid_arc_t upper_bound) {
+    const asn_oid_arc_t values[] = {0, 1, 127, 128, 129, 254, 255, 256};
+    size_t idx;
+
+    switch(asn_random_between(0, 2)) {
+    case 0:
+        idx = asn_random_between(0, sizeof(values) / sizeof(values[0]) - 1);
+        if(values[idx] < upper_bound) {
+            return values[idx];
+        }
+        /* Fall through */
+    case 1:
+        return asn_random_between(0, upper_bound);
+    case 2:
+    default:
+        return upper_bound;
+    }
+}
+
+asn_random_fill_result_t
+OBJECT_IDENTIFIER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr,
+                              const asn_encoding_constraints_t *constraints,
+                              size_t max_length) {
+    asn_random_fill_result_t result_ok = {ARFILL_OK, 1};
+    asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0};
+    asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0};
+    OBJECT_IDENTIFIER_t *st;
+    asn_oid_arc_t arcs[5];
+    size_t arcs_len = asn_random_between(2, 5);
+    size_t i;
+
+    (void)constraints;
+
+    if(max_length < arcs_len) return result_skipped;
+
+    if(*sptr) {
+        st = *sptr;
+    } else {
+        st = CALLOC(1, sizeof(*st));
+    }
+
+    arcs[0] = asn_random_between(0, 2);
+    arcs[1] = OBJECT_IDENTIFIER__biased_random_arc(
+        arcs[0] <= 1 ? 39 : (ASN_OID_ARC_MAX - 80));
+    for(i = 2; i < arcs_len; i++) {
+        arcs[i] = OBJECT_IDENTIFIER__biased_random_arc(ASN_OID_ARC_MAX);
+    }
+
+    if(OBJECT_IDENTIFIER_set_arcs(st, arcs, arcs_len)) {
+        if(st != *sptr) {
+            ASN_STRUCT_FREE(*td, st);
+        }
+        return result_failed;
+    }
+
+    *sptr = st;
+
+    result_ok.length = st->size;
+    return result_ok;
+}
diff --git a/e2ap/lib/OCTET_STRING.c b/e2ap/lib/OCTET_STRING.c
new file mode 100644 (file)
index 0000000..432ce5a
--- /dev/null
@@ -0,0 +1,2409 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <OCTET_STRING.h>
+#include <BIT_STRING.h>        /* for .bits_unused member */
+#include <errno.h>
+
+/*
+ * OCTET STRING basic type description.
+ */
+static const ber_tlv_tag_t asn_DEF_OCTET_STRING_tags[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs = {
+       sizeof(OCTET_STRING_t),
+       offsetof(OCTET_STRING_t, _asn_ctx),
+       ASN_OSUBV_STR
+};
+
+asn_TYPE_operation_t asn_OP_OCTET_STRING = {
+       OCTET_STRING_free,
+       OCTET_STRING_print,     /* OCTET STRING generally means a non-ascii sequence */
+       OCTET_STRING_compare,
+       OCTET_STRING_decode_ber,
+       OCTET_STRING_encode_der,
+       OCTET_STRING_decode_xer_hex,
+       OCTET_STRING_encode_xer,
+#ifdef ASN_DISABLE_OER_SUPPORT
+       0,
+       0,
+#else
+       OCTET_STRING_decode_oer,
+       OCTET_STRING_encode_oer,
+#endif  /* ASN_DISABLE_OER_SUPPORT */
+#ifdef ASN_DISABLE_PER_SUPPORT
+       0,
+       0,
+       0,
+       0,
+#else
+       OCTET_STRING_decode_uper,       /* Unaligned PER decoder */
+       OCTET_STRING_encode_uper,       /* Unaligned PER encoder */
+       OCTET_STRING_decode_aper,       /* Aligned PER decoder */
+       OCTET_STRING_encode_aper,       /* Aligned PER encoder */
+#endif /* ASN_DISABLE_PER_SUPPORT */
+       OCTET_STRING_random_fill,
+       0       /* Use generic outmost tag fetcher */
+};
+asn_TYPE_descriptor_t asn_DEF_OCTET_STRING = {
+       "OCTET STRING",         /* Canonical name */
+       "OCTET_STRING",         /* XML tag name */
+       &asn_OP_OCTET_STRING,
+       asn_DEF_OCTET_STRING_tags,
+       sizeof(asn_DEF_OCTET_STRING_tags)
+         / sizeof(asn_DEF_OCTET_STRING_tags[0]),
+       asn_DEF_OCTET_STRING_tags,      /* Same as above */
+       sizeof(asn_DEF_OCTET_STRING_tags)
+         / sizeof(asn_DEF_OCTET_STRING_tags[0]),
+       { 0, 0, asn_generic_no_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs
+};
+
+#undef _CH_PHASE
+#undef NEXT_PHASE
+#undef PREV_PHASE
+#define        _CH_PHASE(ctx, inc) do {                                        \
+               if(ctx->phase == 0)                                     \
+                       ctx->context = 0;                               \
+               ctx->phase += inc;                                      \
+       } while(0)
+#define        NEXT_PHASE(ctx) _CH_PHASE(ctx, +1)
+#define        PREV_PHASE(ctx) _CH_PHASE(ctx, -1)
+
+#undef ADVANCE
+#define        ADVANCE(num_bytes)      do {                                    \
+               size_t num = (num_bytes);                               \
+               buf_ptr = ((const char *)buf_ptr) + num;                \
+               size -= num;                                            \
+               consumed_myself += num;                                 \
+       } while(0)
+
+#undef RETURN
+#define        RETURN(_code)   do {                                            \
+               asn_dec_rval_t tmprval;                                 \
+               tmprval.code = _code;                                   \
+               tmprval.consumed = consumed_myself;                     \
+               return tmprval;                                         \
+       } while(0)
+
+#undef APPEND
+#define        APPEND(bufptr, bufsize) do {                                    \
+               size_t _bs = (bufsize);         /* Append size */       \
+               size_t _ns = ctx->context;      /* Allocated now */     \
+               size_t _es = st->size + _bs;    /* Expected size */     \
+               /* int is really a typeof(st->size): */                 \
+               if((int)_es < 0) RETURN(RC_FAIL);                       \
+               if(_ns <= _es) {                                        \
+                       void *ptr;                                      \
+                       /* Be nice and round to the memory allocator */ \
+                       do { _ns = _ns ? _ns << 1 : 16; }               \
+                           while(_ns <= _es);                          \
+                       /* int is really a typeof(st->size): */         \
+                       if((int)_ns < 0) RETURN(RC_FAIL);               \
+                       ptr = REALLOC(st->buf, _ns);                    \
+                       if(ptr) {                                       \
+                               st->buf = (uint8_t *)ptr;               \
+                               ctx->context = _ns;                     \
+                       } else {                                        \
+                               RETURN(RC_FAIL);                        \
+                       }                                               \
+                       ASN_DEBUG("Reallocating into %ld", (long)_ns);  \
+               }                                                       \
+               memcpy(st->buf + st->size, bufptr, _bs);                \
+               /* Convenient nul-termination */                        \
+               st->buf[_es] = '\0';                                    \
+               st->size = _es;                                         \
+       } while(0)
+
+/*
+ * The main reason why ASN.1 is still alive is that too much time and effort
+ * is necessary for learning it more or less adequately, thus creating a gut
+ * necessity to demonstrate that aquired skill everywhere afterwards.
+ * No, I am not going to explain what the following stuff is.
+ */
+struct _stack_el {
+    ber_tlv_len_t left;     /* What's left to read (or -1) */
+    ber_tlv_len_t got;      /* What was actually processed */
+    unsigned cont_level;    /* Depth of subcontainment */
+    int want_nulls;         /* Want null "end of content" octets? */
+    int bits_chopped;       /* Flag in BIT STRING mode */
+    ber_tlv_tag_t tag;      /* For debugging purposes */
+    struct _stack_el *prev;
+    struct _stack_el *next;
+};
+struct _stack {
+       struct _stack_el *tail;
+       struct _stack_el *cur_ptr;
+};
+
+static struct _stack_el *
+OS__add_stack_el(struct _stack *st) {
+       struct _stack_el *nel;
+
+       /*
+        * Reuse the old stack frame or allocate a new one.
+        */
+       if(st->cur_ptr && st->cur_ptr->next) {
+               nel = st->cur_ptr->next;
+               nel->bits_chopped = 0;
+               nel->got = 0;
+               /* Retain the nel->cont_level, it's correct. */
+       } else {
+               nel = (struct _stack_el *)CALLOC(1, sizeof(struct _stack_el));
+               if(nel == NULL)
+                       return NULL;
+       
+               if(st->tail) {
+                       /* Increase a subcontainment depth */
+                       nel->cont_level = st->tail->cont_level + 1;
+                       st->tail->next = nel;
+               }
+               nel->prev = st->tail;
+               st->tail = nel;
+       }
+
+       st->cur_ptr = nel;
+
+       return nel;
+}
+
+static struct _stack *
+_new_stack(void) {
+       return (struct _stack *)CALLOC(1, sizeof(struct _stack));
+}
+
+/*
+ * Decode OCTET STRING type.
+ */
+asn_dec_rval_t
+OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx,
+                        const asn_TYPE_descriptor_t *td, void **sptr,
+                        const void *buf_ptr, size_t size, int tag_mode) {
+    const asn_OCTET_STRING_specifics_t *specs = td->specifics
+                               ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+                               : &asn_SPC_OCTET_STRING_specs;
+       BIT_STRING_t *st = (BIT_STRING_t *)*sptr;
+       asn_dec_rval_t rval;
+       asn_struct_ctx_t *ctx;
+       ssize_t consumed_myself = 0;
+       struct _stack *stck;            /* Expectations stack structure */
+       struct _stack_el *sel = 0;      /* Stack element */
+       int tlv_constr;
+       enum asn_OS_Subvariant type_variant = specs->subvariant;
+
+       ASN_DEBUG("Decoding %s as %s (frame %ld)",
+               td->name,
+               (type_variant == ASN_OSUBV_STR) ?
+                       "OCTET STRING" : "OS-SpecialCase",
+               (long)size);
+
+       /*
+        * Create the string if does not exist.
+        */
+       if(st == NULL) {
+               st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size));
+               if(st == NULL) RETURN(RC_FAIL);
+       }
+
+       /* Restore parsing context */
+       ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset);
+
+       switch(ctx->phase) {
+       case 0:
+               /*
+                * Check tags.
+                */
+               rval = ber_check_tags(opt_codec_ctx, td, ctx,
+                       buf_ptr, size, tag_mode, -1,
+                       &ctx->left, &tlv_constr);
+               if(rval.code != RC_OK)
+                       return rval;
+
+               if(tlv_constr) {
+                       /*
+                        * Complex operation, requires stack of expectations.
+                        */
+                       ctx->ptr = _new_stack();
+                       if(!ctx->ptr) {
+                               RETURN(RC_FAIL);
+                       }
+               } else {
+                       /*
+                        * Jump into stackless primitive decoding.
+                        */
+                       _CH_PHASE(ctx, 3);
+                       if(type_variant == ASN_OSUBV_ANY && tag_mode != 1)
+                               APPEND(buf_ptr, rval.consumed);
+                       ADVANCE(rval.consumed);
+                       goto phase3;
+               }
+
+               NEXT_PHASE(ctx);
+               /* Fall through */
+       case 1:
+       phase1:
+               /*
+                * Fill the stack with expectations.
+                */
+               stck = (struct _stack *)ctx->ptr;
+               sel = stck->cur_ptr;
+         do {
+               ber_tlv_tag_t tlv_tag;
+               ber_tlv_len_t tlv_len;
+               ber_tlv_tag_t expected_tag;
+               ssize_t tl, ll, tlvl;
+                               /* This one works even if (sel->left == -1) */
+               size_t Left = ((!sel||(size_t)sel->left >= size)
+                                       ?size:(size_t)sel->left);
+
+
+               ASN_DEBUG("%p, s->l=%ld, s->wn=%ld, s->g=%ld\n", (void *)sel,
+                       (long)(sel?sel->left:0),
+                       (long)(sel?sel->want_nulls:0),
+                       (long)(sel?sel->got:0)
+               );
+               if(sel && sel->left <= 0 && sel->want_nulls == 0) {
+                       if(sel->prev) {
+                               struct _stack_el *prev = sel->prev;
+                               if(prev->left != -1) {
+                                       if(prev->left < sel->got)
+                                               RETURN(RC_FAIL);
+                                       prev->left -= sel->got;
+                               }
+                               prev->got += sel->got;
+                               sel = stck->cur_ptr = prev;
+                               if(!sel) break;
+                               tlv_constr = 1;
+                               continue;
+                       } else {
+                               sel = stck->cur_ptr = 0;
+                               break;  /* Nothing to wait */
+                       }
+               }
+
+               tl = ber_fetch_tag(buf_ptr, Left, &tlv_tag);
+               ASN_DEBUG("fetch tag(size=%ld,L=%ld), %sstack, left=%ld, wn=%ld, tl=%ld",
+                       (long)size, (long)Left, sel?"":"!",
+                       (long)(sel?sel->left:0),
+                       (long)(sel?sel->want_nulls:0),
+                       (long)tl);
+               switch(tl) {
+               case -1: RETURN(RC_FAIL);
+               case 0: RETURN(RC_WMORE);
+               }
+
+               tlv_constr = BER_TLV_CONSTRUCTED(buf_ptr);
+
+               ll = ber_fetch_length(tlv_constr,
+                               (const char *)buf_ptr + tl,Left - tl,&tlv_len);
+               ASN_DEBUG("Got tag=%s, tc=%d, left=%ld, tl=%ld, len=%ld, ll=%ld",
+                       ber_tlv_tag_string(tlv_tag), tlv_constr,
+                               (long)Left, (long)tl, (long)tlv_len, (long)ll);
+               switch(ll) {
+               case -1: RETURN(RC_FAIL);
+               case 0: RETURN(RC_WMORE);
+               }
+
+               if(sel && sel->want_nulls
+                       && ((const uint8_t *)buf_ptr)[0] == 0
+                       && ((const uint8_t *)buf_ptr)[1] == 0)
+               {
+
+                       ASN_DEBUG("Eat EOC; wn=%d--", sel->want_nulls);
+
+                       if(type_variant == ASN_OSUBV_ANY
+                       && (tag_mode != 1 || sel->cont_level))
+                               APPEND("\0\0", 2);
+
+                       ADVANCE(2);
+                       sel->got += 2;
+                       if(sel->left != -1) {
+                               sel->left -= 2; /* assert(sel->left >= 2) */
+                       }
+
+                       sel->want_nulls--;
+                       if(sel->want_nulls == 0) {
+                               /* Move to the next expectation */
+                               sel->left = 0;
+                               tlv_constr = 1;
+                       }
+
+                       continue;
+               }
+
+               /*
+                * Set up expected tags,
+                * depending on ASN.1 type being decoded.
+                */
+               switch(type_variant) {
+               case ASN_OSUBV_BIT:
+                       /* X.690: 8.6.4.1, NOTE 2 */
+                       /* Fall through */
+               case ASN_OSUBV_STR:
+               default:
+                       if(sel) {
+                               unsigned level = sel->cont_level;
+                               if(level < td->all_tags_count) {
+                                       expected_tag = td->all_tags[level];
+                                       break;
+                               } else if(td->all_tags_count) {
+                                       expected_tag = td->all_tags
+                                               [td->all_tags_count - 1];
+                                       break;
+                               }
+                               /* else, Fall through */
+                       }
+                       /* Fall through */
+               case ASN_OSUBV_ANY:
+                       expected_tag = tlv_tag;
+                       break;
+               }
+
+
+               if(tlv_tag != expected_tag) {
+                       char buf[2][32];
+                       ber_tlv_tag_snprint(tlv_tag,
+                               buf[0], sizeof(buf[0]));
+                       ber_tlv_tag_snprint(td->tags[td->tags_count-1],
+                               buf[1], sizeof(buf[1]));
+                       ASN_DEBUG("Tag does not match expectation: %s != %s",
+                               buf[0], buf[1]);
+                       RETURN(RC_FAIL);
+               }
+
+               tlvl = tl + ll; /* Combined length of T and L encoding */
+               if((tlv_len + tlvl) < 0) {
+                       /* tlv_len value is too big */
+                       ASN_DEBUG("TLV encoding + length (%ld) is too big",
+                               (long)tlv_len);
+                       RETURN(RC_FAIL);
+               }
+
+               /*
+                * Append a new expectation.
+                */
+               sel = OS__add_stack_el(stck);
+               if(!sel) RETURN(RC_FAIL);
+
+               sel->tag = tlv_tag;
+
+               sel->want_nulls = (tlv_len==-1);
+               if(sel->prev && sel->prev->left != -1) {
+                       /* Check that the parent frame is big enough */
+                       if(sel->prev->left < tlvl + (tlv_len==-1?0:tlv_len))
+                               RETURN(RC_FAIL);
+                       if(tlv_len == -1)
+                               sel->left = sel->prev->left - tlvl;
+                       else
+                               sel->left = tlv_len;
+               } else {
+                       sel->left = tlv_len;
+               }
+               if(type_variant == ASN_OSUBV_ANY
+               && (tag_mode != 1 || sel->cont_level))
+                       APPEND(buf_ptr, tlvl);
+               sel->got += tlvl;
+               ADVANCE(tlvl);
+
+               ASN_DEBUG("+EXPECT2 got=%ld left=%ld, wn=%d, clvl=%u",
+                       (long)sel->got, (long)sel->left,
+                       sel->want_nulls, sel->cont_level);
+
+         } while(tlv_constr);
+               if(sel == NULL) {
+                       /* Finished operation, "phase out" */
+                       ASN_DEBUG("Phase out");
+                       _CH_PHASE(ctx, +3);
+                       break;
+               }
+
+               NEXT_PHASE(ctx);
+               /* Fall through */
+       case 2:
+               stck = (struct _stack *)ctx->ptr;
+               sel = stck->cur_ptr;
+               ASN_DEBUG("Phase 2: Need %ld bytes, size=%ld, alrg=%ld, wn=%d",
+                       (long)sel->left, (long)size, (long)sel->got,
+                               sel->want_nulls);
+           {
+               ber_tlv_len_t len;
+
+               assert(sel->left >= 0);
+
+               len = ((ber_tlv_len_t)size < sel->left)
+                               ? (ber_tlv_len_t)size : sel->left;
+               if(len > 0) {
+                       if(type_variant == ASN_OSUBV_BIT
+                       && sel->bits_chopped == 0) {
+                               /* Put the unused-bits-octet away */
+                               st->bits_unused = *(const uint8_t *)buf_ptr;
+                               APPEND(((const char *)buf_ptr+1), (len - 1));
+                               sel->bits_chopped = 1;
+                       } else {
+                               APPEND(buf_ptr, len);
+                       }
+                       ADVANCE(len);
+                       sel->left -= len;
+                       sel->got += len;
+               }
+
+               if(sel->left) {
+                       ASN_DEBUG("OS left %ld, size = %ld, wn=%d\n",
+                               (long)sel->left, (long)size, sel->want_nulls);
+                       RETURN(RC_WMORE);
+               }
+
+               PREV_PHASE(ctx);
+               goto phase1;
+           }
+               break;
+       case 3:
+       phase3:
+               /*
+                * Primitive form, no stack required.
+                */
+               assert(ctx->left >= 0);
+
+               if(size < (size_t)ctx->left) {
+                       if(!size) RETURN(RC_WMORE);
+                       if(type_variant == ASN_OSUBV_BIT && !ctx->context) {
+                               st->bits_unused = *(const uint8_t *)buf_ptr;
+                               ctx->left--;
+                               ADVANCE(1);
+                       }
+                       APPEND(buf_ptr, size);
+                       assert(ctx->context > 0);
+                       ctx->left -= size;
+                       ADVANCE(size);
+                       RETURN(RC_WMORE);
+               } else {
+                       if(type_variant == ASN_OSUBV_BIT
+                       && !ctx->context && ctx->left) {
+                               st->bits_unused = *(const uint8_t *)buf_ptr;
+                               ctx->left--;
+                               ADVANCE(1);
+                       }
+                       APPEND(buf_ptr, ctx->left);
+                       ADVANCE(ctx->left);
+                       ctx->left = 0;
+
+                       NEXT_PHASE(ctx);
+               }
+               break;
+       }
+
+       if(sel) {
+               ASN_DEBUG("3sel p=%p, wn=%d, l=%ld, g=%ld, size=%ld",
+                       (void *)sel->prev, sel->want_nulls,
+                       (long)sel->left, (long)sel->got, (long)size);
+               if(sel->prev || sel->want_nulls > 1 || sel->left > 0) {
+                       RETURN(RC_WMORE);
+               }
+       }
+
+       /*
+        * BIT STRING-specific processing.
+        */
+       if(type_variant == ASN_OSUBV_BIT) {
+        if(st->size) {
+                       if(st->bits_unused < 0 || st->bits_unused > 7) {
+                               RETURN(RC_FAIL);
+                       }
+                       /* Finalize BIT STRING: zero out unused bits. */
+                       st->buf[st->size-1] &= 0xff << st->bits_unused;
+               } else {
+                       if(st->bits_unused) {
+                               RETURN(RC_FAIL);
+                       }
+               }
+       }
+
+       ASN_DEBUG("Took %ld bytes to encode %s: [%s]:%ld",
+               (long)consumed_myself, td->name,
+               (type_variant == ASN_OSUBV_STR) ? (char *)st->buf : "<data>",
+               (long)st->size);
+
+
+       RETURN(RC_OK);
+}
+
+/*
+ * Encode OCTET STRING type using DER.
+ */
+asn_enc_rval_t
+OCTET_STRING_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr,
+                        int tag_mode, ber_tlv_tag_t tag,
+                        asn_app_consume_bytes_f *cb, void *app_key) {
+    asn_enc_rval_t er = { 0, 0, 0 };
+       const asn_OCTET_STRING_specifics_t *specs = td->specifics
+                               ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+                               : &asn_SPC_OCTET_STRING_specs;
+       const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+       enum asn_OS_Subvariant type_variant = specs->subvariant;
+       int fix_last_byte = 0;
+
+       ASN_DEBUG("%s %s as OCTET STRING",
+               cb?"Estimating":"Encoding", td->name);
+
+       /*
+        * Write tags.
+        */
+       if(type_variant != ASN_OSUBV_ANY || tag_mode == 1) {
+               er.encoded = der_write_tags(td,
+                               (type_variant == ASN_OSUBV_BIT) + st->size,
+                       tag_mode, type_variant == ASN_OSUBV_ANY, tag,
+                       cb, app_key);
+               if(er.encoded == -1) {
+                       er.failed_type = td;
+                       er.structure_ptr = sptr;
+                       return er;
+               }
+       } else {
+               /* Disallow: [<tag>] IMPLICIT ANY */
+               assert(type_variant != ASN_OSUBV_ANY || tag_mode != -1);
+               er.encoded = 0;
+       }
+
+       if(!cb) {
+               er.encoded += (type_variant == ASN_OSUBV_BIT) + st->size;
+               ASN__ENCODED_OK(er);
+       }
+
+       /*
+        * Prepare to deal with the last octet of BIT STRING.
+        */
+       if(type_variant == ASN_OSUBV_BIT) {
+               uint8_t b = st->bits_unused & 0x07;
+               if(b && st->size) fix_last_byte = 1;
+               ASN__CALLBACK(&b, 1);
+       }
+
+       /* Invoke callback for the main part of the buffer */
+       ASN__CALLBACK(st->buf, st->size - fix_last_byte);
+
+       /* The last octet should be stripped off the unused bits */
+       if(fix_last_byte) {
+               uint8_t b = st->buf[st->size-1] & (0xff << st->bits_unused);
+               ASN__CALLBACK(&b, 1);
+       }
+
+       ASN__ENCODED_OK(er);
+cb_failed:
+       ASN__ENCODE_FAILED;
+}
+
+asn_enc_rval_t
+OCTET_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr,
+                        int ilevel, enum xer_encoder_flags_e flags,
+                        asn_app_consume_bytes_f *cb, void *app_key) {
+    const char * const h2c = "0123456789ABCDEF";
+       const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+       asn_enc_rval_t er = { 0, 0, 0 };
+       char scratch[16 * 3 + 4];
+       char *p = scratch;
+       uint8_t *buf;
+       uint8_t *end;
+       size_t i;
+
+       if(!st || (!st->buf && st->size))
+               ASN__ENCODE_FAILED;
+
+       er.encoded = 0;
+
+       /*
+        * Dump the contents of the buffer in hexadecimal.
+        */
+       buf = st->buf;
+       end = buf + st->size;
+       if(flags & XER_F_CANONICAL) {
+               char *scend = scratch + (sizeof(scratch) - 2);
+               for(; buf < end; buf++) {
+                       if(p >= scend) {
+                               ASN__CALLBACK(scratch, p - scratch);
+                               p = scratch;
+                       }
+                       *p++ = h2c[(*buf >> 4) & 0x0F];
+                       *p++ = h2c[*buf & 0x0F];
+               }
+
+               ASN__CALLBACK(scratch, p-scratch);      /* Dump the rest */
+       } else {
+               for(i = 0; buf < end; buf++, i++) {
+                       if(!(i % 16) && (i || st->size > 16)) {
+                               ASN__CALLBACK(scratch, p-scratch);
+                               p = scratch;
+                               ASN__TEXT_INDENT(1, ilevel);
+                       }
+                       *p++ = h2c[(*buf >> 4) & 0x0F];
+                       *p++ = h2c[*buf & 0x0F];
+                       *p++ = 0x20;
+               }
+               if(p - scratch) {
+                       p--;    /* Remove the tail space */
+                       ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */
+                       if(st->size > 16)
+                               ASN__TEXT_INDENT(1, ilevel-1);
+               }
+       }
+
+       ASN__ENCODED_OK(er);
+cb_failed:
+       ASN__ENCODE_FAILED;
+}
+
+static const struct OCTET_STRING__xer_escape_table_s {
+       const char *string;
+       int size;
+} OCTET_STRING__xer_escape_table[] = {
+#define        OSXET(s)        { s, sizeof(s) - 1 }
+       OSXET("\074\156\165\154\057\076"),      /* <nul/> */
+       OSXET("\074\163\157\150\057\076"),      /* <soh/> */
+       OSXET("\074\163\164\170\057\076"),      /* <stx/> */
+       OSXET("\074\145\164\170\057\076"),      /* <etx/> */
+       OSXET("\074\145\157\164\057\076"),      /* <eot/> */
+       OSXET("\074\145\156\161\057\076"),      /* <enq/> */
+       OSXET("\074\141\143\153\057\076"),      /* <ack/> */
+       OSXET("\074\142\145\154\057\076"),      /* <bel/> */
+       OSXET("\074\142\163\057\076"),          /* <bs/> */
+       OSXET("\011"),                          /* \t */
+       OSXET("\012"),                          /* \n */
+       OSXET("\074\166\164\057\076"),          /* <vt/> */
+       OSXET("\074\146\146\057\076"),          /* <ff/> */
+       OSXET("\015"),                          /* \r */
+       OSXET("\074\163\157\057\076"),          /* <so/> */
+       OSXET("\074\163\151\057\076"),          /* <si/> */
+       OSXET("\074\144\154\145\057\076"),      /* <dle/> */
+       OSXET("\074\144\143\061\057\076"),      /* <de1/> */
+       OSXET("\074\144\143\062\057\076"),      /* <de2/> */
+       OSXET("\074\144\143\063\057\076"),      /* <de3/> */
+       OSXET("\074\144\143\064\057\076"),      /* <de4/> */
+       OSXET("\074\156\141\153\057\076"),      /* <nak/> */
+       OSXET("\074\163\171\156\057\076"),      /* <syn/> */
+       OSXET("\074\145\164\142\057\076"),      /* <etb/> */
+       OSXET("\074\143\141\156\057\076"),      /* <can/> */
+       OSXET("\074\145\155\057\076"),          /* <em/> */
+       OSXET("\074\163\165\142\057\076"),      /* <sub/> */
+       OSXET("\074\145\163\143\057\076"),      /* <esc/> */
+       OSXET("\074\151\163\064\057\076"),      /* <is4/> */
+       OSXET("\074\151\163\063\057\076"),      /* <is3/> */
+       OSXET("\074\151\163\062\057\076"),      /* <is2/> */
+       OSXET("\074\151\163\061\057\076"),      /* <is1/> */
+       { 0, 0 },       /* " " */
+       { 0, 0 },       /* ! */
+       { 0, 0 },       /* \" */
+       { 0, 0 },       /* # */
+       { 0, 0 },       /* $ */
+       { 0, 0 },       /* % */
+       OSXET("\046\141\155\160\073"),  /* &amp; */
+       { 0, 0 },       /* ' */
+       {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* ()*+,-./ */
+       {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 01234567 */
+       {0,0},{0,0},{0,0},{0,0},                         /* 89:; */
+       OSXET("\046\154\164\073"),      /* &lt; */
+       { 0, 0 },       /* = */
+       OSXET("\046\147\164\073"),      /* &gt; */
+};
+
+static int
+OS__check_escaped_control_char(const void *buf, int size) {
+       size_t i;
+       /*
+        * Inefficient algorithm which translates the escape sequences
+        * defined above into characters. Returns -1 if not found.
+        * TODO: replace by a faster algorithm (bsearch(), hash or
+        * nested table lookups).
+        */
+       for(i = 0; i < 32 /* Don't spend time on the bottom half */; i++) {
+               const struct OCTET_STRING__xer_escape_table_s *el;
+               el = &OCTET_STRING__xer_escape_table[i];
+               if(el->size == size && memcmp(buf, el->string, size) == 0)
+                       return i;
+       }
+       return -1;
+}
+
+static int
+OCTET_STRING__handle_control_chars(void *struct_ptr, const void *chunk_buf, size_t chunk_size) {
+       /*
+        * This might be one of the escape sequences
+        * for control characters. Check it out.
+        * #11.15.5
+        */
+       int control_char = OS__check_escaped_control_char(chunk_buf,chunk_size);
+       if(control_char >= 0) {
+               OCTET_STRING_t *st = (OCTET_STRING_t *)struct_ptr;
+               void *p = REALLOC(st->buf, st->size + 2);
+               if(p) {
+                       st->buf = (uint8_t *)p;
+                       st->buf[st->size++] = control_char;
+                       st->buf[st->size] = '\0';       /* nul-termination */
+                       return 0;
+               }
+       }
+       
+       return -1;      /* No, it's not */
+}
+
+asn_enc_rval_t
+OCTET_STRING_encode_xer_utf8(const asn_TYPE_descriptor_t *td, const void *sptr,
+                             int ilevel, enum xer_encoder_flags_e flags,
+                             asn_app_consume_bytes_f *cb, void *app_key) {
+       const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+       asn_enc_rval_t er = { 0, 0, 0 };
+       uint8_t *buf, *end;
+       uint8_t *ss;    /* Sequence start */
+       ssize_t encoded_len = 0;
+
+       (void)ilevel;   /* Unused argument */
+       (void)flags;    /* Unused argument */
+
+       if(!st || (!st->buf && st->size))
+               ASN__ENCODE_FAILED;
+
+       buf = st->buf;
+       end = buf + st->size;
+       for(ss = buf; buf < end; buf++) {
+               unsigned int ch = *buf;
+               int s_len;      /* Special encoding sequence length */
+
+               /*
+                * Escape certain characters: X.680/11.15
+                */
+               if(ch < sizeof(OCTET_STRING__xer_escape_table)
+                       /sizeof(OCTET_STRING__xer_escape_table[0])
+               && (s_len = OCTET_STRING__xer_escape_table[ch].size)) {
+                       if(((buf - ss) && cb(ss, buf - ss, app_key) < 0)
+                       || cb(OCTET_STRING__xer_escape_table[ch].string, s_len,
+                                       app_key) < 0)
+                               ASN__ENCODE_FAILED;
+                       encoded_len += (buf - ss) + s_len;
+                       ss = buf + 1;
+               }
+       }
+
+       encoded_len += (buf - ss);
+       if((buf - ss) && cb(ss, buf - ss, app_key) < 0)
+               ASN__ENCODE_FAILED;
+
+       er.encoded = encoded_len;
+       ASN__ENCODED_OK(er);
+}
+
+/*
+ * Convert from hexadecimal format (cstring): "AB CD EF"
+ */
+static ssize_t OCTET_STRING__convert_hexadecimal(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) {
+       OCTET_STRING_t *st = (OCTET_STRING_t *)sptr;
+       const char *chunk_stop = (const char *)chunk_buf;
+       const char *p = chunk_stop;
+       const char *pend = p + chunk_size;
+       unsigned int clv = 0;
+       int half = 0;   /* Half bit */
+       uint8_t *buf;
+
+       /* Reallocate buffer according to high cap estimation */
+       size_t new_size = st->size + (chunk_size + 1) / 2;
+       void *nptr = REALLOC(st->buf, new_size + 1);
+       if(!nptr) return -1;
+       st->buf = (uint8_t *)nptr;
+       buf = st->buf + st->size;
+
+       /*
+        * If something like " a b c " appears here, the " a b":3 will be
+        * converted, and the rest skipped. That is, unless buf_size is greater
+        * than chunk_size, then it'll be equivalent to "ABC0".
+        */
+       for(; p < pend; p++) {
+               int ch = *(const unsigned char *)p;
+               switch(ch) {
+               case 0x09: case 0x0a: case 0x0c: case 0x0d:
+               case 0x20:
+                       /* Ignore whitespace */
+                       continue;
+               case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/
+               case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/
+                       clv = (clv << 4) + (ch - 0x30);
+                       break;
+               case 0x41: case 0x42: case 0x43:        /* ABC */
+               case 0x44: case 0x45: case 0x46:        /* DEF */
+                       clv = (clv << 4) + (ch - 0x41 + 10);
+                       break;
+               case 0x61: case 0x62: case 0x63:        /* abc */
+               case 0x64: case 0x65: case 0x66:        /* def */
+                       clv = (clv << 4) + (ch - 0x61 + 10);
+                       break;
+               default:
+                       *buf = 0;       /* JIC */
+                       return -1;
+               }
+               if(half++) {
+                       half = 0;
+                       *buf++ = clv;
+                       chunk_stop = p + 1;
+               }
+       }
+
+       /*
+        * Check partial decoding.
+        */
+       if(half) {
+               if(have_more) {
+                       /*
+                        * Partial specification is fine,
+                        * because no more more PXER_TEXT data is available.
+                        */
+                       *buf++ = clv << 4;
+                       chunk_stop = p;
+               }
+       } else {
+               chunk_stop = p;
+       }
+
+       st->size = buf - st->buf;       /* Adjust the buffer size */
+       assert(st->size <= new_size);
+       st->buf[st->size] = 0;          /* Courtesy termination */
+
+       return (chunk_stop - (const char *)chunk_buf);  /* Converted size */
+}
+
+/*
+ * Convert from binary format: "00101011101"
+ */
+static ssize_t OCTET_STRING__convert_binary(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) {
+       BIT_STRING_t *st = (BIT_STRING_t *)sptr;
+       const char *p = (const char *)chunk_buf;
+       const char *pend = p + chunk_size;
+       int bits_unused = st->bits_unused & 0x7;
+       uint8_t *buf;
+
+       /* Reallocate buffer according to high cap estimation */
+       size_t new_size = st->size + (chunk_size + 7) / 8;
+       void *nptr = REALLOC(st->buf, new_size + 1);
+       if(!nptr) return -1;
+       st->buf = (uint8_t *)nptr;
+       buf = st->buf + st->size;
+
+       (void)have_more;
+
+       if(bits_unused == 0)
+               bits_unused = 8;
+       else if(st->size)
+               buf--;
+
+       /*
+        * Convert series of 0 and 1 into the octet string.
+        */
+       for(; p < pend; p++) {
+               int ch = *(const unsigned char *)p;
+               switch(ch) {
+               case 0x09: case 0x0a: case 0x0c: case 0x0d:
+               case 0x20:
+                       /* Ignore whitespace */
+                       break;
+               case 0x30:
+               case 0x31:
+                       if(bits_unused-- <= 0) {
+                               *++buf = 0;     /* Clean the cell */
+                               bits_unused = 7;
+                       }
+                       *buf |= (ch&1) << bits_unused;
+                       break;
+               default:
+                       st->bits_unused = bits_unused;
+                       return -1;
+               }
+       }
+
+       if(bits_unused == 8) {
+               st->size = buf - st->buf;
+               st->bits_unused = 0;
+       } else {
+               st->size = buf - st->buf + 1;
+               st->bits_unused = bits_unused;
+       }
+
+       assert(st->size <= new_size);
+       st->buf[st->size] = 0;          /* Courtesy termination */
+
+       return chunk_size;      /* Converted in full */
+}
+
+/*
+ * Something like strtod(), but with stricter rules.
+ */
+static int
+OS__strtoent(int base, const char *buf, const char *end, int32_t *ret_value) {
+       const int32_t last_unicode_codepoint = 0x10ffff;
+       int32_t val = 0;
+       const char *p;
+
+       for(p = buf; p < end; p++) {
+               int ch = *p;
+
+               switch(ch) {
+               case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/
+               case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/
+                       val = val * base + (ch - 0x30);
+                       break;
+               case 0x41: case 0x42: case 0x43:        /* ABC */
+               case 0x44: case 0x45: case 0x46:        /* DEF */
+                       val = val * base + (ch - 0x41 + 10);
+                       break;
+               case 0x61: case 0x62: case 0x63:        /* abc */
+               case 0x64: case 0x65: case 0x66:        /* def */
+                       val = val * base + (ch - 0x61 + 10);
+                       break;
+               case 0x3b:      /* ';' */
+                       *ret_value = val;
+                       return (p - buf) + 1;
+               default:
+                       return -1;      /* Character set error */
+               }
+
+               /* Value exceeds the Unicode range. */
+               if(val > last_unicode_codepoint) {
+                       return -1;
+               }
+       }
+
+       *ret_value = -1;
+       return (p - buf);
+}
+
+/*
+ * Convert from the plain UTF-8 format, expanding entity references: "2 &lt; 3"
+ */
+static ssize_t
+OCTET_STRING__convert_entrefs(void *sptr, const void *chunk_buf,
+                              size_t chunk_size, int have_more) {
+    OCTET_STRING_t *st = (OCTET_STRING_t *)sptr;
+       const char *p = (const char *)chunk_buf;
+       const char *pend = p + chunk_size;
+       uint8_t *buf;
+
+       /* Reallocate buffer */
+       size_t new_size = st->size + chunk_size;
+       void *nptr = REALLOC(st->buf, new_size + 1);
+       if(!nptr) return -1;
+       st->buf = (uint8_t *)nptr;
+       buf = st->buf + st->size;
+
+       /*
+        * Convert series of 0 and 1 into the octet string.
+        */
+       for(; p < pend; p++) {
+               int ch = *(const unsigned char *)p;
+               int len;        /* Length of the rest of the chunk */
+
+               if(ch != 0x26 /* '&' */) {
+                       *buf++ = ch;
+                       continue;       /* That was easy... */
+               }
+
+               /*
+                * Process entity reference.
+                */
+               len = chunk_size - (p - (const char *)chunk_buf);
+               if(len == 1 /* "&" */) goto want_more;
+               if(p[1] == 0x23 /* '#' */) {
+                       const char *pval;       /* Pointer to start of digits */
+                       int32_t val = 0;        /* Entity reference value */
+                       int base;
+
+                       if(len == 2 /* "&#" */) goto want_more;
+                       if(p[2] == 0x78 /* 'x' */)
+                               pval = p + 3, base = 16;
+                       else
+                               pval = p + 2, base = 10;
+                       len = OS__strtoent(base, pval, p + len, &val);
+                       if(len == -1) {
+                               /* Invalid charset. Just copy verbatim. */
+                               *buf++ = ch;
+                               continue;
+                       }
+                       if(!len || pval[len-1] != 0x3b) goto want_more;
+                       assert(val > 0);
+                       p += (pval - p) + len - 1; /* Advance past entref */
+
+                       if(val < 0x80) {
+                               *buf++ = (char)val;
+                       } else if(val < 0x800) {
+                               *buf++ = 0xc0 | ((val >> 6));
+                               *buf++ = 0x80 | ((val & 0x3f));
+                       } else if(val < 0x10000) {
+                               *buf++ = 0xe0 | ((val >> 12));
+                               *buf++ = 0x80 | ((val >> 6) & 0x3f);
+                               *buf++ = 0x80 | ((val & 0x3f));
+                       } else if(val < 0x200000) {
+                               *buf++ = 0xf0 | ((val >> 18));
+                               *buf++ = 0x80 | ((val >> 12) & 0x3f);
+                               *buf++ = 0x80 | ((val >> 6) & 0x3f);
+                               *buf++ = 0x80 | ((val & 0x3f));
+                       } else if(val < 0x4000000) {
+                               *buf++ = 0xf8 | ((val >> 24));
+                               *buf++ = 0x80 | ((val >> 18) & 0x3f);
+                               *buf++ = 0x80 | ((val >> 12) & 0x3f);
+                               *buf++ = 0x80 | ((val >> 6) & 0x3f);
+                               *buf++ = 0x80 | ((val & 0x3f));
+                       } else {
+                               *buf++ = 0xfc | ((val >> 30) & 0x1);
+                               *buf++ = 0x80 | ((val >> 24) & 0x3f);
+                               *buf++ = 0x80 | ((val >> 18) & 0x3f);
+                               *buf++ = 0x80 | ((val >> 12) & 0x3f);
+                               *buf++ = 0x80 | ((val >> 6) & 0x3f);
+                               *buf++ = 0x80 | ((val & 0x3f));
+                       }
+               } else {
+                       /*
+                        * Ugly, limited parsing of &amp; &gt; &lt;
+                        */
+                       char *sc = (char *)memchr(p, 0x3b, len > 5 ? 5 : len);
+                       if(!sc) goto want_more;
+                       if((sc - p) == 4
+                               && p[1] == 0x61 /* 'a' */
+                               && p[2] == 0x6d /* 'm' */
+                               && p[3] == 0x70 /* 'p' */) {
+                               *buf++ = 0x26;
+                               p = sc;
+                               continue;
+                       }
+                       if((sc - p) == 3) {
+                               if(p[1] == 0x6c) {
+                                       *buf = 0x3c;    /* '<' */
+                               } else if(p[1] == 0x67) {
+                                       *buf = 0x3e;    /* '>' */
+                               } else {
+                                       /* Unsupported entity reference */
+                                       *buf++ = ch;
+                                       continue;
+                               }
+                               if(p[2] != 0x74) {
+                                       /* Unsupported entity reference */
+                                       *buf++ = ch;
+                                       continue;
+                               }
+                               buf++;
+                               p = sc;
+                               continue;
+                       }
+                       /* Unsupported entity reference */
+                       *buf++ = ch;
+               }
+
+               continue;
+       want_more:
+               if(have_more) {
+                       /*
+                        * We know that no more data (of the same type)
+                        * is coming. Copy the rest verbatim.
+                        */
+                       *buf++ = ch;
+                       continue;
+               }
+               chunk_size = (p - (const char *)chunk_buf);
+               /* Processing stalled: need more data */
+               break;
+       }
+
+       st->size = buf - st->buf;
+       assert(st->size <= new_size);
+       st->buf[st->size] = 0;          /* Courtesy termination */
+
+       return chunk_size;      /* Converted in full */
+}
+
+/*
+ * Decode OCTET STRING from the XML element's body.
+ */
+static asn_dec_rval_t
+OCTET_STRING__decode_xer(
+    const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td,
+    void **sptr, const char *opt_mname, const void *buf_ptr, size_t size,
+    int (*opt_unexpected_tag_decoder)(void *struct_ptr, const void *chunk_buf,
+                                      size_t chunk_size),
+    ssize_t (*body_receiver)(void *struct_ptr, const void *chunk_buf,
+                             size_t chunk_size, int have_more)) {
+    OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr;
+       const asn_OCTET_STRING_specifics_t *specs = td->specifics
+                               ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+                               : &asn_SPC_OCTET_STRING_specs;
+       const char *xml_tag = opt_mname ? opt_mname : td->xml_tag;
+       asn_struct_ctx_t *ctx;          /* Per-structure parser context */
+       asn_dec_rval_t rval;            /* Return value from the decoder */
+       int st_allocated;
+
+       /*
+        * Create the string if does not exist.
+        */
+       if(!st) {
+               st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size);
+               *sptr = (void *)st;
+               if(!st) goto sta_failed;
+               st_allocated = 1;
+       } else {
+               st_allocated = 0;
+       }
+       if(!st->buf) {
+               /* This is separate from above section */
+               st->buf = (uint8_t *)CALLOC(1, 1);
+               if(!st->buf) {
+                       if(st_allocated) {
+                               *sptr = 0;
+                               goto stb_failed;
+                       } else {
+                               goto sta_failed;
+                       }
+               }
+       }
+
+       /* Restore parsing context */
+       ctx = (asn_struct_ctx_t *)(((char *)*sptr) + specs->ctx_offset);
+
+       return xer_decode_general(opt_codec_ctx, ctx, *sptr, xml_tag,
+               buf_ptr, size, opt_unexpected_tag_decoder, body_receiver);
+
+stb_failed:
+       FREEMEM(st);
+sta_failed:
+       rval.code = RC_FAIL;
+       rval.consumed = 0;
+       return rval;
+}
+
+/*
+ * Decode OCTET STRING from the hexadecimal data.
+ */
+asn_dec_rval_t
+OCTET_STRING_decode_xer_hex(const asn_codec_ctx_t *opt_codec_ctx,
+                            const asn_TYPE_descriptor_t *td, void **sptr,
+                            const char *opt_mname, const void *buf_ptr,
+                            size_t size) {
+    return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname,
+               buf_ptr, size, 0, OCTET_STRING__convert_hexadecimal);
+}
+
+/*
+ * Decode OCTET STRING from the binary (0/1) data.
+ */
+asn_dec_rval_t
+OCTET_STRING_decode_xer_binary(const asn_codec_ctx_t *opt_codec_ctx,
+                               const asn_TYPE_descriptor_t *td, void **sptr,
+                               const char *opt_mname, const void *buf_ptr,
+                               size_t size) {
+    return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname,
+               buf_ptr, size, 0, OCTET_STRING__convert_binary);
+}
+
+/*
+ * Decode OCTET STRING from the string (ASCII/UTF-8) data.
+ */
+asn_dec_rval_t
+OCTET_STRING_decode_xer_utf8(const asn_codec_ctx_t *opt_codec_ctx,
+                             const asn_TYPE_descriptor_t *td, void **sptr,
+                             const char *opt_mname, const void *buf_ptr,
+                             size_t size) {
+    return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname,
+               buf_ptr, size,
+               OCTET_STRING__handle_control_chars,
+               OCTET_STRING__convert_entrefs);
+}
+
+#ifndef  ASN_DISABLE_PER_SUPPORT
+
+static int
+OCTET_STRING_per_get_characters(asn_per_data_t *po, uint8_t *buf,
+               size_t units, unsigned int bpc, unsigned int unit_bits,
+               long lb, long ub, const asn_per_constraints_t *pc) {
+       uint8_t *end = buf + units * bpc;
+
+       ASN_DEBUG("Expanding %d characters into (%ld..%ld):%d",
+               (int)units, lb, ub, unit_bits);
+
+       /* X.691: 27.5.4 */
+       if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) {
+               /* Decode without translation */
+               lb = 0;
+       } else if(pc && pc->code2value) {
+               if(unit_bits > 16)
+                       return 1;       /* FATAL: can't have constrained
+                                        * UniversalString with more than
+                                        * 16 million code points */
+               for(; buf < end; buf += bpc) {
+                       int value;
+                       int code = per_get_few_bits(po, unit_bits);
+                       if(code < 0) return -1; /* WMORE */
+                       value = pc->code2value(code);
+                       if(value < 0) {
+                               ASN_DEBUG("Code %d (0x%02x) is"
+                                       " not in map (%ld..%ld)",
+                                       code, code, lb, ub);
+                               return 1;       /* FATAL */
+                       }
+                       switch(bpc) {
+                       case 1: *buf = value; break;
+                       case 2: buf[0] = value >> 8; buf[1] = value; break;
+                       case 4: buf[0] = value >> 24; buf[1] = value >> 16;
+                               buf[2] = value >> 8; buf[3] = value; break;
+                       }
+               }
+               return 0;
+       }
+
+       /* Shortcut the no-op copying to the aligned structure */
+       if(lb == 0 && (unit_bits == 8 * bpc)) {
+               return per_get_many_bits(po, buf, 0, unit_bits * units);
+       }
+
+       for(; buf < end; buf += bpc) {
+               int32_t code = per_get_few_bits(po, unit_bits);
+               int32_t ch = code + lb;
+               if(code < 0) return -1; /* WMORE */
+               if(ch > ub) {
+                       ASN_DEBUG("Code %d is out of range (%ld..%ld)",
+                               ch, lb, ub);
+                       return 1;       /* FATAL */
+               }
+               switch(bpc) {
+               case 1: *buf = ch; break;
+               case 2: buf[0] = ch >> 8; buf[1] = ch; break;
+               case 4: buf[0] = ch >> 24; buf[1] = ch >> 16;
+                       buf[2] = ch >> 8; buf[3] = ch; break;
+               }
+       }
+
+       return 0;
+}
+
+static int
+OCTET_STRING_per_put_characters(asn_per_outp_t *po, const uint8_t *buf,
+               size_t units, unsigned int bpc, unsigned int unit_bits,
+               long lb, long ub, const asn_per_constraints_t *pc) {
+       const uint8_t *end = buf + units * bpc;
+
+       ASN_DEBUG("Squeezing %d characters into (%ld..%ld):%d (%d bpc)",
+               (int)units, lb, ub, unit_bits, bpc);
+
+       /* X.691: 27.5.4 */
+       if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) {
+               /* Encode as is */
+               lb = 0;
+       } else if(pc && pc->value2code) {
+               for(; buf < end; buf += bpc) {
+                       int code;
+                       uint32_t value;
+                       switch(bpc) {
+                       case 1: value = *(const uint8_t *)buf; break;
+                       case 2: value = (buf[0] << 8) | buf[1]; break;
+                       case 4: value = (buf[0] << 24) | (buf[1] << 16)
+                                       | (buf[2] << 8) | buf[3]; break;
+                       default: return -1;
+                       }
+                       code = pc->value2code(value);
+                       if(code < 0) {
+                               ASN_DEBUG("Character %d (0x%02x) is"
+                                       " not in map (%ld..%ld)",
+                                       *buf, *buf, lb, ub);
+                               return -1;
+                       }
+                       if(per_put_few_bits(po, code, unit_bits))
+                               return -1;
+               }
+       }
+
+       /* Shortcut the no-op copying to the aligned structure */
+       if(lb == 0 && (unit_bits == 8 * bpc)) {
+               return per_put_many_bits(po, buf, unit_bits * units);
+       }
+
+    for(ub -= lb; buf < end; buf += bpc) {
+        int ch;
+        uint32_t value;
+        switch(bpc) {
+        case 1:
+            value = *(const uint8_t *)buf;
+            break;
+        case 2:
+            value = (buf[0] << 8) | buf[1];
+            break;
+        case 4:
+            value = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3];
+            break;
+        default:
+            return -1;
+        }
+        ch = value - lb;
+        if(ch < 0 || ch > ub) {
+            ASN_DEBUG("Character %d (0x%02x) is out of range (%ld..%ld)", *buf,
+                      value, lb, ub + lb);
+            return -1;
+        }
+        if(per_put_few_bits(po, ch, unit_bits)) return -1;
+    }
+
+    return 0;
+}
+
+static asn_per_constraints_t asn_DEF_OCTET_STRING_constraints = {
+       { APC_CONSTRAINED, 8, 8, 0, 255 },
+       { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 },
+       0, 0
+};
+
+asn_dec_rval_t
+OCTET_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx,
+                         const asn_TYPE_descriptor_t *td,
+                         const asn_per_constraints_t *constraints, void **sptr,
+                         asn_per_data_t *pd) {
+    const asn_OCTET_STRING_specifics_t *specs = td->specifics
+               ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+               : &asn_SPC_OCTET_STRING_specs;
+    const asn_per_constraints_t *pc =
+        constraints ? constraints : td->encoding_constraints.per_constraints;
+    const asn_per_constraint_t *cval;
+       const asn_per_constraint_t *csiz;
+       asn_dec_rval_t rval = { RC_OK, 0 };
+       OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr;
+       ssize_t consumed_myself = 0;
+       int repeat;
+       enum {
+               OS__BPC_CHAR    = 1,
+               OS__BPC_U16     = 2,
+               OS__BPC_U32     = 4
+       } bpc;  /* Bytes per character */
+       unsigned int unit_bits;
+       unsigned int canonical_unit_bits;
+
+       (void)opt_codec_ctx;
+
+       if(pc) {
+               cval = &pc->value;
+               csiz = &pc->size;
+       } else {
+               cval = &asn_DEF_OCTET_STRING_constraints.value;
+               csiz = &asn_DEF_OCTET_STRING_constraints.size;
+       }
+
+       switch(specs->subvariant) {
+       default:
+       case ASN_OSUBV_ANY:
+       case ASN_OSUBV_BIT:
+               ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant);
+               RETURN(RC_FAIL);
+               break;
+       case ASN_OSUBV_STR:
+               canonical_unit_bits = unit_bits = 8;
+               if(cval->flags & APC_CONSTRAINED)
+                       unit_bits = cval->range_bits;
+               bpc = OS__BPC_CHAR;
+               break;
+       case ASN_OSUBV_U16:
+               canonical_unit_bits = unit_bits = 16;
+               if(cval->flags & APC_CONSTRAINED)
+                       unit_bits = cval->range_bits;
+               bpc = OS__BPC_U16;
+               break;
+       case ASN_OSUBV_U32:
+               canonical_unit_bits = unit_bits = 32;
+               if(cval->flags & APC_CONSTRAINED)
+                       unit_bits = cval->range_bits;
+               bpc = OS__BPC_U32;
+               break;
+       }
+
+       /*
+        * Allocate the string.
+        */
+       if(!st) {
+               st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size));
+               if(!st) RETURN(RC_FAIL);
+       }
+
+       ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d",
+               csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible",
+               csiz->lower_bound, csiz->upper_bound, csiz->effective_bits);
+
+       if(csiz->flags & APC_EXTENSIBLE) {
+               int inext = per_get_few_bits(pd, 1);
+               if(inext < 0) RETURN(RC_WMORE);
+               if(inext) {
+                       csiz = &asn_DEF_OCTET_STRING_constraints.size;
+                       unit_bits = canonical_unit_bits;
+               }
+       }
+
+       if(csiz->effective_bits >= 0) {
+               FREEMEM(st->buf);
+               if(bpc) {
+                       st->size = csiz->upper_bound * bpc;
+               } else {
+                       st->size = (csiz->upper_bound + 7) >> 3;
+               }
+               st->buf = (uint8_t *)MALLOC(st->size + 1);
+               if(!st->buf) { st->size = 0; RETURN(RC_FAIL); }
+       }
+
+       /* X.691, #16.5: zero-length encoding */
+       /* X.691, #16.6: short fixed length encoding (up to 2 octets) */
+       /* X.691, #16.7: long fixed length encoding (up to 64K octets) */
+       if(csiz->effective_bits == 0) {
+               int ret;
+               if(bpc) {
+                       ASN_DEBUG("Encoding OCTET STRING size %ld",
+                               csiz->upper_bound);
+                       ret = OCTET_STRING_per_get_characters(pd, st->buf,
+                               csiz->upper_bound, bpc, unit_bits,
+                               cval->lower_bound, cval->upper_bound, pc);
+                       if(ret > 0) RETURN(RC_FAIL);
+               } else {
+                       ASN_DEBUG("Encoding BIT STRING size %ld",
+                               csiz->upper_bound);
+                       ret = per_get_many_bits(pd, st->buf, 0,
+                                           unit_bits * csiz->upper_bound);
+               }
+               if(ret < 0) RETURN(RC_WMORE);
+               consumed_myself += unit_bits * csiz->upper_bound;
+               st->buf[st->size] = 0;
+               RETURN(RC_OK);
+       }
+
+       st->size = 0;
+       do {
+               ssize_t raw_len;
+               ssize_t len_bytes;
+               void *p;
+               int ret;
+
+               /* Get the PER length */
+               raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound,
+                                         &repeat);
+               if(raw_len < 0) RETURN(RC_WMORE);
+               if(raw_len == 0 && st->buf) break;
+
+               ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)",
+                       (long)csiz->effective_bits, (long)raw_len,
+                       repeat ? "repeat" : "once", td->name);
+        len_bytes = raw_len * bpc;
+               p = REALLOC(st->buf, st->size + len_bytes + 1);
+               if(!p) RETURN(RC_FAIL);
+               st->buf = (uint8_t *)p;
+
+        ret = OCTET_STRING_per_get_characters(pd, &st->buf[st->size], raw_len,
+                                              bpc, unit_bits, cval->lower_bound,
+                                              cval->upper_bound, pc);
+        if(ret > 0) RETURN(RC_FAIL);
+               if(ret < 0) RETURN(RC_WMORE);
+               st->size += len_bytes;
+       } while(repeat);
+       st->buf[st->size] = 0;  /* nul-terminate */
+
+       return rval;
+}
+
+asn_enc_rval_t
+OCTET_STRING_encode_uper(const asn_TYPE_descriptor_t *td,
+                         const asn_per_constraints_t *constraints,
+                         const void *sptr, asn_per_outp_t *po) {
+    const asn_OCTET_STRING_specifics_t *specs = td->specifics
+               ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+               : &asn_SPC_OCTET_STRING_specs;
+       const asn_per_constraints_t *pc = constraints ? constraints
+                               : td->encoding_constraints.per_constraints;
+       const asn_per_constraint_t *cval;
+       const asn_per_constraint_t *csiz;
+       const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+       asn_enc_rval_t er = { 0, 0, 0 };
+       int inext = 0;          /* Lies not within extension root */
+       unsigned int unit_bits;
+       unsigned int canonical_unit_bits;
+       size_t size_in_units;
+       const uint8_t *buf;
+       int ret;
+       enum {
+               OS__BPC_CHAR    = 1,
+               OS__BPC_U16     = 2,
+               OS__BPC_U32     = 4
+       } bpc;  /* Bytes per character */
+       int ct_extensible;
+
+       if(!st || (!st->buf && st->size))
+               ASN__ENCODE_FAILED;
+
+       if(pc) {
+               cval = &pc->value;
+               csiz = &pc->size;
+       } else {
+               cval = &asn_DEF_OCTET_STRING_constraints.value;
+               csiz = &asn_DEF_OCTET_STRING_constraints.size;
+       }
+       ct_extensible = csiz->flags & APC_EXTENSIBLE;
+
+       switch(specs->subvariant) {
+       default:
+       case ASN_OSUBV_ANY:
+       case ASN_OSUBV_BIT:
+               ASN__ENCODE_FAILED;
+       case ASN_OSUBV_STR:
+               canonical_unit_bits = unit_bits = 8;
+               if(cval->flags & APC_CONSTRAINED)
+                       unit_bits = cval->range_bits;
+               bpc = OS__BPC_CHAR;
+               size_in_units = st->size;
+               break;
+       case ASN_OSUBV_U16:
+               canonical_unit_bits = unit_bits = 16;
+               if(cval->flags & APC_CONSTRAINED)
+                       unit_bits = cval->range_bits;
+               bpc = OS__BPC_U16;
+               size_in_units = st->size >> 1;
+               if(st->size & 1) {
+                       ASN_DEBUG("%s string size is not modulo 2", td->name);
+                       ASN__ENCODE_FAILED;
+               }
+               break;
+       case ASN_OSUBV_U32:
+               canonical_unit_bits = unit_bits = 32;
+               if(cval->flags & APC_CONSTRAINED)
+                       unit_bits = cval->range_bits;
+               bpc = OS__BPC_U32;
+               size_in_units = st->size >> 2;
+               if(st->size & 3) {
+                       ASN_DEBUG("%s string size is not modulo 4", td->name);
+                       ASN__ENCODE_FAILED;
+               }
+               break;
+       }
+
+       ASN_DEBUG("Encoding %s into %" ASN_PRI_SIZE " units of %d bits"
+               " (%ld..%ld, effective %d)%s",
+               td->name, size_in_units, unit_bits,
+               csiz->lower_bound, csiz->upper_bound,
+               csiz->effective_bits, ct_extensible ? " EXT" : "");
+
+       /* Figure out whether size lies within PER visible constraint */
+
+    if(csiz->effective_bits >= 0) {
+        if((ssize_t)size_in_units < csiz->lower_bound
+           || (ssize_t)size_in_units > csiz->upper_bound) {
+            if(ct_extensible) {
+                csiz = &asn_DEF_OCTET_STRING_constraints.size;
+                unit_bits = canonical_unit_bits;
+                inext = 1;
+            } else {
+                ASN__ENCODE_FAILED;
+            }
+        }
+    } else {
+        inext = 0;
+    }
+
+    if(ct_extensible) {
+               /* Declare whether length is [not] within extension root */
+               if(per_put_few_bits(po, inext, 1))
+                       ASN__ENCODE_FAILED;
+       }
+
+    if(csiz->effective_bits >= 0 && !inext) {
+        ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes (%ld), length in %d bits", st->size,
+                  size_in_units - csiz->lower_bound, csiz->effective_bits);
+        ret = per_put_few_bits(po, size_in_units - csiz->lower_bound,
+                               csiz->effective_bits);
+        if(ret) ASN__ENCODE_FAILED;
+        ret = OCTET_STRING_per_put_characters(po, st->buf, size_in_units, bpc,
+                                              unit_bits, cval->lower_bound,
+                                              cval->upper_bound, pc);
+        if(ret) ASN__ENCODE_FAILED;
+        ASN__ENCODED_OK(er);
+    }
+
+    ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size);
+
+    buf = st->buf;
+    ASN_DEBUG("Encoding %" ASN_PRI_SIZE " in units", size_in_units);
+    do {
+        int need_eom = 0;
+        ssize_t may_save = uper_put_length(po, size_in_units, &need_eom);
+        if(may_save < 0) ASN__ENCODE_FAILED;
+
+        ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "%s", may_save, size_in_units,
+                  need_eom ? ",+EOM" : "");
+
+        ret = OCTET_STRING_per_put_characters(po, buf, may_save, bpc, unit_bits,
+                                              cval->lower_bound,
+                                              cval->upper_bound, pc);
+        if(ret) ASN__ENCODE_FAILED;
+
+        buf += may_save * bpc;
+        size_in_units -= may_save;
+        assert(!(may_save & 0x07) || !size_in_units);
+        if(need_eom && uper_put_length(po, 0, 0))
+            ASN__ENCODE_FAILED; /* End of Message length */
+    } while(size_in_units);
+
+    ASN__ENCODED_OK(er);
+}
+
+asn_dec_rval_t
+OCTET_STRING_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
+                         const asn_TYPE_descriptor_t *td,
+                         const asn_per_constraints_t *constraints,
+                         void **sptr, asn_per_data_t *pd) {
+
+       const asn_OCTET_STRING_specifics_t *specs = td->specifics
+               ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+               : &asn_SPC_OCTET_STRING_specs;
+       const asn_per_constraints_t *pc = constraints ? constraints
+                               : td->encoding_constraints.per_constraints;
+       const asn_per_constraint_t *cval;
+       const asn_per_constraint_t *csiz;
+       asn_dec_rval_t rval = { RC_OK, 0 };
+       BIT_STRING_t *st = (BIT_STRING_t *)*sptr;
+       ssize_t consumed_myself = 0;
+       int repeat;
+       enum {
+               OS__BPC_BIT     = 0,
+               OS__BPC_CHAR    = 1,
+               OS__BPC_U16     = 2,
+               OS__BPC_U32     = 4
+       } bpc;  /* Bytes per character */
+       unsigned int unit_bits;
+       unsigned int canonical_unit_bits;
+
+       (void)opt_codec_ctx;
+
+       if(pc) {
+               cval = &pc->value;
+               csiz = &pc->size;
+       } else {
+               cval = &asn_DEF_OCTET_STRING_constraints.value;
+               csiz = &asn_DEF_OCTET_STRING_constraints.size;
+       }
+
+       switch(specs->subvariant) {
+       default:
+/*     case ASN_OSUBV_ANY:
+               ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant);
+               RETURN(RC_FAIL);
+*/
+       case ASN_OSUBV_BIT:
+               canonical_unit_bits = unit_bits = 1;
+               bpc = OS__BPC_BIT;
+               break;
+       case ASN_OSUBV_ANY:
+       case ASN_OSUBV_STR:
+               canonical_unit_bits = unit_bits = 8;
+/*             if(cval->flags & APC_CONSTRAINED)
+                       unit_bits = cval->range_bits;
+*/
+               bpc = OS__BPC_CHAR;
+               break;
+       case ASN_OSUBV_U16:
+               canonical_unit_bits = unit_bits = 16;
+               if(cval->flags & APC_CONSTRAINED)
+                       unit_bits = cval->range_bits;
+               bpc = OS__BPC_U16;
+               break;
+       case ASN_OSUBV_U32:
+               canonical_unit_bits = unit_bits = 32;
+               if(cval->flags & APC_CONSTRAINED)
+                       unit_bits = cval->range_bits;
+               bpc = OS__BPC_U32;
+               break;
+       }
+
+       /*
+        * Allocate the string.
+        */
+       if(!st) {
+               st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size));
+               if(!st) RETURN(RC_FAIL);
+       }
+
+       ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d",
+               csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible",
+               csiz->lower_bound, csiz->upper_bound, csiz->effective_bits);
+
+       if(csiz->flags & APC_EXTENSIBLE) {
+               int inext = per_get_few_bits(pd, 1);
+               if(inext < 0) RETURN(RC_WMORE);
+               if(inext) {
+                       csiz = &asn_DEF_OCTET_STRING_constraints.size;
+                       cval = &asn_DEF_OCTET_STRING_constraints.value;
+                       unit_bits = canonical_unit_bits;
+               }
+       }
+
+       if(csiz->effective_bits >= 0) {
+               FREEMEM(st->buf);
+               if(bpc) {
+                       st->size = csiz->upper_bound * bpc;
+               } else {
+                       st->size = (csiz->upper_bound + 7) >> 3;
+               }
+               st->buf = (uint8_t *)MALLOC(st->size + 1);
+               if(!st->buf) { st->size = 0; RETURN(RC_FAIL); }
+       }
+
+       /* X.691, #16.5: zero-length encoding */
+       /* X.691, #16.6: short fixed length encoding (up to 2 octets) */
+       /* X.691, #16.7: long fixed length encoding (up to 64K octets) */
+       if(csiz->effective_bits == 0) {
+               int ret;
+               if (st->size > 2) { /* X.691 #16 NOTE 1 */
+                       if (aper_get_align(pd) < 0)
+                               RETURN(RC_FAIL);
+               }
+               if(bpc) {
+                       ASN_DEBUG("Decoding OCTET STRING size %ld",
+                               csiz->upper_bound);
+                       ret = OCTET_STRING_per_get_characters(pd, st->buf,
+                               csiz->upper_bound, bpc, unit_bits,
+                               cval->lower_bound, cval->upper_bound, pc);
+                       if(ret > 0) RETURN(RC_FAIL);
+               } else {
+                       ASN_DEBUG("Decoding BIT STRING size %ld",
+                               csiz->upper_bound);
+                       ret = per_get_many_bits(pd, st->buf, 0,
+                                           unit_bits * csiz->upper_bound);
+               }
+               if(ret < 0) RETURN(RC_WMORE);
+               consumed_myself += unit_bits * csiz->upper_bound;
+               st->buf[st->size] = 0;
+               if(bpc == 0) {
+                       int ubs = (csiz->upper_bound & 0x7);
+                       st->bits_unused = ubs ? 8 - ubs : 0;
+               }
+               RETURN(RC_OK);
+       }
+
+       st->size = 0;
+       do {
+               ssize_t raw_len;
+               ssize_t len_bytes;
+               ssize_t len_bits;
+               void *p;
+               int ret;
+
+               /* Get the PER length */
+               if (csiz->upper_bound - csiz->lower_bound == 0)
+                       /* Indefinite length case */
+                       raw_len = aper_get_length(pd, -1, csiz->effective_bits, &repeat);
+               else
+                       raw_len = aper_get_length(pd, csiz->upper_bound - csiz->lower_bound + 1, csiz->effective_bits, &repeat);
+               repeat = 0;
+               if(raw_len < 0) RETURN(RC_WMORE);
+               raw_len += csiz->lower_bound;
+
+               ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)",
+                       (long)csiz->effective_bits, (long)raw_len,
+                       repeat ? "repeat" : "once", td->name);
+
+               if (raw_len > 2) { /* X.691 #16 NOTE 1 */
+                       if (aper_get_align(pd) < 0)
+                               RETURN(RC_FAIL);
+               }
+
+               if(bpc) {
+                       len_bytes = raw_len * bpc;
+                       len_bits = len_bytes * unit_bits;
+               } else {
+                       len_bits = raw_len;
+                       len_bytes = (len_bits + 7) >> 3;
+                       if(len_bits & 0x7)
+                               st->bits_unused = 8 - (len_bits & 0x7);
+                       /* len_bits be multiple of 16K if repeat is set */
+               }
+               p = REALLOC(st->buf, st->size + len_bytes + 1);
+               if(!p) RETURN(RC_FAIL);
+               st->buf = (uint8_t *)p;
+
+               if(bpc) {
+                       ret = OCTET_STRING_per_get_characters(pd,
+                               &st->buf[st->size], raw_len, bpc, unit_bits,
+                               cval->lower_bound, cval->upper_bound, pc);
+                       if(ret > 0) RETURN(RC_FAIL);
+               } else {
+                       ret = per_get_many_bits(pd, &st->buf[st->size],
+                               0, len_bits);
+               }
+               if(ret < 0) RETURN(RC_WMORE);
+               st->size += len_bytes;
+       } while(repeat);
+       st->buf[st->size] = 0;  /* nul-terminate */
+
+       return rval;
+}
+
+asn_enc_rval_t
+OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td,
+                         const asn_per_constraints_t *constraints,
+                         const void *sptr, asn_per_outp_t *po) {
+
+       const asn_OCTET_STRING_specifics_t *specs = td->specifics
+               ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+               : &asn_SPC_OCTET_STRING_specs;
+       const asn_per_constraints_t *pc = constraints ? constraints
+       : td->encoding_constraints.per_constraints;
+       const asn_per_constraint_t *cval;
+       const asn_per_constraint_t *csiz;
+       const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+       asn_enc_rval_t er = { 0, 0, 0 };
+       int inext = 0;          /* Lies not within extension root */
+       unsigned int unit_bits;
+       unsigned int canonical_unit_bits;
+       unsigned int sizeinunits;
+       const uint8_t *buf;
+       int ret;
+       enum {
+               OS__BPC_BIT     = 0,
+               OS__BPC_CHAR    = 1,
+               OS__BPC_U16     = 2,
+               OS__BPC_U32     = 4
+       } bpc;  /* Bytes per character */
+       int ct_extensible;
+
+       if(!st || (!st->buf && st->size))
+               ASN__ENCODE_FAILED;
+
+       if(pc) {
+               cval = &pc->value;
+               csiz = &pc->size;
+       } else {
+               cval = &asn_DEF_OCTET_STRING_constraints.value;
+               csiz = &asn_DEF_OCTET_STRING_constraints.size;
+       }
+       ct_extensible = csiz->flags & APC_EXTENSIBLE;
+
+       switch(specs->subvariant) {
+               default:
+                       /*         case ASN_OSUBV_ANY:
+                                        ASN__ENCODE_FAILED;
+                       */
+               case ASN_OSUBV_BIT:
+                       canonical_unit_bits = unit_bits = 1;
+                       bpc = OS__BPC_BIT;
+                       sizeinunits = st->size * 8 - (st->bits_unused & 0x07);
+                       ASN_DEBUG("BIT STRING of %d bytes",
+                                                               sizeinunits);
+               break;
+        case ASN_OSUBV_ANY:
+       case ASN_OSUBV_STR:
+               canonical_unit_bits = unit_bits = 8;
+/*             if(cval->flags & APC_CONSTRAINED)
+                       unit_bits = 8;
+*/
+               bpc = OS__BPC_CHAR;
+               sizeinunits = st->size;
+               break;
+       case ASN_OSUBV_U16:
+               canonical_unit_bits = unit_bits = 16;
+               if(cval->flags & APC_CONSTRAINED)
+                       unit_bits = cval->range_bits;
+               bpc = OS__BPC_U16;
+               sizeinunits = st->size / 2;
+               break;
+       case ASN_OSUBV_U32:
+               canonical_unit_bits = unit_bits = 32;
+               if(cval->flags & APC_CONSTRAINED)
+                       unit_bits = cval->range_bits;
+               bpc = OS__BPC_U32;
+               sizeinunits = st->size / 4;
+               break;
+       }
+
+       ASN_DEBUG("Encoding %s into %d units of %d bits"
+               " (%ld..%ld, effective %d)%s",
+               td->name, sizeinunits, unit_bits,
+               csiz->lower_bound, csiz->upper_bound,
+               csiz->effective_bits, ct_extensible ? " EXT" : "");
+
+       /* Figure out wheter size lies within PER visible constraint */
+
+       if(csiz->effective_bits >= 0) {
+               if((int)sizeinunits < csiz->lower_bound
+               || (int)sizeinunits > csiz->upper_bound) {
+                       if(ct_extensible) {
+                               cval = &asn_DEF_OCTET_STRING_constraints.value;
+                               csiz = &asn_DEF_OCTET_STRING_constraints.size;
+                               unit_bits = canonical_unit_bits;
+                               inext = 1;
+                       } else
+                               ASN__ENCODE_FAILED;
+               }
+       } else {
+               inext = 0;
+       }
+
+
+       if(ct_extensible) {
+               /* Declare whether length is [not] within extension root */
+               if(per_put_few_bits(po, inext, 1))
+                       ASN__ENCODE_FAILED;
+       }
+
+       /* X.691, #16.5: zero-length encoding */
+       /* X.691, #16.6: short fixed length encoding (up to 2 octets) */
+       /* X.691, #16.7: long fixed length encoding (up to 64K octets) */
+       if(csiz->effective_bits >= 0) {
+               ASN_DEBUG("Encoding %lu bytes (%ld), length in %d bits",
+                               st->size, sizeinunits - csiz->lower_bound,
+                               csiz->effective_bits);
+               if (csiz->effective_bits > 0) {
+                       ret = aper_put_length(po, csiz->upper_bound - csiz->lower_bound + 1, sizeinunits - csiz->lower_bound);
+                       if(ret) ASN__ENCODE_FAILED;
+               }
+               if (st->size > 2) { /* X.691 #16 NOTE 1 */
+                       if (aper_put_align(po) < 0)
+                               ASN__ENCODE_FAILED;
+               }
+               if(bpc) {
+                       ret = OCTET_STRING_per_put_characters(po, st->buf,
+                               sizeinunits, bpc, unit_bits,
+                               cval->lower_bound, cval->upper_bound, pc);
+               } else {
+                       ret = per_put_many_bits(po, st->buf,
+                               sizeinunits * unit_bits);
+               }
+               if(ret) ASN__ENCODE_FAILED;
+               ASN__ENCODED_OK(er);
+       }
+
+       ASN_DEBUG("Encoding %lu bytes", st->size);
+
+       if(sizeinunits == 0) {
+               if(aper_put_length(po, -1, 0))
+                       ASN__ENCODE_FAILED;
+               ASN__ENCODED_OK(er);
+       }
+
+       buf = st->buf;
+       while(sizeinunits) {
+               ssize_t maySave = aper_put_length(po, -1, sizeinunits);
+
+               if(maySave < 0) ASN__ENCODE_FAILED;
+
+               ASN_DEBUG("Encoding %ld of %ld",
+                       (long)maySave, (long)sizeinunits);
+
+               if(bpc) {
+                       ret = OCTET_STRING_per_put_characters(po, buf,
+                               maySave, bpc, unit_bits,
+                               cval->lower_bound, cval->upper_bound, pc);
+               } else {
+                       ret = per_put_many_bits(po, buf, maySave * unit_bits);
+               }
+               if(ret) ASN__ENCODE_FAILED;
+
+               if(bpc)
+                       buf += maySave * bpc;
+               else
+                       buf += maySave >> 3;
+               sizeinunits -= maySave;
+               assert(!(maySave & 0x07) || !sizeinunits);
+       }
+
+       ASN__ENCODED_OK(er);
+}
+
+#endif  /* ASN_DISABLE_PER_SUPPORT */
+
+int
+OCTET_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr,
+                   int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+    const char * const h2c = "0123456789ABCDEF";
+       const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+       char scratch[16 * 3 + 4];
+       char *p = scratch;
+       uint8_t *buf;
+       uint8_t *end;
+       size_t i;
+
+       (void)td;       /* Unused argument */
+
+       if(!st || (!st->buf && st->size))
+               return (cb("<absent>", 8, app_key) < 0) ? -1 : 0;
+
+       /*
+        * Dump the contents of the buffer in hexadecimal.
+        */
+       buf = st->buf;
+       end = buf + st->size;
+       for(i = 0; buf < end; buf++, i++) {
+               if(!(i % 16) && (i || st->size > 16)) {
+                       if(cb(scratch, p - scratch, app_key) < 0)
+                               return -1;
+                       _i_INDENT(1);
+                       p = scratch;
+               }
+               *p++ = h2c[(*buf >> 4) & 0x0F];
+               *p++ = h2c[*buf & 0x0F];
+               *p++ = 0x20;
+       }
+
+       if(p > scratch) {
+               p--;    /* Remove the tail space */
+               if(cb(scratch, p - scratch, app_key) < 0)
+                       return -1;
+       }
+
+       return 0;
+}
+
+int
+OCTET_STRING_print_utf8(const asn_TYPE_descriptor_t *td, const void *sptr,
+                        int ilevel, asn_app_consume_bytes_f *cb,
+                        void *app_key) {
+    const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+
+       (void)td;       /* Unused argument */
+       (void)ilevel;   /* Unused argument */
+
+       if(st && (st->buf || !st->size)) {
+               return (cb(st->buf, st->size, app_key) < 0) ? -1 : 0;
+       } else {
+               return (cb("<absent>", 8, app_key) < 0) ? -1 : 0;
+       }
+}
+
+void
+OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr,
+                  enum asn_struct_free_method method) {
+       OCTET_STRING_t *st = (OCTET_STRING_t *)sptr;
+       const asn_OCTET_STRING_specifics_t *specs;
+       asn_struct_ctx_t *ctx;
+       struct _stack *stck;
+
+       if(!td || !st)
+               return;
+
+       specs = td->specifics
+                   ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+                   : &asn_SPC_OCTET_STRING_specs;
+       ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset);
+
+       ASN_DEBUG("Freeing %s as OCTET STRING", td->name);
+
+       if(st->buf) {
+               FREEMEM(st->buf);
+               st->buf = 0;
+       }
+
+       /*
+        * Remove decode-time stack.
+        */
+       stck = (struct _stack *)ctx->ptr;
+       if(stck) {
+               while(stck->tail) {
+                       struct _stack_el *sel = stck->tail;
+                       stck->tail = sel->prev;
+                       FREEMEM(sel);
+               }
+               FREEMEM(stck);
+       }
+
+    switch(method) {
+    case ASFM_FREE_EVERYTHING:
+        FREEMEM(sptr);
+        break;
+    case ASFM_FREE_UNDERLYING:
+        break;
+    case ASFM_FREE_UNDERLYING_AND_RESET:
+        memset(sptr, 0,
+               td->specifics
+                   ? ((const asn_OCTET_STRING_specifics_t *)(td->specifics))
+                         ->struct_size
+                   : sizeof(OCTET_STRING_t));
+        break;
+    }
+}
+
+/*
+ * Conversion routines.
+ */
+int
+OCTET_STRING_fromBuf(OCTET_STRING_t *st, const char *str, int len) {
+       void *buf;
+
+       if(st == 0 || (str == 0 && len)) {
+               errno = EINVAL;
+               return -1;
+       }
+
+       /*
+        * Clear the OCTET STRING.
+        */
+       if(str == NULL) {
+               FREEMEM(st->buf);
+               st->buf = 0;
+               st->size = 0;
+               return 0;
+       }
+
+       /* Determine the original string size, if not explicitly given */
+       if(len < 0)
+               len = strlen(str);
+
+       /* Allocate and fill the memory */
+       buf = MALLOC(len + 1);
+       if(buf == NULL)
+               return -1;
+
+       memcpy(buf, str, len);
+       ((uint8_t *)buf)[len] = '\0';   /* Couldn't use memcpy(len+1)! */
+       FREEMEM(st->buf);
+       st->buf = (uint8_t *)buf;
+       st->size = len;
+
+       return 0;
+}
+
+OCTET_STRING_t *
+OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, const char *str,
+                         int len) {
+    const asn_OCTET_STRING_specifics_t *specs =
+        td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+                      : &asn_SPC_OCTET_STRING_specs;
+    OCTET_STRING_t *st;
+
+       st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size);
+       if(st && str && OCTET_STRING_fromBuf(st, str, len)) {
+               FREEMEM(st);
+               st = NULL;
+       }
+
+       return st;
+}
+
+/*
+ * Lexicographically compare the common prefix of both strings,
+ * and if it is the same return -1 for the smallest string.
+ */
+int
+OCTET_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
+                     const void *bptr) {
+    const asn_OCTET_STRING_specifics_t *specs = td->specifics;
+    const OCTET_STRING_t *a = aptr;
+    const OCTET_STRING_t *b = bptr;
+
+    assert(!specs || specs->subvariant != ASN_OSUBV_BIT);
+
+    if(a && b) {
+        size_t common_prefix_size = a->size <= b->size ? a->size : b->size;
+        int ret = memcmp(a->buf, b->buf, common_prefix_size);
+        if(ret == 0) {
+            /* Figure out which string with equal prefixes is longer. */
+            if(a->size < b->size) {
+                return -1;
+            } else if(a->size > b->size) {
+                return 1;
+            } else {
+                return 0;
+            }
+        } else {
+            return ret < 0 ? -1 : 1;
+        }
+    } else if(!a && !b) {
+        return 0;
+    } else if(!a) {
+        return -1;
+    } else {
+        return 1;
+    }
+
+}
+
+/*
+ * Biased function for randomizing character values around their limits.
+ */
+static uint32_t
+OCTET_STRING__random_char(unsigned long lb, unsigned long ub) {
+    assert(lb <= ub);
+    switch(asn_random_between(0, 16)) {
+    case 0:
+        if(lb < ub) return lb + 1;
+        /* Fall through */
+    case 1:
+        return lb;
+    case 2:
+        if(lb < ub) return ub - 1;
+        /* Fall through */
+    case 3:
+        return ub;
+    default:
+        return asn_random_between(lb, ub);
+    }
+}
+
+
+size_t
+OCTET_STRING_random_length_constrained(
+    const asn_TYPE_descriptor_t *td,
+    const asn_encoding_constraints_t *constraints, size_t max_length) {
+    const unsigned lengths[] = {0,     1,     2,     3,     4,     8,
+                                126,   127,   128,   16383, 16384, 16385,
+                                65534, 65535, 65536, 65537};
+    size_t rnd_len;
+
+    /* Figure out how far we should go */
+    rnd_len = lengths[asn_random_between(
+        0, sizeof(lengths) / sizeof(lengths[0]) - 1)];
+
+    if(!constraints || !constraints->per_constraints)
+        constraints = &td->encoding_constraints;
+    if(constraints->per_constraints) {
+        const asn_per_constraint_t *pc = &constraints->per_constraints->size;
+        if(pc->flags & APC_CONSTRAINED) {
+            long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length
+                                             ? pc->upper_bound
+                                             : (ssize_t)max_length;
+            if(max_length <= (size_t)pc->lower_bound) {
+                return pc->lower_bound;
+            }
+            if(pc->flags & APC_EXTENSIBLE) {
+                switch(asn_random_between(0, 5)) {
+                case 0:
+                    if(pc->lower_bound > 0) {
+                        rnd_len = pc->lower_bound - 1;
+                        break;
+                    }
+                    /* Fall through */
+                case 1:
+                    rnd_len = pc->upper_bound + 1;
+                    break;
+                case 2:
+                    /* Keep rnd_len from the table */
+                    if(rnd_len <= max_length) {
+                        break;
+                    }
+                    /* Fall through */
+                default:
+                    rnd_len = asn_random_between(pc->lower_bound,
+                                                 suggested_upper_bound);
+                }
+            } else {
+                rnd_len =
+                    asn_random_between(pc->lower_bound, suggested_upper_bound);
+            }
+        } else {
+            rnd_len = asn_random_between(0, max_length);
+        }
+    } else if(rnd_len > max_length) {
+        rnd_len = asn_random_between(0, max_length);
+    }
+
+    return rnd_len;
+}
+
+asn_random_fill_result_t
+OCTET_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr,
+                         const asn_encoding_constraints_t *constraints,
+                         size_t max_length) {
+       const asn_OCTET_STRING_specifics_t *specs = td->specifics
+                               ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+                               : &asn_SPC_OCTET_STRING_specs;
+    asn_random_fill_result_t result_ok = {ARFILL_OK, 1};
+    asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0};
+    asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0};
+    unsigned int unit_bytes = 1;
+    unsigned long clb = 0;  /* Lower bound on char */
+    unsigned long cub = 255;  /* Higher bound on char value */
+    uint8_t *buf;
+    uint8_t *bend;
+    uint8_t *b;
+    size_t rnd_len;
+    OCTET_STRING_t *st;
+
+    if(max_length == 0 && !*sptr) return result_skipped;
+
+    switch(specs->subvariant) {
+    default:
+    case ASN_OSUBV_ANY:
+        return result_failed;
+    case ASN_OSUBV_BIT:
+        /* Handled by BIT_STRING itself. */
+        return result_failed;
+    case ASN_OSUBV_STR:
+        unit_bytes = 1;
+        clb = 0;
+        cub = 255;
+        break;
+    case ASN_OSUBV_U16:
+        unit_bytes = 2;
+        clb = 0;
+        cub = 65535;
+        break;
+    case ASN_OSUBV_U32:
+        unit_bytes = 4;
+        clb = 0;
+        cub = 0x10FFFF;
+        break;
+    }
+
+    if(!constraints || !constraints->per_constraints)
+        constraints = &td->encoding_constraints;
+    if(constraints->per_constraints) {
+        const asn_per_constraint_t *pc = &constraints->per_constraints->value;
+        if(pc->flags & APC_SEMI_CONSTRAINED) {
+            clb = pc->lower_bound;
+        } else if(pc->flags & APC_CONSTRAINED) {
+            clb = pc->lower_bound;
+            cub = pc->upper_bound;
+        }
+    }
+
+    rnd_len =
+        OCTET_STRING_random_length_constrained(td, constraints, max_length);
+
+    buf = CALLOC(unit_bytes, rnd_len + 1);
+    if(!buf) return result_failed;
+
+    bend = &buf[unit_bytes * rnd_len];
+
+    switch(unit_bytes) {
+    case 1:
+        for(b = buf; b < bend; b += unit_bytes) {
+            *(uint8_t *)b = OCTET_STRING__random_char(clb, cub);
+        }
+        *(uint8_t *)b = 0;
+        break;
+    case 2:
+        for(b = buf; b < bend; b += unit_bytes) {
+            uint32_t code = OCTET_STRING__random_char(clb, cub);
+            b[0] = code >> 8;
+            b[1] = code;
+        }
+        *(uint16_t *)b = 0;
+        break;
+    case 4:
+        for(b = buf; b < bend; b += unit_bytes) {
+            uint32_t code = OCTET_STRING__random_char(clb, cub);
+            b[0] = code >> 24;
+            b[1] = code >> 16;
+            b[2] = code >> 8;
+            b[3] = code;
+        }
+        *(uint32_t *)b = 0;
+        break;
+    }
+
+    if(*sptr) {
+        st = *sptr;
+        FREEMEM(st->buf);
+    } else {
+        st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size));
+        if(!st) {
+            FREEMEM(buf);
+            return result_failed;
+        }
+    }
+
+    st->buf = buf;
+    st->size = unit_bytes * rnd_len;
+
+    result_ok.length = st->size;
+    return result_ok;
+}
diff --git a/e2ap/lib/OCTET_STRING_oer.c b/e2ap/lib/OCTET_STRING_oer.c
new file mode 100644 (file)
index 0000000..c16faea
--- /dev/null
@@ -0,0 +1,171 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN_DISABLE_OER_SUPPORT
+
+#include <asn_internal.h>
+#include <OCTET_STRING.h>
+#include <errno.h>
+
+asn_dec_rval_t
+OCTET_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx,
+                        const asn_TYPE_descriptor_t *td,
+                        const asn_oer_constraints_t *constraints, void **sptr,
+                        const void *ptr, size_t size) {
+    const asn_OCTET_STRING_specifics_t *specs =
+        td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+                      : &asn_SPC_OCTET_STRING_specs;
+    OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr;
+    const asn_oer_constraints_t *cts =
+        constraints ? constraints : td->encoding_constraints.oer_constraints;
+    ssize_t ct_size = cts ? cts->size : -1;
+    asn_dec_rval_t rval = {RC_OK, 0};
+    size_t expected_length = 0;
+
+    size_t unit_bytes;
+    switch(specs->subvariant) {
+    default:
+    case ASN_OSUBV_BIT:
+        ASN_DEBUG("Invalid use of OCTET STRING to decode BIT STRING");
+        ASN__DECODE_FAILED;
+    case ASN_OSUBV_ANY:
+        /* Fall through */
+    case ASN_OSUBV_STR:
+        unit_bytes = 1;
+        break;
+    case ASN_OSUBV_U16:
+        unit_bytes = 2;
+        break;
+    case ASN_OSUBV_U32:
+        unit_bytes = 4;
+        break;
+    }
+
+    (void)opt_codec_ctx;
+
+    if(!st) {
+        st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size));
+        if(!st) ASN__DECODE_FAILED;
+    }
+
+    if(ct_size >= 0) {
+        expected_length = unit_bytes * ct_size;
+    } else {
+        /*
+         * X.696 (08/2015) #27.2
+         * Encode length determinant as _number of octets_, but only
+         * if upper bound is not equal to lower bound.
+         */
+        ssize_t len_len = oer_fetch_length(ptr, size, &expected_length);
+        if(len_len > 0) {
+            rval.consumed = len_len;
+            ptr = (const char *)ptr + len_len;
+            size -= len_len;
+        } else if(len_len == 0) {
+            ASN__DECODE_STARVED;
+        } else if(len_len < 0) {
+            ASN__DECODE_FAILED;
+        }
+
+        if(expected_length % unit_bytes != 0) {
+            ASN_DEBUG(
+                "Data size %" ASN_PRI_SIZE " bytes is not consistent with multiplier %" ASN_PRI_SIZE "",
+                expected_length, unit_bytes);
+            ASN__DECODE_FAILED;
+        }
+    }
+
+    if(size < expected_length) {
+        ASN__DECODE_STARVED;
+    } else {
+        uint8_t *buf = MALLOC(expected_length + 1);
+        if(buf == NULL) {
+            ASN__DECODE_FAILED;
+        } else {
+            memcpy(buf, ptr, expected_length);
+            buf[expected_length] = '\0';
+        }
+        FREEMEM(st->buf);
+        st->buf = buf;
+        st->size = expected_length;
+
+        rval.consumed += expected_length;
+        return rval;
+    }
+}
+
+/*
+ * Encode as Canonical OER.
+ */
+asn_enc_rval_t
+OCTET_STRING_encode_oer(const asn_TYPE_descriptor_t *td,
+                        const asn_oer_constraints_t *constraints,
+                        const void *sptr, asn_app_consume_bytes_f *cb,
+                        void *app_key) {
+    const asn_OCTET_STRING_specifics_t *specs =
+        td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+                      : &asn_SPC_OCTET_STRING_specs;
+    const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+    const asn_oer_constraints_t *cts =
+        constraints ? constraints : td->encoding_constraints.oer_constraints;
+    ssize_t ct_size = cts ? cts->size : -1;
+    asn_enc_rval_t er = {0, 0, 0};
+
+    if(!st) ASN__ENCODE_FAILED;
+
+    ASN_DEBUG("Encoding %s %" ASN_PRI_SIZE " as OCTET STRING", td ? td->name : "", st->size);
+
+    if(ct_size >= 0) {
+        /*
+         * Check that available data matches the constraint
+         */
+        size_t unit_bytes;
+        switch(specs->subvariant) {
+        default:
+        case ASN_OSUBV_BIT:
+            ASN_DEBUG("Invalid use of OCTET STRING to encode BIT STRING");
+            ASN__ENCODE_FAILED;
+        case ASN_OSUBV_ANY:
+            /* Fall through */
+        case ASN_OSUBV_STR:
+            unit_bytes = 1;
+            break;
+        case ASN_OSUBV_U16:
+            unit_bytes = 2;
+            break;
+        case ASN_OSUBV_U32:
+            unit_bytes = 4;
+            break;
+        }
+
+        if(st->size != unit_bytes * (size_t)ct_size) {
+            ASN_DEBUG(
+                "Trying to encode %s (%" ASN_PRI_SIZE " bytes) which doesn't fit SIZE "
+                "constraint (%" ASN_PRI_SIZE ")",
+                td->name, st->size, ct_size);
+            ASN__ENCODE_FAILED;
+        }
+    } else {
+        /*
+         * X.696 (08/2015) #27.2
+         * Encode length determinant as _number of octets_, but only
+         * if upper bound is not equal to lower bound.
+         */
+        ssize_t ret = oer_serialize_length(st->size, cb, app_key);
+        if(ret < 0) {
+            ASN__ENCODE_FAILED;
+        }
+        er.encoded += ret;
+    }
+
+    er.encoded += st->size;
+    if(cb(st->buf, st->size, app_key) < 0) {
+        ASN__ENCODE_FAILED;
+    } else {
+        ASN__ENCODED_OK(er);
+    }
+}
+
+#endif  /* ASN_DISABLE_OER_SUPPORT */
diff --git a/e2ap/lib/OPEN_TYPE.c b/e2ap/lib/OPEN_TYPE.c
new file mode 100644 (file)
index 0000000..a54e99c
--- /dev/null
@@ -0,0 +1,509 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <OPEN_TYPE.h>
+#include <constr_CHOICE.h>
+#include <per_opentype.h>
+#include <errno.h>
+
+asn_TYPE_operation_t asn_OP_OPEN_TYPE = {
+       OPEN_TYPE_free,
+       OPEN_TYPE_print,
+       OPEN_TYPE_compare,
+       OPEN_TYPE_decode_ber,
+       OPEN_TYPE_encode_der,
+       OPEN_TYPE_decode_xer,
+       OPEN_TYPE_encode_xer,
+#ifdef ASN_DISABLE_OER_SUPPORT
+       0, 0,   /* No OER support, use "-gen-OER" to enable */
+#else
+       OPEN_TYPE_decode_oer,
+       OPEN_TYPE_encode_oer,
+#endif
+#ifdef ASN_DISABLE_PER_SUPPORT
+       0, 0, 0, 0,
+#else
+       OPEN_TYPE_decode_uper,
+       OPEN_TYPE_encode_uper,
+       OPEN_TYPE_decode_aper,
+       OPEN_TYPE_encode_aper,
+#endif
+       0,  /* Random fill is not supported for open type */
+       0       /* Use generic outmost tag fetcher */
+};
+
+#undef  ADVANCE
+#define ADVANCE(num_bytes)               \
+    do {                                 \
+        size_t num = num_bytes;          \
+        ptr = ((const char *)ptr) + num; \
+        size -= num;                     \
+        consumed_myself += num;          \
+    } while(0)
+
+asn_dec_rval_t
+OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx,
+                  const asn_TYPE_descriptor_t *td, void *sptr,
+                  const asn_TYPE_member_t *elm, const void *ptr, size_t size) {
+    size_t consumed_myself = 0;
+    asn_type_selector_result_t selected;
+    void *memb_ptr;   /* Pointer to the member */
+    void **memb_ptr2; /* Pointer to that pointer */
+    void *inner_value;
+    asn_dec_rval_t rv;
+
+    if(!(elm->flags & ATF_OPEN_TYPE)) {
+        ASN__DECODE_FAILED;
+    }
+
+    if(!elm->type_selector) {
+        ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s",
+                  td->name, elm->name, elm->type->name);
+        ASN__DECODE_FAILED;
+    }
+
+    selected = elm->type_selector(td, sptr);
+    if(!selected.presence_index) {
+        ASN__DECODE_FAILED;
+    }
+
+    /* Fetch the pointer to this member */
+    if(elm->flags & ATF_POINTER) {
+        memb_ptr2 = (void **)((char *)sptr + elm->memb_offset);
+    } else {
+        memb_ptr = (char *)sptr + elm->memb_offset;
+        memb_ptr2 = &memb_ptr;
+    }
+    if(*memb_ptr2 != NULL) {
+        /* Make sure we reset the structure first before encoding */
+        if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) {
+            ASN__DECODE_FAILED;
+        }
+    }
+
+    inner_value =
+        (char *)*memb_ptr2
+        + elm->type->elements[selected.presence_index - 1].memb_offset;
+
+    ASN_DEBUG("presence %d\n", selected.presence_index);
+
+    rv = selected.type_descriptor->op->ber_decoder(
+        opt_codec_ctx, selected.type_descriptor, &inner_value, ptr, size,
+        elm->tag_mode);
+    ADVANCE(rv.consumed);
+    rv.consumed = 0;
+    switch(rv.code) {
+    case RC_OK:
+        if(CHOICE_variant_set_presence(elm->type, *memb_ptr2,
+                                       selected.presence_index)
+           == 0) {
+            rv.code = RC_OK;
+            rv.consumed = consumed_myself;
+            return rv;
+        } else {
+            /* Oh, now a full-blown failure failure */
+        }
+        /* Fall through */
+    case RC_FAIL:
+        rv.consumed = consumed_myself;
+        /* Fall through */
+    case RC_WMORE:
+        break;
+    }
+
+    if(*memb_ptr2) {
+        if(elm->flags & ATF_POINTER) {
+            ASN_STRUCT_FREE(*selected.type_descriptor, inner_value);
+            *memb_ptr2 = NULL;
+        } else {
+            ASN_STRUCT_RESET(*selected.type_descriptor,
+                                          inner_value);
+        }
+    }
+    return rv;
+}
+
+asn_dec_rval_t
+OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx,
+                  const asn_TYPE_descriptor_t *td, void *sptr,
+                  const asn_TYPE_member_t *elm, const void *ptr, size_t size) {
+    size_t consumed_myself = 0;
+    asn_type_selector_result_t selected;
+    void *memb_ptr;   /* Pointer to the member */
+    void **memb_ptr2; /* Pointer to that pointer */
+    void *inner_value;
+    asn_dec_rval_t rv;
+
+    int xer_context = 0;
+    ssize_t ch_size;
+    pxer_chunk_type_e ch_type;
+
+    if(!(elm->flags & ATF_OPEN_TYPE)) {
+        ASN__DECODE_FAILED;
+    }
+
+    if(!elm->type_selector) {
+        ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s",
+                  td->name, elm->name, elm->type->name);
+        ASN__DECODE_FAILED;
+    }
+
+    selected = elm->type_selector(td, sptr);
+    if(!selected.presence_index) {
+        ASN__DECODE_FAILED;
+    }
+
+    /* Fetch the pointer to this member */
+    assert(elm->flags == ATF_OPEN_TYPE);
+    if(elm->flags & ATF_POINTER) {
+        memb_ptr2 = (void **)((char *)sptr + elm->memb_offset);
+    } else {
+        memb_ptr = (char *)sptr + elm->memb_offset;
+        memb_ptr2 = &memb_ptr;
+    }
+    if(*memb_ptr2 != NULL) {
+        /* Make sure we reset the structure first before encoding */
+        if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0)
+           != 0) {
+            ASN__DECODE_FAILED;
+        }
+    }
+
+    /*
+     * Confirm wrapper.
+     */
+    for(;;) {
+        ch_size = xer_next_token(&xer_context, ptr, size, &ch_type);
+        if(ch_size < 0) {
+            ASN__DECODE_FAILED;
+        } else {
+            switch(ch_type) {
+            case PXER_WMORE:
+                ASN__DECODE_STARVED;
+            case PXER_COMMENT:
+            case PXER_TEXT:
+                ADVANCE(ch_size);
+                continue;
+            case PXER_TAG:
+                break;
+            }
+            break;
+        }
+    }
+
+    /*
+     * Wrapper value confirmed.
+     */
+    switch(xer_check_tag(ptr, ch_size, elm->name)) {
+    case XCT_OPENING:
+        ADVANCE(ch_size);
+        break;
+    case XCT_BROKEN:
+    default:
+        ASN__DECODE_FAILED;
+    }
+
+    inner_value =
+        (char *)*memb_ptr2
+        + elm->type->elements[selected.presence_index - 1].memb_offset;
+
+    rv = selected.type_descriptor->op->xer_decoder(
+        opt_codec_ctx, selected.type_descriptor, &inner_value, NULL, ptr, size);
+    ADVANCE(rv.consumed);
+    rv.consumed = 0;
+    switch(rv.code) {
+    case RC_OK:
+        if(CHOICE_variant_set_presence(elm->type, *memb_ptr2,
+                                       selected.presence_index)
+           == 0) {
+            break;
+        } else {
+            rv.code = RC_FAIL;
+        }
+        /* Fall through */
+    case RC_FAIL:
+        /* Point to a best position where failure occurred */
+        rv.consumed = consumed_myself;
+        /* Fall through */
+    case RC_WMORE:
+        /* Wrt. rv.consumed==0:
+         * In case a genuine RC_WMORE, the whole Open Type decoding
+         * will have to be restarted.
+         */
+        if(*memb_ptr2) {
+            if(elm->flags & ATF_POINTER) {
+                ASN_STRUCT_FREE(*selected.type_descriptor, inner_value);
+                *memb_ptr2 = NULL;
+            } else {
+                ASN_STRUCT_RESET(*selected.type_descriptor,
+                                              inner_value);
+            }
+        }
+        return rv;
+    }
+
+    /*
+     * Finalize wrapper.
+     */
+    for(;;) {
+        ch_size = xer_next_token(&xer_context, ptr, size, &ch_type);
+        if(ch_size < 0) {
+            ASN__DECODE_FAILED;
+        } else {
+            switch(ch_type) {
+            case PXER_WMORE:
+                ASN__DECODE_STARVED;
+            case PXER_COMMENT:
+            case PXER_TEXT:
+                ADVANCE(ch_size);
+                continue;
+            case PXER_TAG:
+                break;
+            }
+            break;
+        }
+    }
+
+    /*
+     * Wrapper value confirmed.
+     */
+    switch(xer_check_tag(ptr, ch_size, elm->name)) {
+    case XCT_CLOSING:
+        ADVANCE(ch_size);
+        break;
+    case XCT_BROKEN:
+    default:
+        ASN__DECODE_FAILED;
+    }
+
+    rv.consumed += consumed_myself;
+
+    return rv;
+}
+
+
+#ifndef  ASN_DISABLE_PER_SUPPORT
+
+asn_dec_rval_t
+OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx,
+                   const asn_TYPE_descriptor_t *td, void *sptr,
+                   const asn_TYPE_member_t *elm, asn_per_data_t *pd) {
+    asn_type_selector_result_t selected;
+    void *memb_ptr;   /* Pointer to the member */
+    void **memb_ptr2; /* Pointer to that pointer */
+    void *inner_value;
+    asn_dec_rval_t rv;
+
+    if(!(elm->flags & ATF_OPEN_TYPE)) {
+        ASN__DECODE_FAILED;
+    }
+
+    if(!elm->type_selector) {
+        ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s",
+                  td->name, elm->name, elm->type->name);
+        ASN__DECODE_FAILED;
+    }
+
+    selected = elm->type_selector(td, sptr);
+    if(!selected.presence_index) {
+        ASN__DECODE_FAILED;
+    }
+
+    /* Fetch the pointer to this member */
+    assert(elm->flags == ATF_OPEN_TYPE);
+    if(elm->flags & ATF_POINTER) {
+        memb_ptr2 = (void **)((char *)sptr + elm->memb_offset);
+    } else {
+        memb_ptr = (char *)sptr + elm->memb_offset;
+        memb_ptr2 = &memb_ptr;
+    }
+    if(*memb_ptr2 != NULL) {
+        /* Make sure we reset the structure first before encoding */
+        if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0)
+           != 0) {
+            ASN__DECODE_FAILED;
+        }
+    }
+
+    inner_value =
+        (char *)*memb_ptr2
+        + elm->type->elements[selected.presence_index - 1].memb_offset;
+
+    rv = uper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL,
+                            &inner_value, pd);
+    switch(rv.code) {
+    case RC_OK:
+        if(CHOICE_variant_set_presence(elm->type, *memb_ptr2,
+                                       selected.presence_index)
+           == 0) {
+            break;
+        } else {
+            rv.code = RC_FAIL;
+        }
+        /* Fall through */
+    case RC_WMORE:
+    case RC_FAIL:
+        if(*memb_ptr2) {
+            if(elm->flags & ATF_POINTER) {
+                ASN_STRUCT_FREE(*selected.type_descriptor, inner_value);
+                *memb_ptr2 = NULL;
+            } else {
+                ASN_STRUCT_RESET(*selected.type_descriptor,
+                                              inner_value);
+            }
+        }
+    }
+    return rv;
+}
+
+asn_enc_rval_t
+OPEN_TYPE_encode_uper(const asn_TYPE_descriptor_t *td,
+                      const asn_per_constraints_t *constraints,
+                      const void *sptr, asn_per_outp_t *po) {
+    const void *memb_ptr;   /* Pointer to the member */
+    asn_TYPE_member_t *elm; /* CHOICE's element */
+    asn_enc_rval_t er = {0,0,0};
+    unsigned present;
+
+    (void)constraints;
+
+    present = CHOICE_variant_get_presence(td, sptr);
+    if(present == 0 || present > td->elements_count) {
+        ASN__ENCODE_FAILED;
+    } else {
+        present--;
+    }
+
+    ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present);
+
+    elm = &td->elements[present];
+    if(elm->flags & ATF_POINTER) {
+        /* Member is a pointer to another structure */
+        memb_ptr =
+            *(const void *const *)((const char *)sptr + elm->memb_offset);
+        if(!memb_ptr) ASN__ENCODE_FAILED;
+    } else {
+        memb_ptr = (const char *)sptr + elm->memb_offset;
+    }
+
+    if(uper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) {
+        ASN__ENCODE_FAILED;
+    }
+
+    er.encoded = 0;
+    ASN__ENCODED_OK(er);
+}
+
+asn_dec_rval_t
+OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx,
+                   const asn_TYPE_descriptor_t *td, void *sptr,
+                   const asn_TYPE_member_t *elm, asn_per_data_t *pd) {
+    asn_type_selector_result_t selected;
+    void *memb_ptr;   /* Pointer to the member */
+    void **memb_ptr2; /* Pointer to that pointer */
+    void *inner_value;
+    asn_dec_rval_t rv;
+
+    if(!(elm->flags & ATF_OPEN_TYPE)) {
+        ASN__DECODE_FAILED;
+    }
+
+    if(!elm->type_selector) {
+        ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s",
+                  td->name, elm->name, elm->type->name);
+        ASN__DECODE_FAILED;
+    }
+
+    selected = elm->type_selector(td, sptr);
+    if(!selected.presence_index) {
+        ASN__DECODE_FAILED;
+    }
+
+    /* Fetch the pointer to this member */
+    assert(elm->flags == ATF_OPEN_TYPE);
+    if(elm->flags & ATF_POINTER) {
+        memb_ptr2 = (void **)((char *)sptr + elm->memb_offset);
+    } else {
+        memb_ptr = (char *)sptr + elm->memb_offset;
+        memb_ptr2 = &memb_ptr;
+    }
+    if(*memb_ptr2 != NULL) {
+        /* Make sure we reset the structure first before encoding */
+        if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0)
+           != 0) {
+            ASN__DECODE_FAILED;
+        }
+    }
+
+    inner_value =
+        (char *)*memb_ptr2
+        + elm->type->elements[selected.presence_index - 1].memb_offset;
+
+    rv = aper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL,
+                            &inner_value, pd);
+    switch(rv.code) {
+    case RC_OK:
+        if(CHOICE_variant_set_presence(elm->type, *memb_ptr2,
+                                       selected.presence_index)
+           == 0) {
+            break;
+        } else {
+            rv.code = RC_FAIL;
+        }
+        /* Fall through */
+    case RC_WMORE:
+    case RC_FAIL:
+        if(*memb_ptr2) {
+            if(elm->flags & ATF_POINTER) {
+                ASN_STRUCT_FREE(*selected.type_descriptor, inner_value);
+                *memb_ptr2 = NULL;
+            } else {
+                ASN_STRUCT_RESET(*selected.type_descriptor,
+                                              inner_value);
+            }
+        }
+    }
+    return rv;
+}
+
+asn_enc_rval_t
+OPEN_TYPE_encode_aper(const asn_TYPE_descriptor_t *td,
+                      const asn_per_constraints_t *constraints,
+                      const void *sptr, asn_per_outp_t *po) {
+    const void *memb_ptr;   /* Pointer to the member */
+    asn_TYPE_member_t *elm; /* CHOICE's element */
+    asn_enc_rval_t er = {0,0,0};
+    unsigned present;
+
+    (void)constraints;
+
+    present = CHOICE_variant_get_presence(td, sptr);
+    if(present == 0 || present > td->elements_count) {
+        ASN__ENCODE_FAILED;
+    } else {
+        present--;
+    }
+
+    ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present);
+
+    elm = &td->elements[present];
+    if(elm->flags & ATF_POINTER) {
+        /* Member is a pointer to another structure */
+        memb_ptr =
+            *(const void *const *)((const char *)sptr + elm->memb_offset);
+        if(!memb_ptr) ASN__ENCODE_FAILED;
+    } else {
+        memb_ptr = (const char *)sptr + elm->memb_offset;
+    }
+
+    if(aper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) {
+        ASN__ENCODE_FAILED;
+    }
+
+    er.encoded = 0;
+    ASN__ENCODED_OK(er);
+}
+
+#endif  /* ASN_DISABLE_PER_SUPPORT */
diff --git a/e2ap/lib/OPEN_TYPE_oer.c b/e2ap/lib/OPEN_TYPE_oer.c
new file mode 100644 (file)
index 0000000..dd2f5c6
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <OPEN_TYPE.h>
+#include <constr_CHOICE.h>
+#include <errno.h>
+
+asn_dec_rval_t
+OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx,
+                  const asn_TYPE_descriptor_t *td, void *sptr,
+                  asn_TYPE_member_t *elm, const void *ptr, size_t size) {
+    asn_type_selector_result_t selected;
+    void *memb_ptr;   /* Pointer to the member */
+    void **memb_ptr2; /* Pointer to that pointer */
+    void *inner_value;
+    asn_dec_rval_t rv;
+    size_t ot_ret;
+
+
+    if(!(elm->flags & ATF_OPEN_TYPE)) {
+        ASN__DECODE_FAILED;
+    }
+
+    if(!elm->type_selector) {
+        ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s",
+                  td->name, elm->name, elm->type->name);
+        ASN__DECODE_FAILED;
+    }
+
+    selected = elm->type_selector(td, sptr);
+    if(!selected.presence_index) {
+        ASN__DECODE_FAILED;
+    }
+
+    /* Fetch the pointer to this member */
+    if(elm->flags & ATF_POINTER) {
+        memb_ptr2 = (void **)((char *)sptr + elm->memb_offset);
+    } else {
+        memb_ptr = (char *)sptr + elm->memb_offset;
+        memb_ptr2 = &memb_ptr;
+    }
+    if(*memb_ptr2 != NULL) {
+        /* Make sure we reset the structure first before encoding */
+        if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) {
+            ASN__DECODE_FAILED;
+        }
+    }
+
+    inner_value =
+        (char *)*memb_ptr2
+        + elm->type->elements[selected.presence_index - 1].memb_offset;
+
+    ot_ret = oer_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL,
+                               &inner_value, ptr, size);
+    switch(ot_ret) {
+    default:
+        if(CHOICE_variant_set_presence(elm->type, *memb_ptr2,
+                                       selected.presence_index)
+           == 0) {
+            rv.code = RC_OK;
+            rv.consumed = ot_ret;
+            return rv;
+        } else {
+            /* Oh, now a full-blown failure failure */
+        }
+        /* Fall through */
+    case -1:
+        rv.code = RC_FAIL;
+        rv.consumed = ot_ret;
+        break;
+    case 0:
+        rv.code = RC_WMORE;
+        rv.consumed = 0;
+        break;
+    }
+
+    if(*memb_ptr2) {
+        const asn_CHOICE_specifics_t *specs =
+            selected.type_descriptor->specifics;
+        if(elm->flags & ATF_POINTER) {
+            ASN_STRUCT_FREE(*selected.type_descriptor, inner_value);
+            *memb_ptr2 = NULL;
+        } else {
+            ASN_STRUCT_FREE_CONTENTS_ONLY(*selected.type_descriptor,
+                                          inner_value);
+            memset(*memb_ptr2, 0, specs->struct_size);
+        }
+    }
+    return rv;
+}
diff --git a/e2ap/lib/OffsetOfNbiotChannelNumberToEARFCN.c b/e2ap/lib/OffsetOfNbiotChannelNumberToEARFCN.c
new file mode 100644 (file)
index 0000000..8537475
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "OffsetOfNbiotChannelNumberToEARFCN.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_OffsetOfNbiotChannelNumberToEARFCN_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_OffsetOfNbiotChannelNumberToEARFCN_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  5,  5,  0,  20 }   /* (0..20,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_OffsetOfNbiotChannelNumberToEARFCN_value2enum_1[] = {
+       { 0,    8,      "minusTen" },
+       { 1,    9,      "minusNine" },
+       { 2,    10,     "minusEight" },
+       { 3,    10,     "minusSeven" },
+       { 4,    8,      "minusSix" },
+       { 5,    9,      "minusFive" },
+       { 6,    9,      "minusFour" },
+       { 7,    10,     "minusThree" },
+       { 8,    8,      "minusTwo" },
+       { 9,    8,      "minusOne" },
+       { 10,   16,     "minusZeroDotFive" },
+       { 11,   4,      "zero" },
+       { 12,   3,      "one" },
+       { 13,   3,      "two" },
+       { 14,   5,      "three" },
+       { 15,   4,      "four" },
+       { 16,   4,      "five" },
+       { 17,   3,      "six" },
+       { 18,   5,      "seven" },
+       { 19,   5,      "eight" },
+       { 20,   4,      "nine" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_OffsetOfNbiotChannelNumberToEARFCN_enum2value_1[] = {
+       19,     /* eight(19) */
+       16,     /* five(16) */
+       15,     /* four(15) */
+       2,      /* minusEight(2) */
+       5,      /* minusFive(5) */
+       6,      /* minusFour(6) */
+       1,      /* minusNine(1) */
+       9,      /* minusOne(9) */
+       3,      /* minusSeven(3) */
+       4,      /* minusSix(4) */
+       0,      /* minusTen(0) */
+       7,      /* minusThree(7) */
+       8,      /* minusTwo(8) */
+       10,     /* minusZeroDotFive(10) */
+       20,     /* nine(20) */
+       12,     /* one(12) */
+       18,     /* seven(18) */
+       17,     /* six(17) */
+       14,     /* three(14) */
+       13,     /* two(13) */
+       11      /* zero(11) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_OffsetOfNbiotChannelNumberToEARFCN_specs_1 = {
+       asn_MAP_OffsetOfNbiotChannelNumberToEARFCN_value2enum_1,        /* "tag" => N; sorted by tag */
+       asn_MAP_OffsetOfNbiotChannelNumberToEARFCN_enum2value_1,        /* N => "tag"; sorted by N */
+       21,     /* Number of elements in the maps */
+       22,     /* Extensions before this member */
+       1,      /* Strict enumeration */
+       0,      /* Native long size */
+       0
+};
+static const ber_tlv_tag_t asn_DEF_OffsetOfNbiotChannelNumberToEARFCN_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_OffsetOfNbiotChannelNumberToEARFCN = {
+       "OffsetOfNbiotChannelNumberToEARFCN",
+       "OffsetOfNbiotChannelNumberToEARFCN",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_OffsetOfNbiotChannelNumberToEARFCN_tags_1,
+       sizeof(asn_DEF_OffsetOfNbiotChannelNumberToEARFCN_tags_1)
+               /sizeof(asn_DEF_OffsetOfNbiotChannelNumberToEARFCN_tags_1[0]), /* 1 */
+       asn_DEF_OffsetOfNbiotChannelNumberToEARFCN_tags_1,      /* Same as above */
+       sizeof(asn_DEF_OffsetOfNbiotChannelNumberToEARFCN_tags_1)
+               /sizeof(asn_DEF_OffsetOfNbiotChannelNumberToEARFCN_tags_1[0]), /* 1 */
+       { &asn_OER_type_OffsetOfNbiotChannelNumberToEARFCN_constr_1, &asn_PER_type_OffsetOfNbiotChannelNumberToEARFCN_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_OffsetOfNbiotChannelNumberToEARFCN_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/Old-ECGIs.c b/e2ap/lib/Old-ECGIs.c
new file mode 100644 (file)
index 0000000..3abc45c
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Old-ECGIs.h"
+
+#include "ECGI.h"
+static asn_oer_constraints_t asn_OER_type_Old_ECGIs_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_Old_ECGIs_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Old_ECGIs_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_Old_ECGIs_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_Old_ECGIs_specs_1 = {
+       sizeof(struct Old_ECGIs),
+       offsetof(struct Old_ECGIs, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_Old_ECGIs = {
+       "Old-ECGIs",
+       "Old-ECGIs",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_Old_ECGIs_tags_1,
+       sizeof(asn_DEF_Old_ECGIs_tags_1)
+               /sizeof(asn_DEF_Old_ECGIs_tags_1[0]), /* 1 */
+       asn_DEF_Old_ECGIs_tags_1,       /* Same as above */
+       sizeof(asn_DEF_Old_ECGIs_tags_1)
+               /sizeof(asn_DEF_Old_ECGIs_tags_1[0]), /* 1 */
+       { &asn_OER_type_Old_ECGIs_constr_1, &asn_PER_type_Old_ECGIs_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_Old_ECGIs_1,
+       1,      /* Single element */
+       &asn_SPC_Old_ECGIs_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/Oneframe.c b/e2ap/lib/Oneframe.c
new file mode 100644 (file)
index 0000000..4ba0b3d
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Oneframe.h"
+
+int
+Oneframe_constraint(const 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 == 6)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_Oneframe_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       6       /* (SIZE(6..6)) */};
+asn_per_constraints_t asn_PER_type_Oneframe_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  6,  6 }        /* (SIZE(6..6)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_Oneframe_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Oneframe = {
+       "Oneframe",
+       "Oneframe",
+       &asn_OP_BIT_STRING,
+       asn_DEF_Oneframe_tags_1,
+       sizeof(asn_DEF_Oneframe_tags_1)
+               /sizeof(asn_DEF_Oneframe_tags_1[0]), /* 1 */
+       asn_DEF_Oneframe_tags_1,        /* Same as above */
+       sizeof(asn_DEF_Oneframe_tags_1)
+               /sizeof(asn_DEF_Oneframe_tags_1[0]), /* 1 */
+       { &asn_OER_type_Oneframe_constr_1, &asn_PER_type_Oneframe_constr_1, Oneframe_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/PA-Values.c b/e2ap/lib/PA-Values.c
new file mode 100644 (file)
index 0000000..2712d96
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PA-Values.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_PA_Values_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_PA_Values_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  7 }    /* (0..7,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_PA_Values_value2enum_1[] = {
+       { 0,    4,      "dB-6" },
+       { 1,    9,      "dB-4dot77" },
+       { 2,    4,      "dB-3" },
+       { 3,    9,      "dB-1dot77" },
+       { 4,    3,      "dB0" },
+       { 5,    3,      "dB1" },
+       { 6,    3,      "dB2" },
+       { 7,    3,      "dB3" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_PA_Values_enum2value_1[] = {
+       3,      /* dB-1dot77(3) */
+       2,      /* dB-3(2) */
+       1,      /* dB-4dot77(1) */
+       0,      /* dB-6(0) */
+       4,      /* dB0(4) */
+       5,      /* dB1(5) */
+       6,      /* dB2(6) */
+       7       /* dB3(7) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_PA_Values_specs_1 = {
+       asn_MAP_PA_Values_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_PA_Values_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_PA_Values_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_PA_Values = {
+       "PA-Values",
+       "PA-Values",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_PA_Values_tags_1,
+       sizeof(asn_DEF_PA_Values_tags_1)
+               /sizeof(asn_DEF_PA_Values_tags_1[0]), /* 1 */
+       asn_DEF_PA_Values_tags_1,       /* Same as above */
+       sizeof(asn_DEF_PA_Values_tags_1)
+               /sizeof(asn_DEF_PA_Values_tags_1[0]), /* 1 */
+       { &asn_OER_type_PA_Values_constr_1, &asn_PER_type_PA_Values_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_PA_Values_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/PCI.c b/e2ap/lib/PCI.c
new file mode 100644 (file)
index 0000000..6d7bd05
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PCI.h"
+
+int
+PCI_constraint(const 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 >= 0 && value <= 503)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_PCI_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_PCI_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  9,  9,  0,  503 }  /* (0..503,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_PCI_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_PCI = {
+       "PCI",
+       "PCI",
+       &asn_OP_NativeInteger,
+       asn_DEF_PCI_tags_1,
+       sizeof(asn_DEF_PCI_tags_1)
+               /sizeof(asn_DEF_PCI_tags_1[0]), /* 1 */
+       asn_DEF_PCI_tags_1,     /* Same as above */
+       sizeof(asn_DEF_PCI_tags_1)
+               /sizeof(asn_DEF_PCI_tags_1[0]), /* 1 */
+       { &asn_OER_type_PCI_constr_1, &asn_PER_type_PCI_constr_1, PCI_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/PDCP-SN.c b/e2ap/lib/PDCP-SN.c
new file mode 100644 (file)
index 0000000..41b364f
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PDCP-SN.h"
+
+int
+PDCP_SN_constraint(const 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 >= 0 && value <= 4095)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_PDCP_SN_constr_1 CC_NOTUSED = {
+       { 2, 1 }        /* (0..4095) */,
+       -1};
+asn_per_constraints_t asn_PER_type_PDCP_SN_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       12,  12,  0,  4095 }   /* (0..4095) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_PDCP_SN_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_PDCP_SN = {
+       "PDCP-SN",
+       "PDCP-SN",
+       &asn_OP_NativeInteger,
+       asn_DEF_PDCP_SN_tags_1,
+       sizeof(asn_DEF_PDCP_SN_tags_1)
+               /sizeof(asn_DEF_PDCP_SN_tags_1[0]), /* 1 */
+       asn_DEF_PDCP_SN_tags_1, /* Same as above */
+       sizeof(asn_DEF_PDCP_SN_tags_1)
+               /sizeof(asn_DEF_PDCP_SN_tags_1[0]), /* 1 */
+       { &asn_OER_type_PDCP_SN_constr_1, &asn_PER_type_PDCP_SN_constr_1, PDCP_SN_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/PDCP-SNExtended.c b/e2ap/lib/PDCP-SNExtended.c
new file mode 100644 (file)
index 0000000..a2cfee2
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PDCP-SNExtended.h"
+
+int
+PDCP_SNExtended_constraint(const 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 >= 0 && value <= 32767)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_PDCP_SNExtended_constr_1 CC_NOTUSED = {
+       { 2, 1 }        /* (0..32767) */,
+       -1};
+asn_per_constraints_t asn_PER_type_PDCP_SNExtended_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       15,  15,  0,  32767 }  /* (0..32767) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_PDCP_SNExtended_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_PDCP_SNExtended = {
+       "PDCP-SNExtended",
+       "PDCP-SNExtended",
+       &asn_OP_NativeInteger,
+       asn_DEF_PDCP_SNExtended_tags_1,
+       sizeof(asn_DEF_PDCP_SNExtended_tags_1)
+               /sizeof(asn_DEF_PDCP_SNExtended_tags_1[0]), /* 1 */
+       asn_DEF_PDCP_SNExtended_tags_1, /* Same as above */
+       sizeof(asn_DEF_PDCP_SNExtended_tags_1)
+               /sizeof(asn_DEF_PDCP_SNExtended_tags_1[0]), /* 1 */
+       { &asn_OER_type_PDCP_SNExtended_constr_1, &asn_PER_type_PDCP_SNExtended_constr_1, PDCP_SNExtended_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/PDCP-SNlength18.c b/e2ap/lib/PDCP-SNlength18.c
new file mode 100644 (file)
index 0000000..c990d6d
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PDCP-SNlength18.h"
+
+int
+PDCP_SNlength18_constraint(const 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 >= 0 && value <= 262143)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_PDCP_SNlength18_constr_1 CC_NOTUSED = {
+       { 4, 1 }        /* (0..262143) */,
+       -1};
+asn_per_constraints_t asn_PER_type_PDCP_SNlength18_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       18, -1,  0,  262143 }  /* (0..262143) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_PDCP_SNlength18_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_PDCP_SNlength18 = {
+       "PDCP-SNlength18",
+       "PDCP-SNlength18",
+       &asn_OP_NativeInteger,
+       asn_DEF_PDCP_SNlength18_tags_1,
+       sizeof(asn_DEF_PDCP_SNlength18_tags_1)
+               /sizeof(asn_DEF_PDCP_SNlength18_tags_1[0]), /* 1 */
+       asn_DEF_PDCP_SNlength18_tags_1, /* Same as above */
+       sizeof(asn_DEF_PDCP_SNlength18_tags_1)
+               /sizeof(asn_DEF_PDCP_SNlength18_tags_1[0]), /* 1 */
+       { &asn_OER_type_PDCP_SNlength18_constr_1, &asn_PER_type_PDCP_SNlength18_constr_1, PDCP_SNlength18_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/PDCPChangeIndication.c b/e2ap/lib/PDCPChangeIndication.c
new file mode 100644 (file)
index 0000000..03fea1e
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PDCPChangeIndication.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_PDCPChangeIndication_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_PDCPChangeIndication_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_PDCPChangeIndication_value2enum_1[] = {
+       { 0,    22,     "s-KgNB-update-required" },
+       { 1,    27,     "pDCP-data-recovery-required" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_PDCPChangeIndication_enum2value_1[] = {
+       1,      /* pDCP-data-recovery-required(1) */
+       0       /* s-KgNB-update-required(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_PDCPChangeIndication_specs_1 = {
+       asn_MAP_PDCPChangeIndication_value2enum_1,      /* "tag" => N; sorted by tag */
+       asn_MAP_PDCPChangeIndication_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_PDCPChangeIndication_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_PDCPChangeIndication = {
+       "PDCPChangeIndication",
+       "PDCPChangeIndication",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_PDCPChangeIndication_tags_1,
+       sizeof(asn_DEF_PDCPChangeIndication_tags_1)
+               /sizeof(asn_DEF_PDCPChangeIndication_tags_1[0]), /* 1 */
+       asn_DEF_PDCPChangeIndication_tags_1,    /* Same as above */
+       sizeof(asn_DEF_PDCPChangeIndication_tags_1)
+               /sizeof(asn_DEF_PDCPChangeIndication_tags_1[0]), /* 1 */
+       { &asn_OER_type_PDCPChangeIndication_constr_1, &asn_PER_type_PDCPChangeIndication_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_PDCPChangeIndication_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/PDCPSnLength.c b/e2ap/lib/PDCPSnLength.c
new file mode 100644 (file)
index 0000000..31db71c
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PDCPSnLength.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_PDCPSnLength_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_PDCPSnLength_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_PDCPSnLength_value2enum_1[] = {
+       { 0,    11,     "twelve-bits" },
+       { 1,    13,     "eighteen-bits" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_PDCPSnLength_enum2value_1[] = {
+       1,      /* eighteen-bits(1) */
+       0       /* twelve-bits(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_PDCPSnLength_specs_1 = {
+       asn_MAP_PDCPSnLength_value2enum_1,      /* "tag" => N; sorted by tag */
+       asn_MAP_PDCPSnLength_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_PDCPSnLength_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_PDCPSnLength = {
+       "PDCPSnLength",
+       "PDCPSnLength",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_PDCPSnLength_tags_1,
+       sizeof(asn_DEF_PDCPSnLength_tags_1)
+               /sizeof(asn_DEF_PDCPSnLength_tags_1[0]), /* 1 */
+       asn_DEF_PDCPSnLength_tags_1,    /* Same as above */
+       sizeof(asn_DEF_PDCPSnLength_tags_1)
+               /sizeof(asn_DEF_PDCPSnLength_tags_1[0]), /* 1 */
+       { &asn_OER_type_PDCPSnLength_constr_1, &asn_PER_type_PDCPSnLength_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_PDCPSnLength_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/PLMN-Identity.c b/e2ap/lib/PLMN-Identity.c
new file mode 100644 (file)
index 0000000..93bf05e
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PLMN-Identity.h"
+
+int
+PLMN_Identity_constraint(const 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 == 3)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_PLMN_Identity_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       3       /* (SIZE(3..3)) */};
+asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  3,  3 }        /* (SIZE(3..3)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_PLMN_Identity_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_PLMN_Identity = {
+       "PLMN-Identity",
+       "PLMN-Identity",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_PLMN_Identity_tags_1,
+       sizeof(asn_DEF_PLMN_Identity_tags_1)
+               /sizeof(asn_DEF_PLMN_Identity_tags_1[0]), /* 1 */
+       asn_DEF_PLMN_Identity_tags_1,   /* Same as above */
+       sizeof(asn_DEF_PLMN_Identity_tags_1)
+               /sizeof(asn_DEF_PLMN_Identity_tags_1[0]), /* 1 */
+       { &asn_OER_type_PLMN_Identity_constr_1, &asn_PER_type_PLMN_Identity_constr_1, PLMN_Identity_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/PLMNAreaBasedQMC.c b/e2ap/lib/PLMNAreaBasedQMC.c
new file mode 100644 (file)
index 0000000..38ab1fa
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PLMNAreaBasedQMC.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_PLMNAreaBasedQMC_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct PLMNAreaBasedQMC, plmnListforQMC),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PLMNListforQMC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "plmnListforQMC"
+               },
+       { ATF_POINTER, 1, offsetof(struct PLMNAreaBasedQMC, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P178,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_PLMNAreaBasedQMC_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_PLMNAreaBasedQMC_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_PLMNAreaBasedQMC_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmnListforQMC */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_PLMNAreaBasedQMC_specs_1 = {
+       sizeof(struct PLMNAreaBasedQMC),
+       offsetof(struct PLMNAreaBasedQMC, _asn_ctx),
+       asn_MAP_PLMNAreaBasedQMC_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_PLMNAreaBasedQMC_oms_1, /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_PLMNAreaBasedQMC = {
+       "PLMNAreaBasedQMC",
+       "PLMNAreaBasedQMC",
+       &asn_OP_SEQUENCE,
+       asn_DEF_PLMNAreaBasedQMC_tags_1,
+       sizeof(asn_DEF_PLMNAreaBasedQMC_tags_1)
+               /sizeof(asn_DEF_PLMNAreaBasedQMC_tags_1[0]), /* 1 */
+       asn_DEF_PLMNAreaBasedQMC_tags_1,        /* Same as above */
+       sizeof(asn_DEF_PLMNAreaBasedQMC_tags_1)
+               /sizeof(asn_DEF_PLMNAreaBasedQMC_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_PLMNAreaBasedQMC_1,
+       2,      /* Elements count */
+       &asn_SPC_PLMNAreaBasedQMC_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/PLMNListforQMC.c b/e2ap/lib/PLMNListforQMC.c
new file mode 100644 (file)
index 0000000..f14ab1c
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PLMNListforQMC.h"
+
+static asn_oer_constraints_t asn_OER_type_PLMNListforQMC_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16)) */};
+asn_per_constraints_t asn_PER_type_PLMNListforQMC_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       4,  4,  1,  16 }       /* (SIZE(1..16)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_PLMNListforQMC_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_PLMNListforQMC_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_PLMNListforQMC_specs_1 = {
+       sizeof(struct PLMNListforQMC),
+       offsetof(struct PLMNListforQMC, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_PLMNListforQMC = {
+       "PLMNListforQMC",
+       "PLMNListforQMC",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_PLMNListforQMC_tags_1,
+       sizeof(asn_DEF_PLMNListforQMC_tags_1)
+               /sizeof(asn_DEF_PLMNListforQMC_tags_1[0]), /* 1 */
+       asn_DEF_PLMNListforQMC_tags_1,  /* Same as above */
+       sizeof(asn_DEF_PLMNListforQMC_tags_1)
+               /sizeof(asn_DEF_PLMNListforQMC_tags_1[0]), /* 1 */
+       { &asn_OER_type_PLMNListforQMC_constr_1, &asn_PER_type_PLMNListforQMC_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_PLMNListforQMC_1,
+       1,      /* Single element */
+       &asn_SPC_PLMNListforQMC_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/PRACH-Configuration.c b/e2ap/lib/PRACH-Configuration.c
new file mode 100644 (file)
index 0000000..c5b924c
--- /dev/null
@@ -0,0 +1,235 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PRACH-Configuration.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_rootSequenceIndex_constraint_1(const 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 >= 0 && value <= 837)) {
+               /* 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_zeroCorrelationIndex_constraint_1(const 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 >= 0 && value <= 15)) {
+               /* 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_prach_FreqOffset_constraint_1(const 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 >= 0 && value <= 94)) {
+               /* 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_prach_ConfigIndex_constraint_1(const 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 >= 0 && value <= 63)) {
+               /* 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_oer_constraints_t asn_OER_memb_rootSequenceIndex_constr_2 CC_NOTUSED = {
+       { 2, 1 }        /* (0..837) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_rootSequenceIndex_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       10,  10,  0,  837 }    /* (0..837) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_zeroCorrelationIndex_constr_3 CC_NOTUSED = {
+       { 1, 1 }        /* (0..15) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_zeroCorrelationIndex_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED,       4,  4,  0,  15 }       /* (0..15) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_prach_FreqOffset_constr_5 CC_NOTUSED = {
+       { 1, 1 }        /* (0..94) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_prach_FreqOffset_constr_5 CC_NOTUSED = {
+       { APC_CONSTRAINED,       7,  7,  0,  94 }       /* (0..94) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_prach_ConfigIndex_constr_6 CC_NOTUSED = {
+       { 1, 1 }        /* (0..63) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_prach_ConfigIndex_constr_6 CC_NOTUSED = {
+       { APC_CONSTRAINED,       6,  6,  0,  63 }       /* (0..63) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_PRACH_Configuration_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct PRACH_Configuration, rootSequenceIndex),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_rootSequenceIndex_constr_2, &asn_PER_memb_rootSequenceIndex_constr_2,  memb_rootSequenceIndex_constraint_1 },
+               0, 0, /* No default value */
+               "rootSequenceIndex"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct PRACH_Configuration, zeroCorrelationIndex),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_zeroCorrelationIndex_constr_3, &asn_PER_memb_zeroCorrelationIndex_constr_3,  memb_zeroCorrelationIndex_constraint_1 },
+               0, 0, /* No default value */
+               "zeroCorrelationIndex"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct PRACH_Configuration, highSpeedFlag),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BOOLEAN,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "highSpeedFlag"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct PRACH_Configuration, prach_FreqOffset),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_prach_FreqOffset_constr_5, &asn_PER_memb_prach_FreqOffset_constr_5,  memb_prach_FreqOffset_constraint_1 },
+               0, 0, /* No default value */
+               "prach-FreqOffset"
+               },
+       { ATF_POINTER, 2, offsetof(struct PRACH_Configuration, prach_ConfigIndex),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_prach_ConfigIndex_constr_6, &asn_PER_memb_prach_ConfigIndex_constr_6,  memb_prach_ConfigIndex_constraint_1 },
+               0, 0, /* No default value */
+               "prach-ConfigIndex"
+               },
+       { ATF_POINTER, 1, offsetof(struct PRACH_Configuration, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P177,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_PRACH_Configuration_oms_1[] = { 4, 5 };
+static const ber_tlv_tag_t asn_DEF_PRACH_Configuration_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_PRACH_Configuration_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rootSequenceIndex */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* zeroCorrelationIndex */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* highSpeedFlag */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* prach-FreqOffset */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* prach-ConfigIndex */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_PRACH_Configuration_specs_1 = {
+       sizeof(struct PRACH_Configuration),
+       offsetof(struct PRACH_Configuration, _asn_ctx),
+       asn_MAP_PRACH_Configuration_tag2el_1,
+       6,      /* Count of tags in the map */
+       asn_MAP_PRACH_Configuration_oms_1,      /* Optional members */
+       2, 0,   /* Root/Additions */
+       6,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_PRACH_Configuration = {
+       "PRACH-Configuration",
+       "PRACH-Configuration",
+       &asn_OP_SEQUENCE,
+       asn_DEF_PRACH_Configuration_tags_1,
+       sizeof(asn_DEF_PRACH_Configuration_tags_1)
+               /sizeof(asn_DEF_PRACH_Configuration_tags_1[0]), /* 1 */
+       asn_DEF_PRACH_Configuration_tags_1,     /* Same as above */
+       sizeof(asn_DEF_PRACH_Configuration_tags_1)
+               /sizeof(asn_DEF_PRACH_Configuration_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_PRACH_Configuration_1,
+       6,      /* Elements count */
+       &asn_SPC_PRACH_Configuration_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/Packet-LossRate.c b/e2ap/lib/Packet-LossRate.c
new file mode 100644 (file)
index 0000000..12a302b
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Packet-LossRate.h"
+
+int
+Packet_LossRate_constraint(const 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 >= 0 && value <= 1000)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_Packet_LossRate_constr_1 CC_NOTUSED = {
+       { 2, 1 }        /* (0..1000) */,
+       -1};
+static asn_per_constraints_t asn_PER_type_Packet_LossRate_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       10,  10,  0,  1000 }   /* (0..1000) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_Packet_LossRate_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Packet_LossRate = {
+       "Packet-LossRate",
+       "Packet-LossRate",
+       &asn_OP_NativeInteger,
+       asn_DEF_Packet_LossRate_tags_1,
+       sizeof(asn_DEF_Packet_LossRate_tags_1)
+               /sizeof(asn_DEF_Packet_LossRate_tags_1[0]), /* 1 */
+       asn_DEF_Packet_LossRate_tags_1, /* Same as above */
+       sizeof(asn_DEF_Packet_LossRate_tags_1)
+               /sizeof(asn_DEF_Packet_LossRate_tags_1[0]), /* 1 */
+       { &asn_OER_type_Packet_LossRate_constr_1, &asn_PER_type_Packet_LossRate_constr_1, Packet_LossRate_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/PartialSuccessIndicator.c b/e2ap/lib/PartialSuccessIndicator.c
new file mode 100644 (file)
index 0000000..8d288f2
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PartialSuccessIndicator.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_PartialSuccessIndicator_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_PartialSuccessIndicator_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_PartialSuccessIndicator_value2enum_1[] = {
+       { 0,    23,     "partial-success-allowed" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_PartialSuccessIndicator_enum2value_1[] = {
+       0       /* partial-success-allowed(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_PartialSuccessIndicator_specs_1 = {
+       asn_MAP_PartialSuccessIndicator_value2enum_1,   /* "tag" => N; sorted by tag */
+       asn_MAP_PartialSuccessIndicator_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_PartialSuccessIndicator_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_PartialSuccessIndicator = {
+       "PartialSuccessIndicator",
+       "PartialSuccessIndicator",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_PartialSuccessIndicator_tags_1,
+       sizeof(asn_DEF_PartialSuccessIndicator_tags_1)
+               /sizeof(asn_DEF_PartialSuccessIndicator_tags_1[0]), /* 1 */
+       asn_DEF_PartialSuccessIndicator_tags_1, /* Same as above */
+       sizeof(asn_DEF_PartialSuccessIndicator_tags_1)
+               /sizeof(asn_DEF_PartialSuccessIndicator_tags_1[0]), /* 1 */
+       { &asn_OER_type_PartialSuccessIndicator_constr_1, &asn_PER_type_PartialSuccessIndicator_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_PartialSuccessIndicator_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/PedestrianUE.c b/e2ap/lib/PedestrianUE.c
new file mode 100644 (file)
index 0000000..bfe3908
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PedestrianUE.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_PedestrianUE_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_PedestrianUE_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_PedestrianUE_value2enum_1[] = {
+       { 0,    10,     "authorized" },
+       { 1,    14,     "not-authorized" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_PedestrianUE_enum2value_1[] = {
+       0,      /* authorized(0) */
+       1       /* not-authorized(1) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_PedestrianUE_specs_1 = {
+       asn_MAP_PedestrianUE_value2enum_1,      /* "tag" => N; sorted by tag */
+       asn_MAP_PedestrianUE_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_PedestrianUE_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_PedestrianUE = {
+       "PedestrianUE",
+       "PedestrianUE",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_PedestrianUE_tags_1,
+       sizeof(asn_DEF_PedestrianUE_tags_1)
+               /sizeof(asn_DEF_PedestrianUE_tags_1[0]), /* 1 */
+       asn_DEF_PedestrianUE_tags_1,    /* Same as above */
+       sizeof(asn_DEF_PedestrianUE_tags_1)
+               /sizeof(asn_DEF_PedestrianUE_tags_1[0]), /* 1 */
+       { &asn_OER_type_PedestrianUE_constr_1, &asn_PER_type_PedestrianUE_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_PedestrianUE_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/Port-Number.c b/e2ap/lib/Port-Number.c
new file mode 100644 (file)
index 0000000..3d1f3da
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Port-Number.h"
+
+int
+Port_Number_constraint(const 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 == 2)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_Port_Number_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       2       /* (SIZE(2..2)) */};
+asn_per_constraints_t asn_PER_type_Port_Number_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  2,  2 }        /* (SIZE(2..2)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_Port_Number_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Port_Number = {
+       "Port-Number",
+       "Port-Number",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_Port_Number_tags_1,
+       sizeof(asn_DEF_Port_Number_tags_1)
+               /sizeof(asn_DEF_Port_Number_tags_1[0]), /* 1 */
+       asn_DEF_Port_Number_tags_1,     /* Same as above */
+       sizeof(asn_DEF_Port_Number_tags_1)
+               /sizeof(asn_DEF_Port_Number_tags_1[0]), /* 1 */
+       { &asn_OER_type_Port_Number_constr_1, &asn_PER_type_Port_Number_constr_1, Port_Number_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/Pre-emptionCapability.c b/e2ap/lib/Pre-emptionCapability.c
new file mode 100644 (file)
index 0000000..1d15aaa
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Pre-emptionCapability.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_Pre_emptionCapability_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_Pre_emptionCapability_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_Pre_emptionCapability_value2enum_1[] = {
+       { 0,    29,     "shall-not-trigger-pre-emption" },
+       { 1,    23,     "may-trigger-pre-emption" }
+};
+static const unsigned int asn_MAP_Pre_emptionCapability_enum2value_1[] = {
+       1,      /* may-trigger-pre-emption(1) */
+       0       /* shall-not-trigger-pre-emption(0) */
+};
+const asn_INTEGER_specifics_t asn_SPC_Pre_emptionCapability_specs_1 = {
+       asn_MAP_Pre_emptionCapability_value2enum_1,     /* "tag" => N; sorted by tag */
+       asn_MAP_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_Pre_emptionCapability_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Pre_emptionCapability = {
+       "Pre-emptionCapability",
+       "Pre-emptionCapability",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_Pre_emptionCapability_tags_1,
+       sizeof(asn_DEF_Pre_emptionCapability_tags_1)
+               /sizeof(asn_DEF_Pre_emptionCapability_tags_1[0]), /* 1 */
+       asn_DEF_Pre_emptionCapability_tags_1,   /* Same as above */
+       sizeof(asn_DEF_Pre_emptionCapability_tags_1)
+               /sizeof(asn_DEF_Pre_emptionCapability_tags_1[0]), /* 1 */
+       { &asn_OER_type_Pre_emptionCapability_constr_1, &asn_PER_type_Pre_emptionCapability_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_Pre_emptionCapability_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/Pre-emptionVulnerability.c b/e2ap/lib/Pre-emptionVulnerability.c
new file mode 100644 (file)
index 0000000..983fbcc
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Pre-emptionVulnerability.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_Pre_emptionVulnerability_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_Pre_emptionVulnerability_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_Pre_emptionVulnerability_value2enum_1[] = {
+       { 0,    16,     "not-pre-emptable" },
+       { 1,    12,     "pre-emptable" }
+};
+static const unsigned int asn_MAP_Pre_emptionVulnerability_enum2value_1[] = {
+       0,      /* not-pre-emptable(0) */
+       1       /* pre-emptable(1) */
+};
+const asn_INTEGER_specifics_t asn_SPC_Pre_emptionVulnerability_specs_1 = {
+       asn_MAP_Pre_emptionVulnerability_value2enum_1,  /* "tag" => N; sorted by tag */
+       asn_MAP_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_Pre_emptionVulnerability_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Pre_emptionVulnerability = {
+       "Pre-emptionVulnerability",
+       "Pre-emptionVulnerability",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_Pre_emptionVulnerability_tags_1,
+       sizeof(asn_DEF_Pre_emptionVulnerability_tags_1)
+               /sizeof(asn_DEF_Pre_emptionVulnerability_tags_1[0]), /* 1 */
+       asn_DEF_Pre_emptionVulnerability_tags_1,        /* Same as above */
+       sizeof(asn_DEF_Pre_emptionVulnerability_tags_1)
+               /sizeof(asn_DEF_Pre_emptionVulnerability_tags_1[0]), /* 1 */
+       { &asn_OER_type_Pre_emptionVulnerability_constr_1, &asn_PER_type_Pre_emptionVulnerability_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_Pre_emptionVulnerability_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/Presence.c b/e2ap/lib/Presence.c
new file mode 100644 (file)
index 0000000..eef5cb9
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-CommonDataTypes"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Presence.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_Presence_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_Presence_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_Presence_value2enum_1[] = {
+       { 0,    8,      "optional" },
+       { 1,    11,     "conditional" },
+       { 2,    9,      "mandatory" }
+};
+static const unsigned int asn_MAP_Presence_enum2value_1[] = {
+       1,      /* conditional(1) */
+       2,      /* mandatory(2) */
+       0       /* optional(0) */
+};
+const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1 = {
+       asn_MAP_Presence_value2enum_1,  /* "tag" => N; sorted by tag */
+       asn_MAP_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_Presence_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Presence = {
+       "Presence",
+       "Presence",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_Presence_tags_1,
+       sizeof(asn_DEF_Presence_tags_1)
+               /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */
+       asn_DEF_Presence_tags_1,        /* Same as above */
+       sizeof(asn_DEF_Presence_tags_1)
+               /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */
+       { &asn_OER_type_Presence_constr_1, &asn_PER_type_Presence_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_Presence_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/PrintableString.c b/e2ap/lib/PrintableString.c
new file mode 100644 (file)
index 0000000..8fc3939
--- /dev/null
@@ -0,0 +1,130 @@
+/*-
+ * Copyright (c) 2003, 2004, 2006 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <PrintableString.h>
+
+/*
+ * ASN.1:1984 (X.409)
+ */
+static const int _PrintableString_alphabet[256] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,       /*                  */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,       /*                  */
+ 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9,       /* .      '() +,-./ */
+10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22,       /* 0123456789:  = ? */
+ 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,       /*  ABCDEFGHIJKLMNO */
+38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0,       /* PQRSTUVWXYZ      */
+ 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,       /*  abcdefghijklmno */
+64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0,       /* pqrstuvwxyz      */
+};
+static const int _PrintableString_code2value[74] = {
+32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54,
+55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74,
+75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,
+97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,
+113,114,115,116,117,118,119,120,121,122};
+
+/*
+ * PrintableString basic type description.
+ */
+static const ber_tlv_tag_t asn_DEF_PrintableString_tags[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)),  /* [UNIVERSAL 19] IMPLICIT ...*/
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))    /* ... OCTET STRING */
+};
+static int asn_DEF_PrintableString_v2c(unsigned int value) {
+       return _PrintableString_alphabet[value > 255 ? 0 : value] - 1;
+}
+static int asn_DEF_PrintableString_c2v(unsigned int code) {
+       if(code < 74)
+               return _PrintableString_code2value[code];
+       return -1;
+}
+static asn_per_constraints_t asn_DEF_PrintableString_per_constraints = {
+       { APC_CONSTRAINED, 4, 4, 0x20, 0x39 },  /* Value */
+       { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */
+       asn_DEF_PrintableString_v2c,
+       asn_DEF_PrintableString_c2v
+};
+asn_TYPE_operation_t asn_OP_PrintableString = {
+       OCTET_STRING_free,
+       OCTET_STRING_print_utf8,        /* ASCII subset */
+       OCTET_STRING_compare,
+       OCTET_STRING_decode_ber,      /* Implemented in terms of OCTET STRING */
+       OCTET_STRING_encode_der,
+       OCTET_STRING_decode_xer_utf8,
+       OCTET_STRING_encode_xer_utf8,
+#ifdef ASN_DISABLE_OER_SUPPORT
+       0,
+       0,
+#else
+       OCTET_STRING_decode_oer,
+       OCTET_STRING_encode_oer,
+#endif /* ASN_DISABLE_OER_SUPPORT */
+#ifdef ASN_DISABLE_PER_SUPPORT
+       0,
+       0,
+       0,
+       0,
+#else
+       OCTET_STRING_decode_uper,
+       OCTET_STRING_encode_uper,
+       OCTET_STRING_decode_aper,
+       OCTET_STRING_encode_aper,
+#endif /* ASN_DISABLE_PER_SUPPORT */
+       OCTET_STRING_random_fill,
+       0       /* Use generic outmost tag fetcher */
+};
+asn_TYPE_descriptor_t asn_DEF_PrintableString = {
+       "PrintableString",
+       "PrintableString",
+       &asn_OP_PrintableString,
+       asn_DEF_PrintableString_tags,
+       sizeof(asn_DEF_PrintableString_tags)
+         / sizeof(asn_DEF_PrintableString_tags[0]) - 1,
+       asn_DEF_PrintableString_tags,
+       sizeof(asn_DEF_PrintableString_tags)
+         / sizeof(asn_DEF_PrintableString_tags[0]),
+       { 0, &asn_DEF_PrintableString_per_constraints, PrintableString_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
+
+int
+PrintableString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+                           asn_app_constraint_failed_f *ctfailcb,
+                           void *app_key) {
+    const PrintableString_t *st = (const PrintableString_t *)sptr;
+
+       if(st && st->buf) {
+               uint8_t *buf = st->buf;
+               uint8_t *end = buf + st->size;
+
+               /*
+                * Check the alphabet of the PrintableString.
+                * ASN.1:1984 (X.409)
+                */
+               for(; buf < end; buf++) {
+                       if(!_PrintableString_alphabet[*buf]) {
+                               ASN__CTFAIL(app_key, td, sptr,
+                                       "%s: value byte %ld (%d) "
+                                       "not in PrintableString alphabet "
+                                       "(%s:%d)",
+                                       td->name,
+                                       (long)((buf - st->buf) + 1),
+                                       *buf,
+                                       __FILE__, __LINE__);
+                               return -1;
+                       }
+               }
+       } else {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: value not given (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+
+       return 0;
+}
diff --git a/e2ap/lib/PriorityLevel.c b/e2ap/lib/PriorityLevel.c
new file mode 100644 (file)
index 0000000..4ce9a12
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PriorityLevel.h"
+
+int
+PriorityLevel_constraint(const 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 >= 0 && value <= 15)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_PriorityLevel_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..15) */,
+       -1};
+asn_per_constraints_t asn_PER_type_PriorityLevel_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       4,  4,  0,  15 }       /* (0..15) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_PriorityLevel_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_PriorityLevel = {
+       "PriorityLevel",
+       "PriorityLevel",
+       &asn_OP_NativeInteger,
+       asn_DEF_PriorityLevel_tags_1,
+       sizeof(asn_DEF_PriorityLevel_tags_1)
+               /sizeof(asn_DEF_PriorityLevel_tags_1[0]), /* 1 */
+       asn_DEF_PriorityLevel_tags_1,   /* Same as above */
+       sizeof(asn_DEF_PriorityLevel_tags_1)
+               /sizeof(asn_DEF_PriorityLevel_tags_1[0]), /* 1 */
+       { &asn_OER_type_PriorityLevel_constr_1, &asn_PER_type_PriorityLevel_constr_1, PriorityLevel_constraint },
+       0, 0,   /* Defined elsewhere */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/PrivateIE-Container.c b/e2ap/lib/PrivateIE-Container.c
new file mode 100644 (file)
index 0000000..a7dff7f
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PrivateIE-Container.h"
+
+#include "PrivateIE-Field.h"
+static asn_oer_constraints_t asn_OER_type_PrivateIE_Container_9582P0_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_PrivateIE_Container_9582P0_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_PrivateIE_Container_9582P0_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_PrivateMessage_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_PrivateIE_Container_9582P0_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_PrivateIE_Container_9582P0_specs_1 = {
+       sizeof(struct PrivateIE_Container_9582P0),
+       offsetof(struct PrivateIE_Container_9582P0, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_PrivateIE_Container_9582P0 = {
+       "PrivateIE-Container",
+       "PrivateIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_PrivateIE_Container_9582P0_tags_1,
+       sizeof(asn_DEF_PrivateIE_Container_9582P0_tags_1)
+               /sizeof(asn_DEF_PrivateIE_Container_9582P0_tags_1[0]), /* 1 */
+       asn_DEF_PrivateIE_Container_9582P0_tags_1,      /* Same as above */
+       sizeof(asn_DEF_PrivateIE_Container_9582P0_tags_1)
+               /sizeof(asn_DEF_PrivateIE_Container_9582P0_tags_1[0]), /* 1 */
+       { &asn_OER_type_PrivateIE_Container_9582P0_constr_1, &asn_PER_type_PrivateIE_Container_9582P0_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_PrivateIE_Container_9582P0_1,
+       1,      /* Single element */
+       &asn_SPC_PrivateIE_Container_9582P0_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/PrivateIE-Field.c b/e2ap/lib/PrivateIE-Field.c
new file mode 100644 (file)
index 0000000..875eba1
--- /dev/null
@@ -0,0 +1,175 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PrivateIE-Field.h"
+
+static int
+memb_id_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_criticality_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_value_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_oer_constraints_t asn_OER_memb_id_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = {
+       sizeof(struct PrivateMessage_IEs__value),
+       offsetof(struct PrivateMessage_IEs__value, _asn_ctx),
+       offsetof(struct PrivateMessage_IEs__value, present),
+       sizeof(((struct PrivateMessage_IEs__value *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_4 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_value_specs_4  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_PrivateMessage_IEs_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct PrivateMessage_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_PrivateIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_2, &asn_PER_memb_id_constr_2,  memb_id_constraint_1 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct PrivateMessage_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3,  memb_criticality_constraint_1 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PrivateMessage_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_4,
+               0,
+               { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4,  memb_value_constraint_1 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_PrivateMessage_IEs_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_PrivateMessage_IEs_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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_PrivateMessage_IEs_specs_1 = {
+       sizeof(struct PrivateMessage_IEs),
+       offsetof(struct PrivateMessage_IEs, _asn_ctx),
+       asn_MAP_PrivateMessage_IEs_tag2el_1,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_PrivateMessage_IEs = {
+       "PrivateMessage-IEs",
+       "PrivateMessage-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_PrivateMessage_IEs_tags_1,
+       sizeof(asn_DEF_PrivateMessage_IEs_tags_1)
+               /sizeof(asn_DEF_PrivateMessage_IEs_tags_1[0]), /* 1 */
+       asn_DEF_PrivateMessage_IEs_tags_1,      /* Same as above */
+       sizeof(asn_DEF_PrivateMessage_IEs_tags_1)
+               /sizeof(asn_DEF_PrivateMessage_IEs_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_PrivateMessage_IEs_1,
+       3,      /* Elements count */
+       &asn_SPC_PrivateMessage_IEs_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/PrivateIE-ID.c b/e2ap/lib/PrivateIE-ID.c
new file mode 100644 (file)
index 0000000..720b611
--- /dev/null
@@ -0,0 +1,98 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-CommonDataTypes"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PrivateIE-ID.h"
+
+static int
+memb_local_constraint_1(const 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 >= 0 && value <= 65535)) {
+               /* 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_oer_constraints_t asn_OER_memb_local_constr_2 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_local_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_PrivateIE_ID_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_PrivateIE_ID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_PrivateIE_ID_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct PrivateIE_ID, choice.local),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_local_constr_2, &asn_PER_memb_local_constr_2,  memb_local_constraint_1 },
+               0, 0, /* No default value */
+               "local"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct PrivateIE_ID, choice.global),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_OBJECT_IDENTIFIER,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "global"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_PrivateIE_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* local */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* global */
+};
+asn_CHOICE_specifics_t asn_SPC_PrivateIE_ID_specs_1 = {
+       sizeof(struct PrivateIE_ID),
+       offsetof(struct PrivateIE_ID, _asn_ctx),
+       offsetof(struct PrivateIE_ID, present),
+       sizeof(((struct PrivateIE_ID *)0)->present),
+       asn_MAP_PrivateIE_ID_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_PrivateIE_ID = {
+       "PrivateIE-ID",
+       "PrivateIE-ID",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_PrivateIE_ID_constr_1, &asn_PER_type_PrivateIE_ID_constr_1, CHOICE_constraint },
+       asn_MBR_PrivateIE_ID_1,
+       2,      /* Elements count */
+       &asn_SPC_PrivateIE_ID_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/PrivateMessage.c b/e2ap/lib/PrivateMessage.c
new file mode 100644 (file)
index 0000000..1aa26c8
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "PrivateMessage.h"
+
+asn_TYPE_member_t asn_MBR_PrivateMessage_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct PrivateMessage, privateIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PrivateIE_Container_9582P0,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "privateIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_PrivateMessage_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_PrivateMessage_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* privateIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_PrivateMessage_specs_1 = {
+       sizeof(struct PrivateMessage),
+       offsetof(struct PrivateMessage, _asn_ctx),
+       asn_MAP_PrivateMessage_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_PrivateMessage = {
+       "PrivateMessage",
+       "PrivateMessage",
+       &asn_OP_SEQUENCE,
+       asn_DEF_PrivateMessage_tags_1,
+       sizeof(asn_DEF_PrivateMessage_tags_1)
+               /sizeof(asn_DEF_PrivateMessage_tags_1[0]), /* 1 */
+       asn_DEF_PrivateMessage_tags_1,  /* Same as above */
+       sizeof(asn_DEF_PrivateMessage_tags_1)
+               /sizeof(asn_DEF_PrivateMessage_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_PrivateMessage_1,
+       1,      /* Elements count */
+       &asn_SPC_PrivateMessage_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/ProSeAuthorized.c b/e2ap/lib/ProSeAuthorized.c
new file mode 100644 (file)
index 0000000..1f2ff50
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProSeAuthorized.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_ProSeAuthorized_1[] = {
+       { ATF_POINTER, 3, offsetof(struct ProSeAuthorized, proSeDirectDiscovery),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProSeDirectDiscovery,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "proSeDirectDiscovery"
+               },
+       { ATF_POINTER, 2, offsetof(struct ProSeAuthorized, proSeDirectCommunication),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProSeDirectCommunication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "proSeDirectCommunication"
+               },
+       { ATF_POINTER, 1, offsetof(struct ProSeAuthorized, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P179,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ProSeAuthorized_oms_1[] = { 0, 1, 2 };
+static const ber_tlv_tag_t asn_DEF_ProSeAuthorized_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ProSeAuthorized_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* proSeDirectDiscovery */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* proSeDirectCommunication */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_ProSeAuthorized_specs_1 = {
+       sizeof(struct ProSeAuthorized),
+       offsetof(struct ProSeAuthorized, _asn_ctx),
+       asn_MAP_ProSeAuthorized_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_ProSeAuthorized_oms_1,  /* Optional members */
+       3, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ProSeAuthorized = {
+       "ProSeAuthorized",
+       "ProSeAuthorized",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProSeAuthorized_tags_1,
+       sizeof(asn_DEF_ProSeAuthorized_tags_1)
+               /sizeof(asn_DEF_ProSeAuthorized_tags_1[0]), /* 1 */
+       asn_DEF_ProSeAuthorized_tags_1, /* Same as above */
+       sizeof(asn_DEF_ProSeAuthorized_tags_1)
+               /sizeof(asn_DEF_ProSeAuthorized_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ProSeAuthorized_1,
+       3,      /* Elements count */
+       &asn_SPC_ProSeAuthorized_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/ProSeDirectCommunication.c b/e2ap/lib/ProSeDirectCommunication.c
new file mode 100644 (file)
index 0000000..4d21bb9
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProSeDirectCommunication.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ProSeDirectCommunication_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_ProSeDirectCommunication_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_ProSeDirectCommunication_value2enum_1[] = {
+       { 0,    10,     "authorized" },
+       { 1,    14,     "not-authorized" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_ProSeDirectCommunication_enum2value_1[] = {
+       0,      /* authorized(0) */
+       1       /* not-authorized(1) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_ProSeDirectCommunication_specs_1 = {
+       asn_MAP_ProSeDirectCommunication_value2enum_1,  /* "tag" => N; sorted by tag */
+       asn_MAP_ProSeDirectCommunication_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_ProSeDirectCommunication_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProSeDirectCommunication = {
+       "ProSeDirectCommunication",
+       "ProSeDirectCommunication",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_ProSeDirectCommunication_tags_1,
+       sizeof(asn_DEF_ProSeDirectCommunication_tags_1)
+               /sizeof(asn_DEF_ProSeDirectCommunication_tags_1[0]), /* 1 */
+       asn_DEF_ProSeDirectCommunication_tags_1,        /* Same as above */
+       sizeof(asn_DEF_ProSeDirectCommunication_tags_1)
+               /sizeof(asn_DEF_ProSeDirectCommunication_tags_1[0]), /* 1 */
+       { &asn_OER_type_ProSeDirectCommunication_constr_1, &asn_PER_type_ProSeDirectCommunication_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_ProSeDirectCommunication_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/ProSeDirectDiscovery.c b/e2ap/lib/ProSeDirectDiscovery.c
new file mode 100644 (file)
index 0000000..5bb9c12
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProSeDirectDiscovery.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ProSeDirectDiscovery_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_ProSeDirectDiscovery_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_ProSeDirectDiscovery_value2enum_1[] = {
+       { 0,    10,     "authorized" },
+       { 1,    14,     "not-authorized" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_ProSeDirectDiscovery_enum2value_1[] = {
+       0,      /* authorized(0) */
+       1       /* not-authorized(1) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_ProSeDirectDiscovery_specs_1 = {
+       asn_MAP_ProSeDirectDiscovery_value2enum_1,      /* "tag" => N; sorted by tag */
+       asn_MAP_ProSeDirectDiscovery_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_ProSeDirectDiscovery_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProSeDirectDiscovery = {
+       "ProSeDirectDiscovery",
+       "ProSeDirectDiscovery",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_ProSeDirectDiscovery_tags_1,
+       sizeof(asn_DEF_ProSeDirectDiscovery_tags_1)
+               /sizeof(asn_DEF_ProSeDirectDiscovery_tags_1[0]), /* 1 */
+       asn_DEF_ProSeDirectDiscovery_tags_1,    /* Same as above */
+       sizeof(asn_DEF_ProSeDirectDiscovery_tags_1)
+               /sizeof(asn_DEF_ProSeDirectDiscovery_tags_1[0]), /* 1 */
+       { &asn_OER_type_ProSeDirectDiscovery_constr_1, &asn_PER_type_ProSeDirectDiscovery_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_ProSeDirectDiscovery_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/ProSeUEtoNetworkRelaying.c b/e2ap/lib/ProSeUEtoNetworkRelaying.c
new file mode 100644 (file)
index 0000000..91b6b33
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProSeUEtoNetworkRelaying.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ProSeUEtoNetworkRelaying_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_ProSeUEtoNetworkRelaying_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_ProSeUEtoNetworkRelaying_value2enum_1[] = {
+       { 0,    10,     "authorized" },
+       { 1,    14,     "not-authorized" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_ProSeUEtoNetworkRelaying_enum2value_1[] = {
+       0,      /* authorized(0) */
+       1       /* not-authorized(1) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_ProSeUEtoNetworkRelaying_specs_1 = {
+       asn_MAP_ProSeUEtoNetworkRelaying_value2enum_1,  /* "tag" => N; sorted by tag */
+       asn_MAP_ProSeUEtoNetworkRelaying_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_ProSeUEtoNetworkRelaying_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProSeUEtoNetworkRelaying = {
+       "ProSeUEtoNetworkRelaying",
+       "ProSeUEtoNetworkRelaying",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_ProSeUEtoNetworkRelaying_tags_1,
+       sizeof(asn_DEF_ProSeUEtoNetworkRelaying_tags_1)
+               /sizeof(asn_DEF_ProSeUEtoNetworkRelaying_tags_1[0]), /* 1 */
+       asn_DEF_ProSeUEtoNetworkRelaying_tags_1,        /* Same as above */
+       sizeof(asn_DEF_ProSeUEtoNetworkRelaying_tags_1)
+               /sizeof(asn_DEF_ProSeUEtoNetworkRelaying_tags_1[0]), /* 1 */
+       { &asn_OER_type_ProSeUEtoNetworkRelaying_constr_1, &asn_PER_type_ProSeUEtoNetworkRelaying_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_ProSeUEtoNetworkRelaying_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/ProcedureCode.c b/e2ap/lib/ProcedureCode.c
new file mode 100644 (file)
index 0000000..61fcc6b
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-CommonDataTypes"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProcedureCode.h"
+
+int
+ProcedureCode_constraint(const 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 >= 0 && value <= 255)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_ProcedureCode_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..255) */,
+       -1};
+asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       8,  8,  0,  255 }      /* (0..255) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_ProcedureCode_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProcedureCode = {
+       "ProcedureCode",
+       "ProcedureCode",
+       &asn_OP_NativeInteger,
+       asn_DEF_ProcedureCode_tags_1,
+       sizeof(asn_DEF_ProcedureCode_tags_1)
+               /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */
+       asn_DEF_ProcedureCode_tags_1,   /* Same as above */
+       sizeof(asn_DEF_ProcedureCode_tags_1)
+               /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */
+       { &asn_OER_type_ProcedureCode_constr_1, &asn_PER_type_ProcedureCode_constr_1, ProcedureCode_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/ProtectedEUTRAResourceIndication.c b/e2ap/lib/ProtectedEUTRAResourceIndication.c
new file mode 100644 (file)
index 0000000..932858f
--- /dev/null
@@ -0,0 +1,192 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProtectedEUTRAResourceIndication.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_activationSFN_constraint_1(const 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 >= 0 && value <= 1023)) {
+               /* 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_mBSFNControlRegionLength_constraint_1(const 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 >= 0 && value <= 3)) {
+               /* 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_pDCCHRegionLength_constraint_1(const 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 >= 1 && value <= 3)) {
+               /* 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_oer_constraints_t asn_OER_memb_activationSFN_constr_2 CC_NOTUSED = {
+       { 2, 1 }        /* (0..1023) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_activationSFN_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       10,  10,  0,  1023 }   /* (0..1023) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_mBSFNControlRegionLength_constr_4 CC_NOTUSED = {
+       { 1, 1 }        /* (0..3) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_mBSFNControlRegionLength_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (0..3) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_pDCCHRegionLength_constr_5 CC_NOTUSED = {
+       { 1, 1 }        /* (1..3) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_pDCCHRegionLength_constr_5 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  1,  3 }        /* (1..3) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ProtectedEUTRAResourceIndication_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ProtectedEUTRAResourceIndication, activationSFN),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_activationSFN_constr_2, &asn_PER_memb_activationSFN_constr_2,  memb_activationSFN_constraint_1 },
+               0, 0, /* No default value */
+               "activationSFN"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ProtectedEUTRAResourceIndication, protectedResourceList),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtectedResourceList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protectedResourceList"
+               },
+       { ATF_POINTER, 3, offsetof(struct ProtectedEUTRAResourceIndication, mBSFNControlRegionLength),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_mBSFNControlRegionLength_constr_4, &asn_PER_memb_mBSFNControlRegionLength_constr_4,  memb_mBSFNControlRegionLength_constraint_1 },
+               0, 0, /* No default value */
+               "mBSFNControlRegionLength"
+               },
+       { ATF_POINTER, 2, offsetof(struct ProtectedEUTRAResourceIndication, pDCCHRegionLength),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_pDCCHRegionLength_constr_5, &asn_PER_memb_pDCCHRegionLength_constr_5,  memb_pDCCHRegionLength_constraint_1 },
+               0, 0, /* No default value */
+               "pDCCHRegionLength"
+               },
+       { ATF_POINTER, 1, offsetof(struct ProtectedEUTRAResourceIndication, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P180,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ProtectedEUTRAResourceIndication_oms_1[] = { 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_ProtectedEUTRAResourceIndication_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ProtectedEUTRAResourceIndication_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* activationSFN */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* protectedResourceList */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mBSFNControlRegionLength */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* pDCCHRegionLength */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_ProtectedEUTRAResourceIndication_specs_1 = {
+       sizeof(struct ProtectedEUTRAResourceIndication),
+       offsetof(struct ProtectedEUTRAResourceIndication, _asn_ctx),
+       asn_MAP_ProtectedEUTRAResourceIndication_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_ProtectedEUTRAResourceIndication_oms_1, /* Optional members */
+       3, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtectedEUTRAResourceIndication = {
+       "ProtectedEUTRAResourceIndication",
+       "ProtectedEUTRAResourceIndication",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtectedEUTRAResourceIndication_tags_1,
+       sizeof(asn_DEF_ProtectedEUTRAResourceIndication_tags_1)
+               /sizeof(asn_DEF_ProtectedEUTRAResourceIndication_tags_1[0]), /* 1 */
+       asn_DEF_ProtectedEUTRAResourceIndication_tags_1,        /* Same as above */
+       sizeof(asn_DEF_ProtectedEUTRAResourceIndication_tags_1)
+               /sizeof(asn_DEF_ProtectedEUTRAResourceIndication_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ProtectedEUTRAResourceIndication_1,
+       5,      /* Elements count */
+       &asn_SPC_ProtectedEUTRAResourceIndication_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/ProtectedFootprintTimePattern.c b/e2ap/lib/ProtectedFootprintTimePattern.c
new file mode 100644 (file)
index 0000000..2b7db98
--- /dev/null
@@ -0,0 +1,139 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProtectedFootprintTimePattern.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_protectedFootprintTimePeriodicity_constraint_1(const 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 >= 1 && value <= 320)) {
+               /* 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_protectedFootprintStartTime_constraint_1(const 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 >= 1 && value <= 20)) {
+               /* 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_oer_constraints_t asn_OER_memb_protectedFootprintTimePeriodicity_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_protectedFootprintTimePeriodicity_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  9,  9,  1,  320 }  /* (1..320,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_protectedFootprintStartTime_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_protectedFootprintStartTime_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  5,  5,  1,  20 }   /* (1..20,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ProtectedFootprintTimePattern_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ProtectedFootprintTimePattern, protectedFootprintTimePeriodicity),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_protectedFootprintTimePeriodicity_constr_2, &asn_PER_memb_protectedFootprintTimePeriodicity_constr_2,  memb_protectedFootprintTimePeriodicity_constraint_1 },
+               0, 0, /* No default value */
+               "protectedFootprintTimePeriodicity"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ProtectedFootprintTimePattern, protectedFootprintStartTime),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_protectedFootprintStartTime_constr_3, &asn_PER_memb_protectedFootprintStartTime_constr_3,  memb_protectedFootprintStartTime_constraint_1 },
+               0, 0, /* No default value */
+               "protectedFootprintStartTime"
+               },
+       { ATF_POINTER, 1, offsetof(struct ProtectedFootprintTimePattern, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P181,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ProtectedFootprintTimePattern_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_ProtectedFootprintTimePattern_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ProtectedFootprintTimePattern_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedFootprintTimePeriodicity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* protectedFootprintStartTime */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ProtectedFootprintTimePattern_specs_1 = {
+       sizeof(struct ProtectedFootprintTimePattern),
+       offsetof(struct ProtectedFootprintTimePattern, _asn_ctx),
+       asn_MAP_ProtectedFootprintTimePattern_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_ProtectedFootprintTimePattern_oms_1,    /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtectedFootprintTimePattern = {
+       "ProtectedFootprintTimePattern",
+       "ProtectedFootprintTimePattern",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtectedFootprintTimePattern_tags_1,
+       sizeof(asn_DEF_ProtectedFootprintTimePattern_tags_1)
+               /sizeof(asn_DEF_ProtectedFootprintTimePattern_tags_1[0]), /* 1 */
+       asn_DEF_ProtectedFootprintTimePattern_tags_1,   /* Same as above */
+       sizeof(asn_DEF_ProtectedFootprintTimePattern_tags_1)
+               /sizeof(asn_DEF_ProtectedFootprintTimePattern_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ProtectedFootprintTimePattern_1,
+       3,      /* Elements count */
+       &asn_SPC_ProtectedFootprintTimePattern_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/ProtectedResourceList-Item.c b/e2ap/lib/ProtectedResourceList-Item.c
new file mode 100644 (file)
index 0000000..4abb065
--- /dev/null
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProtectedResourceList-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_intraPRBProtectedResourceFootprint_constraint_1(const 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 == 84)) {
+               /* 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_protectedFootprintFrequencyPattern_constraint_1(const 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 >= 6 && size <= 110)) {
+               /* 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_oer_constraints_t asn_OER_memb_intraPRBProtectedResourceFootprint_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+static asn_per_constraints_t asn_PER_memb_intraPRBProtectedResourceFootprint_constr_3 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  84,  84 }  /* (SIZE(84..84,...)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_protectedFootprintFrequencyPattern_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+static asn_per_constraints_t asn_PER_memb_protectedFootprintFrequencyPattern_constr_4 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  7,  7,  6,  110 }  /* (SIZE(6..110,...)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ProtectedResourceList_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ProtectedResourceList_Item, resourceType),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ResourceType,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "resourceType"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ProtectedResourceList_Item, intraPRBProtectedResourceFootprint),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_intraPRBProtectedResourceFootprint_constr_3, &asn_PER_memb_intraPRBProtectedResourceFootprint_constr_3,  memb_intraPRBProtectedResourceFootprint_constraint_1 },
+               0, 0, /* No default value */
+               "intraPRBProtectedResourceFootprint"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ProtectedResourceList_Item, protectedFootprintFrequencyPattern),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_protectedFootprintFrequencyPattern_constr_4, &asn_PER_memb_protectedFootprintFrequencyPattern_constr_4,  memb_protectedFootprintFrequencyPattern_constraint_1 },
+               0, 0, /* No default value */
+               "protectedFootprintFrequencyPattern"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ProtectedResourceList_Item, protectedFootprintTimePattern),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtectedFootprintTimePattern,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protectedFootprintTimePattern"
+               },
+       { ATF_POINTER, 1, offsetof(struct ProtectedResourceList_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P182,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ProtectedResourceList_Item_oms_1[] = { 4 };
+static const ber_tlv_tag_t asn_DEF_ProtectedResourceList_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ProtectedResourceList_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* resourceType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* intraPRBProtectedResourceFootprint */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protectedFootprintFrequencyPattern */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protectedFootprintTimePattern */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ProtectedResourceList_Item_specs_1 = {
+       sizeof(struct ProtectedResourceList_Item),
+       offsetof(struct ProtectedResourceList_Item, _asn_ctx),
+       asn_MAP_ProtectedResourceList_Item_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_ProtectedResourceList_Item_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtectedResourceList_Item = {
+       "ProtectedResourceList-Item",
+       "ProtectedResourceList-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtectedResourceList_Item_tags_1,
+       sizeof(asn_DEF_ProtectedResourceList_Item_tags_1)
+               /sizeof(asn_DEF_ProtectedResourceList_Item_tags_1[0]), /* 1 */
+       asn_DEF_ProtectedResourceList_Item_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ProtectedResourceList_Item_tags_1)
+               /sizeof(asn_DEF_ProtectedResourceList_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ProtectedResourceList_Item_1,
+       5,      /* Elements count */
+       &asn_SPC_ProtectedResourceList_Item_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ProtectedResourceList.c b/e2ap/lib/ProtectedResourceList.c
new file mode 100644 (file)
index 0000000..af6f19e
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProtectedResourceList.h"
+
+#include "ProtectedResourceList-Item.h"
+static asn_oer_constraints_t asn_OER_type_ProtectedResourceList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16)) */};
+asn_per_constraints_t asn_PER_type_ProtectedResourceList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       4,  4,  1,  16 }       /* (SIZE(1..16)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ProtectedResourceList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtectedResourceList_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtectedResourceList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtectedResourceList_specs_1 = {
+       sizeof(struct ProtectedResourceList),
+       offsetof(struct ProtectedResourceList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtectedResourceList = {
+       "ProtectedResourceList",
+       "ProtectedResourceList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtectedResourceList_tags_1,
+       sizeof(asn_DEF_ProtectedResourceList_tags_1)
+               /sizeof(asn_DEF_ProtectedResourceList_tags_1[0]), /* 1 */
+       asn_DEF_ProtectedResourceList_tags_1,   /* Same as above */
+       sizeof(asn_DEF_ProtectedResourceList_tags_1)
+               /sizeof(asn_DEF_ProtectedResourceList_tags_1[0]), /* 1 */
+       { &asn_OER_type_ProtectedResourceList_constr_1, &asn_PER_type_ProtectedResourceList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ProtectedResourceList_1,
+       1,      /* Single element */
+       &asn_SPC_ProtectedResourceList_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/ProtocolExtensionContainer.c b/e2ap/lib/ProtocolExtensionContainer.c
new file mode 100644 (file)
index 0000000..0f6cd96
--- /dev/null
@@ -0,0 +1,9599 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProtocolExtensionContainer.h"
+
+#include "ProtocolExtensionField.h"
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P0_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P0_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P1_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P1_constr_3 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P2_constr_5 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P2_constr_5 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P3_constr_7 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P3_constr_7 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P4_constr_9 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P4_constr_9 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P5_constr_11 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P5_constr_11 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P6_constr_13 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P6_constr_13 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P7_constr_15 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P7_constr_15 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P8_constr_17 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P8_constr_17 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P9_constr_19 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P9_constr_19 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P10_constr_21 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P10_constr_21 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P11_constr_23 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P11_constr_23 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P12_constr_25 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P12_constr_25 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P13_constr_27 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P13_constr_27 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P14_constr_29 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P14_constr_29 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P15_constr_31 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P15_constr_31 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P16_constr_33 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P16_constr_33 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P17_constr_35 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P17_constr_35 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P18_constr_37 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P18_constr_37 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P19_constr_39 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P19_constr_39 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P20_constr_41 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P20_constr_41 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P21_constr_43 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P21_constr_43 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P22_constr_45 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P22_constr_45 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P23_constr_47 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P23_constr_47 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P24_constr_49 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P24_constr_49 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P25_constr_51 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P25_constr_51 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P26_constr_53 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P26_constr_53 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P27_constr_55 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P27_constr_55 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P28_constr_57 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P28_constr_57 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P29_constr_59 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P29_constr_59 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P30_constr_61 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P30_constr_61 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P31_constr_63 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P31_constr_63 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P32_constr_65 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P32_constr_65 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P33_constr_67 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P33_constr_67 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P34_constr_69 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P34_constr_69 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P35_constr_71 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P35_constr_71 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P36_constr_73 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P36_constr_73 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P37_constr_75 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P37_constr_75 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P38_constr_77 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P38_constr_77 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P39_constr_79 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P39_constr_79 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P40_constr_81 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P40_constr_81 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P41_constr_83 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P41_constr_83 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P42_constr_85 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P42_constr_85 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P43_constr_87 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P43_constr_87 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P44_constr_89 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P44_constr_89 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P45_constr_91 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P45_constr_91 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P46_constr_93 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P46_constr_93 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P47_constr_95 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P47_constr_95 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P48_constr_97 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P48_constr_97 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P49_constr_99 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P49_constr_99 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P50_constr_101 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P50_constr_101 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P51_constr_103 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P51_constr_103 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P52_constr_105 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P52_constr_105 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P53_constr_107 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P53_constr_107 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P54_constr_109 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P54_constr_109 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P55_constr_111 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P55_constr_111 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P56_constr_113 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P56_constr_113 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P57_constr_115 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P57_constr_115 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P58_constr_117 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P58_constr_117 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P59_constr_119 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P59_constr_119 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P60_constr_121 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P60_constr_121 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P61_constr_123 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P61_constr_123 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P62_constr_125 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P62_constr_125 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P63_constr_127 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P63_constr_127 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P64_constr_129 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P64_constr_129 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P65_constr_131 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P65_constr_131 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P66_constr_133 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P66_constr_133 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P67_constr_135 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P67_constr_135 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P68_constr_137 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P68_constr_137 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P69_constr_139 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P69_constr_139 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P70_constr_141 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P70_constr_141 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P71_constr_143 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P71_constr_143 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P72_constr_145 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P72_constr_145 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P73_constr_147 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P73_constr_147 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P74_constr_149 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P74_constr_149 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P75_constr_151 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P75_constr_151 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P76_constr_153 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P76_constr_153 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P77_constr_155 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P77_constr_155 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P78_constr_157 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P78_constr_157 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P79_constr_159 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P79_constr_159 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P80_constr_161 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P80_constr_161 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P81_constr_163 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P81_constr_163 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P82_constr_165 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P82_constr_165 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P83_constr_167 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P83_constr_167 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P84_constr_169 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P84_constr_169 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P85_constr_171 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P85_constr_171 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P86_constr_173 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P86_constr_173 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P87_constr_175 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P87_constr_175 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P88_constr_177 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P88_constr_177 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P89_constr_179 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P89_constr_179 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P90_constr_181 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P90_constr_181 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P91_constr_183 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P91_constr_183 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P92_constr_185 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P92_constr_185 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P93_constr_187 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P93_constr_187 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P94_constr_189 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P94_constr_189 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P95_constr_191 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P95_constr_191 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P96_constr_193 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P96_constr_193 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P97_constr_195 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P97_constr_195 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P98_constr_197 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P98_constr_197 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P99_constr_199 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P99_constr_199 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P100_constr_201 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P100_constr_201 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P101_constr_203 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P101_constr_203 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P102_constr_205 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P102_constr_205 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P103_constr_207 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P103_constr_207 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P104_constr_209 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P104_constr_209 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P105_constr_211 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P105_constr_211 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P106_constr_213 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P106_constr_213 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P107_constr_215 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P107_constr_215 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P108_constr_217 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P108_constr_217 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P109_constr_219 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P109_constr_219 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P110_constr_221 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P110_constr_221 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P111_constr_223 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P111_constr_223 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P112_constr_225 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P112_constr_225 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P113_constr_227 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P113_constr_227 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P114_constr_229 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P114_constr_229 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P115_constr_231 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P115_constr_231 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P116_constr_233 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P116_constr_233 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P117_constr_235 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P117_constr_235 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P118_constr_237 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P118_constr_237 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P119_constr_239 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P119_constr_239 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P120_constr_241 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P120_constr_241 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P121_constr_243 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P121_constr_243 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P122_constr_245 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P122_constr_245 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P123_constr_247 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P123_constr_247 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P124_constr_249 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P124_constr_249 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P125_constr_251 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P125_constr_251 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P126_constr_253 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P126_constr_253 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P127_constr_255 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P127_constr_255 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P128_constr_257 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P128_constr_257 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P129_constr_259 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P129_constr_259 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P130_constr_261 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P130_constr_261 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P131_constr_263 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P131_constr_263 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P132_constr_265 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P132_constr_265 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P133_constr_267 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P133_constr_267 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P134_constr_269 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P134_constr_269 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P135_constr_271 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P135_constr_271 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P136_constr_273 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P136_constr_273 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P137_constr_275 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P137_constr_275 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P138_constr_277 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P138_constr_277 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P139_constr_279 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P139_constr_279 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P140_constr_281 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P140_constr_281 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P141_constr_283 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P141_constr_283 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P142_constr_285 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P142_constr_285 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P143_constr_287 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P143_constr_287 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P144_constr_289 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P144_constr_289 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P145_constr_291 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P145_constr_291 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P146_constr_293 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P146_constr_293 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P147_constr_295 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P147_constr_295 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P148_constr_297 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P148_constr_297 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P149_constr_299 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P149_constr_299 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P150_constr_301 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P150_constr_301 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P151_constr_303 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P151_constr_303 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P152_constr_305 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P152_constr_305 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P153_constr_307 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P153_constr_307 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P154_constr_309 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P154_constr_309 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P155_constr_311 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P155_constr_311 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P156_constr_313 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P156_constr_313 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P157_constr_315 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P157_constr_315 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P158_constr_317 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P158_constr_317 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P159_constr_319 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P159_constr_319 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P160_constr_321 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P160_constr_321 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P161_constr_323 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P161_constr_323 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P162_constr_325 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P162_constr_325 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P163_constr_327 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P163_constr_327 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P164_constr_329 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P164_constr_329 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P165_constr_331 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P165_constr_331 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P166_constr_333 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P166_constr_333 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P167_constr_335 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P167_constr_335 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P168_constr_337 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P168_constr_337 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P169_constr_339 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P169_constr_339 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P170_constr_341 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P170_constr_341 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P171_constr_343 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P171_constr_343 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P172_constr_345 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P172_constr_345 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P173_constr_347 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P173_constr_347 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P174_constr_349 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P174_constr_349 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P175_constr_351 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P175_constr_351 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P176_constr_353 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P176_constr_353 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P177_constr_355 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P177_constr_355 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P178_constr_357 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P178_constr_357 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P179_constr_359 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P179_constr_359 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P180_constr_361 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P180_constr_361 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P181_constr_363 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P181_constr_363 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P182_constr_365 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P182_constr_365 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P183_constr_367 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P183_constr_367 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P184_constr_369 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P184_constr_369 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P185_constr_371 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P185_constr_371 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P186_constr_373 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P186_constr_373 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P187_constr_375 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P187_constr_375 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P188_constr_377 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P188_constr_377 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P189_constr_379 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P189_constr_379 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P190_constr_381 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P190_constr_381 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P191_constr_383 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P191_constr_383 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P192_constr_385 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P192_constr_385 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P193_constr_387 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P193_constr_387 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P194_constr_389 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P194_constr_389 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P195_constr_391 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P195_constr_391 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P196_constr_393 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P196_constr_393 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P197_constr_395 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P197_constr_395 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P198_constr_397 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P198_constr_397 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P199_constr_399 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P199_constr_399 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P200_constr_401 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P200_constr_401 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P201_constr_403 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P201_constr_403 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P202_constr_405 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P202_constr_405 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P203_constr_407 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P203_constr_407 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P204_constr_409 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P204_constr_409 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P205_constr_411 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P205_constr_411 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P206_constr_413 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P206_constr_413 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P207_constr_415 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P207_constr_415 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P208_constr_417 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P208_constr_417 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P209_constr_419 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P209_constr_419 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P210_constr_421 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P210_constr_421 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P211_constr_423 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P211_constr_423 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P212_constr_425 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P212_constr_425 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P213_constr_427 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P213_constr_427 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P214_constr_429 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P214_constr_429 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P215_constr_431 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P215_constr_431 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P216_constr_433 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P216_constr_433 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P217_constr_435 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P217_constr_435 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P218_constr_437 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P218_constr_437 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P219_constr_439 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P219_constr_439 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P220_constr_441 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P220_constr_441 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P221_constr_443 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P221_constr_443 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_9566P222_constr_445 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_9566P222_constr_445 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  1,  65535 }  /* (SIZE(1..65535)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P0_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UE_ContextInformation_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P0_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P0_specs_1 = {
+       sizeof(struct ProtocolExtensionContainer_9566P0),
+       offsetof(struct ProtocolExtensionContainer_9566P0, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P0 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P0_tags_1,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P0_tags_1)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P0_tags_1[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P0_tags_1,       /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P0_tags_1)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P0_tags_1[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P0_constr_1, &asn_PER_type_ProtocolExtensionContainer_9566P0_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P0_1,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P0_specs_1      /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P1_3[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeSetup_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P1_tags_3[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P1_specs_3 = {
+       sizeof(struct ProtocolExtensionContainer_9566P1),
+       offsetof(struct ProtocolExtensionContainer_9566P1, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P1 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P1_tags_3,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P1_tags_3)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P1_tags_3[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P1_tags_3,       /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P1_tags_3)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P1_tags_3[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P1_constr_3, &asn_PER_type_ProtocolExtensionContainer_9566P1_constr_3, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P1_3,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P1_specs_3      /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P2_5[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P2_tags_5[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P2_specs_5 = {
+       sizeof(struct ProtocolExtensionContainer_9566P2),
+       offsetof(struct ProtocolExtensionContainer_9566P2, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P2 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P2_tags_5,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P2_tags_5)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P2_tags_5[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P2_tags_5,       /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P2_tags_5)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P2_tags_5[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P2_constr_5, &asn_PER_type_ProtocolExtensionContainer_9566P2_constr_5, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P2_5,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P2_specs_5      /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P3_7[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P3_tags_7[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P3_specs_7 = {
+       sizeof(struct ProtocolExtensionContainer_9566P3),
+       offsetof(struct ProtocolExtensionContainer_9566P3, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P3 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P3_tags_7,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P3_tags_7)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P3_tags_7[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P3_tags_7,       /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P3_tags_7)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P3_tags_7[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P3_constr_7, &asn_PER_type_ProtocolExtensionContainer_9566P3_constr_7, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P3_7,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P3_specs_7      /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P4_9[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P4_tags_9[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P4_specs_9 = {
+       sizeof(struct ProtocolExtensionContainer_9566P4),
+       offsetof(struct ProtocolExtensionContainer_9566P4, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P4 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P4_tags_9,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P4_tags_9)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P4_tags_9[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P4_tags_9,       /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P4_tags_9)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P4_tags_9[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P4_constr_9, &asn_PER_type_ProtocolExtensionContainer_9566P4_constr_9, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P4_9,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P4_specs_9      /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P5_11[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P5_tags_11[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P5_specs_11 = {
+       sizeof(struct ProtocolExtensionContainer_9566P5),
+       offsetof(struct ProtocolExtensionContainer_9566P5, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P5 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P5_tags_11,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P5_tags_11)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P5_tags_11[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P5_tags_11,      /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P5_tags_11)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P5_tags_11[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P5_constr_11, &asn_PER_type_ProtocolExtensionContainer_9566P5_constr_11, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P5_11,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P5_specs_11     /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P6_13[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P6_tags_13[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P6_specs_13 = {
+       sizeof(struct ProtocolExtensionContainer_9566P6),
+       offsetof(struct ProtocolExtensionContainer_9566P6, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P6 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P6_tags_13,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P6_tags_13)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P6_tags_13[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P6_tags_13,      /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P6_tags_13)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P6_tags_13[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P6_constr_13, &asn_PER_type_ProtocolExtensionContainer_9566P6_constr_13, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P6_13,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P6_specs_13     /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P7_15[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellInformation_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P7_tags_15[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P7_specs_15 = {
+       sizeof(struct ProtocolExtensionContainer_9566P7),
+       offsetof(struct ProtocolExtensionContainer_9566P7, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P7 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P7_tags_15,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P7_tags_15)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P7_tags_15[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P7_tags_15,      /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P7_tags_15)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P7_tags_15[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P7_constr_15, &asn_PER_type_ProtocolExtensionContainer_9566P7_constr_15, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P7_15,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P7_specs_15     /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P8_17[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedCellsToModify_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P8_tags_17[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P8_specs_17 = {
+       sizeof(struct ProtocolExtensionContainer_9566P8),
+       offsetof(struct ProtocolExtensionContainer_9566P8, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P8 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P8_tags_17,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P8_tags_17)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P8_tags_17[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P8_tags_17,      /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P8_tags_17)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P8_tags_17[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P8_constr_17, &asn_PER_type_ProtocolExtensionContainer_9566P8_constr_17, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P8_17,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P8_specs_17     /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P9_19[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellToReport_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P9_tags_19[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P9_specs_19 = {
+       sizeof(struct ProtocolExtensionContainer_9566P9),
+       offsetof(struct ProtocolExtensionContainer_9566P9, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P9 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P9_tags_19,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P9_tags_19)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P9_tags_19[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P9_tags_19,      /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P9_tags_19)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P9_tags_19[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P9_constr_19, &asn_PER_type_ProtocolExtensionContainer_9566P9_constr_19, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P9_19,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P9_specs_19     /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P10_21[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MeasurementInitiationResult_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P10_tags_21[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P10_specs_21 = {
+       sizeof(struct ProtocolExtensionContainer_9566P10),
+       offsetof(struct ProtocolExtensionContainer_9566P10, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P10 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P10_tags_21,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P10_tags_21)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P10_tags_21[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P10_tags_21,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P10_tags_21)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P10_tags_21[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P10_constr_21, &asn_PER_type_ProtocolExtensionContainer_9566P10_constr_21, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P10_21,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P10_specs_21    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P11_23[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MeasurementFailureCause_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P11_tags_23[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P11_specs_23 = {
+       sizeof(struct ProtocolExtensionContainer_9566P11),
+       offsetof(struct ProtocolExtensionContainer_9566P11, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P11 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P11_tags_23,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P11_tags_23)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P11_tags_23[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P11_tags_23,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P11_tags_23)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P11_tags_23[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P11_constr_23, &asn_PER_type_ProtocolExtensionContainer_9566P11_constr_23, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P11_23,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P11_specs_23    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P12_25[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P12_tags_25[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P12_specs_25 = {
+       sizeof(struct ProtocolExtensionContainer_9566P12),
+       offsetof(struct ProtocolExtensionContainer_9566P12, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P12 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P12_tags_25,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P12_tags_25)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P12_tags_25[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P12_tags_25,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P12_tags_25)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P12_tags_25[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P12_constr_25, &asn_PER_type_ProtocolExtensionContainer_9566P12_constr_25, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P12_25,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P12_specs_25    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P13_27[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellMeasurementResult_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P13_tags_27[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P13_specs_27 = {
+       sizeof(struct ProtocolExtensionContainer_9566P13),
+       offsetof(struct ProtocolExtensionContainer_9566P13, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P13 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P13_tags_27,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P13_tags_27)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P13_tags_27[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P13_tags_27,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P13_tags_27)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P13_tags_27[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P13_constr_27, &asn_PER_type_ProtocolExtensionContainer_9566P13_constr_27, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P13_27,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P13_specs_27    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P14_29[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedCellsToActivate_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P14_tags_29[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P14_specs_29 = {
+       sizeof(struct ProtocolExtensionContainer_9566P14),
+       offsetof(struct ProtocolExtensionContainer_9566P14, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P14 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P14_tags_29,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P14_tags_29)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P14_tags_29[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P14_tags_29,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P14_tags_29)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P14_tags_29[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P14_constr_29, &asn_PER_type_ProtocolExtensionContainer_9566P14_constr_29, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P14_29,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P14_specs_29    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P15_31[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ActivatedCellList_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P15_tags_31[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P15_specs_31 = {
+       sizeof(struct ProtocolExtensionContainer_9566P15),
+       offsetof(struct ProtocolExtensionContainer_9566P15, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P15 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P15_tags_31,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P15_tags_31)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P15_tags_31[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P15_tags_31,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P15_tags_31)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P15_tags_31[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P15_constr_31, &asn_PER_type_ProtocolExtensionContainer_9566P15_constr_31, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P15_31,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P15_specs_31    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P16_33[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RNL_Header_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P16_tags_33[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P16_specs_33 = {
+       sizeof(struct ProtocolExtensionContainer_9566P16),
+       offsetof(struct ProtocolExtensionContainer_9566P16, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P16 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P16_tags_33,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P16_tags_33)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P16_tags_33[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P16_tags_33,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P16_tags_33)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P16_tags_33[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P16_constr_33, &asn_PER_type_ProtocolExtensionContainer_9566P16_constr_33, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P16_33,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P16_specs_33    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P17_35[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P17_tags_35[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P17_specs_35 = {
+       sizeof(struct ProtocolExtensionContainer_9566P17),
+       offsetof(struct ProtocolExtensionContainer_9566P17, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P17 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P17_tags_35,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P17_tags_35)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P17_tags_35[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P17_tags_35,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P17_tags_35)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P17_tags_35[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P17_constr_35, &asn_PER_type_ProtocolExtensionContainer_9566P17_constr_35, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P17_35,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P17_specs_35    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P18_37[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P18_tags_37[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P18_specs_37 = {
+       sizeof(struct ProtocolExtensionContainer_9566P18),
+       offsetof(struct ProtocolExtensionContainer_9566P18, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P18 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P18_tags_37,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P18_tags_37)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P18_tags_37[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P18_tags_37,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P18_tags_37)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P18_tags_37[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P18_constr_37, &asn_PER_type_ProtocolExtensionContainer_9566P18_constr_37, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P18_37,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P18_specs_37    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P19_39[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P19_tags_39[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P19_specs_39 = {
+       sizeof(struct ProtocolExtensionContainer_9566P19),
+       offsetof(struct ProtocolExtensionContainer_9566P19, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P19 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P19_tags_39,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P19_tags_39)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P19_tags_39[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P19_tags_39,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P19_tags_39)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P19_tags_39[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P19_constr_39, &asn_PER_type_ProtocolExtensionContainer_9566P19_constr_39, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P19_39,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P19_specs_39    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P20_41[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P20_tags_41[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P20_specs_41 = {
+       sizeof(struct ProtocolExtensionContainer_9566P20),
+       offsetof(struct ProtocolExtensionContainer_9566P20, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P20 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P20_tags_41,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P20_tags_41)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P20_tags_41[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P20_tags_41,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P20_tags_41)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P20_tags_41[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P20_constr_41, &asn_PER_type_ProtocolExtensionContainer_9566P20_constr_41, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P20_41,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P20_specs_41    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P21_43[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P21_tags_43[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P21_specs_43 = {
+       sizeof(struct ProtocolExtensionContainer_9566P21),
+       offsetof(struct ProtocolExtensionContainer_9566P21, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P21 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P21_tags_43,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P21_tags_43)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P21_tags_43[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P21_tags_43,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P21_tags_43)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P21_tags_43[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P21_constr_43, &asn_PER_type_ProtocolExtensionContainer_9566P21_constr_43, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P21_43,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P21_specs_43    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P22_45[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P22_tags_45[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P22_specs_45 = {
+       sizeof(struct ProtocolExtensionContainer_9566P22),
+       offsetof(struct ProtocolExtensionContainer_9566P22, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P22 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P22_tags_45,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P22_tags_45)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P22_tags_45[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P22_tags_45,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P22_tags_45)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P22_tags_45[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P22_constr_45, &asn_PER_type_ProtocolExtensionContainer_9566P22_constr_45, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P22_45,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P22_specs_45    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P23_47[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UE_ContextInformationSeNBModReqExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P23_tags_47[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P23_specs_47 = {
+       sizeof(struct ProtocolExtensionContainer_9566P23),
+       offsetof(struct ProtocolExtensionContainer_9566P23, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P23 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P23_tags_47,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P23_tags_47)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P23_tags_47[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P23_tags_47,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P23_tags_47)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P23_tags_47[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P23_constr_47, &asn_PER_type_ProtocolExtensionContainer_9566P23_constr_47, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P23_47,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P23_specs_47    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P24_49[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P24_tags_49[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P24_specs_49 = {
+       sizeof(struct ProtocolExtensionContainer_9566P24),
+       offsetof(struct ProtocolExtensionContainer_9566P24, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P24 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P24_tags_49,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P24_tags_49)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P24_tags_49[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P24_tags_49,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P24_tags_49)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P24_tags_49[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P24_constr_49, &asn_PER_type_ProtocolExtensionContainer_9566P24_constr_49, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P24_49,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P24_specs_49    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P25_51[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P25_tags_51[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P25_specs_51 = {
+       sizeof(struct ProtocolExtensionContainer_9566P25),
+       offsetof(struct ProtocolExtensionContainer_9566P25, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P25 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P25_tags_51,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P25_tags_51)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P25_tags_51[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P25_tags_51,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P25_tags_51)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P25_tags_51[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P25_constr_51, &asn_PER_type_ProtocolExtensionContainer_9566P25_constr_51, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P25_51,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P25_specs_51    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P26_53[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P26_tags_53[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P26_specs_53 = {
+       sizeof(struct ProtocolExtensionContainer_9566P26),
+       offsetof(struct ProtocolExtensionContainer_9566P26, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P26 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P26_tags_53,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P26_tags_53)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P26_tags_53[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P26_tags_53,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P26_tags_53)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P26_tags_53[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P26_constr_53, &asn_PER_type_ProtocolExtensionContainer_9566P26_constr_53, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P26_53,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P26_specs_53    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P27_55[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P27_tags_55[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P27_specs_55 = {
+       sizeof(struct ProtocolExtensionContainer_9566P27),
+       offsetof(struct ProtocolExtensionContainer_9566P27, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P27 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P27_tags_55,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P27_tags_55)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P27_tags_55[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P27_tags_55,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P27_tags_55)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P27_tags_55[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P27_constr_55, &asn_PER_type_ProtocolExtensionContainer_9566P27_constr_55, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P27_55,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P27_specs_55    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P28_57[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P28_tags_57[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P28_specs_57 = {
+       sizeof(struct ProtocolExtensionContainer_9566P28),
+       offsetof(struct ProtocolExtensionContainer_9566P28, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P28 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P28_tags_57,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P28_tags_57)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P28_tags_57[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P28_tags_57,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P28_tags_57)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P28_tags_57[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P28_constr_57, &asn_PER_type_ProtocolExtensionContainer_9566P28_constr_57, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P28_57,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P28_specs_57    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P29_59[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P29_tags_59[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P29_specs_59 = {
+       sizeof(struct ProtocolExtensionContainer_9566P29),
+       offsetof(struct ProtocolExtensionContainer_9566P29, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P29 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P29_tags_59,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P29_tags_59)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P29_tags_59[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P29_tags_59,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P29_tags_59)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P29_tags_59[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P29_constr_59, &asn_PER_type_ProtocolExtensionContainer_9566P29_constr_59, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P29_59,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P29_specs_59    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P30_61[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P30_tags_61[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P30_specs_61 = {
+       sizeof(struct ProtocolExtensionContainer_9566P30),
+       offsetof(struct ProtocolExtensionContainer_9566P30, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P30 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P30_tags_61,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P30_tags_61)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P30_tags_61[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P30_tags_61,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P30_tags_61)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P30_tags_61[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P30_constr_61, &asn_PER_type_ProtocolExtensionContainer_9566P30_constr_61, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P30_61,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P30_specs_61    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P31_63[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P31_tags_63[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P31_specs_63 = {
+       sizeof(struct ProtocolExtensionContainer_9566P31),
+       offsetof(struct ProtocolExtensionContainer_9566P31, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P31 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P31_tags_63,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P31_tags_63)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P31_tags_63[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P31_tags_63,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P31_tags_63)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P31_tags_63[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P31_constr_63, &asn_PER_type_ProtocolExtensionContainer_9566P31_constr_63, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P31_63,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P31_specs_63    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P32_65[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P32_tags_65[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P32_specs_65 = {
+       sizeof(struct ProtocolExtensionContainer_9566P32),
+       offsetof(struct ProtocolExtensionContainer_9566P32, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P32 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P32_tags_65,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P32_tags_65)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P32_tags_65[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P32_tags_65,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P32_tags_65)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P32_tags_65[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P32_constr_65, &asn_PER_type_ProtocolExtensionContainer_9566P32_constr_65, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P32_65,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P32_specs_65    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P33_67[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P33_tags_67[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P33_specs_67 = {
+       sizeof(struct ProtocolExtensionContainer_9566P33),
+       offsetof(struct ProtocolExtensionContainer_9566P33, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P33 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P33_tags_67,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P33_tags_67)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P33_tags_67[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P33_tags_67,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P33_tags_67)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P33_tags_67[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P33_constr_67, &asn_PER_type_ProtocolExtensionContainer_9566P33_constr_67, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P33_67,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P33_specs_67    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P34_69[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P34_tags_69[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P34_specs_69 = {
+       sizeof(struct ProtocolExtensionContainer_9566P34),
+       offsetof(struct ProtocolExtensionContainer_9566P34, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P34 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P34_tags_69,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P34_tags_69)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P34_tags_69[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P34_tags_69,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P34_tags_69)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P34_tags_69[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P34_constr_69, &asn_PER_type_ProtocolExtensionContainer_9566P34_constr_69, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P34_69,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P34_specs_69    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P35_71[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P35_tags_71[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P35_specs_71 = {
+       sizeof(struct ProtocolExtensionContainer_9566P35),
+       offsetof(struct ProtocolExtensionContainer_9566P35, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P35 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P35_tags_71,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P35_tags_71)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P35_tags_71[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P35_tags_71,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P35_tags_71)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P35_tags_71[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P35_constr_71, &asn_PER_type_ProtocolExtensionContainer_9566P35_constr_71, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P35_71,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P35_specs_71    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P36_73[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P36_tags_73[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P36_specs_73 = {
+       sizeof(struct ProtocolExtensionContainer_9566P36),
+       offsetof(struct ProtocolExtensionContainer_9566P36, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P36 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P36_tags_73,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P36_tags_73)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P36_tags_73[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P36_tags_73,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P36_tags_73)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P36_tags_73[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P36_constr_73, &asn_PER_type_ProtocolExtensionContainer_9566P36_constr_73, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P36_73,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P36_specs_73    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P37_75[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P37_tags_75[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P37_specs_75 = {
+       sizeof(struct ProtocolExtensionContainer_9566P37),
+       offsetof(struct ProtocolExtensionContainer_9566P37, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P37 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P37_tags_75,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P37_tags_75)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P37_tags_75[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P37_tags_75,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P37_tags_75)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P37_tags_75[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P37_constr_75, &asn_PER_type_ProtocolExtensionContainer_9566P37_constr_75, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P37_75,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P37_specs_75    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P38_77[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P38_tags_77[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P38_specs_77 = {
+       sizeof(struct ProtocolExtensionContainer_9566P38),
+       offsetof(struct ProtocolExtensionContainer_9566P38, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P38 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P38_tags_77,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P38_tags_77)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P38_tags_77[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P38_tags_77,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P38_tags_77)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P38_tags_77[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P38_constr_77, &asn_PER_type_ProtocolExtensionContainer_9566P38_constr_77, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P38_77,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P38_specs_77    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P39_79[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P39_tags_79[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P39_specs_79 = {
+       sizeof(struct ProtocolExtensionContainer_9566P39),
+       offsetof(struct ProtocolExtensionContainer_9566P39, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P39 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P39_tags_79,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P39_tags_79)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P39_tags_79[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P39_tags_79,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P39_tags_79)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P39_tags_79[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P39_constr_79, &asn_PER_type_ProtocolExtensionContainer_9566P39_constr_79, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P39_79,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P39_specs_79    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P40_81[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P40_tags_81[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P40_specs_81 = {
+       sizeof(struct ProtocolExtensionContainer_9566P40),
+       offsetof(struct ProtocolExtensionContainer_9566P40, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P40 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P40_tags_81,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P40_tags_81)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P40_tags_81[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P40_tags_81,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P40_tags_81)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P40_tags_81[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P40_constr_81, &asn_PER_type_ProtocolExtensionContainer_9566P40_constr_81, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P40_81,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P40_specs_81    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P41_83[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P41_tags_83[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P41_specs_83 = {
+       sizeof(struct ProtocolExtensionContainer_9566P41),
+       offsetof(struct ProtocolExtensionContainer_9566P41, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P41 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P41_tags_83,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P41_tags_83)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P41_tags_83[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P41_tags_83,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P41_tags_83)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P41_tags_83[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P41_constr_83, &asn_PER_type_ProtocolExtensionContainer_9566P41_constr_83, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P41_83,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P41_specs_83    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P42_85[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UE_ContextInformationRetrieve_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P42_tags_85[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P42_specs_85 = {
+       sizeof(struct ProtocolExtensionContainer_9566P42),
+       offsetof(struct ProtocolExtensionContainer_9566P42, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P42 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P42_tags_85,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P42_tags_85)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P42_tags_85[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P42_tags_85,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P42_tags_85)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P42_tags_85[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P42_constr_85, &asn_PER_type_ProtocolExtensionContainer_9566P42_constr_85, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P42_85,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P42_specs_85    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P43_87[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P43_tags_87[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P43_specs_87 = {
+       sizeof(struct ProtocolExtensionContainer_9566P43),
+       offsetof(struct ProtocolExtensionContainer_9566P43, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P43 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P43_tags_87,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P43_tags_87)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P43_tags_87[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P43_tags_87,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P43_tags_87)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P43_tags_87[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P43_constr_87, &asn_PER_type_ProtocolExtensionContainer_9566P43_constr_87, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P43_87,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P43_specs_87    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P44_89[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P44_tags_89[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P44_specs_89 = {
+       sizeof(struct ProtocolExtensionContainer_9566P44),
+       offsetof(struct ProtocolExtensionContainer_9566P44, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P44 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P44_tags_89,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P44_tags_89)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P44_tags_89[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P44_tags_89,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P44_tags_89)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P44_tags_89[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P44_constr_89, &asn_PER_type_ProtocolExtensionContainer_9566P44_constr_89, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P44_89,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P44_specs_89    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P45_91[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P45_tags_91[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P45_specs_91 = {
+       sizeof(struct ProtocolExtensionContainer_9566P45),
+       offsetof(struct ProtocolExtensionContainer_9566P45, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P45 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P45_tags_91,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P45_tags_91)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P45_tags_91[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P45_tags_91,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P45_tags_91)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P45_tags_91[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P45_constr_91, &asn_PER_type_ProtocolExtensionContainer_9566P45_constr_91, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P45_91,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P45_specs_91    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P46_93[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P46_tags_93[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P46_specs_93 = {
+       sizeof(struct ProtocolExtensionContainer_9566P46),
+       offsetof(struct ProtocolExtensionContainer_9566P46, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P46 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P46_tags_93,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P46_tags_93)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P46_tags_93[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P46_tags_93,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P46_tags_93)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P46_tags_93[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P46_constr_93, &asn_PER_type_ProtocolExtensionContainer_9566P46_constr_93, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P46_93,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P46_specs_93    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P47_95[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P47_tags_95[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P47_specs_95 = {
+       sizeof(struct ProtocolExtensionContainer_9566P47),
+       offsetof(struct ProtocolExtensionContainer_9566P47, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P47 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P47_tags_95,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P47_tags_95)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P47_tags_95[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P47_tags_95,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P47_tags_95)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P47_tags_95[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P47_constr_95, &asn_PER_type_ProtocolExtensionContainer_9566P47_constr_95, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P47_95,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P47_specs_95    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P48_97[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P48_tags_97[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P48_specs_97 = {
+       sizeof(struct ProtocolExtensionContainer_9566P48),
+       offsetof(struct ProtocolExtensionContainer_9566P48, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P48 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P48_tags_97,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P48_tags_97)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P48_tags_97[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P48_tags_97,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P48_tags_97)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P48_tags_97[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P48_constr_97, &asn_PER_type_ProtocolExtensionContainer_9566P48_constr_97, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P48_97,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P48_specs_97    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P49_99[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P49_tags_99[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P49_specs_99 = {
+       sizeof(struct ProtocolExtensionContainer_9566P49),
+       offsetof(struct ProtocolExtensionContainer_9566P49, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P49 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P49_tags_99,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P49_tags_99)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P49_tags_99[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P49_tags_99,     /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P49_tags_99)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P49_tags_99[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P49_constr_99, &asn_PER_type_ProtocolExtensionContainer_9566P49_constr_99, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P49_99,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P49_specs_99    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P50_101[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P50_tags_101[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P50_specs_101 = {
+       sizeof(struct ProtocolExtensionContainer_9566P50),
+       offsetof(struct ProtocolExtensionContainer_9566P50, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P50 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P50_tags_101,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P50_tags_101)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P50_tags_101[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P50_tags_101,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P50_tags_101)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P50_tags_101[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P50_constr_101, &asn_PER_type_ProtocolExtensionContainer_9566P50_constr_101, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P50_101,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P50_specs_101   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P51_103[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P51_tags_103[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P51_specs_103 = {
+       sizeof(struct ProtocolExtensionContainer_9566P51),
+       offsetof(struct ProtocolExtensionContainer_9566P51, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P51 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P51_tags_103,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P51_tags_103)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P51_tags_103[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P51_tags_103,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P51_tags_103)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P51_tags_103[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P51_constr_103, &asn_PER_type_ProtocolExtensionContainer_9566P51_constr_103, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P51_103,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P51_specs_103   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P52_105[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UE_ContextInformationSgNBModReqExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P52_tags_105[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P52_specs_105 = {
+       sizeof(struct ProtocolExtensionContainer_9566P52),
+       offsetof(struct ProtocolExtensionContainer_9566P52, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P52 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P52_tags_105,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P52_tags_105)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P52_tags_105[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P52_tags_105,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P52_tags_105)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P52_tags_105[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P52_constr_105, &asn_PER_type_ProtocolExtensionContainer_9566P52_constr_105, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P52_105,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P52_specs_105   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P53_107[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P53_tags_107[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P53_specs_107 = {
+       sizeof(struct ProtocolExtensionContainer_9566P53),
+       offsetof(struct ProtocolExtensionContainer_9566P53, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P53 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P53_tags_107,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P53_tags_107)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P53_tags_107[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P53_tags_107,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P53_tags_107)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P53_tags_107[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P53_constr_107, &asn_PER_type_ProtocolExtensionContainer_9566P53_constr_107, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P53_107,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P53_specs_107   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P54_109[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P54_tags_109[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P54_specs_109 = {
+       sizeof(struct ProtocolExtensionContainer_9566P54),
+       offsetof(struct ProtocolExtensionContainer_9566P54, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P54 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P54_tags_109,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P54_tags_109)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P54_tags_109[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P54_tags_109,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P54_tags_109)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P54_tags_109[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P54_constr_109, &asn_PER_type_ProtocolExtensionContainer_9566P54_constr_109, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P54_109,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P54_specs_109   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P55_111[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P55_tags_111[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P55_specs_111 = {
+       sizeof(struct ProtocolExtensionContainer_9566P55),
+       offsetof(struct ProtocolExtensionContainer_9566P55, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P55 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P55_tags_111,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P55_tags_111)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P55_tags_111[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P55_tags_111,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P55_tags_111)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P55_tags_111[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P55_constr_111, &asn_PER_type_ProtocolExtensionContainer_9566P55_constr_111, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P55_111,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P55_specs_111   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P56_113[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P56_tags_113[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P56_specs_113 = {
+       sizeof(struct ProtocolExtensionContainer_9566P56),
+       offsetof(struct ProtocolExtensionContainer_9566P56, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P56 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P56_tags_113,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P56_tags_113)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P56_tags_113[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P56_tags_113,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P56_tags_113)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P56_tags_113[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P56_constr_113, &asn_PER_type_ProtocolExtensionContainer_9566P56_constr_113, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P56_113,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P56_specs_113   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P57_115[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P57_tags_115[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P57_specs_115 = {
+       sizeof(struct ProtocolExtensionContainer_9566P57),
+       offsetof(struct ProtocolExtensionContainer_9566P57, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P57 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P57_tags_115,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P57_tags_115)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P57_tags_115[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P57_tags_115,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P57_tags_115)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P57_tags_115[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P57_constr_115, &asn_PER_type_ProtocolExtensionContainer_9566P57_constr_115, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P57_115,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P57_specs_115   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P58_117[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P58_tags_117[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P58_specs_117 = {
+       sizeof(struct ProtocolExtensionContainer_9566P58),
+       offsetof(struct ProtocolExtensionContainer_9566P58, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P58 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P58_tags_117,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P58_tags_117)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P58_tags_117[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P58_tags_117,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P58_tags_117)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P58_tags_117[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P58_constr_117, &asn_PER_type_ProtocolExtensionContainer_9566P58_constr_117, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P58_117,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P58_specs_117   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P59_119[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P59_tags_119[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P59_specs_119 = {
+       sizeof(struct ProtocolExtensionContainer_9566P59),
+       offsetof(struct ProtocolExtensionContainer_9566P59, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P59 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P59_tags_119,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P59_tags_119)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P59_tags_119[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P59_tags_119,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P59_tags_119)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P59_tags_119[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P59_constr_119, &asn_PER_type_ProtocolExtensionContainer_9566P59_constr_119, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P59_119,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P59_specs_119   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P60_121[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P60_tags_121[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P60_specs_121 = {
+       sizeof(struct ProtocolExtensionContainer_9566P60),
+       offsetof(struct ProtocolExtensionContainer_9566P60, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P60 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P60_tags_121,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P60_tags_121)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P60_tags_121[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P60_tags_121,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P60_tags_121)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P60_tags_121[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P60_constr_121, &asn_PER_type_ProtocolExtensionContainer_9566P60_constr_121, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P60_121,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P60_specs_121   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P61_123[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P61_tags_123[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P61_specs_123 = {
+       sizeof(struct ProtocolExtensionContainer_9566P61),
+       offsetof(struct ProtocolExtensionContainer_9566P61, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P61 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P61_tags_123,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P61_tags_123)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P61_tags_123[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P61_tags_123,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P61_tags_123)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P61_tags_123[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P61_constr_123, &asn_PER_type_ProtocolExtensionContainer_9566P61_constr_123, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P61_123,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P61_specs_123   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P62_125[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P62_tags_125[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P62_specs_125 = {
+       sizeof(struct ProtocolExtensionContainer_9566P62),
+       offsetof(struct ProtocolExtensionContainer_9566P62, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P62 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P62_tags_125,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P62_tags_125)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P62_tags_125[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P62_tags_125,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P62_tags_125)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P62_tags_125[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P62_constr_125, &asn_PER_type_ProtocolExtensionContainer_9566P62_constr_125, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P62_125,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P62_specs_125   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P63_127[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P63_tags_127[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P63_specs_127 = {
+       sizeof(struct ProtocolExtensionContainer_9566P63),
+       offsetof(struct ProtocolExtensionContainer_9566P63, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P63 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P63_tags_127,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P63_tags_127)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P63_tags_127[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P63_tags_127,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P63_tags_127)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P63_tags_127[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P63_constr_127, &asn_PER_type_ProtocolExtensionContainer_9566P63_constr_127, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P63_127,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P63_specs_127   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P64_129[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P64_tags_129[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P64_specs_129 = {
+       sizeof(struct ProtocolExtensionContainer_9566P64),
+       offsetof(struct ProtocolExtensionContainer_9566P64, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P64 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P64_tags_129,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P64_tags_129)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P64_tags_129[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P64_tags_129,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P64_tags_129)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P64_tags_129[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P64_constr_129, &asn_PER_type_ProtocolExtensionContainer_9566P64_constr_129, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P64_129,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P64_specs_129   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P65_131[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P65_tags_131[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P65_specs_131 = {
+       sizeof(struct ProtocolExtensionContainer_9566P65),
+       offsetof(struct ProtocolExtensionContainer_9566P65, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P65 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P65_tags_131,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P65_tags_131)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P65_tags_131[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P65_tags_131,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P65_tags_131)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P65_tags_131[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P65_constr_131, &asn_PER_type_ProtocolExtensionContainer_9566P65_constr_131, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P65_131,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P65_specs_131   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P66_133[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P66_tags_133[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P66_specs_133 = {
+       sizeof(struct ProtocolExtensionContainer_9566P66),
+       offsetof(struct ProtocolExtensionContainer_9566P66, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P66 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P66_tags_133,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P66_tags_133)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P66_tags_133[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P66_tags_133,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P66_tags_133)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P66_tags_133[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P66_constr_133, &asn_PER_type_ProtocolExtensionContainer_9566P66_constr_133, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P66_133,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P66_specs_133   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P67_135[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P67_tags_135[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P67_specs_135 = {
+       sizeof(struct ProtocolExtensionContainer_9566P67),
+       offsetof(struct ProtocolExtensionContainer_9566P67, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P67 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P67_tags_135,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P67_tags_135)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P67_tags_135[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P67_tags_135,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P67_tags_135)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P67_tags_135[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P67_constr_135, &asn_PER_type_ProtocolExtensionContainer_9566P67_constr_135, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P67_135,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P67_specs_135   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P68_137[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P68_tags_137[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P68_specs_137 = {
+       sizeof(struct ProtocolExtensionContainer_9566P68),
+       offsetof(struct ProtocolExtensionContainer_9566P68, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P68 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P68_tags_137,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P68_tags_137)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P68_tags_137[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P68_tags_137,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P68_tags_137)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P68_tags_137[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P68_constr_137, &asn_PER_type_ProtocolExtensionContainer_9566P68_constr_137, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P68_137,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P68_specs_137   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P69_139[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P69_tags_139[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P69_specs_139 = {
+       sizeof(struct ProtocolExtensionContainer_9566P69),
+       offsetof(struct ProtocolExtensionContainer_9566P69, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P69 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P69_tags_139,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P69_tags_139)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P69_tags_139[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P69_tags_139,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P69_tags_139)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P69_tags_139[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P69_constr_139, &asn_PER_type_ProtocolExtensionContainer_9566P69_constr_139, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P69_139,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P69_specs_139   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P70_141[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P70_tags_141[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P70_specs_141 = {
+       sizeof(struct ProtocolExtensionContainer_9566P70),
+       offsetof(struct ProtocolExtensionContainer_9566P70, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P70 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P70_tags_141,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P70_tags_141)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P70_tags_141[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P70_tags_141,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P70_tags_141)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P70_tags_141[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P70_constr_141, &asn_PER_type_ProtocolExtensionContainer_9566P70_constr_141, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P70_141,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P70_specs_141   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P71_143[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P71_tags_143[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P71_specs_143 = {
+       sizeof(struct ProtocolExtensionContainer_9566P71),
+       offsetof(struct ProtocolExtensionContainer_9566P71, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P71 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P71_tags_143,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P71_tags_143)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P71_tags_143[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P71_tags_143,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P71_tags_143)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P71_tags_143[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P71_constr_143, &asn_PER_type_ProtocolExtensionContainer_9566P71_constr_143, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P71_143,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P71_specs_143   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P72_145[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P72_tags_145[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P72_specs_145 = {
+       sizeof(struct ProtocolExtensionContainer_9566P72),
+       offsetof(struct ProtocolExtensionContainer_9566P72, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P72 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P72_tags_145,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P72_tags_145)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P72_tags_145[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P72_tags_145,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P72_tags_145)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P72_tags_145[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P72_constr_145, &asn_PER_type_ProtocolExtensionContainer_9566P72_constr_145, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P72_145,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P72_specs_145   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P73_147[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P73_tags_147[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P73_specs_147 = {
+       sizeof(struct ProtocolExtensionContainer_9566P73),
+       offsetof(struct ProtocolExtensionContainer_9566P73, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P73 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P73_tags_147,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P73_tags_147)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P73_tags_147[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P73_tags_147,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P73_tags_147)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P73_tags_147[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P73_constr_147, &asn_PER_type_ProtocolExtensionContainer_9566P73_constr_147, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P73_147,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P73_specs_147   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P74_149[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P74_tags_149[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P74_specs_149 = {
+       sizeof(struct ProtocolExtensionContainer_9566P74),
+       offsetof(struct ProtocolExtensionContainer_9566P74, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P74 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P74_tags_149,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P74_tags_149)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P74_tags_149[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P74_tags_149,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P74_tags_149)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P74_tags_149[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P74_constr_149, &asn_PER_type_ProtocolExtensionContainer_9566P74_constr_149, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P74_149,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P74_specs_149   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P75_151[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P75_tags_151[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P75_specs_151 = {
+       sizeof(struct ProtocolExtensionContainer_9566P75),
+       offsetof(struct ProtocolExtensionContainer_9566P75, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P75 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P75_tags_151,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P75_tags_151)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P75_tags_151[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P75_tags_151,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P75_tags_151)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P75_tags_151[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P75_constr_151, &asn_PER_type_ProtocolExtensionContainer_9566P75_constr_151, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P75_151,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P75_specs_151   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P76_153[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P76_tags_153[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P76_specs_153 = {
+       sizeof(struct ProtocolExtensionContainer_9566P76),
+       offsetof(struct ProtocolExtensionContainer_9566P76, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P76 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P76_tags_153,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P76_tags_153)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P76_tags_153[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P76_tags_153,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P76_tags_153)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P76_tags_153[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P76_constr_153, &asn_PER_type_ProtocolExtensionContainer_9566P76_constr_153, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P76_153,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P76_specs_153   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P77_155[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P77_tags_155[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P77_specs_155 = {
+       sizeof(struct ProtocolExtensionContainer_9566P77),
+       offsetof(struct ProtocolExtensionContainer_9566P77, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P77 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P77_tags_155,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P77_tags_155)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P77_tags_155[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P77_tags_155,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P77_tags_155)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P77_tags_155[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P77_constr_155, &asn_PER_type_ProtocolExtensionContainer_9566P77_constr_155, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P77_155,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P77_specs_155   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P78_157[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P78_tags_157[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P78_specs_157 = {
+       sizeof(struct ProtocolExtensionContainer_9566P78),
+       offsetof(struct ProtocolExtensionContainer_9566P78, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P78 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P78_tags_157,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P78_tags_157)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P78_tags_157[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P78_tags_157,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P78_tags_157)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P78_tags_157[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P78_constr_157, &asn_PER_type_ProtocolExtensionContainer_9566P78_constr_157, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P78_157,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P78_specs_157   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P79_159[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P79_tags_159[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P79_specs_159 = {
+       sizeof(struct ProtocolExtensionContainer_9566P79),
+       offsetof(struct ProtocolExtensionContainer_9566P79, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P79 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P79_tags_159,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P79_tags_159)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P79_tags_159[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P79_tags_159,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P79_tags_159)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P79_tags_159[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P79_constr_159, &asn_PER_type_ProtocolExtensionContainer_9566P79_constr_159, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P79_159,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P79_specs_159   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P80_161[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P80_tags_161[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P80_specs_161 = {
+       sizeof(struct ProtocolExtensionContainer_9566P80),
+       offsetof(struct ProtocolExtensionContainer_9566P80, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P80 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P80_tags_161,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P80_tags_161)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P80_tags_161[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P80_tags_161,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P80_tags_161)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P80_tags_161[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P80_constr_161, &asn_PER_type_ProtocolExtensionContainer_9566P80_constr_161, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P80_161,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P80_specs_161   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P81_163[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P81_tags_163[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P81_specs_163 = {
+       sizeof(struct ProtocolExtensionContainer_9566P81),
+       offsetof(struct ProtocolExtensionContainer_9566P81, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P81 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P81_tags_163,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P81_tags_163)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P81_tags_163[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P81_tags_163,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P81_tags_163)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P81_tags_163[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P81_constr_163, &asn_PER_type_ProtocolExtensionContainer_9566P81_constr_163, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P81_163,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P81_specs_163   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P82_165[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P82_tags_165[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P82_specs_165 = {
+       sizeof(struct ProtocolExtensionContainer_9566P82),
+       offsetof(struct ProtocolExtensionContainer_9566P82, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P82 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P82_tags_165,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P82_tags_165)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P82_tags_165[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P82_tags_165,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P82_tags_165)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P82_tags_165[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P82_constr_165, &asn_PER_type_ProtocolExtensionContainer_9566P82_constr_165, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P82_165,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P82_specs_165   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P83_167[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P83_tags_167[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P83_specs_167 = {
+       sizeof(struct ProtocolExtensionContainer_9566P83),
+       offsetof(struct ProtocolExtensionContainer_9566P83, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P83 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P83_tags_167,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P83_tags_167)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P83_tags_167[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P83_tags_167,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P83_tags_167)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P83_tags_167[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P83_constr_167, &asn_PER_type_ProtocolExtensionContainer_9566P83_constr_167, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P83_167,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P83_specs_167   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P84_169[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P84_tags_169[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P84_specs_169 = {
+       sizeof(struct ProtocolExtensionContainer_9566P84),
+       offsetof(struct ProtocolExtensionContainer_9566P84, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P84 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P84_tags_169,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P84_tags_169)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P84_tags_169[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P84_tags_169,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P84_tags_169)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P84_tags_169[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P84_constr_169, &asn_PER_type_ProtocolExtensionContainer_9566P84_constr_169, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P84_169,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P84_specs_169   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P85_171[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P85_tags_171[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P85_specs_171 = {
+       sizeof(struct ProtocolExtensionContainer_9566P85),
+       offsetof(struct ProtocolExtensionContainer_9566P85, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P85 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P85_tags_171,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P85_tags_171)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P85_tags_171[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P85_tags_171,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P85_tags_171)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P85_tags_171[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P85_constr_171, &asn_PER_type_ProtocolExtensionContainer_9566P85_constr_171, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P85_171,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P85_specs_171   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P86_173[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P86_tags_173[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P86_specs_173 = {
+       sizeof(struct ProtocolExtensionContainer_9566P86),
+       offsetof(struct ProtocolExtensionContainer_9566P86, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P86 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P86_tags_173,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P86_tags_173)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P86_tags_173[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P86_tags_173,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P86_tags_173)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P86_tags_173[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P86_constr_173, &asn_PER_type_ProtocolExtensionContainer_9566P86_constr_173, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P86_173,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P86_specs_173   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P87_175[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P87_tags_175[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P87_specs_175 = {
+       sizeof(struct ProtocolExtensionContainer_9566P87),
+       offsetof(struct ProtocolExtensionContainer_9566P87, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P87 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P87_tags_175,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P87_tags_175)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P87_tags_175[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P87_tags_175,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P87_tags_175)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P87_tags_175[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P87_constr_175, &asn_PER_type_ProtocolExtensionContainer_9566P87_constr_175, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P87_175,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P87_specs_175   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P88_177[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P88_tags_177[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P88_specs_177 = {
+       sizeof(struct ProtocolExtensionContainer_9566P88),
+       offsetof(struct ProtocolExtensionContainer_9566P88, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P88 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P88_tags_177,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P88_tags_177)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P88_tags_177[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P88_tags_177,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P88_tags_177)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P88_tags_177[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P88_constr_177, &asn_PER_type_ProtocolExtensionContainer_9566P88_constr_177, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P88_177,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P88_specs_177   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P89_179[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P89_tags_179[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P89_specs_179 = {
+       sizeof(struct ProtocolExtensionContainer_9566P89),
+       offsetof(struct ProtocolExtensionContainer_9566P89, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P89 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P89_tags_179,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P89_tags_179)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P89_tags_179[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P89_tags_179,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P89_tags_179)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P89_tags_179[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P89_constr_179, &asn_PER_type_ProtocolExtensionContainer_9566P89_constr_179, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P89_179,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P89_specs_179   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P90_181[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P90_tags_181[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P90_specs_181 = {
+       sizeof(struct ProtocolExtensionContainer_9566P90),
+       offsetof(struct ProtocolExtensionContainer_9566P90, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P90 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P90_tags_181,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P90_tags_181)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P90_tags_181[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P90_tags_181,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P90_tags_181)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P90_tags_181[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P90_constr_181, &asn_PER_type_ProtocolExtensionContainer_9566P90_constr_181, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P90_181,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P90_specs_181   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P91_183[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_En_gNBServedCells_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P91_tags_183[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P91_specs_183 = {
+       sizeof(struct ProtocolExtensionContainer_9566P91),
+       offsetof(struct ProtocolExtensionContainer_9566P91, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P91 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P91_tags_183,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P91_tags_183)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P91_tags_183[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P91_tags_183,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P91_tags_183)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P91_tags_183[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P91_constr_183, &asn_PER_type_ProtocolExtensionContainer_9566P91_constr_183, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P91_183,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P91_specs_183   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P92_185[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedNRCell_Information_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P92_tags_185[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P92_specs_185 = {
+       sizeof(struct ProtocolExtensionContainer_9566P92),
+       offsetof(struct ProtocolExtensionContainer_9566P92, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P92 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P92_tags_185,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P92_tags_185)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P92_tags_185[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P92_tags_185,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P92_tags_185)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P92_tags_185[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P92_constr_185, &asn_PER_type_ProtocolExtensionContainer_9566P92_constr_185, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P92_185,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P92_specs_185   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P93_187[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P93_tags_187[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P93_specs_187 = {
+       sizeof(struct ProtocolExtensionContainer_9566P93),
+       offsetof(struct ProtocolExtensionContainer_9566P93, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P93 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P93_tags_187,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P93_tags_187)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P93_tags_187[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P93_tags_187,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P93_tags_187)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P93_tags_187[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P93_constr_187, &asn_PER_type_ProtocolExtensionContainer_9566P93_constr_187, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P93_187,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P93_specs_187   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P94_189[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P94_tags_189[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P94_specs_189 = {
+       sizeof(struct ProtocolExtensionContainer_9566P94),
+       offsetof(struct ProtocolExtensionContainer_9566P94, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P94 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P94_tags_189,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P94_tags_189)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P94_tags_189[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P94_tags_189,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P94_tags_189)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P94_tags_189[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P94_constr_189, &asn_PER_type_ProtocolExtensionContainer_9566P94_constr_189, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P94_189,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P94_specs_189   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P95_191[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P95_tags_191[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P95_specs_191 = {
+       sizeof(struct ProtocolExtensionContainer_9566P95),
+       offsetof(struct ProtocolExtensionContainer_9566P95, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P95 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P95_tags_191,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P95_tags_191)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P95_tags_191[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P95_tags_191,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P95_tags_191)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P95_tags_191[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P95_constr_191, &asn_PER_type_ProtocolExtensionContainer_9566P95_constr_191, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P95_191,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P95_specs_191   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P96_193[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P96_tags_193[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P96_specs_193 = {
+       sizeof(struct ProtocolExtensionContainer_9566P96),
+       offsetof(struct ProtocolExtensionContainer_9566P96, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P96 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P96_tags_193,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P96_tags_193)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P96_tags_193[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P96_tags_193,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P96_tags_193)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P96_tags_193[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P96_constr_193, &asn_PER_type_ProtocolExtensionContainer_9566P96_constr_193, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P96_193,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P96_specs_193   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P97_195[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_NRNeighbour_Information_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P97_tags_195[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P97_specs_195 = {
+       sizeof(struct ProtocolExtensionContainer_9566P97),
+       offsetof(struct ProtocolExtensionContainer_9566P97, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P97 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P97_tags_195,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P97_tags_195)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P97_tags_195[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P97_tags_195,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P97_tags_195)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P97_tags_195[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P97_constr_195, &asn_PER_type_ProtocolExtensionContainer_9566P97_constr_195, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P97_195,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P97_specs_195   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P98_197[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Limited_list_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P98_tags_197[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P98_specs_197 = {
+       sizeof(struct ProtocolExtensionContainer_9566P98),
+       offsetof(struct ProtocolExtensionContainer_9566P98, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P98 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P98_tags_197,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P98_tags_197)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P98_tags_197[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P98_tags_197,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P98_tags_197)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P98_tags_197[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P98_constr_197, &asn_PER_type_ProtocolExtensionContainer_9566P98_constr_197, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P98_197,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P98_specs_197   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P99_199[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P99_tags_199[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P99_specs_199 = {
+       sizeof(struct ProtocolExtensionContainer_9566P99),
+       offsetof(struct ProtocolExtensionContainer_9566P99, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P99 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P99_tags_199,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P99_tags_199)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P99_tags_199[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P99_tags_199,    /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P99_tags_199)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P99_tags_199[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P99_constr_199, &asn_PER_type_ProtocolExtensionContainer_9566P99_constr_199, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P99_199,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P99_specs_199   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P100_201[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedNRCellsToModify_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P100_tags_201[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P100_specs_201 = {
+       sizeof(struct ProtocolExtensionContainer_9566P100),
+       offsetof(struct ProtocolExtensionContainer_9566P100, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P100 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P100_tags_201,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P100_tags_201)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P100_tags_201[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P100_tags_201,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P100_tags_201)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P100_tags_201[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P100_constr_201, &asn_PER_type_ProtocolExtensionContainer_9566P100_constr_201, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P100_201,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P100_specs_201  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P101_203[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedNRCellsToActivate_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P101_tags_203[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P101_specs_203 = {
+       sizeof(struct ProtocolExtensionContainer_9566P101),
+       offsetof(struct ProtocolExtensionContainer_9566P101, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P101 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P101_tags_203,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P101_tags_203)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P101_tags_203[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P101_tags_203,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P101_tags_203)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P101_tags_203[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P101_constr_203, &asn_PER_type_ProtocolExtensionContainer_9566P101_constr_203, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P101_203,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P101_specs_203  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P102_205[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ActivatedNRCellList_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P102_tags_205[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P102_specs_205 = {
+       sizeof(struct ProtocolExtensionContainer_9566P102),
+       offsetof(struct ProtocolExtensionContainer_9566P102, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P102 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P102_tags_205,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P102_tags_205)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P102_tags_205[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P102_tags_205,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P102_tags_205)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P102_tags_205[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P102_constr_205, &asn_PER_type_ProtocolExtensionContainer_9566P102_constr_205, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P102_205,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P102_specs_205  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P103_207[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P103_tags_207[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P103_specs_207 = {
+       sizeof(struct ProtocolExtensionContainer_9566P103),
+       offsetof(struct ProtocolExtensionContainer_9566P103, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P103 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P103_tags_207,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P103_tags_207)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P103_tags_207[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P103_tags_207,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P103_tags_207)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P103_tags_207[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P103_constr_207, &asn_PER_type_ProtocolExtensionContainer_9566P103_constr_207, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P103_207,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P103_specs_207  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P104_209[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ABSInformationFDD_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P104_tags_209[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P104_specs_209 = {
+       sizeof(struct ProtocolExtensionContainer_9566P104),
+       offsetof(struct ProtocolExtensionContainer_9566P104, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P104 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P104_tags_209,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P104_tags_209)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P104_tags_209[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P104_tags_209,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P104_tags_209)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P104_tags_209[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P104_constr_209, &asn_PER_type_ProtocolExtensionContainer_9566P104_constr_209, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P104_209,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P104_specs_209  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P105_211[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ABSInformationTDD_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P105_tags_211[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P105_specs_211 = {
+       sizeof(struct ProtocolExtensionContainer_9566P105),
+       offsetof(struct ProtocolExtensionContainer_9566P105, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P105 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P105_tags_211,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P105_tags_211)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P105_tags_211[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P105_tags_211,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P105_tags_211)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P105_tags_211[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P105_constr_211, &asn_PER_type_ProtocolExtensionContainer_9566P105_constr_211, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P105_211,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P105_specs_211  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P106_213[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ABS_Status_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P106_tags_213[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P106_specs_213 = {
+       sizeof(struct ProtocolExtensionContainer_9566P106),
+       offsetof(struct ProtocolExtensionContainer_9566P106, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P106 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P106_tags_213,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P106_tags_213)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P106_tags_213[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P106_tags_213,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P106_tags_213)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P106_tags_213[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P106_constr_213, &asn_PER_type_ProtocolExtensionContainer_9566P106_constr_213, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P106_213,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P106_specs_213  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P107_215[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P107_tags_215[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P107_specs_215 = {
+       sizeof(struct ProtocolExtensionContainer_9566P107),
+       offsetof(struct ProtocolExtensionContainer_9566P107, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P107 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P107_tags_215,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P107_tags_215)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P107_tags_215[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P107_tags_215,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P107_tags_215)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P107_tags_215[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P107_constr_215, &asn_PER_type_ProtocolExtensionContainer_9566P107_constr_215, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P107_215,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P107_specs_215  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P108_217[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P108_tags_217[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P108_specs_217 = {
+       sizeof(struct ProtocolExtensionContainer_9566P108),
+       offsetof(struct ProtocolExtensionContainer_9566P108, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P108 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P108_tags_217,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P108_tags_217)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P108_tags_217[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P108_tags_217,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P108_tags_217)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P108_tags_217[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P108_constr_217, &asn_PER_type_ProtocolExtensionContainer_9566P108_constr_217, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P108_217,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P108_specs_217  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P109_219[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_AllocationAndRetentionPriority_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P109_tags_219[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P109_specs_219 = {
+       sizeof(struct ProtocolExtensionContainer_9566P109),
+       offsetof(struct ProtocolExtensionContainer_9566P109, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P109 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P109_tags_219,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P109_tags_219)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P109_tags_219[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P109_tags_219,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P109_tags_219)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P109_tags_219[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P109_constr_219, &asn_PER_type_ProtocolExtensionContainer_9566P109_constr_219, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P109_219,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P109_specs_219  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P110_221[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_AS_SecurityInformation_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P110_tags_221[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P110_specs_221 = {
+       sizeof(struct ProtocolExtensionContainer_9566P110),
+       offsetof(struct ProtocolExtensionContainer_9566P110, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P110 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P110_tags_221,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P110_tags_221)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P110_tags_221[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P110_tags_221,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P110_tags_221)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P110_tags_221[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P110_constr_221, &asn_PER_type_ProtocolExtensionContainer_9566P110_constr_221, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P110_221,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P110_specs_221  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P111_223[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_BluetoothMeasurementConfiguration_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P111_tags_223[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P111_specs_223 = {
+       sizeof(struct ProtocolExtensionContainer_9566P111),
+       offsetof(struct ProtocolExtensionContainer_9566P111, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P111 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P111_tags_223,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P111_tags_223)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P111_tags_223[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P111_tags_223,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P111_tags_223)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P111_tags_223[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P111_constr_223, &asn_PER_type_ProtocolExtensionContainer_9566P111_constr_223, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P111_223,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P111_specs_223  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P112_225[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellBasedMDT_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P112_tags_225[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P112_specs_225 = {
+       sizeof(struct ProtocolExtensionContainer_9566P112),
+       offsetof(struct ProtocolExtensionContainer_9566P112, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P112 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P112_tags_225,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P112_tags_225)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P112_tags_225[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P112_tags_225,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P112_tags_225)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P112_tags_225[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P112_constr_225, &asn_PER_type_ProtocolExtensionContainer_9566P112_constr_225, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P112_225,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P112_specs_225  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P113_227[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellBasedQMC_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P113_tags_227[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P113_specs_227 = {
+       sizeof(struct ProtocolExtensionContainer_9566P113),
+       offsetof(struct ProtocolExtensionContainer_9566P113, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P113 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P113_tags_227,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P113_tags_227)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P113_tags_227[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P113_tags_227,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P113_tags_227)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P113_tags_227[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P113_constr_227, &asn_PER_type_ProtocolExtensionContainer_9566P113_constr_227, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P113_227,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P113_specs_227  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P114_229[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellReplacingInfo_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P114_tags_229[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P114_specs_229 = {
+       sizeof(struct ProtocolExtensionContainer_9566P114),
+       offsetof(struct ProtocolExtensionContainer_9566P114, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P114 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P114_tags_229,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P114_tags_229)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P114_tags_229[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P114_tags_229,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P114_tags_229)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P114_tags_229[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P114_constr_229, &asn_PER_type_ProtocolExtensionContainer_9566P114_constr_229, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P114_229,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P114_specs_229  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P115_231[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellType_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P115_tags_231[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P115_specs_231 = {
+       sizeof(struct ProtocolExtensionContainer_9566P115),
+       offsetof(struct ProtocolExtensionContainer_9566P115, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P115 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P115_tags_231,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P115_tags_231)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P115_tags_231[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P115_tags_231,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P115_tags_231)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P115_tags_231[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P115_constr_231, &asn_PER_type_ProtocolExtensionContainer_9566P115_constr_231, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P115_231,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P115_specs_231  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P116_233[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CNTypeRestrictionsItem_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P116_tags_233[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P116_specs_233 = {
+       sizeof(struct ProtocolExtensionContainer_9566P116),
+       offsetof(struct ProtocolExtensionContainer_9566P116, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P116 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P116_tags_233,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P116_tags_233)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P116_tags_233[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P116_tags_233,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P116_tags_233)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P116_tags_233[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P116_constr_233, &asn_PER_type_ProtocolExtensionContainer_9566P116_constr_233, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P116_233,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P116_specs_233  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P117_235[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CoMPHypothesisSetItem_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P117_tags_235[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P117_specs_235 = {
+       sizeof(struct ProtocolExtensionContainer_9566P117),
+       offsetof(struct ProtocolExtensionContainer_9566P117, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P117 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P117_tags_235,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P117_tags_235)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P117_tags_235[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P117_tags_235,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P117_tags_235)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P117_tags_235[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P117_constr_235, &asn_PER_type_ProtocolExtensionContainer_9566P117_constr_235, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P117_235,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P117_specs_235  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P118_237[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CoMPInformation_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P118_tags_237[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P118_specs_237 = {
+       sizeof(struct ProtocolExtensionContainer_9566P118),
+       offsetof(struct ProtocolExtensionContainer_9566P118, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P118 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P118_tags_237,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P118_tags_237)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P118_tags_237[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P118_tags_237,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P118_tags_237)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P118_tags_237[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P118_constr_237, &asn_PER_type_ProtocolExtensionContainer_9566P118_constr_237, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P118_237,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P118_specs_237  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P119_239[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CoMPInformationItem_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P119_tags_239[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P119_specs_239 = {
+       sizeof(struct ProtocolExtensionContainer_9566P119),
+       offsetof(struct ProtocolExtensionContainer_9566P119, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P119 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P119_tags_239,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P119_tags_239)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P119_tags_239[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P119_tags_239,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P119_tags_239)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P119_tags_239[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P119_constr_239, &asn_PER_type_ProtocolExtensionContainer_9566P119_constr_239, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P119_239,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P119_specs_239  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P120_241[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CoMPInformationStartTime_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P120_tags_241[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P120_specs_241 = {
+       sizeof(struct ProtocolExtensionContainer_9566P120),
+       offsetof(struct ProtocolExtensionContainer_9566P120, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P120 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P120_tags_241,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P120_tags_241)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P120_tags_241[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P120_tags_241,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P120_tags_241)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P120_tags_241[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P120_constr_241, &asn_PER_type_ProtocolExtensionContainer_9566P120_constr_241, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P120_241,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P120_specs_241  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P121_243[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CompositeAvailableCapacity_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P121_tags_243[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P121_specs_243 = {
+       sizeof(struct ProtocolExtensionContainer_9566P121),
+       offsetof(struct ProtocolExtensionContainer_9566P121, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P121 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P121_tags_243,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P121_tags_243)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P121_tags_243[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P121_tags_243,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P121_tags_243)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P121_tags_243[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P121_constr_243, &asn_PER_type_ProtocolExtensionContainer_9566P121_constr_243, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P121_243,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P121_specs_243  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P122_245[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CompositeAvailableCapacityGroup_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P122_tags_245[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P122_specs_245 = {
+       sizeof(struct ProtocolExtensionContainer_9566P122),
+       offsetof(struct ProtocolExtensionContainer_9566P122, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P122 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P122_tags_245,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P122_tags_245)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P122_tags_245[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P122_tags_245,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P122_tags_245)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P122_tags_245[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P122_constr_245, &asn_PER_type_ProtocolExtensionContainer_9566P122_constr_245, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P122_245,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P122_specs_245  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P123_247[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_COUNTvalue_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P123_tags_247[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P123_specs_247 = {
+       sizeof(struct ProtocolExtensionContainer_9566P123),
+       offsetof(struct ProtocolExtensionContainer_9566P123, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P123 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P123_tags_247,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P123_tags_247)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P123_tags_247[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P123_tags_247,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P123_tags_247)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P123_tags_247[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P123_constr_247, &asn_PER_type_ProtocolExtensionContainer_9566P123_constr_247, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P123_247,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P123_specs_247  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P124_249[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_COUNTValueExtended_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P124_tags_249[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P124_specs_249 = {
+       sizeof(struct ProtocolExtensionContainer_9566P124),
+       offsetof(struct ProtocolExtensionContainer_9566P124, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P124 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P124_tags_249,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P124_tags_249)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P124_tags_249[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P124_tags_249,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P124_tags_249)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P124_tags_249[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P124_constr_249, &asn_PER_type_ProtocolExtensionContainer_9566P124_constr_249, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P124_249,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P124_specs_249  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P125_251[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P125_tags_251[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P125_specs_251 = {
+       sizeof(struct ProtocolExtensionContainer_9566P125),
+       offsetof(struct ProtocolExtensionContainer_9566P125, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P125 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P125_tags_251,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P125_tags_251)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P125_tags_251[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P125_tags_251,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P125_tags_251)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P125_tags_251[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P125_constr_251, &asn_PER_type_ProtocolExtensionContainer_9566P125_constr_251, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P125_251,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P125_specs_251  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P126_253[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P126_tags_253[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P126_specs_253 = {
+       sizeof(struct ProtocolExtensionContainer_9566P126),
+       offsetof(struct ProtocolExtensionContainer_9566P126, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P126 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P126_tags_253,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P126_tags_253)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P126_tags_253[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P126_tags_253,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P126_tags_253)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P126_tags_253[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P126_constr_253, &asn_PER_type_ProtocolExtensionContainer_9566P126_constr_253, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P126_253,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P126_specs_253  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P127_255[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P127_tags_255[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P127_specs_255 = {
+       sizeof(struct ProtocolExtensionContainer_9566P127),
+       offsetof(struct ProtocolExtensionContainer_9566P127, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P127 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P127_tags_255,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P127_tags_255)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P127_tags_255[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P127_tags_255,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P127_tags_255)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P127_tags_255[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P127_constr_255, &asn_PER_type_ProtocolExtensionContainer_9566P127_constr_255, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P127_255,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P127_specs_255  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P128_257[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CSIReportList_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P128_tags_257[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P128_specs_257 = {
+       sizeof(struct ProtocolExtensionContainer_9566P128),
+       offsetof(struct ProtocolExtensionContainer_9566P128, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P128 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P128_tags_257,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P128_tags_257)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P128_tags_257[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P128_tags_257,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P128_tags_257)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P128_tags_257[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P128_constr_257, &asn_PER_type_ProtocolExtensionContainer_9566P128_constr_257, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P128_257,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P128_specs_257  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P129_259[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CSIReportPerCSIProcess_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P129_tags_259[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P129_specs_259 = {
+       sizeof(struct ProtocolExtensionContainer_9566P129),
+       offsetof(struct ProtocolExtensionContainer_9566P129, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P129 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P129_tags_259,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P129_tags_259)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P129_tags_259[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P129_tags_259,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P129_tags_259)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P129_tags_259[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P129_constr_259, &asn_PER_type_ProtocolExtensionContainer_9566P129_constr_259, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P129_259,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P129_specs_259  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P130_261[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CSIReportPerCSIProcessItem_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P130_tags_261[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P130_specs_261 = {
+       sizeof(struct ProtocolExtensionContainer_9566P130),
+       offsetof(struct ProtocolExtensionContainer_9566P130, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P130 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P130_tags_261,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P130_tags_261)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P130_tags_261[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P130_tags_261,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P130_tags_261)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P130_tags_261[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P130_constr_261, &asn_PER_type_ProtocolExtensionContainer_9566P130_constr_261, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P130_261,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P130_specs_261  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P131_263[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_DataTrafficResourceIndication_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P131_tags_263[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P131_specs_263 = {
+       sizeof(struct ProtocolExtensionContainer_9566P131),
+       offsetof(struct ProtocolExtensionContainer_9566P131, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P131 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P131_tags_263,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P131_tags_263)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P131_tags_263[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P131_tags_263,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P131_tags_263)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P131_tags_263[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P131_constr_263, &asn_PER_type_ProtocolExtensionContainer_9566P131_constr_263, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P131_263,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P131_specs_263  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P132_265[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_DeliveryStatus_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P132_tags_265[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P132_specs_265 = {
+       sizeof(struct ProtocolExtensionContainer_9566P132),
+       offsetof(struct ProtocolExtensionContainer_9566P132, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P132 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P132_tags_265,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P132_tags_265)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P132_tags_265[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P132_tags_265,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P132_tags_265)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P132_tags_265[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P132_constr_265, &asn_PER_type_ProtocolExtensionContainer_9566P132_constr_265, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P132_265,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P132_specs_265  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P133_267[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_DynamicNAICSInformation_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P133_tags_267[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P133_specs_267 = {
+       sizeof(struct ProtocolExtensionContainer_9566P133),
+       offsetof(struct ProtocolExtensionContainer_9566P133, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P133 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P133_tags_267,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P133_tags_267)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P133_tags_267[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P133_tags_267,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P133_tags_267)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P133_tags_267[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P133_constr_267, &asn_PER_type_ProtocolExtensionContainer_9566P133_constr_267, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P133_267,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P133_specs_267  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P134_269[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ECGI_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P134_tags_269[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P134_specs_269 = {
+       sizeof(struct ProtocolExtensionContainer_9566P134),
+       offsetof(struct ProtocolExtensionContainer_9566P134, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P134 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P134_tags_269,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P134_tags_269)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P134_tags_269[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P134_tags_269,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P134_tags_269)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P134_tags_269[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P134_constr_269, &asn_PER_type_ProtocolExtensionContainer_9566P134_constr_269, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P134_269,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P134_specs_269  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P135_271[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_EnhancedRNTP_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P135_tags_271[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P135_specs_271 = {
+       sizeof(struct ProtocolExtensionContainer_9566P135),
+       offsetof(struct ProtocolExtensionContainer_9566P135, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P135 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P135_tags_271,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P135_tags_271)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P135_tags_271[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P135_tags_271,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P135_tags_271)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P135_tags_271[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P135_constr_271, &asn_PER_type_ProtocolExtensionContainer_9566P135_constr_271, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P135_271,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P135_specs_271  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P136_273[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_EnhancedRNTPStartTime_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P136_tags_273[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P136_specs_273 = {
+       sizeof(struct ProtocolExtensionContainer_9566P136),
+       offsetof(struct ProtocolExtensionContainer_9566P136, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P136 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P136_tags_273,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P136_tags_273)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P136_tags_273[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P136_tags_273,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P136_tags_273)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P136_tags_273[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P136_constr_273, &asn_PER_type_ProtocolExtensionContainer_9566P136_constr_273, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P136_273,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P136_specs_273  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P137_275[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_EN_DC_ResourceConfigurationExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P137_tags_275[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P137_specs_275 = {
+       sizeof(struct ProtocolExtensionContainer_9566P137),
+       offsetof(struct ProtocolExtensionContainer_9566P137, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P137 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P137_tags_275,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P137_tags_275)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P137_tags_275[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P137_tags_275,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P137_tags_275)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P137_tags_275[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P137_constr_275, &asn_PER_type_ProtocolExtensionContainer_9566P137_constr_275, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P137_275,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P137_specs_275  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P138_277[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ERABActivityNotifyItem_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P138_tags_277[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P138_specs_277 = {
+       sizeof(struct ProtocolExtensionContainer_9566P138),
+       offsetof(struct ProtocolExtensionContainer_9566P138, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P138 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P138_tags_277,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P138_tags_277)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P138_tags_277[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P138_tags_277,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P138_tags_277)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P138_tags_277[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P138_constr_277, &asn_PER_type_ProtocolExtensionContainer_9566P138_constr_277, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P138_277,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P138_specs_277  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P139_279[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P139_tags_279[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P139_specs_279 = {
+       sizeof(struct ProtocolExtensionContainer_9566P139),
+       offsetof(struct ProtocolExtensionContainer_9566P139, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P139 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P139_tags_279,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P139_tags_279)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P139_tags_279[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P139_tags_279,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P139_tags_279)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P139_tags_279[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P139_constr_279, &asn_PER_type_ProtocolExtensionContainer_9566P139_constr_279, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P139_279,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P139_specs_279  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P140_281[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RAB_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P140_tags_281[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P140_specs_281 = {
+       sizeof(struct ProtocolExtensionContainer_9566P140),
+       offsetof(struct ProtocolExtensionContainer_9566P140, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P140 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P140_tags_281,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P140_tags_281)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P140_tags_281[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P140_tags_281,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P140_tags_281)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P140_tags_281[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P140_constr_281, &asn_PER_type_ProtocolExtensionContainer_9566P140_constr_281, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P140_281,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P140_specs_281  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P141_283[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABUsageReport_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P141_tags_283[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P141_specs_283 = {
+       sizeof(struct ProtocolExtensionContainer_9566P141),
+       offsetof(struct ProtocolExtensionContainer_9566P141, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P141 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P141_tags_283,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P141_tags_283)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P141_tags_283[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P141_tags_283,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P141_tags_283)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P141_tags_283[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P141_constr_283, &asn_PER_type_ProtocolExtensionContainer_9566P141_constr_283, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P141_283,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P141_specs_283  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P142_285[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ExpectedUEBehaviour_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P142_tags_285[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P142_specs_285 = {
+       sizeof(struct ProtocolExtensionContainer_9566P142),
+       offsetof(struct ProtocolExtensionContainer_9566P142, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P142 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P142_tags_285,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P142_tags_285)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P142_tags_285[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P142_tags_285,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P142_tags_285)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P142_tags_285[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P142_constr_285, &asn_PER_type_ProtocolExtensionContainer_9566P142_constr_285, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P142_285,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P142_specs_285  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P143_287[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ExpectedUEActivityBehaviour_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P143_tags_287[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P143_specs_287 = {
+       sizeof(struct ProtocolExtensionContainer_9566P143),
+       offsetof(struct ProtocolExtensionContainer_9566P143, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P143 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P143_tags_287,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P143_tags_287)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P143_tags_287[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P143_tags_287,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P143_tags_287)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P143_tags_287[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P143_constr_287, &asn_PER_type_ProtocolExtensionContainer_9566P143_constr_287, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P143_287,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P143_specs_287  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P144_289[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P144_tags_289[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P144_specs_289 = {
+       sizeof(struct ProtocolExtensionContainer_9566P144),
+       offsetof(struct ProtocolExtensionContainer_9566P144, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P144 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P144_tags_289,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P144_tags_289)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P144_tags_289[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P144_tags_289,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P144_tags_289)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P144_tags_289[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P144_constr_289, &asn_PER_type_ProtocolExtensionContainer_9566P144_constr_289, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P144_289,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P144_specs_289  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P145_291[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_FDD_Info_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P145_tags_291[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P145_specs_291 = {
+       sizeof(struct ProtocolExtensionContainer_9566P145),
+       offsetof(struct ProtocolExtensionContainer_9566P145, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P145 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P145_tags_291,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P145_tags_291)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P145_tags_291[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P145_tags_291,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P145_tags_291)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P145_tags_291[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P145_constr_291, &asn_PER_type_ProtocolExtensionContainer_9566P145_constr_291, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P145_291,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P145_specs_291  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P146_293[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ForbiddenTAs_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P146_tags_293[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P146_specs_293 = {
+       sizeof(struct ProtocolExtensionContainer_9566P146),
+       offsetof(struct ProtocolExtensionContainer_9566P146, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P146 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P146_tags_293,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P146_tags_293)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P146_tags_293[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P146_tags_293,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P146_tags_293)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P146_tags_293[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P146_constr_293, &asn_PER_type_ProtocolExtensionContainer_9566P146_constr_293, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P146_293,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P146_specs_293  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P147_295[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ForbiddenLAs_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P147_tags_295[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P147_specs_295 = {
+       sizeof(struct ProtocolExtensionContainer_9566P147),
+       offsetof(struct ProtocolExtensionContainer_9566P147, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P147 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P147_tags_295,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P147_tags_295)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P147_tags_295[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P147_tags_295,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P147_tags_295)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P147_tags_295[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P147_constr_295, &asn_PER_type_ProtocolExtensionContainer_9566P147_constr_295, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P147_295,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P147_specs_295  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P148_297[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_FreqBandNrItem_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P148_tags_297[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P148_specs_297 = {
+       sizeof(struct ProtocolExtensionContainer_9566P148),
+       offsetof(struct ProtocolExtensionContainer_9566P148, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P148 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P148_tags_297,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P148_tags_297)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P148_tags_297[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P148_tags_297,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P148_tags_297)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P148_tags_297[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P148_constr_297, &asn_PER_type_ProtocolExtensionContainer_9566P148_constr_297, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P148_297,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P148_specs_297  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P149_299[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GBR_QosInformation_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P149_tags_299[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P149_specs_299 = {
+       sizeof(struct ProtocolExtensionContainer_9566P149),
+       offsetof(struct ProtocolExtensionContainer_9566P149, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P149 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P149_tags_299,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P149_tags_299)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P149_tags_299[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P149_tags_299,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P149_tags_299)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P149_tags_299[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P149_constr_299, &asn_PER_type_ProtocolExtensionContainer_9566P149_constr_299, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P149_299,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P149_specs_299  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P150_301[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GlobalENB_ID_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P150_tags_301[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P150_specs_301 = {
+       sizeof(struct ProtocolExtensionContainer_9566P150),
+       offsetof(struct ProtocolExtensionContainer_9566P150, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P150 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P150_tags_301,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P150_tags_301)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P150_tags_301[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P150_tags_301,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P150_tags_301)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P150_tags_301[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P150_constr_301, &asn_PER_type_ProtocolExtensionContainer_9566P150_constr_301, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P150_301,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P150_specs_301  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P151_303[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GlobalGNB_ID_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P151_tags_303[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P151_specs_303 = {
+       sizeof(struct ProtocolExtensionContainer_9566P151),
+       offsetof(struct ProtocolExtensionContainer_9566P151, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P151 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P151_tags_303,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P151_tags_303)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P151_tags_303[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P151_tags_303,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P151_tags_303)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P151_tags_303[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P151_constr_303, &asn_PER_type_ProtocolExtensionContainer_9566P151_constr_303, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P151_303,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P151_specs_303  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P152_305[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GTPtunnelEndpoint_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P152_tags_305[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P152_specs_305 = {
+       sizeof(struct ProtocolExtensionContainer_9566P152),
+       offsetof(struct ProtocolExtensionContainer_9566P152, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P152 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P152_tags_305,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P152_tags_305)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P152_tags_305[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P152_tags_305,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P152_tags_305)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P152_tags_305[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P152_constr_305, &asn_PER_type_ProtocolExtensionContainer_9566P152_constr_305, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P152_305,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P152_specs_305  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P153_307[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GU_Group_ID_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P153_tags_307[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P153_specs_307 = {
+       sizeof(struct ProtocolExtensionContainer_9566P153),
+       offsetof(struct ProtocolExtensionContainer_9566P153, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P153 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P153_tags_307,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P153_tags_307)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P153_tags_307[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P153_tags_307,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P153_tags_307)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P153_tags_307[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P153_constr_307, &asn_PER_type_ProtocolExtensionContainer_9566P153_constr_307, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P153_307,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P153_specs_307  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P154_309[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GUMMEI_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P154_tags_309[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P154_specs_309 = {
+       sizeof(struct ProtocolExtensionContainer_9566P154),
+       offsetof(struct ProtocolExtensionContainer_9566P154, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P154 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P154_tags_309,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P154_tags_309)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P154_tags_309[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P154_tags_309,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P154_tags_309)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P154_tags_309[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P154_constr_309, &asn_PER_type_ProtocolExtensionContainer_9566P154_constr_309, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P154_309,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P154_specs_309  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P155_311[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_HandoverRestrictionList_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P155_tags_311[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P155_specs_311 = {
+       sizeof(struct ProtocolExtensionContainer_9566P155),
+       offsetof(struct ProtocolExtensionContainer_9566P155, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P155 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P155_tags_311,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P155_tags_311)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P155_tags_311[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P155_tags_311,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P155_tags_311)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P155_tags_311[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P155_constr_311, &asn_PER_type_ProtocolExtensionContainer_9566P155_constr_311, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P155_311,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P155_specs_311  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P156_313[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_HWLoadIndicator_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P156_tags_313[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P156_specs_313 = {
+       sizeof(struct ProtocolExtensionContainer_9566P156),
+       offsetof(struct ProtocolExtensionContainer_9566P156, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P156 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P156_tags_313,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P156_tags_313)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P156_tags_313[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P156_tags_313,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P156_tags_313)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P156_tags_313[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P156_constr_313, &asn_PER_type_ProtocolExtensionContainer_9566P156_constr_313, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P156_313,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P156_specs_313  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P157_315[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P157_tags_315[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P157_specs_315 = {
+       sizeof(struct ProtocolExtensionContainer_9566P157),
+       offsetof(struct ProtocolExtensionContainer_9566P157, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P157 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P157_tags_315,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P157_tags_315)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P157_tags_315[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P157_tags_315,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P157_tags_315)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P157_tags_315[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P157_constr_315, &asn_PER_type_ProtocolExtensionContainer_9566P157_constr_315, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P157_315,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P157_specs_315  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P158_317[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_LocationReportingInformation_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P158_tags_317[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P158_specs_317 = {
+       sizeof(struct ProtocolExtensionContainer_9566P158),
+       offsetof(struct ProtocolExtensionContainer_9566P158, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P158 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P158_tags_317,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P158_tags_317)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P158_tags_317[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P158_tags_317,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P158_tags_317)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P158_tags_317[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P158_constr_317, &asn_PER_type_ProtocolExtensionContainer_9566P158_constr_317, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P158_317,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P158_specs_317  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P159_319[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_M1PeriodicReporting_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P159_tags_319[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P159_specs_319 = {
+       sizeof(struct ProtocolExtensionContainer_9566P159),
+       offsetof(struct ProtocolExtensionContainer_9566P159, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P159 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P159_tags_319,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P159_tags_319)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P159_tags_319[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P159_tags_319,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P159_tags_319)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P159_tags_319[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P159_constr_319, &asn_PER_type_ProtocolExtensionContainer_9566P159_constr_319, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P159_319,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P159_specs_319  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P160_321[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_M1ThresholdEventA2_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P160_tags_321[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P160_specs_321 = {
+       sizeof(struct ProtocolExtensionContainer_9566P160),
+       offsetof(struct ProtocolExtensionContainer_9566P160, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P160 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P160_tags_321,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P160_tags_321)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P160_tags_321[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P160_tags_321,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P160_tags_321)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P160_tags_321[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P160_constr_321, &asn_PER_type_ProtocolExtensionContainer_9566P160_constr_321, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P160_321,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P160_specs_321  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P161_323[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_M3Configuration_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P161_tags_323[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P161_specs_323 = {
+       sizeof(struct ProtocolExtensionContainer_9566P161),
+       offsetof(struct ProtocolExtensionContainer_9566P161, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P161 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P161_tags_323,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P161_tags_323)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P161_tags_323[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P161_tags_323,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P161_tags_323)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P161_tags_323[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P161_constr_323, &asn_PER_type_ProtocolExtensionContainer_9566P161_constr_323, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P161_323,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P161_specs_323  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P162_325[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_M4Configuration_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P162_tags_325[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P162_specs_325 = {
+       sizeof(struct ProtocolExtensionContainer_9566P162),
+       offsetof(struct ProtocolExtensionContainer_9566P162, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P162 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P162_tags_325,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P162_tags_325)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P162_tags_325[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P162_tags_325,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P162_tags_325)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P162_tags_325[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P162_constr_325, &asn_PER_type_ProtocolExtensionContainer_9566P162_constr_325, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P162_325,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P162_specs_325  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P163_327[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_M5Configuration_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P163_tags_327[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P163_specs_327 = {
+       sizeof(struct ProtocolExtensionContainer_9566P163),
+       offsetof(struct ProtocolExtensionContainer_9566P163, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P163 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P163_tags_327,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P163_tags_327)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P163_tags_327[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P163_tags_327,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P163_tags_327)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P163_tags_327[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P163_constr_327, &asn_PER_type_ProtocolExtensionContainer_9566P163_constr_327, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P163_327,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P163_specs_327  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P164_329[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_M6Configuration_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P164_tags_329[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P164_specs_329 = {
+       sizeof(struct ProtocolExtensionContainer_9566P164),
+       offsetof(struct ProtocolExtensionContainer_9566P164, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P164 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P164_tags_329,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P164_tags_329)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P164_tags_329[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P164_tags_329,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P164_tags_329)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P164_tags_329[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P164_constr_329, &asn_PER_type_ProtocolExtensionContainer_9566P164_constr_329, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P164_329,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P164_specs_329  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P165_331[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_M7Configuration_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P165_tags_331[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P165_specs_331 = {
+       sizeof(struct ProtocolExtensionContainer_9566P165),
+       offsetof(struct ProtocolExtensionContainer_9566P165, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P165 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P165_tags_331,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P165_tags_331)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P165_tags_331[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P165_tags_331,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P165_tags_331)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P165_tags_331[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P165_constr_331, &asn_PER_type_ProtocolExtensionContainer_9566P165_constr_331, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P165_331,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P165_specs_331  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P166_333[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MDT_Configuration_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P166_tags_333[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P166_specs_333 = {
+       sizeof(struct ProtocolExtensionContainer_9566P166),
+       offsetof(struct ProtocolExtensionContainer_9566P166, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P166 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P166_tags_333,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P166_tags_333)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P166_tags_333[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P166_tags_333,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P166_tags_333)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P166_tags_333[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P166_constr_333, &asn_PER_type_ProtocolExtensionContainer_9566P166_constr_333, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P166_333,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P166_specs_333  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P167_335[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MeNBResourceCoordinationInformationExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P167_tags_335[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P167_specs_335 = {
+       sizeof(struct ProtocolExtensionContainer_9566P167),
+       offsetof(struct ProtocolExtensionContainer_9566P167, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P167 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P167_tags_335,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P167_tags_335)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P167_tags_335[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P167_tags_335,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P167_tags_335)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P167_tags_335[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P167_constr_335, &asn_PER_type_ProtocolExtensionContainer_9566P167_constr_335, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P167_335,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P167_specs_335  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P168_337[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MBSFN_Subframe_Info_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P168_tags_337[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P168_specs_337 = {
+       sizeof(struct ProtocolExtensionContainer_9566P168),
+       offsetof(struct ProtocolExtensionContainer_9566P168, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P168 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P168_tags_337,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P168_tags_337)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P168_tags_337[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P168_tags_337,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P168_tags_337)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P168_tags_337[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P168_constr_337, &asn_PER_type_ProtocolExtensionContainer_9566P168_constr_337, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P168_337,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P168_specs_337  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P169_339[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_BandInfo_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P169_tags_339[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P169_specs_339 = {
+       sizeof(struct ProtocolExtensionContainer_9566P169),
+       offsetof(struct ProtocolExtensionContainer_9566P169, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P169 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P169_tags_339,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P169_tags_339)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P169_tags_339[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P169_tags_339,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P169_tags_339)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P169_tags_339[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P169_constr_339, &asn_PER_type_ProtocolExtensionContainer_9566P169_constr_339, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P169_339,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P169_specs_339  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P170_341[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SplitSRB_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P170_tags_341[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P170_specs_341 = {
+       sizeof(struct ProtocolExtensionContainer_9566P170),
+       offsetof(struct ProtocolExtensionContainer_9566P170, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P170 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P170_tags_341,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P170_tags_341)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P170_tags_341[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P170_tags_341,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P170_tags_341)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P170_tags_341[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P170_constr_341, &asn_PER_type_ProtocolExtensionContainer_9566P170_constr_341, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P170_341,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P170_specs_341  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P171_343[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UENRMeasurement_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P171_tags_343[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P171_specs_343 = {
+       sizeof(struct ProtocolExtensionContainer_9566P171),
+       offsetof(struct ProtocolExtensionContainer_9566P171, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P171 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P171_tags_343,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P171_tags_343)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P171_tags_343[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P171_tags_343,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P171_tags_343)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P171_tags_343[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P171_constr_343, &asn_PER_type_ProtocolExtensionContainer_9566P171_constr_343, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P171_343,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P171_specs_343  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P172_345[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Neighbour_Information_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P172_tags_345[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P172_specs_345 = {
+       sizeof(struct ProtocolExtensionContainer_9566P172),
+       offsetof(struct ProtocolExtensionContainer_9566P172, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P172 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P172_tags_345,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P172_tags_345)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P172_tags_345[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P172_tags_345,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P172_tags_345)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P172_tags_345[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P172_constr_345, &asn_PER_type_ProtocolExtensionContainer_9566P172_constr_345, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P172_345,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P172_specs_345  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P173_347[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_NRFreqInfo_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P173_tags_347[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P173_specs_347 = {
+       sizeof(struct ProtocolExtensionContainer_9566P173),
+       offsetof(struct ProtocolExtensionContainer_9566P173, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P173 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P173_tags_347,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P173_tags_347)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P173_tags_347[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P173_tags_347,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P173_tags_347)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P173_tags_347[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P173_constr_347, &asn_PER_type_ProtocolExtensionContainer_9566P173_constr_347, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P173_347,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P173_specs_347  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P174_349[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_NRCGI_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P174_tags_349[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P174_specs_349 = {
+       sizeof(struct ProtocolExtensionContainer_9566P174),
+       offsetof(struct ProtocolExtensionContainer_9566P174, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P174 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P174_tags_349,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P174_tags_349)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P174_tags_349[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P174_tags_349,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P174_tags_349)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P174_tags_349[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P174_constr_349, &asn_PER_type_ProtocolExtensionContainer_9566P174_constr_349, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P174_349,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P174_specs_349  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P175_351[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_NR_TxBW_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P175_tags_351[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P175_specs_351 = {
+       sizeof(struct ProtocolExtensionContainer_9566P175),
+       offsetof(struct ProtocolExtensionContainer_9566P175, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P175 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P175_tags_351,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P175_tags_351)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P175_tags_351[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P175_tags_351,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P175_tags_351)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P175_tags_351[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P175_constr_351, &asn_PER_type_ProtocolExtensionContainer_9566P175_constr_351, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P175_351,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P175_specs_351  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P176_353[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_NRUESecurityCapabilities_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P176_tags_353[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P176_specs_353 = {
+       sizeof(struct ProtocolExtensionContainer_9566P176),
+       offsetof(struct ProtocolExtensionContainer_9566P176, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P176 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P176_tags_353,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P176_tags_353)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P176_tags_353[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P176_tags_353,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P176_tags_353)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P176_tags_353[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P176_constr_353, &asn_PER_type_ProtocolExtensionContainer_9566P176_constr_353, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P176_353,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P176_specs_353  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P177_355[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_PRACH_Configuration_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P177_tags_355[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P177_specs_355 = {
+       sizeof(struct ProtocolExtensionContainer_9566P177),
+       offsetof(struct ProtocolExtensionContainer_9566P177, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P177 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P177_tags_355,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P177_tags_355)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P177_tags_355[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P177_tags_355,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P177_tags_355)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P177_tags_355[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P177_constr_355, &asn_PER_type_ProtocolExtensionContainer_9566P177_constr_355, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P177_355,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P177_specs_355  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P178_357[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_PLMNAreaBasedQMC_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P178_tags_357[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P178_specs_357 = {
+       sizeof(struct ProtocolExtensionContainer_9566P178),
+       offsetof(struct ProtocolExtensionContainer_9566P178, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P178 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P178_tags_357,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P178_tags_357)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P178_tags_357[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P178_tags_357,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P178_tags_357)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P178_tags_357[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P178_constr_357, &asn_PER_type_ProtocolExtensionContainer_9566P178_constr_357, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P178_357,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P178_specs_357  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P179_359[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProSeAuthorized_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P179_tags_359[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P179_specs_359 = {
+       sizeof(struct ProtocolExtensionContainer_9566P179),
+       offsetof(struct ProtocolExtensionContainer_9566P179, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P179 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P179_tags_359,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P179_tags_359)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P179_tags_359[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P179_tags_359,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P179_tags_359)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P179_tags_359[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P179_constr_359, &asn_PER_type_ProtocolExtensionContainer_9566P179_constr_359, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P179_359,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P179_specs_359  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P180_361[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P180_tags_361[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P180_specs_361 = {
+       sizeof(struct ProtocolExtensionContainer_9566P180),
+       offsetof(struct ProtocolExtensionContainer_9566P180, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P180 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P180_tags_361,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P180_tags_361)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P180_tags_361[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P180_tags_361,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P180_tags_361)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P180_tags_361[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P180_constr_361, &asn_PER_type_ProtocolExtensionContainer_9566P180_constr_361, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P180_361,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P180_specs_361  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P181_363[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtectedFootprintTimePattern_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P181_tags_363[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P181_specs_363 = {
+       sizeof(struct ProtocolExtensionContainer_9566P181),
+       offsetof(struct ProtocolExtensionContainer_9566P181, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P181 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P181_tags_363,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P181_tags_363)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P181_tags_363[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P181_tags_363,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P181_tags_363)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P181_tags_363[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P181_constr_363, &asn_PER_type_ProtocolExtensionContainer_9566P181_constr_363, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P181_363,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P181_specs_363  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P182_365[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtectedResourceList_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P182_tags_365[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P182_specs_365 = {
+       sizeof(struct ProtocolExtensionContainer_9566P182),
+       offsetof(struct ProtocolExtensionContainer_9566P182, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P182 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P182_tags_365,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P182_tags_365)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P182_tags_365[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P182_tags_365,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P182_tags_365)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P182_tags_365[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P182_constr_365, &asn_PER_type_ProtocolExtensionContainer_9566P182_constr_365, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P182_365,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P182_specs_365  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P183_367[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RadioResourceStatus_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P183_tags_367[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P183_specs_367 = {
+       sizeof(struct ProtocolExtensionContainer_9566P183),
+       offsetof(struct ProtocolExtensionContainer_9566P183, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P183 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P183_tags_367,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P183_tags_367)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P183_tags_367[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P183_tags_367,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P183_tags_367)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P183_tags_367[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P183_constr_367, &asn_PER_type_ProtocolExtensionContainer_9566P183_constr_367, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P183_367,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P183_specs_367  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P184_369[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RelativeNarrowbandTxPower_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P184_tags_369[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P184_specs_369 = {
+       sizeof(struct ProtocolExtensionContainer_9566P184),
+       offsetof(struct ProtocolExtensionContainer_9566P184, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P184 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P184_tags_369,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P184_tags_369)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P184_tags_369[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P184_tags_369,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P184_tags_369)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P184_tags_369[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P184_constr_369, &asn_PER_type_ProtocolExtensionContainer_9566P184_constr_369, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P184_369,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P184_specs_369  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P185_371[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ReservedSubframePattern_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P185_tags_371[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P185_specs_371 = {
+       sizeof(struct ProtocolExtensionContainer_9566P185),
+       offsetof(struct ProtocolExtensionContainer_9566P185, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P185 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P185_tags_371,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P185_tags_371)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P185_tags_371[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P185_tags_371,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P185_tags_371)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P185_tags_371[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P185_constr_371, &asn_PER_type_ProtocolExtensionContainer_9566P185_constr_371, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P185_371,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P185_specs_371  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P186_373[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RLC_Status_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P186_tags_373[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P186_specs_373 = {
+       sizeof(struct ProtocolExtensionContainer_9566P186),
+       offsetof(struct ProtocolExtensionContainer_9566P186, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P186 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P186_tags_373,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P186_tags_373)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P186_tags_373[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P186_tags_373,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P186_tags_373)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P186_tags_373[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P186_constr_373, &asn_PER_type_ProtocolExtensionContainer_9566P186_constr_373, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P186_373,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P186_specs_373  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P187_375[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RSRPMeasurementResult_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P187_tags_375[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P187_specs_375 = {
+       sizeof(struct ProtocolExtensionContainer_9566P187),
+       offsetof(struct ProtocolExtensionContainer_9566P187, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P187 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P187_tags_375,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P187_tags_375)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P187_tags_375[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P187_tags_375,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P187_tags_375)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P187_tags_375[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P187_constr_375, &asn_PER_type_ProtocolExtensionContainer_9566P187_constr_375, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P187_375,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P187_specs_375  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P188_377[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RSRPMRList_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P188_tags_377[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P188_specs_377 = {
+       sizeof(struct ProtocolExtensionContainer_9566P188),
+       offsetof(struct ProtocolExtensionContainer_9566P188, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P188 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P188_tags_377,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P188_tags_377)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P188_tags_377[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P188_tags_377,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P188_tags_377)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P188_tags_377[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P188_constr_377, &asn_PER_type_ProtocolExtensionContainer_9566P188_constr_377, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P188_377,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P188_specs_377  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P189_379[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_S1TNLLoadIndicator_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P189_tags_379[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P189_specs_379 = {
+       sizeof(struct ProtocolExtensionContainer_9566P189),
+       offsetof(struct ProtocolExtensionContainer_9566P189, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P189 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P189_tags_379,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P189_tags_379)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P189_tags_379[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P189_tags_379,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P189_tags_379)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P189_tags_379[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P189_constr_379, &asn_PER_type_ProtocolExtensionContainer_9566P189_constr_379, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P189_379,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P189_specs_379  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P190_381[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SecondaryRATUsageReport_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P190_tags_381[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P190_specs_381 = {
+       sizeof(struct ProtocolExtensionContainer_9566P190),
+       offsetof(struct ProtocolExtensionContainer_9566P190, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P190 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P190_tags_381,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P190_tags_381)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P190_tags_381[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P190_tags_381,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P190_tags_381)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P190_tags_381[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P190_constr_381, &asn_PER_type_ProtocolExtensionContainer_9566P190_constr_381, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P190_381,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P190_specs_381  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P191_383[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedCell_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P191_tags_383[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P191_specs_383 = {
+       sizeof(struct ProtocolExtensionContainer_9566P191),
+       offsetof(struct ProtocolExtensionContainer_9566P191, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P191 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P191_tags_383,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P191_tags_383)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P191_tags_383[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P191_tags_383,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P191_tags_383)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P191_tags_383[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P191_constr_383, &asn_PER_type_ProtocolExtensionContainer_9566P191_constr_383, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P191_383,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P191_specs_383  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P192_385[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedCell_Information_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P192_tags_385[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P192_specs_385 = {
+       sizeof(struct ProtocolExtensionContainer_9566P192),
+       offsetof(struct ProtocolExtensionContainer_9566P192, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P192 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P192_tags_385,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P192_tags_385)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P192_tags_385[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P192_tags_385,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P192_tags_385)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P192_tags_385[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P192_constr_385, &asn_PER_type_ProtocolExtensionContainer_9566P192_constr_385, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P192_385,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P192_specs_385  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P193_387[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBResourceCoordinationInformationExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P193_tags_387[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P193_specs_387 = {
+       sizeof(struct ProtocolExtensionContainer_9566P193),
+       offsetof(struct ProtocolExtensionContainer_9566P193, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P193 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P193_tags_387,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P193_tags_387)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P193_tags_387[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P193_tags_387,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P193_tags_387)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P193_tags_387[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P193_constr_387, &asn_PER_type_ProtocolExtensionContainer_9566P193_constr_387, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P193_387,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P193_specs_387  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P194_389[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SpecialSubframe_Info_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P194_tags_389[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P194_specs_389 = {
+       sizeof(struct ProtocolExtensionContainer_9566P194),
+       offsetof(struct ProtocolExtensionContainer_9566P194, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P194 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P194_tags_389,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P194_tags_389)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P194_tags_389[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P194_tags_389,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P194_tags_389)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P194_tags_389[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P194_constr_389, &asn_PER_type_ProtocolExtensionContainer_9566P194_constr_389, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P194_389,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P194_specs_389  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P195_391[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SubbandCQI_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P195_tags_391[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P195_specs_391 = {
+       sizeof(struct ProtocolExtensionContainer_9566P195),
+       offsetof(struct ProtocolExtensionContainer_9566P195, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P195 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P195_tags_391,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P195_tags_391)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P195_tags_391[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P195_tags_391,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P195_tags_391)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P195_tags_391[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P195_constr_391, &asn_PER_type_ProtocolExtensionContainer_9566P195_constr_391, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P195_391,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P195_specs_391  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P196_393[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P196_tags_393[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P196_specs_393 = {
+       sizeof(struct ProtocolExtensionContainer_9566P196),
+       offsetof(struct ProtocolExtensionContainer_9566P196, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P196 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P196_tags_393,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P196_tags_393)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P196_tags_393[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P196_tags_393,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P196_tags_393)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P196_tags_393[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P196_constr_393, &asn_PER_type_ProtocolExtensionContainer_9566P196_constr_393, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P196_393,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P196_specs_393  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P197_395[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ScheduledCommunicationTime_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P197_tags_395[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P197_specs_395 = {
+       sizeof(struct ProtocolExtensionContainer_9566P197),
+       offsetof(struct ProtocolExtensionContainer_9566P197, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P197 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P197_tags_395,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P197_tags_395)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P197_tags_395[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P197_tags_395,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P197_tags_395)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P197_tags_395[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P197_constr_395, &asn_PER_type_ProtocolExtensionContainer_9566P197_constr_395, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P197_395,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P197_specs_395  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P198_397[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SubbandCQIItem_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P198_tags_397[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P198_specs_397 = {
+       sizeof(struct ProtocolExtensionContainer_9566P198),
+       offsetof(struct ProtocolExtensionContainer_9566P198, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P198 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P198_tags_397,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P198_tags_397)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P198_tags_397[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P198_tags_397,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P198_tags_397)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P198_tags_397[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P198_constr_397, &asn_PER_type_ProtocolExtensionContainer_9566P198_constr_397, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P198_397,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P198_specs_397  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P199_399[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SULInformation_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P199_tags_399[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P199_specs_399 = {
+       sizeof(struct ProtocolExtensionContainer_9566P199),
+       offsetof(struct ProtocolExtensionContainer_9566P199, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P199 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P199_tags_399,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P199_tags_399)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P199_tags_399[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P199_tags_399,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P199_tags_399)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P199_tags_399[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P199_constr_399, &asn_PER_type_ProtocolExtensionContainer_9566P199_constr_399, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P199_399,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P199_specs_399  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P200_401[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SupportedSULFreqBandItem_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P200_tags_401[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P200_specs_401 = {
+       sizeof(struct ProtocolExtensionContainer_9566P200),
+       offsetof(struct ProtocolExtensionContainer_9566P200, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P200 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P200_tags_401,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P200_tags_401)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P200_tags_401[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P200_tags_401,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P200_tags_401)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P200_tags_401[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P200_constr_401, &asn_PER_type_ProtocolExtensionContainer_9566P200_constr_401, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P200_401,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P200_specs_401  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P201_403[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_TABasedMDT_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P201_tags_403[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P201_specs_403 = {
+       sizeof(struct ProtocolExtensionContainer_9566P201),
+       offsetof(struct ProtocolExtensionContainer_9566P201, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P201 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P201_tags_403,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P201_tags_403)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P201_tags_403[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P201_tags_403,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P201_tags_403)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P201_tags_403[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P201_constr_403, &asn_PER_type_ProtocolExtensionContainer_9566P201_constr_403, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P201_403,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P201_specs_403  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P202_405[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_TAIBasedMDT_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P202_tags_405[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P202_specs_405 = {
+       sizeof(struct ProtocolExtensionContainer_9566P202),
+       offsetof(struct ProtocolExtensionContainer_9566P202, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P202 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P202_tags_405,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P202_tags_405)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P202_tags_405[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P202_tags_405,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P202_tags_405)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P202_tags_405[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P202_constr_405, &asn_PER_type_ProtocolExtensionContainer_9566P202_constr_405, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P202_405,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P202_specs_405  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P203_407[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_TAI_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P203_tags_407[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P203_specs_407 = {
+       sizeof(struct ProtocolExtensionContainer_9566P203),
+       offsetof(struct ProtocolExtensionContainer_9566P203, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P203 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P203_tags_407,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P203_tags_407)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P203_tags_407[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P203_tags_407,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P203_tags_407)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P203_tags_407[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P203_constr_407, &asn_PER_type_ProtocolExtensionContainer_9566P203_constr_407, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P203_407,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P203_specs_407  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P204_409[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_TABasedQMC_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P204_tags_409[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P204_specs_409 = {
+       sizeof(struct ProtocolExtensionContainer_9566P204),
+       offsetof(struct ProtocolExtensionContainer_9566P204, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P204 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P204_tags_409,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P204_tags_409)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P204_tags_409[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P204_tags_409,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P204_tags_409)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P204_tags_409[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P204_constr_409, &asn_PER_type_ProtocolExtensionContainer_9566P204_constr_409, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P204_409,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P204_specs_409  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P205_411[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_TAIBasedQMC_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P205_tags_411[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P205_specs_411 = {
+       sizeof(struct ProtocolExtensionContainer_9566P205),
+       offsetof(struct ProtocolExtensionContainer_9566P205, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P205 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P205_tags_411,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P205_tags_411)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P205_tags_411[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P205_tags_411,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P205_tags_411)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P205_tags_411[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P205_constr_411, &asn_PER_type_ProtocolExtensionContainer_9566P205_constr_411, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P205_411,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P205_specs_411  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P206_413[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_TDD_Info_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P206_tags_413[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P206_specs_413 = {
+       sizeof(struct ProtocolExtensionContainer_9566P206),
+       offsetof(struct ProtocolExtensionContainer_9566P206, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P206 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P206_tags_413,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P206_tags_413)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P206_tags_413[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P206_tags_413,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P206_tags_413)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P206_tags_413[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P206_constr_413, &asn_PER_type_ProtocolExtensionContainer_9566P206_constr_413, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P206_413,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P206_specs_413  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P207_415[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_TraceActivation_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P207_tags_415[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P207_specs_415 = {
+       sizeof(struct ProtocolExtensionContainer_9566P207),
+       offsetof(struct ProtocolExtensionContainer_9566P207, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P207 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P207_tags_415,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P207_tags_415)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P207_tags_415[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P207_tags_415,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P207_tags_415)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P207_tags_415[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P207_constr_415, &asn_PER_type_ProtocolExtensionContainer_9566P207_constr_415, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P207_415,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P207_specs_415  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P208_417[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Tunnel_Information_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P208_tags_417[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P208_specs_417 = {
+       sizeof(struct ProtocolExtensionContainer_9566P208),
+       offsetof(struct ProtocolExtensionContainer_9566P208, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P208 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P208_tags_417,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P208_tags_417)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P208_tags_417[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P208_tags_417,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P208_tags_417)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P208_tags_417[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P208_constr_417, &asn_PER_type_ProtocolExtensionContainer_9566P208_constr_417, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P208_417,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P208_specs_417  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P209_419[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UEAggregate_MaximumBitrate_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P209_tags_419[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P209_specs_419 = {
+       sizeof(struct ProtocolExtensionContainer_9566P209),
+       offsetof(struct ProtocolExtensionContainer_9566P209, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P209 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P209_tags_419,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P209_tags_419)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P209_tags_419[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P209_tags_419,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P209_tags_419)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P209_tags_419[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P209_constr_419, &asn_PER_type_ProtocolExtensionContainer_9566P209_constr_419, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P209_419,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P209_specs_419  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P210_421[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UEAppLayerMeasConfig_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P210_tags_421[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P210_specs_421 = {
+       sizeof(struct ProtocolExtensionContainer_9566P210),
+       offsetof(struct ProtocolExtensionContainer_9566P210, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P210 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P210_tags_421,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P210_tags_421)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P210_tags_421[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P210_tags_421,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P210_tags_421)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P210_tags_421[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P210_constr_421, &asn_PER_type_ProtocolExtensionContainer_9566P210_constr_421, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P210_421,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P210_specs_421  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P211_423[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UESecurityCapabilities_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P211_tags_423[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P211_specs_423 = {
+       sizeof(struct ProtocolExtensionContainer_9566P211),
+       offsetof(struct ProtocolExtensionContainer_9566P211, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P211 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P211_tags_423,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P211_tags_423)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P211_tags_423[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P211_tags_423,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P211_tags_423)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P211_tags_423[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P211_constr_423, &asn_PER_type_ProtocolExtensionContainer_9566P211_constr_423, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P211_423,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P211_specs_423  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P212_425[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P212_tags_425[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P212_specs_425 = {
+       sizeof(struct ProtocolExtensionContainer_9566P212),
+       offsetof(struct ProtocolExtensionContainer_9566P212, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P212 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P212_tags_425,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P212_tags_425)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P212_tags_425[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P212_tags_425,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P212_tags_425)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P212_tags_425[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P212_constr_425, &asn_PER_type_ProtocolExtensionContainer_9566P212_constr_425, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P212_425,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P212_specs_425  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P213_427[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UEsToBeResetList_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P213_tags_427[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P213_specs_427 = {
+       sizeof(struct ProtocolExtensionContainer_9566P213),
+       offsetof(struct ProtocolExtensionContainer_9566P213, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P213 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P213_tags_427,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P213_tags_427)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P213_tags_427[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P213_tags_427,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P213_tags_427)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P213_tags_427[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P213_constr_427, &asn_PER_type_ProtocolExtensionContainer_9566P213_constr_427, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P213_427,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P213_specs_427  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P214_429[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ULandDLSharing_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P214_tags_429[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P214_specs_429 = {
+       sizeof(struct ProtocolExtensionContainer_9566P214),
+       offsetof(struct ProtocolExtensionContainer_9566P214, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P214 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P214_tags_429,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P214_tags_429)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P214_tags_429[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P214_tags_429,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P214_tags_429)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P214_tags_429[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P214_constr_429, &asn_PER_type_ProtocolExtensionContainer_9566P214_constr_429, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P214_429,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P214_specs_429  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P215_431[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ULConfiguration_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P215_tags_431[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P215_specs_431 = {
+       sizeof(struct ProtocolExtensionContainer_9566P215),
+       offsetof(struct ProtocolExtensionContainer_9566P215, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P215 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P215_tags_431,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P215_tags_431)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P215_tags_431[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P215_tags_431,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P215_tags_431)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P215_tags_431[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P215_constr_431, &asn_PER_type_ProtocolExtensionContainer_9566P215_constr_431, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P215_431,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P215_specs_431  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P216_433[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P216_tags_433[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P216_specs_433 = {
+       sizeof(struct ProtocolExtensionContainer_9566P216),
+       offsetof(struct ProtocolExtensionContainer_9566P216, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P216 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P216_tags_433,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P216_tags_433)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P216_tags_433[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P216_tags_433,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P216_tags_433)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P216_tags_433[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P216_constr_433, &asn_PER_type_ProtocolExtensionContainer_9566P216_constr_433, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P216_433,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P216_specs_433  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P217_435[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ULOnlySharing_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P217_tags_435[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P217_specs_435 = {
+       sizeof(struct ProtocolExtensionContainer_9566P217),
+       offsetof(struct ProtocolExtensionContainer_9566P217, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P217 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P217_tags_435,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P217_tags_435)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P217_tags_435[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P217_tags_435,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P217_tags_435)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P217_tags_435[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P217_constr_435, &asn_PER_type_ProtocolExtensionContainer_9566P217_constr_435, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P217_435,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P217_specs_435  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P218_437[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UsableABSInformationFDD_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P218_tags_437[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P218_specs_437 = {
+       sizeof(struct ProtocolExtensionContainer_9566P218),
+       offsetof(struct ProtocolExtensionContainer_9566P218, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P218 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P218_tags_437,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P218_tags_437)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P218_tags_437[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P218_tags_437,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P218_tags_437)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P218_tags_437[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P218_constr_437, &asn_PER_type_ProtocolExtensionContainer_9566P218_constr_437, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P218_437,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P218_specs_437  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P219_439[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UsableABSInformationTDD_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P219_tags_439[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P219_specs_439 = {
+       sizeof(struct ProtocolExtensionContainer_9566P219),
+       offsetof(struct ProtocolExtensionContainer_9566P219, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P219 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P219_tags_439,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P219_tags_439)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P219_tags_439[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P219_tags_439,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P219_tags_439)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P219_tags_439[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P219_constr_439, &asn_PER_type_ProtocolExtensionContainer_9566P219_constr_439, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P219_439,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P219_specs_439  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P220_441[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_V2XServicesAuthorized_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P220_tags_441[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P220_specs_441 = {
+       sizeof(struct ProtocolExtensionContainer_9566P220),
+       offsetof(struct ProtocolExtensionContainer_9566P220, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P220 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P220_tags_441,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P220_tags_441)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P220_tags_441[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P220_tags_441,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P220_tags_441)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P220_tags_441[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P220_constr_441, &asn_PER_type_ProtocolExtensionContainer_9566P220_constr_441, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P220_441,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P220_specs_441  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P221_443[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_WidebandCQI_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P221_tags_443[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P221_specs_443 = {
+       sizeof(struct ProtocolExtensionContainer_9566P221),
+       offsetof(struct ProtocolExtensionContainer_9566P221, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P221 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P221_tags_443,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P221_tags_443)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P221_tags_443[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P221_tags_443,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P221_tags_443)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P221_tags_443[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P221_constr_443, &asn_PER_type_ProtocolExtensionContainer_9566P221_constr_443, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P221_443,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P221_specs_443  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_9566P222_445[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_WLANMeasurementConfiguration_ExtIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_9566P222_tags_445[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_9566P222_specs_445 = {
+       sizeof(struct ProtocolExtensionContainer_9566P222),
+       offsetof(struct ProtocolExtensionContainer_9566P222, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_9566P222 = {
+       "ProtocolExtensionContainer",
+       "ProtocolExtensionContainer",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolExtensionContainer_9566P222_tags_445,
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P222_tags_445)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P222_tags_445[0]), /* 1 */
+       asn_DEF_ProtocolExtensionContainer_9566P222_tags_445,   /* Same as above */
+       sizeof(asn_DEF_ProtocolExtensionContainer_9566P222_tags_445)
+               /sizeof(asn_DEF_ProtocolExtensionContainer_9566P222_tags_445[0]), /* 1 */
+       { &asn_OER_type_ProtocolExtensionContainer_9566P222_constr_445, &asn_PER_type_ProtocolExtensionContainer_9566P222_constr_445, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolExtensionContainer_9566P222_445,
+       1,      /* Single element */
+       &asn_SPC_ProtocolExtensionContainer_9566P222_specs_445  /* Additional specs */
+};
+
diff --git a/e2ap/lib/ProtocolExtensionField.c b/e2ap/lib/ProtocolExtensionField.c
new file mode 100644 (file)
index 0000000..0449d9f
--- /dev/null
@@ -0,0 +1,43035 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProtocolExtensionField.h"
+
+static const long asn_VAL_1_id_ManagementBasedMDTallowed = 74;
+static const long asn_VAL_1_ignore = 1;
+static const long asn_VAL_1_optional = 0;
+static const long asn_VAL_2_id_ManagementBasedMDTPLMNList = 89;
+static const long asn_VAL_2_ignore = 1;
+static const long asn_VAL_2_optional = 0;
+static const long asn_VAL_3_id_UESidelinkAggregateMaximumBitRate = 184;
+static const long asn_VAL_3_ignore = 1;
+static const long asn_VAL_3_optional = 0;
+static const asn_ioc_cell_t asn_IOS_UE_ContextInformation_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_1_id_ManagementBasedMDTallowed },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_ignore },
+       { "&Extension", aioc__type, &asn_DEF_ManagementBasedMDTallowed },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_1_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_2_id_ManagementBasedMDTPLMNList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_ignore },
+       { "&Extension", aioc__type, &asn_DEF_MDTPLMNList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_2_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_3_id_UESidelinkAggregateMaximumBitRate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_ignore },
+       { "&Extension", aioc__type, &asn_DEF_UESidelinkAggregateMaximumBitRate },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_3_optional }
+};
+static const asn_ioc_set_t asn_IOS_UE_ContextInformation_ExtIEs_1[] = {
+       { 3, 4, asn_IOS_UE_ContextInformation_ExtIEs_1_rows }
+};
+static const long asn_VAL_4_id_BearerType = 171;
+static const long asn_VAL_4_reject = 0;
+static const long asn_VAL_4_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeSetup_ItemExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_4_id_BearerType },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject },
+       { "&Extension", aioc__type, &asn_DEF_BearerType },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_4_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeSetup_ItemExtIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeSetup_ItemExtIEs_1_rows }
+};
+static const long asn_VAL_5_id_ReceiveStatusOfULPDCPSDUsExtended = 91;
+static const long asn_VAL_5_ignore = 1;
+static const long asn_VAL_5_optional = 0;
+static const long asn_VAL_6_id_ULCOUNTValueExtended = 92;
+static const long asn_VAL_6_ignore = 1;
+static const long asn_VAL_6_optional = 0;
+static const long asn_VAL_7_id_DLCOUNTValueExtended = 93;
+static const long asn_VAL_7_ignore = 1;
+static const long asn_VAL_7_optional = 0;
+static const long asn_VAL_8_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 = 150;
+static const long asn_VAL_8_ignore = 1;
+static const long asn_VAL_8_optional = 0;
+static const long asn_VAL_9_id_ULCOUNTValuePDCP_SNlength18 = 151;
+static const long asn_VAL_9_ignore = 1;
+static const long asn_VAL_9_optional = 0;
+static const long asn_VAL_10_id_DLCOUNTValuePDCP_SNlength18 = 152;
+static const long asn_VAL_10_ignore = 1;
+static const long asn_VAL_10_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_SubjectToStatusTransfer_ItemExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_5_id_ReceiveStatusOfULPDCPSDUsExtended },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_ignore },
+       { "&Extension", aioc__type, &asn_DEF_ReceiveStatusOfULPDCPSDUsExtended },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_5_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_6_id_ULCOUNTValueExtended },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_ignore },
+       { "&Extension", aioc__type, &asn_DEF_COUNTValueExtended },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_6_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_7_id_DLCOUNTValueExtended },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore },
+       { "&Extension", aioc__type, &asn_DEF_COUNTValueExtended },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_7_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_8_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore },
+       { "&Extension", aioc__type, &asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_8_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_9_id_ULCOUNTValuePDCP_SNlength18 },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore },
+       { "&Extension", aioc__type, &asn_DEF_COUNTvaluePDCP_SNlength18 },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_9_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_10_id_DLCOUNTValuePDCP_SNlength18 },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore },
+       { "&Extension", aioc__type, &asn_DEF_COUNTvaluePDCP_SNlength18 },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_10_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_SubjectToStatusTransfer_ItemExtIEs_1[] = {
+       { 6, 4, asn_IOS_E_RABs_SubjectToStatusTransfer_ItemExtIEs_1_rows }
+};
+static const long asn_VAL_11_id_ABSInformation = 61;
+static const long asn_VAL_11_ignore = 1;
+static const long asn_VAL_11_optional = 0;
+static const long asn_VAL_12_id_InvokeIndication = 62;
+static const long asn_VAL_12_ignore = 1;
+static const long asn_VAL_12_optional = 0;
+static const long asn_VAL_13_id_IntendedULDLConfiguration = 99;
+static const long asn_VAL_13_ignore = 1;
+static const long asn_VAL_13_optional = 0;
+static const long asn_VAL_14_id_ExtendedULInterferenceOverloadInfo = 100;
+static const long asn_VAL_14_ignore = 1;
+static const long asn_VAL_14_optional = 0;
+static const long asn_VAL_15_id_CoMPInformation = 108;
+static const long asn_VAL_15_ignore = 1;
+static const long asn_VAL_15_optional = 0;
+static const long asn_VAL_16_id_DynamicDLTransmissionInformation = 106;
+static const long asn_VAL_16_ignore = 1;
+static const long asn_VAL_16_optional = 0;
+static const asn_ioc_cell_t asn_IOS_CellInformation_Item_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_11_id_ABSInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore },
+       { "&Extension", aioc__type, &asn_DEF_ABSInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_11_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_12_id_InvokeIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore },
+       { "&Extension", aioc__type, &asn_DEF_InvokeIndication },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_12_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_IntendedULDLConfiguration },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_ignore },
+       { "&Extension", aioc__type, &asn_DEF_SubframeAssignment },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_13_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_14_id_ExtendedULInterferenceOverloadInfo },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore },
+       { "&Extension", aioc__type, &asn_DEF_ExtendedULInterferenceOverloadInfo },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_14_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_15_id_CoMPInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_ignore },
+       { "&Extension", aioc__type, &asn_DEF_CoMPInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_15_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_16_id_DynamicDLTransmissionInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_ignore },
+       { "&Extension", aioc__type, &asn_DEF_DynamicDLTransmissionInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_16_optional }
+};
+static const asn_ioc_set_t asn_IOS_CellInformation_Item_ExtIEs_1[] = {
+       { 6, 4, asn_IOS_CellInformation_Item_ExtIEs_1_rows }
+};
+static const long asn_VAL_17_id_DeactivationIndication = 59;
+static const long asn_VAL_17_ignore = 1;
+static const long asn_VAL_17_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ServedCellsToModify_Item_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_17_id_DeactivationIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_ignore },
+       { "&Extension", aioc__type, &asn_DEF_DeactivationIndication },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_17_optional }
+};
+static const asn_ioc_set_t asn_IOS_ServedCellsToModify_Item_ExtIEs_1[] = {
+       { 1, 4, asn_IOS_ServedCellsToModify_Item_ExtIEs_1_rows }
+};
+static const long asn_VAL_18_id_CompositeAvailableCapacityGroup = 42;
+static const long asn_VAL_18_ignore = 1;
+static const long asn_VAL_18_optional = 0;
+static const long asn_VAL_19_id_ABS_Status = 63;
+static const long asn_VAL_19_ignore = 1;
+static const long asn_VAL_19_optional = 0;
+static const long asn_VAL_20_id_RSRPMRList = 110;
+static const long asn_VAL_20_ignore = 1;
+static const long asn_VAL_20_optional = 0;
+static const long asn_VAL_21_id_CSIReportList = 146;
+static const long asn_VAL_21_ignore = 1;
+static const long asn_VAL_21_optional = 0;
+static const long asn_VAL_22_id_CellReportingIndicator = 170;
+static const long asn_VAL_22_ignore = 1;
+static const long asn_VAL_22_optional = 0;
+static const asn_ioc_cell_t asn_IOS_CellMeasurementResult_Item_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_18_id_CompositeAvailableCapacityGroup },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_ignore },
+       { "&Extension", aioc__type, &asn_DEF_CompositeAvailableCapacityGroup },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_18_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_19_id_ABS_Status },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_ignore },
+       { "&Extension", aioc__type, &asn_DEF_ABS_Status },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_19_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_20_id_RSRPMRList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_ignore },
+       { "&Extension", aioc__type, &asn_DEF_RSRPMRList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_20_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_21_id_CSIReportList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_ignore },
+       { "&Extension", aioc__type, &asn_DEF_CSIReportList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_21_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_22_id_CellReportingIndicator },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_ignore },
+       { "&Extension", aioc__type, &asn_DEF_CellReportingIndicator },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_22_optional }
+};
+static const asn_ioc_set_t asn_IOS_CellMeasurementResult_Item_ExtIEs_1[] = {
+       { 5, 4, asn_IOS_CellMeasurementResult_Item_ExtIEs_1_rows }
+};
+static const long asn_VAL_23_id_Correlation_ID = 166;
+static const long asn_VAL_23_ignore = 1;
+static const long asn_VAL_23_optional = 0;
+static const long asn_VAL_24_id_SIPTO_Correlation_ID = 167;
+static const long asn_VAL_24_ignore = 1;
+static const long asn_VAL_24_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_Correlation_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_ignore },
+       { "&Extension", aioc__type, &asn_DEF_Correlation_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_23_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_24_id_SIPTO_Correlation_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_ignore },
+       { "&Extension", aioc__type, &asn_DEF_Correlation_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_24_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_1[] = {
+       { 2, 4, asn_IOS_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_1_rows }
+};
+static const long asn_VAL_25_id_Correlation_ID = 166;
+static const long asn_VAL_25_ignore = 1;
+static const long asn_VAL_25_optional = 0;
+static const long asn_VAL_26_id_SIPTO_Correlation_ID = 167;
+static const long asn_VAL_26_ignore = 1;
+static const long asn_VAL_26_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_25_id_Correlation_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_ignore },
+       { "&Extension", aioc__type, &asn_DEF_Correlation_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_25_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_SIPTO_Correlation_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_ignore },
+       { "&Extension", aioc__type, &asn_DEF_Correlation_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_1[] = {
+       { 2, 4, asn_IOS_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_1_rows }
+};
+static const long asn_VAL_27_id_UESidelinkAggregateMaximumBitRate = 184;
+static const long asn_VAL_27_ignore = 1;
+static const long asn_VAL_27_optional = 0;
+static const asn_ioc_cell_t asn_IOS_UE_ContextInformationRetrieve_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_UESidelinkAggregateMaximumBitRate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_ignore },
+       { "&Extension", aioc__type, &asn_DEF_UESidelinkAggregateMaximumBitRate },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_27_optional }
+};
+static const asn_ioc_set_t asn_IOS_UE_ContextInformationRetrieve_ExtIEs_1[] = {
+       { 1, 4, asn_IOS_UE_ContextInformationRetrieve_ExtIEs_1_rows }
+};
+static const long asn_VAL_28_id_uL_GTPtunnelEndpoint = 185;
+static const long asn_VAL_28_reject = 0;
+static const long asn_VAL_28_mandatory = 2;
+static const long asn_VAL_29_id_dL_Forwarding = 306;
+static const long asn_VAL_29_ignore = 1;
+static const long asn_VAL_29_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeSetupRetrieve_ItemExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_uL_GTPtunnelEndpoint },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_reject },
+       { "&Extension", aioc__type, &asn_DEF_GTPtunnelEndpoint },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_dL_Forwarding },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_ignore },
+       { "&Extension", aioc__type, &asn_DEF_DL_Forwarding },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_29_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeSetupRetrieve_ItemExtIEs_1[] = {
+       { 2, 4, asn_IOS_E_RABs_ToBeSetupRetrieve_ItemExtIEs_1_rows }
+};
+static const long asn_VAL_30_id_RLCMode_transferred = 317;
+static const long asn_VAL_30_ignore = 1;
+static const long asn_VAL_30_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_RLCMode_transferred },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_ignore },
+       { "&Extension", aioc__type, &asn_DEF_RLCMode },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_1_rows }
+};
+static const long asn_VAL_31_id_uLpDCPSnLength = 302;
+static const long asn_VAL_31_ignore = 1;
+static const long asn_VAL_31_optional = 0;
+static const long asn_VAL_32_id_dLPDCPSnLength = 311;
+static const long asn_VAL_32_ignore = 1;
+static const long asn_VAL_32_optional = 0;
+static const long asn_VAL_33_id_duplicationActivation = 315;
+static const long asn_VAL_33_ignore = 1;
+static const long asn_VAL_33_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_uLpDCPSnLength },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_ignore },
+       { "&Extension", aioc__type, &asn_DEF_PDCPSnLength },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_dLPDCPSnLength },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_ignore },
+       { "&Extension", aioc__type, &asn_DEF_PDCPSnLength },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_32_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_33_id_duplicationActivation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_ignore },
+       { "&Extension", aioc__type, &asn_DEF_DuplicationActivation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_1[] = {
+       { 3, 4, asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_1_rows }
+};
+static const long asn_VAL_34_id_uLpDCPSnLength = 302;
+static const long asn_VAL_34_ignore = 1;
+static const long asn_VAL_34_optional = 0;
+static const long asn_VAL_35_id_dLPDCPSnLength = 311;
+static const long asn_VAL_35_ignore = 1;
+static const long asn_VAL_35_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_uLpDCPSnLength },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_ignore },
+       { "&Extension", aioc__type, &asn_DEF_PDCPSnLength },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_34_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_dLPDCPSnLength },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_ignore },
+       { "&Extension", aioc__type, &asn_DEF_PDCPSnLength },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_1[] = {
+       { 2, 4, asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_1_rows }
+};
+static const long asn_VAL_36_id_lCID = 314;
+static const long asn_VAL_36_ignore = 1;
+static const long asn_VAL_36_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_lCID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_ignore },
+       { "&Extension", aioc__type, &asn_DEF_LCID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_1_rows }
+};
+static const long asn_VAL_37_id_SubscriberProfileIDforRFP = 275;
+static const long asn_VAL_37_ignore = 1;
+static const long asn_VAL_37_optional = 0;
+static const asn_ioc_cell_t asn_IOS_UE_ContextInformationSgNBModReqExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_SubscriberProfileIDforRFP },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_ignore },
+       { "&Extension", aioc__type, &asn_DEF_SubscriberProfileIDforRFP },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_optional }
+};
+static const asn_ioc_set_t asn_IOS_UE_ContextInformationSgNBModReqExtIEs_1[] = {
+       { 1, 4, asn_IOS_UE_ContextInformationSgNBModReqExtIEs_1_rows }
+};
+static const long asn_VAL_38_id_RLCMode_transferred = 317;
+static const long asn_VAL_38_ignore = 1;
+static const long asn_VAL_38_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_RLCMode_transferred },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_ignore },
+       { "&Extension", aioc__type, &asn_DEF_RLCMode },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_38_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1_rows }
+};
+static const long asn_VAL_39_id_uLpDCPSnLength = 302;
+static const long asn_VAL_39_ignore = 1;
+static const long asn_VAL_39_optional = 0;
+static const long asn_VAL_40_id_dLPDCPSnLength = 311;
+static const long asn_VAL_40_ignore = 1;
+static const long asn_VAL_40_optional = 0;
+static const long asn_VAL_41_id_duplicationActivation = 315;
+static const long asn_VAL_41_ignore = 1;
+static const long asn_VAL_41_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_39_id_uLpDCPSnLength },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_ignore },
+       { "&Extension", aioc__type, &asn_DEF_PDCPSnLength },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_dLPDCPSnLength },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_ignore },
+       { "&Extension", aioc__type, &asn_DEF_PDCPSnLength },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_40_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_duplicationActivation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_ignore },
+       { "&Extension", aioc__type, &asn_DEF_DuplicationActivation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1[] = {
+       { 3, 4, asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1_rows }
+};
+static const long asn_VAL_42_id_RLC_Status = 300;
+static const long asn_VAL_42_ignore = 1;
+static const long asn_VAL_42_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_RLC_Status },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_ignore },
+       { "&Extension", aioc__type, &asn_DEF_RLC_Status },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1_rows }
+};
+static const long asn_VAL_43_id_uLpDCPSnLength = 302;
+static const long asn_VAL_43_ignore = 1;
+static const long asn_VAL_43_optional = 0;
+static const long asn_VAL_44_id_dLPDCPSnLength = 311;
+static const long asn_VAL_44_ignore = 1;
+static const long asn_VAL_44_optional = 0;
+static const long asn_VAL_45_id_secondarymeNBULGTPTEIDatPDCP = 313;
+static const long asn_VAL_45_ignore = 1;
+static const long asn_VAL_45_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_43_id_uLpDCPSnLength },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_ignore },
+       { "&Extension", aioc__type, &asn_DEF_PDCPSnLength },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_43_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_dLPDCPSnLength },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_ignore },
+       { "&Extension", aioc__type, &asn_DEF_PDCPSnLength },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_secondarymeNBULGTPTEIDatPDCP },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_ignore },
+       { "&Extension", aioc__type, &asn_DEF_GTPtunnelEndpoint },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1[] = {
+       { 3, 4, asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1_rows }
+};
+static const long asn_VAL_46_id_uLpDCPSnLength = 302;
+static const long asn_VAL_46_ignore = 1;
+static const long asn_VAL_46_optional = 0;
+static const long asn_VAL_47_id_dLPDCPSnLength = 311;
+static const long asn_VAL_47_ignore = 1;
+static const long asn_VAL_47_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_uLpDCPSnLength },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_ignore },
+       { "&Extension", aioc__type, &asn_DEF_PDCPSnLength },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_dLPDCPSnLength },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_ignore },
+       { "&Extension", aioc__type, &asn_DEF_PDCPSnLength },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_47_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1[] = {
+       { 2, 4, asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1_rows }
+};
+static const long asn_VAL_48_id_lCID = 314;
+static const long asn_VAL_48_ignore = 1;
+static const long asn_VAL_48_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_lCID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_48_ignore },
+       { "&Extension", aioc__type, &asn_DEF_LCID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_48_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1_rows }
+};
+static const long asn_VAL_49_id_uLpDCPSnLength = 302;
+static const long asn_VAL_49_ignore = 1;
+static const long asn_VAL_49_optional = 0;
+static const long asn_VAL_50_id_dLPDCPSnLength = 311;
+static const long asn_VAL_50_ignore = 1;
+static const long asn_VAL_50_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_uLpDCPSnLength },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_ignore },
+       { "&Extension", aioc__type, &asn_DEF_PDCPSnLength },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_49_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_dLPDCPSnLength },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_ignore },
+       { "&Extension", aioc__type, &asn_DEF_PDCPSnLength },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1[] = {
+       { 2, 4, asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1_rows }
+};
+static const long asn_VAL_51_id_secondarysgNBDLGTPTEIDatPDCP = 312;
+static const long asn_VAL_51_ignore = 1;
+static const long asn_VAL_51_optional = 0;
+static const long asn_VAL_52_id_RLC_Status = 300;
+static const long asn_VAL_52_ignore = 1;
+static const long asn_VAL_52_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_51_id_secondarysgNBDLGTPTEIDatPDCP },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_ignore },
+       { "&Extension", aioc__type, &asn_DEF_GTPtunnelEndpoint },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_RLC_Status },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_ignore },
+       { "&Extension", aioc__type, &asn_DEF_RLC_Status },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_52_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1[] = {
+       { 2, 4, asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1_rows }
+};
+static const long asn_VAL_53_id_RLCMode_transferred = 317;
+static const long asn_VAL_53_ignore = 1;
+static const long asn_VAL_53_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_53_id_RLCMode_transferred },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_53_ignore },
+       { "&Extension", aioc__type, &asn_DEF_RLCMode },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_53_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_1_rows }
+};
+static const long asn_VAL_54_id_uLpDCPSnLength = 302;
+static const long asn_VAL_54_ignore = 1;
+static const long asn_VAL_54_optional = 0;
+static const long asn_VAL_55_id_dLPDCPSnLength = 311;
+static const long asn_VAL_55_ignore = 1;
+static const long asn_VAL_55_optional = 0;
+static const long asn_VAL_56_id_new_drb_ID_req = 325;
+static const long asn_VAL_56_ignore = 1;
+static const long asn_VAL_56_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_uLpDCPSnLength },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_54_ignore },
+       { "&Extension", aioc__type, &asn_DEF_PDCPSnLength },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_dLPDCPSnLength },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_55_ignore },
+       { "&Extension", aioc__type, &asn_DEF_PDCPSnLength },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_new_drb_ID_req },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_ignore },
+       { "&Extension", aioc__type, &asn_DEF_NewDRBIDrequest },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_56_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_1[] = {
+       { 3, 4, asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_1_rows }
+};
+static const long asn_VAL_57_id_RLC_Status = 300;
+static const long asn_VAL_57_ignore = 1;
+static const long asn_VAL_57_optional = 0;
+static const long asn_VAL_58_id_lCID = 314;
+static const long asn_VAL_58_ignore = 1;
+static const long asn_VAL_58_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_57_id_RLC_Status },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_ignore },
+       { "&Extension", aioc__type, &asn_DEF_RLC_Status },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_lCID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_ignore },
+       { "&Extension", aioc__type, &asn_DEF_LCID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_1[] = {
+       { 2, 4, asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_1_rows }
+};
+static const long asn_VAL_59_id_uLpDCPSnLength = 302;
+static const long asn_VAL_59_ignore = 1;
+static const long asn_VAL_59_optional = 0;
+static const long asn_VAL_60_id_dLPDCPSnLength = 311;
+static const long asn_VAL_60_ignore = 1;
+static const long asn_VAL_60_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_uLpDCPSnLength },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_ignore },
+       { "&Extension", aioc__type, &asn_DEF_PDCPSnLength },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_dLPDCPSnLength },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_ignore },
+       { "&Extension", aioc__type, &asn_DEF_PDCPSnLength },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_1[] = {
+       { 2, 4, asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_1_rows }
+};
+static const long asn_VAL_61_id_DownlinkPacketLossRate = 273;
+static const long asn_VAL_61_ignore = 1;
+static const long asn_VAL_61_optional = 0;
+static const long asn_VAL_62_id_UplinkPacketLossRate = 274;
+static const long asn_VAL_62_ignore = 1;
+static const long asn_VAL_62_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E_RAB_Level_QoS_Parameters_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_DownlinkPacketLossRate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_ignore },
+       { "&Extension", aioc__type, &asn_DEF_Packet_LossRate },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_62_id_UplinkPacketLossRate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_ignore },
+       { "&Extension", aioc__type, &asn_DEF_Packet_LossRate },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_optional }
+};
+static const asn_ioc_set_t asn_IOS_E_RAB_Level_QoS_Parameters_ExtIEs_1[] = {
+       { 2, 4, asn_IOS_E_RAB_Level_QoS_Parameters_ExtIEs_1_rows }
+};
+static const long asn_VAL_63_id_UL_EARFCNExtension = 95;
+static const long asn_VAL_63_reject = 0;
+static const long asn_VAL_63_optional = 0;
+static const long asn_VAL_64_id_DL_EARFCNExtension = 96;
+static const long asn_VAL_64_reject = 0;
+static const long asn_VAL_64_optional = 0;
+static const long asn_VAL_65_id_OffsetOfNbiotChannelNumberToDL_EARFCN = 177;
+static const long asn_VAL_65_reject = 0;
+static const long asn_VAL_65_optional = 0;
+static const long asn_VAL_66_id_OffsetOfNbiotChannelNumberToUL_EARFCN = 178;
+static const long asn_VAL_66_reject = 0;
+static const long asn_VAL_66_optional = 0;
+static const long asn_VAL_67_id_NRS_NSSS_PowerOffset = 282;
+static const long asn_VAL_67_ignore = 1;
+static const long asn_VAL_67_optional = 0;
+static const long asn_VAL_68_id_NSSS_NumOccasionDifferentPrecoder = 283;
+static const long asn_VAL_68_ignore = 1;
+static const long asn_VAL_68_optional = 0;
+static const asn_ioc_cell_t asn_IOS_FDD_Info_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_UL_EARFCNExtension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_reject },
+       { "&Extension", aioc__type, &asn_DEF_EARFCNExtension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_DL_EARFCNExtension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_reject },
+       { "&Extension", aioc__type, &asn_DEF_EARFCNExtension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_OffsetOfNbiotChannelNumberToDL_EARFCN },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_reject },
+       { "&Extension", aioc__type, &asn_DEF_OffsetOfNbiotChannelNumberToEARFCN },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_OffsetOfNbiotChannelNumberToUL_EARFCN },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_reject },
+       { "&Extension", aioc__type, &asn_DEF_OffsetOfNbiotChannelNumberToEARFCN },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_67_id_NRS_NSSS_PowerOffset },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_ignore },
+       { "&Extension", aioc__type, &asn_DEF_NRS_NSSS_PowerOffset },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_NSSS_NumOccasionDifferentPrecoder },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_ignore },
+       { "&Extension", aioc__type, &asn_DEF_NSSS_NumOccasionDifferentPrecoder },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_optional }
+};
+static const asn_ioc_set_t asn_IOS_FDD_Info_ExtIEs_1[] = {
+       { 6, 4, asn_IOS_FDD_Info_ExtIEs_1_rows }
+};
+static const long asn_VAL_69_id_extended_e_RAB_MaximumBitrateDL = 196;
+static const long asn_VAL_69_ignore = 1;
+static const long asn_VAL_69_optional = 0;
+static const long asn_VAL_70_id_extended_e_RAB_MaximumBitrateUL = 197;
+static const long asn_VAL_70_ignore = 1;
+static const long asn_VAL_70_optional = 0;
+static const long asn_VAL_71_id_extended_e_RAB_GuaranteedBitrateDL = 198;
+static const long asn_VAL_71_ignore = 1;
+static const long asn_VAL_71_optional = 0;
+static const long asn_VAL_72_id_extended_e_RAB_GuaranteedBitrateUL = 199;
+static const long asn_VAL_72_ignore = 1;
+static const long asn_VAL_72_optional = 0;
+static const asn_ioc_cell_t asn_IOS_GBR_QosInformation_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_extended_e_RAB_MaximumBitrateDL },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_ignore },
+       { "&Extension", aioc__type, &asn_DEF_ExtendedBitRate },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_extended_e_RAB_MaximumBitrateUL },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_ignore },
+       { "&Extension", aioc__type, &asn_DEF_ExtendedBitRate },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_70_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_71_id_extended_e_RAB_GuaranteedBitrateDL },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_ignore },
+       { "&Extension", aioc__type, &asn_DEF_ExtendedBitRate },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_71_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_72_id_extended_e_RAB_GuaranteedBitrateUL },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_72_ignore },
+       { "&Extension", aioc__type, &asn_DEF_ExtendedBitRate },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_72_optional }
+};
+static const asn_ioc_set_t asn_IOS_GBR_QosInformation_ExtIEs_1[] = {
+       { 4, 4, asn_IOS_GBR_QosInformation_ExtIEs_1_rows }
+};
+static const long asn_VAL_73_id_NRrestrictioninEPSasSecondaryRAT = 202;
+static const long asn_VAL_73_ignore = 1;
+static const long asn_VAL_73_optional = 0;
+static const long asn_VAL_74_id_CNTypeRestrictions = 301;
+static const long asn_VAL_74_ignore = 1;
+static const long asn_VAL_74_optional = 0;
+static const long asn_VAL_75_id_NRrestrictionin5GS = 305;
+static const long asn_VAL_75_ignore = 1;
+static const long asn_VAL_75_optional = 0;
+static const asn_ioc_cell_t asn_IOS_HandoverRestrictionList_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_73_id_NRrestrictioninEPSasSecondaryRAT },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_73_ignore },
+       { "&Extension", aioc__type, &asn_DEF_NRrestrictioninEPSasSecondaryRAT },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_73_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_74_id_CNTypeRestrictions },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_74_ignore },
+       { "&Extension", aioc__type, &asn_DEF_CNTypeRestrictions },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_74_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_75_id_NRrestrictionin5GS },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_75_ignore },
+       { "&Extension", aioc__type, &asn_DEF_NRrestrictionin5GS },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_75_optional }
+};
+static const asn_ioc_set_t asn_IOS_HandoverRestrictionList_ExtIEs_1[] = {
+       { 3, 4, asn_IOS_HandoverRestrictionList_ExtIEs_1_rows }
+};
+static const long asn_VAL_76_id_Time_UE_StayedInCell_EnhancedGranularity = 77;
+static const long asn_VAL_76_ignore = 1;
+static const long asn_VAL_76_optional = 0;
+static const long asn_VAL_77_id_HO_cause = 80;
+static const long asn_VAL_77_ignore = 1;
+static const long asn_VAL_77_optional = 0;
+static const asn_ioc_cell_t asn_IOS_LastVisitedEUTRANCellInformation_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_76_id_Time_UE_StayedInCell_EnhancedGranularity },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_76_ignore },
+       { "&Extension", aioc__type, &asn_DEF_Time_UE_StayedInCell_EnhancedGranularity },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_76_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_77_id_HO_cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_77_ignore },
+       { "&Extension", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_77_optional }
+};
+static const asn_ioc_set_t asn_IOS_LastVisitedEUTRANCellInformation_ExtIEs_1[] = {
+       { 2, 4, asn_IOS_LastVisitedEUTRANCellInformation_ExtIEs_1_rows }
+};
+static const long asn_VAL_78_id_M3Configuration = 85;
+static const long asn_VAL_78_ignore = 1;
+static const long asn_VAL_78_conditional = 1;
+static const long asn_VAL_79_id_M4Configuration = 86;
+static const long asn_VAL_79_ignore = 1;
+static const long asn_VAL_79_conditional = 1;
+static const long asn_VAL_80_id_M5Configuration = 87;
+static const long asn_VAL_80_ignore = 1;
+static const long asn_VAL_80_conditional = 1;
+static const long asn_VAL_81_id_MDT_Location_Info = 88;
+static const long asn_VAL_81_ignore = 1;
+static const long asn_VAL_81_optional = 0;
+static const long asn_VAL_82_id_SignallingBasedMDTPLMNList = 90;
+static const long asn_VAL_82_ignore = 1;
+static const long asn_VAL_82_optional = 0;
+static const long asn_VAL_83_id_M6Configuration = 161;
+static const long asn_VAL_83_ignore = 1;
+static const long asn_VAL_83_conditional = 1;
+static const long asn_VAL_84_id_M7Configuration = 162;
+static const long asn_VAL_84_ignore = 1;
+static const long asn_VAL_84_conditional = 1;
+static const long asn_VAL_85_id_BluetoothMeasurementConfiguration = 303;
+static const long asn_VAL_85_ignore = 1;
+static const long asn_VAL_85_optional = 0;
+static const long asn_VAL_86_id_WLANMeasurementConfiguration = 304;
+static const long asn_VAL_86_ignore = 1;
+static const long asn_VAL_86_optional = 0;
+static const asn_ioc_cell_t asn_IOS_MDT_Configuration_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_78_id_M3Configuration },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_78_ignore },
+       { "&Extension", aioc__type, &asn_DEF_M3Configuration },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_78_conditional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_79_id_M4Configuration },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_79_ignore },
+       { "&Extension", aioc__type, &asn_DEF_M4Configuration },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_79_conditional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_80_id_M5Configuration },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_80_ignore },
+       { "&Extension", aioc__type, &asn_DEF_M5Configuration },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_80_conditional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_81_id_MDT_Location_Info },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_81_ignore },
+       { "&Extension", aioc__type, &asn_DEF_MDT_Location_Info },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_81_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_82_id_SignallingBasedMDTPLMNList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_82_ignore },
+       { "&Extension", aioc__type, &asn_DEF_MDTPLMNList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_82_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_83_id_M6Configuration },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_83_ignore },
+       { "&Extension", aioc__type, &asn_DEF_M6Configuration },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_83_conditional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_84_id_M7Configuration },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_84_ignore },
+       { "&Extension", aioc__type, &asn_DEF_M7Configuration },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_84_conditional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_85_id_BluetoothMeasurementConfiguration },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_85_ignore },
+       { "&Extension", aioc__type, &asn_DEF_BluetoothMeasurementConfiguration },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_85_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_86_id_WLANMeasurementConfiguration },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_86_ignore },
+       { "&Extension", aioc__type, &asn_DEF_WLANMeasurementConfiguration },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_86_optional }
+};
+static const asn_ioc_set_t asn_IOS_MDT_Configuration_ExtIEs_1[] = {
+       { 9, 4, asn_IOS_MDT_Configuration_ExtIEs_1_rows }
+};
+static const long asn_VAL_87_id_NRCGI = 322;
+static const long asn_VAL_87_ignore = 1;
+static const long asn_VAL_87_optional = 0;
+static const long asn_VAL_88_id_MeNBCoordinationAssistanceInformation = 323;
+static const long asn_VAL_88_reject = 0;
+static const long asn_VAL_88_optional = 0;
+static const asn_ioc_cell_t asn_IOS_MeNBResourceCoordinationInformationExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_87_id_NRCGI },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_87_ignore },
+       { "&Extension", aioc__type, &asn_DEF_NRCGI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_87_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_88_id_MeNBCoordinationAssistanceInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_88_reject },
+       { "&Extension", aioc__type, &asn_DEF_MeNBCoordinationAssistanceInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_88_optional }
+};
+static const asn_ioc_set_t asn_IOS_MeNBResourceCoordinationInformationExtIEs_1[] = {
+       { 2, 4, asn_IOS_MeNBResourceCoordinationInformationExtIEs_1_rows }
+};
+static const long asn_VAL_89_id_NeighbourTAC = 76;
+static const long asn_VAL_89_ignore = 1;
+static const long asn_VAL_89_optional = 0;
+static const long asn_VAL_90_id_eARFCNExtension = 94;
+static const long asn_VAL_90_reject = 0;
+static const long asn_VAL_90_optional = 0;
+static const asn_ioc_cell_t asn_IOS_Neighbour_Information_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_89_id_NeighbourTAC },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_89_ignore },
+       { "&Extension", aioc__type, &asn_DEF_TAC },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_89_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_90_id_eARFCNExtension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_90_reject },
+       { "&Extension", aioc__type, &asn_DEF_EARFCNExtension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_90_optional }
+};
+static const asn_ioc_set_t asn_IOS_Neighbour_Information_ExtIEs_1[] = {
+       { 2, 4, asn_IOS_Neighbour_Information_ExtIEs_1_rows }
+};
+static const long asn_VAL_91_id_ProSeUEtoNetworkRelaying = 149;
+static const long asn_VAL_91_ignore = 1;
+static const long asn_VAL_91_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ProSeAuthorized_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_91_id_ProSeUEtoNetworkRelaying },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_91_ignore },
+       { "&Extension", aioc__type, &asn_DEF_ProSeUEtoNetworkRelaying },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_91_optional }
+};
+static const asn_ioc_set_t asn_IOS_ProSeAuthorized_ExtIEs_1[] = {
+       { 1, 4, asn_IOS_ProSeAuthorized_ExtIEs_1_rows }
+};
+static const long asn_VAL_92_id_DL_scheduling_PDCCH_CCE_usage = 193;
+static const long asn_VAL_92_ignore = 1;
+static const long asn_VAL_92_optional = 0;
+static const long asn_VAL_93_id_UL_scheduling_PDCCH_CCE_usage = 194;
+static const long asn_VAL_93_ignore = 1;
+static const long asn_VAL_93_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RadioResourceStatus_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_92_id_DL_scheduling_PDCCH_CCE_usage },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_92_ignore },
+       { "&Extension", aioc__type, &asn_DEF_DL_scheduling_PDCCH_CCE_usage },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_92_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_93_id_UL_scheduling_PDCCH_CCE_usage },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_93_ignore },
+       { "&Extension", aioc__type, &asn_DEF_UL_scheduling_PDCCH_CCE_usage },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_93_optional }
+};
+static const asn_ioc_set_t asn_IOS_RadioResourceStatus_ExtIEs_1[] = {
+       { 2, 4, asn_IOS_RadioResourceStatus_ExtIEs_1_rows }
+};
+static const long asn_VAL_94_id_enhancedRNTP = 148;
+static const long asn_VAL_94_ignore = 1;
+static const long asn_VAL_94_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RelativeNarrowbandTxPower_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_94_id_enhancedRNTP },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_94_ignore },
+       { "&Extension", aioc__type, &asn_DEF_EnhancedRNTP },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_94_optional }
+};
+static const asn_ioc_set_t asn_IOS_RelativeNarrowbandTxPower_ExtIEs_1[] = {
+       { 1, 4, asn_IOS_RelativeNarrowbandTxPower_ExtIEs_1_rows }
+};
+static const long asn_VAL_95_id_UEID = 147;
+static const long asn_VAL_95_ignore = 1;
+static const long asn_VAL_95_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RSRPMRList_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_95_id_UEID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_95_ignore },
+       { "&Extension", aioc__type, &asn_DEF_UEID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_95_optional }
+};
+static const asn_ioc_set_t asn_IOS_RSRPMRList_ExtIEs_1[] = {
+       { 1, 4, asn_IOS_RSRPMRList_ExtIEs_1_rows }
+};
+static const long asn_VAL_96_id_Number_of_Antennaports = 41;
+static const long asn_VAL_96_ignore = 1;
+static const long asn_VAL_96_optional = 0;
+static const long asn_VAL_97_id_PRACH_Configuration = 55;
+static const long asn_VAL_97_ignore = 1;
+static const long asn_VAL_97_optional = 0;
+static const long asn_VAL_98_id_MBSFN_Subframe_Info = 56;
+static const long asn_VAL_98_ignore = 1;
+static const long asn_VAL_98_optional = 0;
+static const long asn_VAL_99_id_CSG_Id = 70;
+static const long asn_VAL_99_ignore = 1;
+static const long asn_VAL_99_optional = 0;
+static const long asn_VAL_100_id_MBMS_Service_Area_List = 79;
+static const long asn_VAL_100_ignore = 1;
+static const long asn_VAL_100_optional = 0;
+static const long asn_VAL_101_id_MultibandInfoList = 84;
+static const long asn_VAL_101_ignore = 1;
+static const long asn_VAL_101_optional = 0;
+static const long asn_VAL_102_id_FreqBandIndicatorPriority = 160;
+static const long asn_VAL_102_ignore = 1;
+static const long asn_VAL_102_optional = 0;
+static const long asn_VAL_103_id_BandwidthReducedSI = 180;
+static const long asn_VAL_103_ignore = 1;
+static const long asn_VAL_103_optional = 0;
+static const long asn_VAL_104_id_ProtectedEUTRAResourceIndication = 284;
+static const long asn_VAL_104_ignore = 1;
+static const long asn_VAL_104_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ServedCell_Information_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_96_id_Number_of_Antennaports },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_96_ignore },
+       { "&Extension", aioc__type, &asn_DEF_Number_of_Antennaports },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_96_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_97_id_PRACH_Configuration },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_97_ignore },
+       { "&Extension", aioc__type, &asn_DEF_PRACH_Configuration },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_97_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_98_id_MBSFN_Subframe_Info },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_98_ignore },
+       { "&Extension", aioc__type, &asn_DEF_MBSFN_Subframe_Infolist },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_98_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_99_id_CSG_Id },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_99_ignore },
+       { "&Extension", aioc__type, &asn_DEF_CSG_Id },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_99_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_100_id_MBMS_Service_Area_List },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_100_ignore },
+       { "&Extension", aioc__type, &asn_DEF_MBMS_Service_Area_Identity_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_100_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_101_id_MultibandInfoList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_101_ignore },
+       { "&Extension", aioc__type, &asn_DEF_MultibandInfoList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_101_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_102_id_FreqBandIndicatorPriority },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_102_ignore },
+       { "&Extension", aioc__type, &asn_DEF_FreqBandIndicatorPriority },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_102_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_103_id_BandwidthReducedSI },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_103_ignore },
+       { "&Extension", aioc__type, &asn_DEF_BandwidthReducedSI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_103_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_104_id_ProtectedEUTRAResourceIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_104_ignore },
+       { "&Extension", aioc__type, &asn_DEF_ProtectedEUTRAResourceIndication },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_104_optional }
+};
+static const asn_ioc_set_t asn_IOS_ServedCell_Information_ExtIEs_1[] = {
+       { 9, 4, asn_IOS_ServedCell_Information_ExtIEs_1_rows }
+};
+static const long asn_VAL_105_id_ECGI = 316;
+static const long asn_VAL_105_ignore = 1;
+static const long asn_VAL_105_optional = 0;
+static const long asn_VAL_106_id_SgNBCoordinationAssistanceInformation = 324;
+static const long asn_VAL_106_reject = 0;
+static const long asn_VAL_106_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBResourceCoordinationInformationExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_105_id_ECGI },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_105_ignore },
+       { "&Extension", aioc__type, &asn_DEF_ECGI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_105_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_106_id_SgNBCoordinationAssistanceInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_106_reject },
+       { "&Extension", aioc__type, &asn_DEF_SgNBCoordinationAssistanceInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_106_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBResourceCoordinationInformationExtIEs_1[] = {
+       { 2, 4, asn_IOS_SgNBResourceCoordinationInformationExtIEs_1_rows }
+};
+static const long asn_VAL_107_id_AdditionalSpecialSubframe_Info = 97;
+static const long asn_VAL_107_ignore = 1;
+static const long asn_VAL_107_optional = 0;
+static const long asn_VAL_108_id_eARFCNExtension = 94;
+static const long asn_VAL_108_reject = 0;
+static const long asn_VAL_108_optional = 0;
+static const long asn_VAL_109_id_AdditionalSpecialSubframeExtension_Info = 179;
+static const long asn_VAL_109_ignore = 1;
+static const long asn_VAL_109_optional = 0;
+static const asn_ioc_cell_t asn_IOS_TDD_Info_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_107_id_AdditionalSpecialSubframe_Info },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_107_ignore },
+       { "&Extension", aioc__type, &asn_DEF_AdditionalSpecialSubframe_Info },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_107_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_108_id_eARFCNExtension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_108_reject },
+       { "&Extension", aioc__type, &asn_DEF_EARFCNExtension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_108_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_109_id_AdditionalSpecialSubframeExtension_Info },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_109_ignore },
+       { "&Extension", aioc__type, &asn_DEF_AdditionalSpecialSubframeExtension_Info },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_109_optional }
+};
+static const asn_ioc_set_t asn_IOS_TDD_Info_ExtIEs_1[] = {
+       { 3, 4, asn_IOS_TDD_Info_ExtIEs_1_rows }
+};
+static const long asn_VAL_110_id_MDTConfiguration = 72;
+static const long asn_VAL_110_ignore = 1;
+static const long asn_VAL_110_optional = 0;
+static const long asn_VAL_111_id_UEAppLayerMeasConfig = 195;
+static const long asn_VAL_111_ignore = 1;
+static const long asn_VAL_111_optional = 0;
+static const asn_ioc_cell_t asn_IOS_TraceActivation_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_110_id_MDTConfiguration },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_110_ignore },
+       { "&Extension", aioc__type, &asn_DEF_MDT_Configuration },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_110_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_111_id_UEAppLayerMeasConfig },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_111_ignore },
+       { "&Extension", aioc__type, &asn_DEF_UEAppLayerMeasConfig },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_111_optional }
+};
+static const asn_ioc_set_t asn_IOS_TraceActivation_ExtIEs_1[] = {
+       { 2, 4, asn_IOS_TraceActivation_ExtIEs_1_rows }
+};
+static const long asn_VAL_112_id_extended_uEaggregateMaximumBitRateDownlink = 200;
+static const long asn_VAL_112_ignore = 1;
+static const long asn_VAL_112_optional = 0;
+static const long asn_VAL_113_id_extended_uEaggregateMaximumBitRateUplink = 201;
+static const long asn_VAL_113_ignore = 1;
+static const long asn_VAL_113_optional = 0;
+static const asn_ioc_cell_t asn_IOS_UEAggregate_MaximumBitrate_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_112_id_extended_uEaggregateMaximumBitRateDownlink },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_112_ignore },
+       { "&Extension", aioc__type, &asn_DEF_ExtendedBitRate },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_112_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_113_id_extended_uEaggregateMaximumBitRateUplink },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_113_ignore },
+       { "&Extension", aioc__type, &asn_DEF_ExtendedBitRate },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_113_optional }
+};
+static const asn_ioc_set_t asn_IOS_UEAggregate_MaximumBitrate_ExtIEs_1[] = {
+       { 2, 4, asn_IOS_UEAggregate_MaximumBitrate_ExtIEs_1_rows }
+};
+static const long asn_VAL_114_id_serviceType = 276;
+static const long asn_VAL_114_ignore = 1;
+static const long asn_VAL_114_optional = 0;
+static const asn_ioc_cell_t asn_IOS_UEAppLayerMeasConfig_ExtIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_114_id_serviceType },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_114_ignore },
+       { "&Extension", aioc__type, &asn_DEF_ServiceType },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_114_optional }
+};
+static const asn_ioc_set_t asn_IOS_UEAppLayerMeasConfig_ExtIEs_1[] = {
+       { 1, 4, asn_IOS_UEAppLayerMeasConfig_ExtIEs_1_rows }
+};
+static int
+memb_id_constraint_1(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_UE_ContextInformation_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_UE_ContextInformation_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UE_ContextInformation_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_UE_ContextInformation_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_UE_ContextInformation_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UE_ContextInformation_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_5(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeSetup_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeSetup_ItemExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeSetup_ItemExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_5(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeSetup_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeSetup_ItemExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeSetup_ItemExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_5(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_9(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_9(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_9(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_13(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_13(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_13(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_17(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_17(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_17(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_21(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_21(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_21(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_25(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_SubjectToStatusTransfer_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_SubjectToStatusTransfer_ItemExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_25(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_SubjectToStatusTransfer_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_SubjectToStatusTransfer_ItemExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_25(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_29(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_CellInformation_Item_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CellInformation_Item_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellInformation_Item_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_29(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_CellInformation_Item_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CellInformation_Item_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellInformation_Item_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_29(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_33(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ServedCellsToModify_Item_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ServedCellsToModify_Item_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ServedCellsToModify_Item_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_33(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ServedCellsToModify_Item_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ServedCellsToModify_Item_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ServedCellsToModify_Item_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_33(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_37(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_37(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_37(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_41(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_41(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_41(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_45(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_45(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_45(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_49(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_49(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_49(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_53(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_CellMeasurementResult_Item_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CellMeasurementResult_Item_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellMeasurementResult_Item_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_53(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_CellMeasurementResult_Item_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CellMeasurementResult_Item_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellMeasurementResult_Item_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_53(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_57(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_57(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_57(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_61(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_61(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_61(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_65(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_65(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_65(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_69(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_69(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_69(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_73(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_73(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_73(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_77(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_77(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_77(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_81(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_81(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_81(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_85(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_85(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_85(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_89(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_89(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_89(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_93(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_93(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_93(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_97(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_97(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_97(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_101(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_101(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_101(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_105(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_105(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_105(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_109(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_109(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_109(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_113(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_113(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_113(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_117(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_117(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_117(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_121(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_121(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_121(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_125(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_125(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_125(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_129(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_129(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_129(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_133(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_133(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_133(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_137(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_137(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_137(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_141(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_141(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_141(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_145(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_145(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_145(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_149(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_149(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_149(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_153(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_153(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_153(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_157(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_157(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_157(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_161(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_161(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_161(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_165(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_165(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_165(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_169(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_UE_ContextInformationRetrieve_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_UE_ContextInformationRetrieve_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UE_ContextInformationRetrieve_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_169(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_UE_ContextInformationRetrieve_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_UE_ContextInformationRetrieve_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UE_ContextInformationRetrieve_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_169(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_173(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeSetupRetrieve_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeSetupRetrieve_ItemExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_173(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeSetupRetrieve_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeSetupRetrieve_ItemExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_173(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_177(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_177(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_177(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_181(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_181(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_181(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_185(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_185(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_185(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_189(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_189(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_189(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_193(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_193(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_193(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_197(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_197(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_197(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_201(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_201(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_201(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_205(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_205(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_205(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_209(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_UE_ContextInformationSgNBModReqExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_UE_ContextInformationSgNBModReqExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UE_ContextInformationSgNBModReqExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_209(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_UE_ContextInformationSgNBModReqExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_UE_ContextInformationSgNBModReqExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UE_ContextInformationSgNBModReqExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_209(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_213(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_213(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_213(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_217(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_217(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_217(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_221(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_221(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_221(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_225(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_225(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_225(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_229(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_229(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_229(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_233(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_233(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_233(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_237(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_237(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_237(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_241(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_241(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_241(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_245(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_245(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_245(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_249(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_249(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_249(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_253(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_253(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_253(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_257(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_257(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_257(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_261(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_261(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_261(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_265(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_265(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_265(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_269(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_269(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_269(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_273(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_273(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_273(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_277(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_277(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_277(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_281(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_281(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_281(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_285(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_285(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_285(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_289(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_289(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_289(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_293(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_293(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_293(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_297(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_297(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_297(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_301(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_301(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_301(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_305(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_305(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_305(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_309(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_309(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_309(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_313(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_313(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_313(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_317(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_317(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_317(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_321(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_321(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_321(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_325(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_325(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_325(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_329(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_329(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_329(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_333(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_333(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_333(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_337(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_337(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_337(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_341(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_341(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_341(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_345(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_345(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_345(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_349(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_349(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_349(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_353(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_353(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_353(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_357(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_357(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_357(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_361(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_361(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_361(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_365(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_365(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_365(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_369(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_369(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_369(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_373(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_373(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_373(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_377(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_377(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_377(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_381(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_381(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_381(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_385(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_385(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_385(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_389(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_389(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_389(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_393(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_393(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_393(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_397(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_397(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_397(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_401(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_401(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_401(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_405(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_405(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_405(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_409(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_409(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_409(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_413(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_413(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_413(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_417(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_417(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_417(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_421(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_421(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_421(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_425(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_425(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_425(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_429(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_429(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_429(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_433(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_433(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_433(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_437(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_437(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_437(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_441(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_441(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_441(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_445(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_445(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_445(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_449(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_449(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_449(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_453(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_453(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_453(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_457(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_457(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_457(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_461(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_461(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_461(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_465(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_465(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_465(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_469(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_469(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_469(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_473(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_473(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_473(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_477(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_477(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_477(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_481(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_481(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_481(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_485(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_485(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_485(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_489(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_489(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_489(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_493(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_493(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_493(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_497(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_497(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_497(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_501(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_501(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_501(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_505(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_505(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_505(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_509(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_509(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_509(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_513(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_513(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_513(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_517(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_517(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_517(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_521(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_521(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_521(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_525(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_525(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_525(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_529(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_529(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_529(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_533(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_533(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_533(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_537(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_537(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_537(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_541(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_541(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_541(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_545(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_545(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_545(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_549(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_549(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_549(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_553(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_553(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_553(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_557(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RAB_Level_QoS_Parameters_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RAB_Level_QoS_Parameters_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_557(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RAB_Level_QoS_Parameters_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RAB_Level_QoS_Parameters_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_557(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_561(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_561(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_561(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_565(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_565(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_565(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_569(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_569(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_569(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_573(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_573(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_573(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_577(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_577(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_577(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_581(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_FDD_Info_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_FDD_Info_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct FDD_Info_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_581(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_FDD_Info_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_FDD_Info_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct FDD_Info_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_581(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_585(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_585(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_585(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_589(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_589(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_589(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_593(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_593(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_593(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_597(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_GBR_QosInformation_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_GBR_QosInformation_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GBR_QosInformation_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_597(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_GBR_QosInformation_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_GBR_QosInformation_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GBR_QosInformation_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_597(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_601(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_601(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_601(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_605(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_605(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_605(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_609(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_609(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_609(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_613(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_613(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_613(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_617(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_617(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_617(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_621(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_HandoverRestrictionList_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_HandoverRestrictionList_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverRestrictionList_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_621(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_HandoverRestrictionList_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_HandoverRestrictionList_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverRestrictionList_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_621(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_625(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_625(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_625(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_629(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_LastVisitedEUTRANCellInformation_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_LastVisitedEUTRANCellInformation_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_629(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_LastVisitedEUTRANCellInformation_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_LastVisitedEUTRANCellInformation_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_629(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_633(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_633(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_633(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_637(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_637(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_637(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_641(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_641(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_641(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_645(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_645(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_645(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_649(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_649(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_649(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_653(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_653(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_653(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_657(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_657(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_657(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_661(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_661(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_661(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_665(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_MDT_Configuration_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_MDT_Configuration_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MDT_Configuration_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_665(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_MDT_Configuration_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_MDT_Configuration_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MDT_Configuration_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_665(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_669(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_MeNBResourceCoordinationInformationExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_MeNBResourceCoordinationInformationExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MeNBResourceCoordinationInformationExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_669(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_MeNBResourceCoordinationInformationExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_MeNBResourceCoordinationInformationExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MeNBResourceCoordinationInformationExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_669(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_673(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_673(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_673(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_677(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_677(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_677(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_681(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_681(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_681(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_685(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_685(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_685(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_689(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_Neighbour_Information_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_Neighbour_Information_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Neighbour_Information_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_689(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_Neighbour_Information_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_Neighbour_Information_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Neighbour_Information_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_689(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_693(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_693(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_693(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_697(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_697(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_697(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_701(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_701(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_701(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_705(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_705(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_705(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_709(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_709(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_709(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_713(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_713(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_713(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_717(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ProSeAuthorized_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ProSeAuthorized_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ProSeAuthorized_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_717(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ProSeAuthorized_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ProSeAuthorized_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ProSeAuthorized_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_717(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_721(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_721(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_721(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_725(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_725(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_725(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_729(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_729(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_729(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_733(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RadioResourceStatus_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RadioResourceStatus_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RadioResourceStatus_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_733(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RadioResourceStatus_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RadioResourceStatus_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RadioResourceStatus_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_733(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_737(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RelativeNarrowbandTxPower_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RelativeNarrowbandTxPower_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RelativeNarrowbandTxPower_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_737(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RelativeNarrowbandTxPower_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RelativeNarrowbandTxPower_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RelativeNarrowbandTxPower_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_737(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_741(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_741(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_741(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_745(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_745(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_745(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_749(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_749(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_749(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_753(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RSRPMRList_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RSRPMRList_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RSRPMRList_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_753(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RSRPMRList_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RSRPMRList_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RSRPMRList_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_753(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_757(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_757(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_757(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_761(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_761(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_761(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_765(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_765(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_765(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_769(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ServedCell_Information_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ServedCell_Information_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ServedCell_Information_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_769(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ServedCell_Information_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ServedCell_Information_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ServedCell_Information_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_769(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_773(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBResourceCoordinationInformationExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBResourceCoordinationInformationExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBResourceCoordinationInformationExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_773(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBResourceCoordinationInformationExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBResourceCoordinationInformationExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBResourceCoordinationInformationExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_773(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_777(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_777(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_777(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_781(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_781(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_781(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_785(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_785(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_785(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_789(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_789(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_789(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_793(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_793(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_793(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_797(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_797(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_797(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_801(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_801(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_801(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_805(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_805(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_805(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_809(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_809(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_809(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_813(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_813(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_813(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_817(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_817(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_817(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_821(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_821(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_821(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_825(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_TDD_Info_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_TDD_Info_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct TDD_Info_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_825(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_TDD_Info_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_TDD_Info_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct TDD_Info_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_825(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_829(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_TraceActivation_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_TraceActivation_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct TraceActivation_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_829(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_TraceActivation_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_TraceActivation_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct TraceActivation_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_829(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_833(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_833(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_833(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_837(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_UEAggregate_MaximumBitrate_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_UEAggregate_MaximumBitrate_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEAggregate_MaximumBitrate_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_837(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_UEAggregate_MaximumBitrate_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_UEAggregate_MaximumBitrate_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEAggregate_MaximumBitrate_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_837(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_841(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_UEAppLayerMeasConfig_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_UEAppLayerMeasConfig_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEAppLayerMeasConfig_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_841(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_UEAppLayerMeasConfig_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_UEAppLayerMeasConfig_ExtIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Extension */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEAppLayerMeasConfig_ExtIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_extensionValue_constraint_841(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_845(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_845(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_845(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_849(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_849(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_849(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_853(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_853(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_853(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_857(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_857(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_857(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_861(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_861(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_861(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_865(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_865(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_865(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_869(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_869(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_869(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_873(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_873(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_873(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_877(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_877(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_877(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_881(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_881(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_881(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_885(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_885(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_885(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_889(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_889(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_extensionValue_constraint_889(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_oer_constraints_t asn_OER_memb_id_constr_2 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_4 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_6 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_6 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_7 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_7 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_8 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_8 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_10 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_10 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_11 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_11 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_12 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_12 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_14 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_14 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_15 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_15 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_16 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_16 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_18 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_18 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_19 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_19 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_20 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_20 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_22 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_22 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_23 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_23 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_24 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_24 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_26 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_26 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_27 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_27 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_28 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_28 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_30 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_30 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_31 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_31 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_32 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_32 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_34 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_34 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_35 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_35 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_36 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_36 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_38 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_38 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_39 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_39 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_40 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_40 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_42 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_42 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_43 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_43 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_44 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_44 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_46 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_46 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_47 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_47 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_48 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_48 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_50 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_50 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_51 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_51 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_52 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_52 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_54 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_54 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_55 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_55 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_56 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_56 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_58 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_58 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_59 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_59 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_60 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_60 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_62 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_62 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_63 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_63 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_64 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_64 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_66 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_66 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_67 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_67 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_68 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_68 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_70 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_70 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_71 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_71 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_72 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_72 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_74 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_74 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_75 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_75 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_76 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_76 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_78 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_78 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_79 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_79 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_80 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_80 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_82 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_82 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_83 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_83 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_84 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_84 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_86 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_86 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_87 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_87 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_88 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_88 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_90 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_90 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_91 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_91 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_92 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_92 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_94 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_94 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_95 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_95 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_96 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_96 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_98 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_98 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_99 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_99 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_100 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_100 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_102 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_102 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_103 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_103 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_104 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_104 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_106 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_106 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_107 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_107 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_108 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_108 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_110 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_110 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_111 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_111 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_112 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_112 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_114 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_114 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_115 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_115 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_116 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_116 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_118 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_118 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_119 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_119 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_120 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_120 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_122 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_122 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_123 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_123 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_124 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_124 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_126 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_126 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_127 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_127 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_128 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_128 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_130 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_130 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_131 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_131 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_132 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_132 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_134 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_134 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_135 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_135 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_136 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_136 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_138 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_138 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_139 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_139 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_140 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_140 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_142 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_142 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_143 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_143 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_144 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_144 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_146 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_146 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_147 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_147 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_148 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_148 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_150 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_150 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_151 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_151 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_152 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_152 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_154 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_154 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_155 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_155 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_156 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_156 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_158 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_158 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_159 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_159 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_160 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_160 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_162 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_162 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_163 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_163 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_164 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_164 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_166 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_166 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_167 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_167 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_168 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_168 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_170 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_170 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_171 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_171 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_172 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_172 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_174 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_174 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_175 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_175 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_176 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_176 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_178 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_178 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_179 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_179 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_180 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_180 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_182 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_182 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_183 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_183 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_184 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_184 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_186 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_186 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_187 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_187 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_188 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_188 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_190 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_190 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_191 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_191 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_192 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_192 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_194 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_194 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_195 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_195 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_196 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_196 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_198 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_198 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_199 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_199 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_200 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_200 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_202 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_202 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_203 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_203 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_204 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_204 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_206 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_206 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_207 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_207 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_208 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_208 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_210 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_210 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_211 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_211 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_212 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_212 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_214 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_214 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_215 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_215 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_216 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_216 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_218 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_218 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_219 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_219 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_220 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_220 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_222 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_222 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_223 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_223 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_224 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_224 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_226 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_226 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_227 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_227 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_228 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_228 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_230 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_230 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_231 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_231 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_232 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_232 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_234 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_234 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_235 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_235 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_236 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_236 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_238 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_238 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_239 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_239 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_240 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_240 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_242 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_242 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_243 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_243 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_244 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_244 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_246 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_246 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_247 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_247 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_248 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_248 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_250 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_250 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_251 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_251 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_252 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_252 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_254 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_254 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_255 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_255 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_256 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_256 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_258 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_258 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_259 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_259 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_260 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_260 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_262 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_262 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_263 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_263 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_264 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_264 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_266 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_266 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_267 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_267 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_268 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_268 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_270 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_270 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_271 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_271 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_272 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_272 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_274 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_274 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_275 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_275 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_276 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_276 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_278 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_278 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_279 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_279 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_280 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_280 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_282 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_282 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_283 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_283 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_284 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_284 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_286 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_286 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_287 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_287 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_288 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_288 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_290 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_290 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_291 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_291 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_292 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_292 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_294 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_294 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_295 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_295 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_296 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_296 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_298 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_298 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_299 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_299 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_300 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_300 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_302 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_302 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_303 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_303 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_304 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_304 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_306 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_306 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_307 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_307 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_308 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_308 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_310 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_310 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_311 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_311 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_312 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_312 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_314 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_314 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_315 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_315 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_316 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_316 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_318 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_318 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_319 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_319 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_320 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_320 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_322 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_322 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_323 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_323 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_324 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_324 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_326 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_326 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_327 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_327 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_328 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_328 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_330 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_330 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_331 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_331 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_332 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_332 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_334 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_334 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_335 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_335 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_336 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_336 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_338 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_338 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_339 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_339 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_340 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_340 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_342 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_342 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_343 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_343 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_344 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_344 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_346 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_346 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_347 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_347 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_348 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_348 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_350 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_350 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_351 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_351 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_352 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_352 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_354 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_354 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_355 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_355 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_356 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_356 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_358 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_358 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_359 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_359 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_360 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_360 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_362 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_362 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_363 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_363 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_364 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_364 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_366 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_366 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_367 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_367 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_368 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_368 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_370 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_370 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_371 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_371 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_372 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_372 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_374 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_374 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_375 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_375 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_376 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_376 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_378 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_378 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_379 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_379 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_380 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_380 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_382 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_382 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_383 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_383 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_384 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_384 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_386 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_386 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_387 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_387 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_388 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_388 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_390 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_390 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_391 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_391 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_392 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_392 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_394 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_394 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_395 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_395 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_396 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_396 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_398 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_398 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_399 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_399 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_400 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_400 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_402 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_402 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_403 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_403 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_404 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_404 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_406 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_406 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_407 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_407 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_408 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_408 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_410 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_410 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_411 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_411 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_412 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_412 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_414 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_414 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_415 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_415 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_416 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_416 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_418 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_418 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_419 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_419 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_420 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_420 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_422 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_422 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_423 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_423 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_424 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_424 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_426 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_426 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_427 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_427 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_428 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_428 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_430 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_430 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_431 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_431 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_432 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_432 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_434 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_434 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_435 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_435 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_436 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_436 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_438 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_438 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_439 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_439 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_440 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_440 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_442 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_442 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_443 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_443 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_444 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_444 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_446 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_446 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_447 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_447 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_448 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_448 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_450 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_450 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_451 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_451 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_452 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_452 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_454 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_454 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_455 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_455 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_456 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_456 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_458 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_458 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_459 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_459 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_460 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_460 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_462 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_462 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_463 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_463 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_464 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_464 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_466 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_466 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_467 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_467 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_468 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_468 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_470 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_470 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_471 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_471 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_472 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_472 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_474 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_474 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_475 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_475 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_476 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_476 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_478 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_478 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_479 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_479 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_480 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_480 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_482 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_482 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_483 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_483 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_484 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_484 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_486 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_486 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_487 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_487 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_488 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_488 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_490 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_490 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_491 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_491 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_492 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_492 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_494 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_494 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_495 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_495 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_496 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_496 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_498 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_498 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_499 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_499 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_500 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_500 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_502 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_502 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_503 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_503 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_504 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_504 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_506 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_506 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_507 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_507 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_508 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_508 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_510 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_510 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_511 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_511 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_512 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_512 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_514 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_514 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_515 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_515 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_516 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_516 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_518 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_518 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_519 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_519 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_520 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_520 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_522 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_522 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_523 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_523 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_524 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_524 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_526 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_526 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_527 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_527 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_528 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_528 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_530 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_530 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_531 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_531 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_532 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_532 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_534 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_534 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_535 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_535 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_536 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_536 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_538 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_538 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_539 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_539 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_540 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_540 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_542 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_542 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_543 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_543 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_544 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_544 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_546 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_546 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_547 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_547 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_548 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_548 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_550 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_550 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_551 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_551 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_552 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_552 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_554 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_554 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_555 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_555 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_556 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_556 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_558 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_558 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_559 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_559 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_560 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_560 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_562 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_562 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_563 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_563 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_564 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_564 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_566 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_566 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_567 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_567 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_568 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_568 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_570 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_570 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_571 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_571 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_572 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_572 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_574 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_574 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_575 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_575 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_576 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_576 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_578 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_578 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_579 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_579 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_580 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_580 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_582 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_582 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_583 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_583 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_584 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_584 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_586 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_586 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_587 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_587 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_588 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_588 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_590 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_590 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_591 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_591 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_592 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_592 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_594 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_594 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_595 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_595 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_596 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_596 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_598 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_598 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_599 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_599 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_600 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_600 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_602 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_602 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_603 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_603 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_604 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_604 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_606 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_606 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_607 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_607 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_608 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_608 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_610 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_610 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_611 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_611 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_612 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_612 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_614 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_614 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_615 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_615 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_616 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_616 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_618 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_618 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_619 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_619 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_620 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_620 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_622 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_622 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_623 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_623 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_624 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_624 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_626 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_626 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_627 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_627 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_628 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_628 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_630 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_630 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_631 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_631 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_632 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_632 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_634 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_634 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_635 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_635 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_636 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_636 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_638 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_638 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_639 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_639 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_640 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_640 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_642 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_642 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_643 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_643 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_644 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_644 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_646 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_646 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_647 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_647 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_648 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_648 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_650 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_650 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_651 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_651 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_652 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_652 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_654 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_654 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_655 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_655 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_656 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_656 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_658 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_658 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_659 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_659 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_660 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_660 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_662 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_662 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_663 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_663 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_664 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_664 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_666 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_666 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_667 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_667 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_668 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_668 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_670 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_670 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_671 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_671 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_672 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_672 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_674 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_674 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_675 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_675 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_676 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_676 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_678 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_678 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_679 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_679 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_680 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_680 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_682 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_682 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_683 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_683 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_684 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_684 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_686 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_686 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_687 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_687 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_688 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_688 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_690 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_690 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_691 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_691 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_692 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_692 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_694 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_694 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_695 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_695 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_696 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_696 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_698 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_698 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_699 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_699 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_700 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_700 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_702 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_702 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_703 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_703 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_704 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_704 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_706 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_706 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_707 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_707 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_708 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_708 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_710 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_710 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_711 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_711 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_712 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_712 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_714 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_714 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_715 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_715 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_716 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_716 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_718 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_718 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_719 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_719 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_720 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_720 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_722 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_722 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_723 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_723 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_724 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_724 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_726 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_726 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_727 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_727 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_728 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_728 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_730 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_730 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_731 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_731 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_732 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_732 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_734 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_734 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_735 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_735 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_736 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_736 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_738 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_738 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_739 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_739 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_740 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_740 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_742 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_742 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_743 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_743 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_744 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_744 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_746 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_746 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_747 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_747 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_748 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_748 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_750 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_750 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_751 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_751 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_752 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_752 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_754 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_754 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_755 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_755 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_756 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_756 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_758 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_758 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_759 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_759 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_760 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_760 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_762 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_762 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_763 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_763 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_764 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_764 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_766 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_766 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_767 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_767 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_768 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_768 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_770 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_770 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_771 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_771 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_772 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_772 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_774 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_774 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_775 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_775 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_776 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_776 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_778 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_778 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_779 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_779 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_780 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_780 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_782 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_782 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_783 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_783 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_784 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_784 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_786 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_786 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_787 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_787 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_788 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_788 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_790 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_790 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_791 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_791 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_792 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_792 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_794 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_794 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_795 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_795 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_796 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_796 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_798 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_798 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_799 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_799 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_800 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_800 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_802 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_802 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_803 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_803 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_804 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_804 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_806 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_806 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_807 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_807 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_808 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_808 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_810 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_810 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_811 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_811 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_812 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_812 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_814 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_814 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_815 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_815 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_816 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_816 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_818 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_818 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_819 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_819 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_820 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_820 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_822 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_822 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_823 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_823 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_824 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_824 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_826 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_826 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_827 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_827 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_828 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_828 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_830 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_830 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_831 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_831 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_832 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_832 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_834 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_834 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_835 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_835 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_836 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_836 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_838 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_838 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_839 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_839 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_840 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_840 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_842 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_842 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_843 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_843 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_844 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_844 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_846 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_846 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_847 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_847 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_848 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_848 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_850 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_850 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_851 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_851 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_852 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_852 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_854 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_854 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_855 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_855 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_856 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_856 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_858 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_858 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_859 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_859 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_860 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_860 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_862 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_862 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_863 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_863 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_864 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_864 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_866 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_866 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_867 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_867 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_868 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_868 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_870 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_870 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_871 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_871 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_872 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_872 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_874 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_874 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_875 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_875 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_876 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_876 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_878 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_878 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_879 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_879 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_880 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_880 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_882 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_882 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_883 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_883 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_884 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_884 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_886 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_886 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_887 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_887 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_888 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_888 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_890 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_890 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_891 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_891 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_892 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_extensionValue_constr_892 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_extensionValue_4[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation_ExtIEs__extensionValue, choice.ManagementBasedMDTallowed),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_ManagementBasedMDTallowed,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ManagementBasedMDTallowed"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation_ExtIEs__extensionValue, choice.MDTPLMNList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MDTPLMNList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MDTPLMNList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation_ExtIEs__extensionValue, choice.UESidelinkAggregateMaximumBitRate),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UESidelinkAggregateMaximumBitRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UESidelinkAggregateMaximumBitRate"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_4[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 }, /* ManagementBasedMDTallowed */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* MDTPLMNList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* UESidelinkAggregateMaximumBitRate */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_4 = {
+       sizeof(struct UE_ContextInformation_ExtIEs__extensionValue),
+       offsetof(struct UE_ContextInformation_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct UE_ContextInformation_ExtIEs__extensionValue, present),
+       sizeof(((struct UE_ContextInformation_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_4,
+       3,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_4 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_4,
+       3,      /* Elements count */
+       &asn_SPC_extensionValue_specs_4 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UE_ContextInformation_ExtIEs_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_2, &asn_PER_memb_id_constr_2,  memb_id_constraint_1 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_UE_ContextInformation_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3,  memb_criticality_constraint_1 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_4,
+               select_UE_ContextInformation_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_4, &asn_PER_memb_extensionValue_constr_4,  memb_extensionValue_constraint_1 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UE_ContextInformation_ExtIEs_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UE_ContextInformation_ExtIEs_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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformation_ExtIEs_specs_1 = {
+       sizeof(struct UE_ContextInformation_ExtIEs),
+       offsetof(struct UE_ContextInformation_ExtIEs, _asn_ctx),
+       asn_MAP_UE_ContextInformation_ExtIEs_tag2el_1,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UE_ContextInformation_ExtIEs = {
+       "UE-ContextInformation-ExtIEs",
+       "UE-ContextInformation-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UE_ContextInformation_ExtIEs_tags_1,
+       sizeof(asn_DEF_UE_ContextInformation_ExtIEs_tags_1)
+               /sizeof(asn_DEF_UE_ContextInformation_ExtIEs_tags_1[0]), /* 1 */
+       asn_DEF_UE_ContextInformation_ExtIEs_tags_1,    /* Same as above */
+       sizeof(asn_DEF_UE_ContextInformation_ExtIEs_tags_1)
+               /sizeof(asn_DEF_UE_ContextInformation_ExtIEs_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UE_ContextInformation_ExtIEs_1,
+       3,      /* Elements count */
+       &asn_SPC_UE_ContextInformation_ExtIEs_specs_1   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_8[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_ItemExtIEs__extensionValue, choice.BearerType),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_BearerType,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "BearerType"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_8[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* BearerType */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_8 = {
+       sizeof(struct E_RABs_ToBeSetup_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeSetup_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeSetup_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeSetup_ItemExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_8,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_8 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_8,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_8 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_ItemExtIEs_5[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_6, &asn_PER_memb_id_constr_6,  memb_id_constraint_5 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeSetup_ItemExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_7, &asn_PER_memb_criticality_constr_7,  memb_criticality_constraint_5 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_8,
+               select_E_RABs_ToBeSetup_ItemExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_8, &asn_PER_memb_extensionValue_constr_8,  memb_extensionValue_constraint_5 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeSetup_ItemExtIEs_tags_5[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeSetup_ItemExtIEs_tag2el_5[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetup_ItemExtIEs_specs_5 = {
+       sizeof(struct E_RABs_ToBeSetup_ItemExtIEs),
+       offsetof(struct E_RABs_ToBeSetup_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeSetup_ItemExtIEs_tag2el_5,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_ItemExtIEs = {
+       "E-RABs-ToBeSetup-ItemExtIEs",
+       "E-RABs-ToBeSetup-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeSetup_ItemExtIEs_tags_5,
+       sizeof(asn_DEF_E_RABs_ToBeSetup_ItemExtIEs_tags_5)
+               /sizeof(asn_DEF_E_RABs_ToBeSetup_ItemExtIEs_tags_5[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeSetup_ItemExtIEs_tags_5,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeSetup_ItemExtIEs_tags_5)
+               /sizeof(asn_DEF_E_RABs_ToBeSetup_ItemExtIEs_tags_5[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeSetup_ItemExtIEs_5,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeSetup_ItemExtIEs_specs_5    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_12 = {
+       sizeof(struct UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue),
+       offsetof(struct UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue, present),
+       sizeof(((struct UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_12 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_12        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtSeNB_ItemExtIEs_9[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSeNB_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_10, &asn_PER_memb_id_constr_10,  memb_id_constraint_9 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSeNB_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_11, &asn_PER_memb_criticality_constr_11,  memb_criticality_constraint_9 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSeNB_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_12,
+               0,
+               { &asn_OER_memb_extensionValue_constr_12, &asn_PER_memb_extensionValue_constr_12,  memb_extensionValue_constraint_9 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs_tags_9[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UE_ContextReferenceAtSeNB_ItemExtIEs_tag2el_9[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtSeNB_ItemExtIEs_specs_9 = {
+       sizeof(struct UE_ContextReferenceAtSeNB_ItemExtIEs),
+       offsetof(struct UE_ContextReferenceAtSeNB_ItemExtIEs, _asn_ctx),
+       asn_MAP_UE_ContextReferenceAtSeNB_ItemExtIEs_tag2el_9,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs = {
+       "UE-ContextReferenceAtSeNB-ItemExtIEs",
+       "UE-ContextReferenceAtSeNB-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs_tags_9,
+       sizeof(asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs_tags_9)
+               /sizeof(asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs_tags_9[0]), /* 1 */
+       asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs_tags_9,    /* Same as above */
+       sizeof(asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs_tags_9)
+               /sizeof(asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs_tags_9[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UE_ContextReferenceAtSeNB_ItemExtIEs_9,
+       3,      /* Elements count */
+       &asn_SPC_UE_ContextReferenceAtSeNB_ItemExtIEs_specs_9   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_16 = {
+       sizeof(struct UE_ContextReferenceAtWT_ItemExtIEs__extensionValue),
+       offsetof(struct UE_ContextReferenceAtWT_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct UE_ContextReferenceAtWT_ItemExtIEs__extensionValue, present),
+       sizeof(((struct UE_ContextReferenceAtWT_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_16 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_16        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtWT_ItemExtIEs_13[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtWT_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_14, &asn_PER_memb_id_constr_14,  memb_id_constraint_13 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtWT_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_15, &asn_PER_memb_criticality_constr_15,  memb_criticality_constraint_13 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtWT_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_16,
+               0,
+               { &asn_OER_memb_extensionValue_constr_16, &asn_PER_memb_extensionValue_constr_16,  memb_extensionValue_constraint_13 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs_tags_13[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UE_ContextReferenceAtWT_ItemExtIEs_tag2el_13[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtWT_ItemExtIEs_specs_13 = {
+       sizeof(struct UE_ContextReferenceAtWT_ItemExtIEs),
+       offsetof(struct UE_ContextReferenceAtWT_ItemExtIEs, _asn_ctx),
+       asn_MAP_UE_ContextReferenceAtWT_ItemExtIEs_tag2el_13,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs = {
+       "UE-ContextReferenceAtWT-ItemExtIEs",
+       "UE-ContextReferenceAtWT-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs_tags_13,
+       sizeof(asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs_tags_13)
+               /sizeof(asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs_tags_13[0]), /* 1 */
+       asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs_tags_13,     /* Same as above */
+       sizeof(asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs_tags_13)
+               /sizeof(asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs_tags_13[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UE_ContextReferenceAtWT_ItemExtIEs_13,
+       3,      /* Elements count */
+       &asn_SPC_UE_ContextReferenceAtWT_ItemExtIEs_specs_13    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_20 = {
+       sizeof(struct UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue),
+       offsetof(struct UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue, present),
+       sizeof(((struct UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_20 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_20        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtSgNB_ItemExtIEs_17[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSgNB_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_18, &asn_PER_memb_id_constr_18,  memb_id_constraint_17 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSgNB_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_19, &asn_PER_memb_criticality_constr_19,  memb_criticality_constraint_17 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSgNB_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_20,
+               0,
+               { &asn_OER_memb_extensionValue_constr_20, &asn_PER_memb_extensionValue_constr_20,  memb_extensionValue_constraint_17 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs_tags_17[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UE_ContextReferenceAtSgNB_ItemExtIEs_tag2el_17[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtSgNB_ItemExtIEs_specs_17 = {
+       sizeof(struct UE_ContextReferenceAtSgNB_ItemExtIEs),
+       offsetof(struct UE_ContextReferenceAtSgNB_ItemExtIEs, _asn_ctx),
+       asn_MAP_UE_ContextReferenceAtSgNB_ItemExtIEs_tag2el_17,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs = {
+       "UE-ContextReferenceAtSgNB-ItemExtIEs",
+       "UE-ContextReferenceAtSgNB-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs_tags_17,
+       sizeof(asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs_tags_17)
+               /sizeof(asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs_tags_17[0]), /* 1 */
+       asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs_tags_17,   /* Same as above */
+       sizeof(asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs_tags_17)
+               /sizeof(asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs_tags_17[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UE_ContextReferenceAtSgNB_ItemExtIEs_17,
+       3,      /* Elements count */
+       &asn_SPC_UE_ContextReferenceAtSgNB_ItemExtIEs_specs_17  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_24 = {
+       sizeof(struct E_RABs_Admitted_Item_ExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_24 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_24        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_Item_ExtIEs_21[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_22, &asn_PER_memb_id_constr_22,  memb_id_constraint_21 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_23, &asn_PER_memb_criticality_constr_23,  memb_criticality_constraint_21 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_24,
+               0,
+               { &asn_OER_memb_extensionValue_constr_24, &asn_PER_memb_extensionValue_constr_24,  memb_extensionValue_constraint_21 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_Item_ExtIEs_tags_21[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_Item_ExtIEs_tag2el_21[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_Item_ExtIEs_specs_21 = {
+       sizeof(struct E_RABs_Admitted_Item_ExtIEs),
+       offsetof(struct E_RABs_Admitted_Item_ExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_Item_ExtIEs_tag2el_21,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_Item_ExtIEs = {
+       "E-RABs-Admitted-Item-ExtIEs",
+       "E-RABs-Admitted-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_Item_ExtIEs_tags_21,
+       sizeof(asn_DEF_E_RABs_Admitted_Item_ExtIEs_tags_21)
+               /sizeof(asn_DEF_E_RABs_Admitted_Item_ExtIEs_tags_21[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_Item_ExtIEs_tags_21,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_Item_ExtIEs_tags_21)
+               /sizeof(asn_DEF_E_RABs_Admitted_Item_ExtIEs_tags_21[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_Item_ExtIEs_21,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_Item_ExtIEs_specs_21   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_28[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue, choice.ReceiveStatusOfULPDCPSDUsExtended),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_ReceiveStatusOfULPDCPSDUsExtended,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ReceiveStatusOfULPDCPSDUsExtended"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue, choice.COUNTValueExtended),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_COUNTValueExtended,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "COUNTValueExtended"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue, choice.ReceiveStatusOfULPDCPSDUsPDCP_SNlength18),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ReceiveStatusOfULPDCPSDUsPDCP-SNlength18"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue, choice.COUNTvaluePDCP_SNlength18),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_COUNTvaluePDCP_SNlength18,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "COUNTvaluePDCP-SNlength18"
+               },
+};
+static const unsigned asn_MAP_extensionValue_to_canonical_28[] = { 0, 2, 1, 3 };
+static const unsigned asn_MAP_extensionValue_from_canonical_28[] = { 0, 2, 1, 3 };
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_28[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 1 }, /* ReceiveStatusOfULPDCPSDUsExtended */
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 2, -1, 0 }, /* ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* COUNTValueExtended */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 } /* COUNTvaluePDCP-SNlength18 */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_28 = {
+       sizeof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_28,
+       4,      /* Count of tags in the map */
+       asn_MAP_extensionValue_to_canonical_28,
+       asn_MAP_extensionValue_from_canonical_28,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_28 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_28,
+       4,      /* Elements count */
+       &asn_SPC_extensionValue_specs_28        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_SubjectToStatusTransfer_ItemExtIEs_25[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_26, &asn_PER_memb_id_constr_26,  memb_id_constraint_25 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_SubjectToStatusTransfer_ItemExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_27, &asn_PER_memb_criticality_constr_27,  memb_criticality_constraint_25 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_28,
+               select_E_RABs_SubjectToStatusTransfer_ItemExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_28, &asn_PER_memb_extensionValue_constr_28,  memb_extensionValue_constraint_25 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tags_25[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tag2el_25[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToStatusTransfer_ItemExtIEs_specs_25 = {
+       sizeof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs),
+       offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tag2el_25,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs = {
+       "E-RABs-SubjectToStatusTransfer-ItemExtIEs",
+       "E-RABs-SubjectToStatusTransfer-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tags_25,
+       sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tags_25)
+               /sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tags_25[0]), /* 1 */
+       asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tags_25,      /* Same as above */
+       sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tags_25)
+               /sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tags_25[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_SubjectToStatusTransfer_ItemExtIEs_25,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_SubjectToStatusTransfer_ItemExtIEs_specs_25     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_32[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs__extensionValue, choice.ABSInformation),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_ABSInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ABSInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs__extensionValue, choice.InvokeIndication),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_InvokeIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "InvokeIndication"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs__extensionValue, choice.SubframeAssignment),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_SubframeAssignment,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SubframeAssignment"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs__extensionValue, choice.ExtendedULInterferenceOverloadInfo),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ExtendedULInterferenceOverloadInfo,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ExtendedULInterferenceOverloadInfo"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs__extensionValue, choice.CoMPInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CoMPInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CoMPInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs__extensionValue, choice.DynamicDLTransmissionInformation),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_DynamicDLTransmissionInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "DynamicDLTransmissionInformation"
+               },
+};
+static const unsigned asn_MAP_extensionValue_to_canonical_32[] = { 1, 2, 3, 4, 0, 5 };
+static const unsigned asn_MAP_extensionValue_from_canonical_32[] = { 4, 0, 1, 2, 3, 5 };
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_32[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 1 }, /* InvokeIndication */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, -1, 0 }, /* SubframeAssignment */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 1 }, /* ExtendedULInterferenceOverloadInfo */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 }, /* CoMPInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 1 }, /* fdd */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 5, -1, 0 }, /* naics-active */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 1 }, /* tdd */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 5, -1, 0 }, /* naics-inactive */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 } /* abs-inactive */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_32 = {
+       sizeof(struct CellInformation_Item_ExtIEs__extensionValue),
+       offsetof(struct CellInformation_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CellInformation_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct CellInformation_Item_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_32,
+       9,      /* Count of tags in the map */
+       asn_MAP_extensionValue_to_canonical_32,
+       asn_MAP_extensionValue_from_canonical_32,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_32 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_32,
+       6,      /* Elements count */
+       &asn_SPC_extensionValue_specs_32        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CellInformation_Item_ExtIEs_29[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_30, &asn_PER_memb_id_constr_30,  memb_id_constraint_29 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_CellInformation_Item_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_31, &asn_PER_memb_criticality_constr_31,  memb_criticality_constraint_29 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_32,
+               select_CellInformation_Item_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_32, &asn_PER_memb_extensionValue_constr_32,  memb_extensionValue_constraint_29 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellInformation_Item_ExtIEs_tags_29[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellInformation_Item_ExtIEs_tag2el_29[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellInformation_Item_ExtIEs_specs_29 = {
+       sizeof(struct CellInformation_Item_ExtIEs),
+       offsetof(struct CellInformation_Item_ExtIEs, _asn_ctx),
+       asn_MAP_CellInformation_Item_ExtIEs_tag2el_29,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellInformation_Item_ExtIEs = {
+       "CellInformation-Item-ExtIEs",
+       "CellInformation-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellInformation_Item_ExtIEs_tags_29,
+       sizeof(asn_DEF_CellInformation_Item_ExtIEs_tags_29)
+               /sizeof(asn_DEF_CellInformation_Item_ExtIEs_tags_29[0]), /* 1 */
+       asn_DEF_CellInformation_Item_ExtIEs_tags_29,    /* Same as above */
+       sizeof(asn_DEF_CellInformation_Item_ExtIEs_tags_29)
+               /sizeof(asn_DEF_CellInformation_Item_ExtIEs_tags_29[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellInformation_Item_ExtIEs_29,
+       3,      /* Elements count */
+       &asn_SPC_CellInformation_Item_ExtIEs_specs_29   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_36[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCellsToModify_Item_ExtIEs__extensionValue, choice.DeactivationIndication),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_DeactivationIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "DeactivationIndication"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_36[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* DeactivationIndication */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_36 = {
+       sizeof(struct ServedCellsToModify_Item_ExtIEs__extensionValue),
+       offsetof(struct ServedCellsToModify_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ServedCellsToModify_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct ServedCellsToModify_Item_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_36,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_36 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_36,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_36        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ServedCellsToModify_Item_ExtIEs_33[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCellsToModify_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_34, &asn_PER_memb_id_constr_34,  memb_id_constraint_33 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCellsToModify_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ServedCellsToModify_Item_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_35, &asn_PER_memb_criticality_constr_35,  memb_criticality_constraint_33 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedCellsToModify_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_36,
+               select_ServedCellsToModify_Item_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_36, &asn_PER_memb_extensionValue_constr_36,  memb_extensionValue_constraint_33 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedCellsToModify_Item_ExtIEs_tags_33[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ServedCellsToModify_Item_ExtIEs_tag2el_33[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ServedCellsToModify_Item_ExtIEs_specs_33 = {
+       sizeof(struct ServedCellsToModify_Item_ExtIEs),
+       offsetof(struct ServedCellsToModify_Item_ExtIEs, _asn_ctx),
+       asn_MAP_ServedCellsToModify_Item_ExtIEs_tag2el_33,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedCellsToModify_Item_ExtIEs = {
+       "ServedCellsToModify-Item-ExtIEs",
+       "ServedCellsToModify-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ServedCellsToModify_Item_ExtIEs_tags_33,
+       sizeof(asn_DEF_ServedCellsToModify_Item_ExtIEs_tags_33)
+               /sizeof(asn_DEF_ServedCellsToModify_Item_ExtIEs_tags_33[0]), /* 1 */
+       asn_DEF_ServedCellsToModify_Item_ExtIEs_tags_33,        /* Same as above */
+       sizeof(asn_DEF_ServedCellsToModify_Item_ExtIEs_tags_33)
+               /sizeof(asn_DEF_ServedCellsToModify_Item_ExtIEs_tags_33[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ServedCellsToModify_Item_ExtIEs_33,
+       3,      /* Elements count */
+       &asn_SPC_ServedCellsToModify_Item_ExtIEs_specs_33       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_40 = {
+       sizeof(struct CellToReport_Item_ExtIEs__extensionValue),
+       offsetof(struct CellToReport_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CellToReport_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct CellToReport_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_40 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_40        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CellToReport_Item_ExtIEs_37[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellToReport_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_38, &asn_PER_memb_id_constr_38,  memb_id_constraint_37 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellToReport_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_39, &asn_PER_memb_criticality_constr_39,  memb_criticality_constraint_37 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellToReport_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_40,
+               0,
+               { &asn_OER_memb_extensionValue_constr_40, &asn_PER_memb_extensionValue_constr_40,  memb_extensionValue_constraint_37 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellToReport_Item_ExtIEs_tags_37[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellToReport_Item_ExtIEs_tag2el_37[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellToReport_Item_ExtIEs_specs_37 = {
+       sizeof(struct CellToReport_Item_ExtIEs),
+       offsetof(struct CellToReport_Item_ExtIEs, _asn_ctx),
+       asn_MAP_CellToReport_Item_ExtIEs_tag2el_37,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellToReport_Item_ExtIEs = {
+       "CellToReport-Item-ExtIEs",
+       "CellToReport-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellToReport_Item_ExtIEs_tags_37,
+       sizeof(asn_DEF_CellToReport_Item_ExtIEs_tags_37)
+               /sizeof(asn_DEF_CellToReport_Item_ExtIEs_tags_37[0]), /* 1 */
+       asn_DEF_CellToReport_Item_ExtIEs_tags_37,       /* Same as above */
+       sizeof(asn_DEF_CellToReport_Item_ExtIEs_tags_37)
+               /sizeof(asn_DEF_CellToReport_Item_ExtIEs_tags_37[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellToReport_Item_ExtIEs_37,
+       3,      /* Elements count */
+       &asn_SPC_CellToReport_Item_ExtIEs_specs_37      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_44 = {
+       sizeof(struct MeasurementInitiationResult_Item_ExtIEs__extensionValue),
+       offsetof(struct MeasurementInitiationResult_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct MeasurementInitiationResult_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct MeasurementInitiationResult_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_44 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_44        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_MeasurementInitiationResult_Item_ExtIEs_41[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MeasurementInitiationResult_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_42, &asn_PER_memb_id_constr_42,  memb_id_constraint_41 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MeasurementInitiationResult_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_43, &asn_PER_memb_criticality_constr_43,  memb_criticality_constraint_41 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MeasurementInitiationResult_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_44,
+               0,
+               { &asn_OER_memb_extensionValue_constr_44, &asn_PER_memb_extensionValue_constr_44,  memb_extensionValue_constraint_41 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MeasurementInitiationResult_Item_ExtIEs_tags_41[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MeasurementInitiationResult_Item_ExtIEs_tag2el_41[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_MeasurementInitiationResult_Item_ExtIEs_specs_41 = {
+       sizeof(struct MeasurementInitiationResult_Item_ExtIEs),
+       offsetof(struct MeasurementInitiationResult_Item_ExtIEs, _asn_ctx),
+       asn_MAP_MeasurementInitiationResult_Item_ExtIEs_tag2el_41,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MeasurementInitiationResult_Item_ExtIEs = {
+       "MeasurementInitiationResult-Item-ExtIEs",
+       "MeasurementInitiationResult-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MeasurementInitiationResult_Item_ExtIEs_tags_41,
+       sizeof(asn_DEF_MeasurementInitiationResult_Item_ExtIEs_tags_41)
+               /sizeof(asn_DEF_MeasurementInitiationResult_Item_ExtIEs_tags_41[0]), /* 1 */
+       asn_DEF_MeasurementInitiationResult_Item_ExtIEs_tags_41,        /* Same as above */
+       sizeof(asn_DEF_MeasurementInitiationResult_Item_ExtIEs_tags_41)
+               /sizeof(asn_DEF_MeasurementInitiationResult_Item_ExtIEs_tags_41[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MeasurementInitiationResult_Item_ExtIEs_41,
+       3,      /* Elements count */
+       &asn_SPC_MeasurementInitiationResult_Item_ExtIEs_specs_41       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_48 = {
+       sizeof(struct MeasurementFailureCause_Item_ExtIEs__extensionValue),
+       offsetof(struct MeasurementFailureCause_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct MeasurementFailureCause_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct MeasurementFailureCause_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_48 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_48        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_MeasurementFailureCause_Item_ExtIEs_45[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_46, &asn_PER_memb_id_constr_46,  memb_id_constraint_45 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_47, &asn_PER_memb_criticality_constr_47,  memb_criticality_constraint_45 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_48,
+               0,
+               { &asn_OER_memb_extensionValue_constr_48, &asn_PER_memb_extensionValue_constr_48,  memb_extensionValue_constraint_45 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MeasurementFailureCause_Item_ExtIEs_tags_45[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MeasurementFailureCause_Item_ExtIEs_tag2el_45[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_MeasurementFailureCause_Item_ExtIEs_specs_45 = {
+       sizeof(struct MeasurementFailureCause_Item_ExtIEs),
+       offsetof(struct MeasurementFailureCause_Item_ExtIEs, _asn_ctx),
+       asn_MAP_MeasurementFailureCause_Item_ExtIEs_tag2el_45,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MeasurementFailureCause_Item_ExtIEs = {
+       "MeasurementFailureCause-Item-ExtIEs",
+       "MeasurementFailureCause-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MeasurementFailureCause_Item_ExtIEs_tags_45,
+       sizeof(asn_DEF_MeasurementFailureCause_Item_ExtIEs_tags_45)
+               /sizeof(asn_DEF_MeasurementFailureCause_Item_ExtIEs_tags_45[0]), /* 1 */
+       asn_DEF_MeasurementFailureCause_Item_ExtIEs_tags_45,    /* Same as above */
+       sizeof(asn_DEF_MeasurementFailureCause_Item_ExtIEs_tags_45)
+               /sizeof(asn_DEF_MeasurementFailureCause_Item_ExtIEs_tags_45[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MeasurementFailureCause_Item_ExtIEs_45,
+       3,      /* Elements count */
+       &asn_SPC_MeasurementFailureCause_Item_ExtIEs_specs_45   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_52 = {
+       sizeof(struct CompleteFailureCauseInformation_Item_ExtIEs__extensionValue),
+       offsetof(struct CompleteFailureCauseInformation_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CompleteFailureCauseInformation_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct CompleteFailureCauseInformation_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_52 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_52        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CompleteFailureCauseInformation_Item_ExtIEs_49[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_50, &asn_PER_memb_id_constr_50,  memb_id_constraint_49 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_51, &asn_PER_memb_criticality_constr_51,  memb_criticality_constraint_49 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_52,
+               0,
+               { &asn_OER_memb_extensionValue_constr_52, &asn_PER_memb_extensionValue_constr_52,  memb_extensionValue_constraint_49 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs_tags_49[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CompleteFailureCauseInformation_Item_ExtIEs_tag2el_49[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CompleteFailureCauseInformation_Item_ExtIEs_specs_49 = {
+       sizeof(struct CompleteFailureCauseInformation_Item_ExtIEs),
+       offsetof(struct CompleteFailureCauseInformation_Item_ExtIEs, _asn_ctx),
+       asn_MAP_CompleteFailureCauseInformation_Item_ExtIEs_tag2el_49,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs = {
+       "CompleteFailureCauseInformation-Item-ExtIEs",
+       "CompleteFailureCauseInformation-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs_tags_49,
+       sizeof(asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs_tags_49)
+               /sizeof(asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs_tags_49[0]), /* 1 */
+       asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs_tags_49,    /* Same as above */
+       sizeof(asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs_tags_49)
+               /sizeof(asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs_tags_49[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CompleteFailureCauseInformation_Item_ExtIEs_49,
+       3,      /* Elements count */
+       &asn_SPC_CompleteFailureCauseInformation_Item_ExtIEs_specs_49   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_56[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item_ExtIEs__extensionValue, choice.CompositeAvailableCapacityGroup),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CompositeAvailableCapacityGroup,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CompositeAvailableCapacityGroup"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item_ExtIEs__extensionValue, choice.ABS_Status),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ABS_Status,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ABS-Status"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item_ExtIEs__extensionValue, choice.RSRPMRList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RSRPMRList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RSRPMRList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item_ExtIEs__extensionValue, choice.CSIReportList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CSIReportList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CSIReportList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item_ExtIEs__extensionValue, choice.CellReportingIndicator),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_CellReportingIndicator,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CellReportingIndicator"
+               },
+};
+static const unsigned asn_MAP_extensionValue_to_canonical_56[] = { 4, 0, 1, 2, 3 };
+static const unsigned asn_MAP_extensionValue_from_canonical_56[] = { 1, 2, 3, 4, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_56[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 0 }, /* CellReportingIndicator */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 3 }, /* CompositeAvailableCapacityGroup */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 2 }, /* ABS-Status */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 1 }, /* RSRPMRList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 0 } /* CSIReportList */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_56 = {
+       sizeof(struct CellMeasurementResult_Item_ExtIEs__extensionValue),
+       offsetof(struct CellMeasurementResult_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CellMeasurementResult_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct CellMeasurementResult_Item_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_56,
+       5,      /* Count of tags in the map */
+       asn_MAP_extensionValue_to_canonical_56,
+       asn_MAP_extensionValue_from_canonical_56,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_56 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_56,
+       5,      /* Elements count */
+       &asn_SPC_extensionValue_specs_56        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CellMeasurementResult_Item_ExtIEs_53[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_54, &asn_PER_memb_id_constr_54,  memb_id_constraint_53 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_CellMeasurementResult_Item_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_55, &asn_PER_memb_criticality_constr_55,  memb_criticality_constraint_53 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_56,
+               select_CellMeasurementResult_Item_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_56, &asn_PER_memb_extensionValue_constr_56,  memb_extensionValue_constraint_53 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellMeasurementResult_Item_ExtIEs_tags_53[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellMeasurementResult_Item_ExtIEs_tag2el_53[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellMeasurementResult_Item_ExtIEs_specs_53 = {
+       sizeof(struct CellMeasurementResult_Item_ExtIEs),
+       offsetof(struct CellMeasurementResult_Item_ExtIEs, _asn_ctx),
+       asn_MAP_CellMeasurementResult_Item_ExtIEs_tag2el_53,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellMeasurementResult_Item_ExtIEs = {
+       "CellMeasurementResult-Item-ExtIEs",
+       "CellMeasurementResult-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellMeasurementResult_Item_ExtIEs_tags_53,
+       sizeof(asn_DEF_CellMeasurementResult_Item_ExtIEs_tags_53)
+               /sizeof(asn_DEF_CellMeasurementResult_Item_ExtIEs_tags_53[0]), /* 1 */
+       asn_DEF_CellMeasurementResult_Item_ExtIEs_tags_53,      /* Same as above */
+       sizeof(asn_DEF_CellMeasurementResult_Item_ExtIEs_tags_53)
+               /sizeof(asn_DEF_CellMeasurementResult_Item_ExtIEs_tags_53[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellMeasurementResult_Item_ExtIEs_53,
+       3,      /* Elements count */
+       &asn_SPC_CellMeasurementResult_Item_ExtIEs_specs_53     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_60 = {
+       sizeof(struct ServedCellsToActivate_Item_ExtIEs__extensionValue),
+       offsetof(struct ServedCellsToActivate_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ServedCellsToActivate_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct ServedCellsToActivate_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_60 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_60        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ServedCellsToActivate_Item_ExtIEs_57[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCellsToActivate_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_58, &asn_PER_memb_id_constr_58,  memb_id_constraint_57 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCellsToActivate_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_59, &asn_PER_memb_criticality_constr_59,  memb_criticality_constraint_57 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedCellsToActivate_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_60,
+               0,
+               { &asn_OER_memb_extensionValue_constr_60, &asn_PER_memb_extensionValue_constr_60,  memb_extensionValue_constraint_57 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedCellsToActivate_Item_ExtIEs_tags_57[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ServedCellsToActivate_Item_ExtIEs_tag2el_57[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ServedCellsToActivate_Item_ExtIEs_specs_57 = {
+       sizeof(struct ServedCellsToActivate_Item_ExtIEs),
+       offsetof(struct ServedCellsToActivate_Item_ExtIEs, _asn_ctx),
+       asn_MAP_ServedCellsToActivate_Item_ExtIEs_tag2el_57,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedCellsToActivate_Item_ExtIEs = {
+       "ServedCellsToActivate-Item-ExtIEs",
+       "ServedCellsToActivate-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ServedCellsToActivate_Item_ExtIEs_tags_57,
+       sizeof(asn_DEF_ServedCellsToActivate_Item_ExtIEs_tags_57)
+               /sizeof(asn_DEF_ServedCellsToActivate_Item_ExtIEs_tags_57[0]), /* 1 */
+       asn_DEF_ServedCellsToActivate_Item_ExtIEs_tags_57,      /* Same as above */
+       sizeof(asn_DEF_ServedCellsToActivate_Item_ExtIEs_tags_57)
+               /sizeof(asn_DEF_ServedCellsToActivate_Item_ExtIEs_tags_57[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ServedCellsToActivate_Item_ExtIEs_57,
+       3,      /* Elements count */
+       &asn_SPC_ServedCellsToActivate_Item_ExtIEs_specs_57     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_64 = {
+       sizeof(struct ActivatedCellList_Item_ExtIEs__extensionValue),
+       offsetof(struct ActivatedCellList_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ActivatedCellList_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct ActivatedCellList_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_64 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_64        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ActivatedCellList_Item_ExtIEs_61[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ActivatedCellList_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_62, &asn_PER_memb_id_constr_62,  memb_id_constraint_61 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ActivatedCellList_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_63, &asn_PER_memb_criticality_constr_63,  memb_criticality_constraint_61 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ActivatedCellList_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_64,
+               0,
+               { &asn_OER_memb_extensionValue_constr_64, &asn_PER_memb_extensionValue_constr_64,  memb_extensionValue_constraint_61 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ActivatedCellList_Item_ExtIEs_tags_61[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ActivatedCellList_Item_ExtIEs_tag2el_61[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ActivatedCellList_Item_ExtIEs_specs_61 = {
+       sizeof(struct ActivatedCellList_Item_ExtIEs),
+       offsetof(struct ActivatedCellList_Item_ExtIEs, _asn_ctx),
+       asn_MAP_ActivatedCellList_Item_ExtIEs_tag2el_61,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ActivatedCellList_Item_ExtIEs = {
+       "ActivatedCellList-Item-ExtIEs",
+       "ActivatedCellList-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ActivatedCellList_Item_ExtIEs_tags_61,
+       sizeof(asn_DEF_ActivatedCellList_Item_ExtIEs_tags_61)
+               /sizeof(asn_DEF_ActivatedCellList_Item_ExtIEs_tags_61[0]), /* 1 */
+       asn_DEF_ActivatedCellList_Item_ExtIEs_tags_61,  /* Same as above */
+       sizeof(asn_DEF_ActivatedCellList_Item_ExtIEs_tags_61)
+               /sizeof(asn_DEF_ActivatedCellList_Item_ExtIEs_tags_61[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ActivatedCellList_Item_ExtIEs_61,
+       3,      /* Elements count */
+       &asn_SPC_ActivatedCellList_Item_ExtIEs_specs_61 /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_68 = {
+       sizeof(struct RNL_Header_Item_ExtIEs__extensionValue),
+       offsetof(struct RNL_Header_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct RNL_Header_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct RNL_Header_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_68 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_68        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RNL_Header_Item_ExtIEs_65[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RNL_Header_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_66, &asn_PER_memb_id_constr_66,  memb_id_constraint_65 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RNL_Header_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_67, &asn_PER_memb_criticality_constr_67,  memb_criticality_constraint_65 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RNL_Header_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_68,
+               0,
+               { &asn_OER_memb_extensionValue_constr_68, &asn_PER_memb_extensionValue_constr_68,  memb_extensionValue_constraint_65 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RNL_Header_Item_ExtIEs_tags_65[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RNL_Header_Item_ExtIEs_tag2el_65[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RNL_Header_Item_ExtIEs_specs_65 = {
+       sizeof(struct RNL_Header_Item_ExtIEs),
+       offsetof(struct RNL_Header_Item_ExtIEs, _asn_ctx),
+       asn_MAP_RNL_Header_Item_ExtIEs_tag2el_65,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RNL_Header_Item_ExtIEs = {
+       "RNL-Header-Item-ExtIEs",
+       "RNL-Header-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RNL_Header_Item_ExtIEs_tags_65,
+       sizeof(asn_DEF_RNL_Header_Item_ExtIEs_tags_65)
+               /sizeof(asn_DEF_RNL_Header_Item_ExtIEs_tags_65[0]), /* 1 */
+       asn_DEF_RNL_Header_Item_ExtIEs_tags_65, /* Same as above */
+       sizeof(asn_DEF_RNL_Header_Item_ExtIEs_tags_65)
+               /sizeof(asn_DEF_RNL_Header_Item_ExtIEs_tags_65[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RNL_Header_Item_ExtIEs_65,
+       3,      /* Elements count */
+       &asn_SPC_RNL_Header_Item_ExtIEs_specs_65        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_72[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue, choice.Correlation_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_Correlation_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Correlation-ID"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_72[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 0 } /* Correlation-ID */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_72 = {
+       sizeof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_72,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_72 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_72,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_72        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_69[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_70, &asn_PER_memb_id_constr_70,  memb_id_constraint_69 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_71, &asn_PER_memb_criticality_constr_71,  memb_criticality_constraint_69 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_72,
+               select_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_72, &asn_PER_memb_extensionValue_constr_72,  memb_extensionValue_constraint_69 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tags_69[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tag2el_69[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_specs_69 = {
+       sizeof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs),
+       offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tag2el_69,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs = {
+       "E-RABs-ToBeAdded-Item-SCG-BearerExtIEs",
+       "E-RABs-ToBeAdded-Item-SCG-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tags_69,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tags_69)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tags_69[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tags_69, /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tags_69)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tags_69[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_69,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_specs_69        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_76 = {
+       sizeof(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_76 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_76        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_73[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_74, &asn_PER_memb_id_constr_74,  memb_id_constraint_73 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_75, &asn_PER_memb_criticality_constr_75,  memb_criticality_constraint_73 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_76,
+               0,
+               { &asn_OER_memb_extensionValue_constr_76, &asn_PER_memb_extensionValue_constr_76,  memb_extensionValue_constraint_73 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tags_73[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tag2el_73[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_specs_73 = {
+       sizeof(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs),
+       offsetof(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tag2el_73,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs = {
+       "E-RABs-ToBeAdded-Item-Split-BearerExtIEs",
+       "E-RABs-ToBeAdded-Item-Split-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tags_73,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tags_73)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tags_73[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tags_73,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tags_73)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tags_73[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_73,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_specs_73      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_80 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_80 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_80        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_77[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_78, &asn_PER_memb_id_constr_78,  memb_id_constraint_77 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_79, &asn_PER_memb_criticality_constr_79,  memb_criticality_constraint_77 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_80,
+               0,
+               { &asn_OER_memb_extensionValue_constr_80, &asn_PER_memb_extensionValue_constr_80,  memb_extensionValue_constraint_77 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tags_77[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tag2el_77[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_specs_77 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tag2el_77,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs = {
+       "E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs",
+       "E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tags_77,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tags_77)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tags_77[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tags_77,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tags_77)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tags_77[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_77,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_specs_77       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_84 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_84 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_84        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_81[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_82, &asn_PER_memb_id_constr_82,  memb_id_constraint_81 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_83, &asn_PER_memb_criticality_constr_83,  memb_criticality_constraint_81 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_84,
+               0,
+               { &asn_OER_memb_extensionValue_constr_84, &asn_PER_memb_extensionValue_constr_84,  memb_extensionValue_constraint_81 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tags_81[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tag2el_81[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_specs_81 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tag2el_81,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs = {
+       "E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs",
+       "E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tags_81,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tags_81)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tags_81[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tags_81,      /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tags_81)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tags_81[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_81,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_specs_81     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_88 = {
+       sizeof(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue),
+       offsetof(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue, present),
+       sizeof(((struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_88 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_88        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_85[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_86, &asn_PER_memb_id_constr_86,  memb_id_constraint_85 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_87, &asn_PER_memb_criticality_constr_87,  memb_criticality_constraint_85 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_88,
+               0,
+               { &asn_OER_memb_extensionValue_constr_88, &asn_PER_memb_extensionValue_constr_88,  memb_extensionValue_constraint_85 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tags_85[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tag2el_85[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_specs_85 = {
+       sizeof(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs),
+       offsetof(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs, _asn_ctx),
+       asn_MAP_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tag2el_85,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs = {
+       "ResponseInformationSeNBReconfComp-SuccessItemExtIEs",
+       "ResponseInformationSeNBReconfComp-SuccessItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tags_85,
+       sizeof(asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tags_85)
+               /sizeof(asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tags_85[0]), /* 1 */
+       asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tags_85,    /* Same as above */
+       sizeof(asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tags_85)
+               /sizeof(asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tags_85[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_85,
+       3,      /* Elements count */
+       &asn_SPC_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_specs_85   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_92 = {
+       sizeof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue),
+       offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue, present),
+       sizeof(((struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_92 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_92        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_89[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_90, &asn_PER_memb_id_constr_90,  memb_id_constraint_89 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_91, &asn_PER_memb_criticality_constr_91,  memb_criticality_constraint_89 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_92,
+               0,
+               { &asn_OER_memb_extensionValue_constr_92, &asn_PER_memb_extensionValue_constr_92,  memb_extensionValue_constraint_89 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tags_89[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tag2el_89[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_specs_89 = {
+       sizeof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs),
+       offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs, _asn_ctx),
+       asn_MAP_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tag2el_89,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs = {
+       "ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs",
+       "ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tags_89,
+       sizeof(asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tags_89)
+               /sizeof(asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tags_89[0]), /* 1 */
+       asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tags_89,       /* Same as above */
+       sizeof(asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tags_89)
+               /sizeof(asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tags_89[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_89,
+       3,      /* Elements count */
+       &asn_SPC_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_specs_89      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_96 = {
+       sizeof(struct UE_ContextInformationSeNBModReqExtIEs__extensionValue),
+       offsetof(struct UE_ContextInformationSeNBModReqExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct UE_ContextInformationSeNBModReqExtIEs__extensionValue, present),
+       sizeof(((struct UE_ContextInformationSeNBModReqExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_96 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_96        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UE_ContextInformationSeNBModReqExtIEs_93[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationSeNBModReqExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_94, &asn_PER_memb_id_constr_94,  memb_id_constraint_93 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationSeNBModReqExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_95, &asn_PER_memb_criticality_constr_95,  memb_criticality_constraint_93 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationSeNBModReqExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_96,
+               0,
+               { &asn_OER_memb_extensionValue_constr_96, &asn_PER_memb_extensionValue_constr_96,  memb_extensionValue_constraint_93 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UE_ContextInformationSeNBModReqExtIEs_tags_93[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UE_ContextInformationSeNBModReqExtIEs_tag2el_93[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformationSeNBModReqExtIEs_specs_93 = {
+       sizeof(struct UE_ContextInformationSeNBModReqExtIEs),
+       offsetof(struct UE_ContextInformationSeNBModReqExtIEs, _asn_ctx),
+       asn_MAP_UE_ContextInformationSeNBModReqExtIEs_tag2el_93,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationSeNBModReqExtIEs = {
+       "UE-ContextInformationSeNBModReqExtIEs",
+       "UE-ContextInformationSeNBModReqExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UE_ContextInformationSeNBModReqExtIEs_tags_93,
+       sizeof(asn_DEF_UE_ContextInformationSeNBModReqExtIEs_tags_93)
+               /sizeof(asn_DEF_UE_ContextInformationSeNBModReqExtIEs_tags_93[0]), /* 1 */
+       asn_DEF_UE_ContextInformationSeNBModReqExtIEs_tags_93,  /* Same as above */
+       sizeof(asn_DEF_UE_ContextInformationSeNBModReqExtIEs_tags_93)
+               /sizeof(asn_DEF_UE_ContextInformationSeNBModReqExtIEs_tags_93[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UE_ContextInformationSeNBModReqExtIEs_93,
+       3,      /* Elements count */
+       &asn_SPC_UE_ContextInformationSeNBModReqExtIEs_specs_93 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_100[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue, choice.Correlation_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_Correlation_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Correlation-ID"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_100[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 0 } /* Correlation-ID */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_100 = {
+       sizeof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_100,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_100 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_100,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_100       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_97[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_98, &asn_PER_memb_id_constr_98,  memb_id_constraint_97 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_99, &asn_PER_memb_criticality_constr_99,  memb_criticality_constraint_97 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_100,
+               select_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_100, &asn_PER_memb_extensionValue_constr_100,  memb_extensionValue_constraint_97 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tags_97[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tag2el_97[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_specs_97 = {
+       sizeof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs),
+       offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tag2el_97,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs = {
+       "E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs",
+       "E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tags_97,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tags_97)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tags_97[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tags_97,   /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tags_97)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tags_97[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_97,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_specs_97  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_104 = {
+       sizeof(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_104 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_104       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_101[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_102, &asn_PER_memb_id_constr_102,  memb_id_constraint_101 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_103, &asn_PER_memb_criticality_constr_103,  memb_criticality_constraint_101 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_104,
+               0,
+               { &asn_OER_memb_extensionValue_constr_104, &asn_PER_memb_extensionValue_constr_104,  memb_extensionValue_constraint_101 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tags_101[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tag2el_101[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_specs_101 = {
+       sizeof(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs),
+       offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tag2el_101,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs = {
+       "E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs",
+       "E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tags_101,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tags_101)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tags_101[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tags_101,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tags_101)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tags_101[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_101,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_specs_101       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_108 = {
+       sizeof(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_108 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_108       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_105[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_106, &asn_PER_memb_id_constr_106,  memb_id_constraint_105 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_107, &asn_PER_memb_criticality_constr_107,  memb_criticality_constraint_105 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_108,
+               0,
+               { &asn_OER_memb_extensionValue_constr_108, &asn_PER_memb_extensionValue_constr_108,  memb_extensionValue_constraint_105 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tags_105[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tag2el_105[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_specs_105 = {
+       sizeof(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs),
+       offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tag2el_105,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs = {
+       "E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs",
+       "E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tags_105,
+       sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tags_105)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tags_105[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tags_105,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tags_105)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tags_105[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_105,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_specs_105      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_112 = {
+       sizeof(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_112 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_112       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_109[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_110, &asn_PER_memb_id_constr_110,  memb_id_constraint_109 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_111, &asn_PER_memb_criticality_constr_111,  memb_criticality_constraint_109 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_112,
+               0,
+               { &asn_OER_memb_extensionValue_constr_112, &asn_PER_memb_extensionValue_constr_112,  memb_extensionValue_constraint_109 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tags_109[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tag2el_109[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_specs_109 = {
+       sizeof(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs),
+       offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tag2el_109,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs = {
+       "E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs",
+       "E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tags_109,
+       sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tags_109)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tags_109[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tags_109,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tags_109)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tags_109[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_109,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_specs_109    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_116 = {
+       sizeof(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_116 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_116       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_113[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_114, &asn_PER_memb_id_constr_114,  memb_id_constraint_113 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_115, &asn_PER_memb_criticality_constr_115,  memb_criticality_constraint_113 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_116,
+               0,
+               { &asn_OER_memb_extensionValue_constr_116, &asn_PER_memb_extensionValue_constr_116,  memb_extensionValue_constraint_113 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tags_113[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tag2el_113[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_specs_113 = {
+       sizeof(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tag2el_113,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs = {
+       "E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs",
+       "E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tags_113,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tags_113)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tags_113[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tags_113,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tags_113)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tags_113[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_113,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_specs_113      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_120 = {
+       sizeof(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_120 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_120       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_117[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_118, &asn_PER_memb_id_constr_118,  memb_id_constraint_117 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_119, &asn_PER_memb_criticality_constr_119,  memb_criticality_constraint_117 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_120,
+               0,
+               { &asn_OER_memb_extensionValue_constr_120, &asn_PER_memb_extensionValue_constr_120,  memb_extensionValue_constraint_117 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tags_117[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tag2el_117[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_specs_117 = {
+       sizeof(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tag2el_117,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs = {
+       "E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs",
+       "E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tags_117,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tags_117)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tags_117[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tags_117,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tags_117)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tags_117[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_117,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_specs_117    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_124 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_124 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_124       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_121[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_122, &asn_PER_memb_id_constr_122,  memb_id_constraint_121 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_123, &asn_PER_memb_criticality_constr_123,  memb_criticality_constraint_121 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_124,
+               0,
+               { &asn_OER_memb_extensionValue_constr_124, &asn_PER_memb_extensionValue_constr_124,  memb_extensionValue_constraint_121 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tags_121[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tag2el_121[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_specs_121 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tag2el_121,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs = {
+       "E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs",
+       "E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tags_121,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tags_121)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tags_121[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tags_121, /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tags_121)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tags_121[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_121,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_specs_121        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_128 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_128 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_128       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_125[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_126, &asn_PER_memb_id_constr_126,  memb_id_constraint_125 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_127, &asn_PER_memb_criticality_constr_127,  memb_criticality_constraint_125 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_128,
+               0,
+               { &asn_OER_memb_extensionValue_constr_128, &asn_PER_memb_extensionValue_constr_128,  memb_extensionValue_constraint_125 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tags_125[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tag2el_125[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_specs_125 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tag2el_125,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs = {
+       "E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs",
+       "E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tags_125,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tags_125)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tags_125[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tags_125,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tags_125)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tags_125[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_125,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_specs_125      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_132 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_132 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_132       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_129[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_130, &asn_PER_memb_id_constr_130,  memb_id_constraint_129 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_131, &asn_PER_memb_criticality_constr_131,  memb_criticality_constraint_129 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_132,
+               0,
+               { &asn_OER_memb_extensionValue_constr_132, &asn_PER_memb_extensionValue_constr_132,  memb_extensionValue_constraint_129 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tags_129[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tag2el_129[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_specs_129 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tag2el_129,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs = {
+       "E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs",
+       "E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tags_129,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tags_129)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tags_129[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tags_129,      /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tags_129)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tags_129[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_129,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_specs_129     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_136 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_136 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_136       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_133[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_134, &asn_PER_memb_id_constr_134,  memb_id_constraint_133 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_135, &asn_PER_memb_criticality_constr_135,  memb_criticality_constraint_133 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_136,
+               0,
+               { &asn_OER_memb_extensionValue_constr_136, &asn_PER_memb_extensionValue_constr_136,  memb_extensionValue_constraint_133 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tags_133[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tag2el_133[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_specs_133 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tag2el_133,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs = {
+       "E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs",
+       "E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tags_133,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tags_133)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tags_133[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tags_133,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tags_133)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tags_133[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_133,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_specs_133   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_140 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_140 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_140       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_137[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_138, &asn_PER_memb_id_constr_138,  memb_id_constraint_137 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_139, &asn_PER_memb_criticality_constr_139,  memb_criticality_constraint_137 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_140,
+               0,
+               { &asn_OER_memb_extensionValue_constr_140, &asn_PER_memb_extensionValue_constr_140,  memb_extensionValue_constraint_137 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tags_137[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tag2el_137[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_specs_137 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tag2el_137,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs = {
+       "E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs",
+       "E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tags_137,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tags_137)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tags_137[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tags_137,      /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tags_137)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tags_137[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_137,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_specs_137     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_144 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_144 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_144       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_141[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_142, &asn_PER_memb_id_constr_142,  memb_id_constraint_141 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_143, &asn_PER_memb_criticality_constr_143,  memb_criticality_constraint_141 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_144,
+               0,
+               { &asn_OER_memb_extensionValue_constr_144, &asn_PER_memb_extensionValue_constr_144,  memb_extensionValue_constraint_141 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tags_141[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tag2el_141[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_specs_141 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tag2el_141,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs = {
+       "E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs",
+       "E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tags_141,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tags_141)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tags_141[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tags_141,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tags_141)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tags_141[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_141,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_specs_141   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_148 = {
+       sizeof(struct E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_148 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_148       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqdItemExtIEs_145[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_146, &asn_PER_memb_id_constr_146,  memb_id_constraint_145 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_147, &asn_PER_memb_criticality_constr_147,  memb_criticality_constraint_145 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_148,
+               0,
+               { &asn_OER_memb_extensionValue_constr_148, &asn_PER_memb_extensionValue_constr_148,  memb_extensionValue_constraint_145 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs_tags_145[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqdItemExtIEs_tag2el_145[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqdItemExtIEs_specs_145 = {
+       sizeof(struct E_RABs_ToBeReleased_ModReqdItemExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_ModReqdItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_ModReqdItemExtIEs_tag2el_145,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs = {
+       "E-RABs-ToBeReleased-ModReqdItemExtIEs",
+       "E-RABs-ToBeReleased-ModReqdItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs_tags_145,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs_tags_145)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs_tags_145[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs_tags_145, /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs_tags_145)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs_tags_145[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_ModReqdItemExtIEs_145,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_ModReqdItemExtIEs_specs_145        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_152 = {
+       sizeof(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_152 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_152       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_149[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_150, &asn_PER_memb_id_constr_150,  memb_id_constraint_149 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_151, &asn_PER_memb_criticality_constr_151,  memb_criticality_constraint_149 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_152,
+               0,
+               { &asn_OER_memb_extensionValue_constr_152, &asn_PER_memb_extensionValue_constr_152,  memb_extensionValue_constraint_149 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tags_149[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tag2el_149[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_specs_149 = {
+       sizeof(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tag2el_149,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs = {
+       "E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs",
+       "E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tags_149,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tags_149)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tags_149[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tags_149,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tags_149)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tags_149[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_149,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_specs_149      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_156 = {
+       sizeof(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_156 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_156       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_153[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_154, &asn_PER_memb_id_constr_154,  memb_id_constraint_153 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_155, &asn_PER_memb_criticality_constr_155,  memb_criticality_constraint_153 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_156,
+               0,
+               { &asn_OER_memb_extensionValue_constr_156, &asn_PER_memb_extensionValue_constr_156,  memb_extensionValue_constraint_153 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tags_153[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tag2el_153[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_specs_153 = {
+       sizeof(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tag2el_153,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs = {
+       "E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs",
+       "E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tags_153,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tags_153)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tags_153[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tags_153,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tags_153)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tags_153[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_153,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_specs_153    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_160 = {
+       sizeof(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_160 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_160       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_157[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_158, &asn_PER_memb_id_constr_158,  memb_id_constraint_157 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_159, &asn_PER_memb_criticality_constr_159,  memb_criticality_constraint_157 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_160,
+               0,
+               { &asn_OER_memb_extensionValue_constr_160, &asn_PER_memb_extensionValue_constr_160,  memb_extensionValue_constraint_157 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tags_157[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tag2el_157[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_specs_157 = {
+       sizeof(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tag2el_157,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs = {
+       "E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs",
+       "E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tags_157,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tags_157)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tags_157[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tags_157,      /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tags_157)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tags_157[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_157,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_specs_157     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_164 = {
+       sizeof(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_164 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_164       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_161[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_162, &asn_PER_memb_id_constr_162,  memb_id_constraint_161 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_163, &asn_PER_memb_criticality_constr_163,  memb_criticality_constraint_161 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_164,
+               0,
+               { &asn_OER_memb_extensionValue_constr_164, &asn_PER_memb_extensionValue_constr_164,  memb_extensionValue_constraint_161 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tags_161[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tag2el_161[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_specs_161 = {
+       sizeof(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tag2el_161,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs = {
+       "E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs",
+       "E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tags_161,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tags_161)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tags_161[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tags_161,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tags_161)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tags_161[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_161,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_specs_161   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_168 = {
+       sizeof(struct E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_168 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_168       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_SubjectToCounterCheckItemExtIEs_165[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_166, &asn_PER_memb_id_constr_166,  memb_id_constraint_165 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_167, &asn_PER_memb_criticality_constr_167,  memb_criticality_constraint_165 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_168,
+               0,
+               { &asn_OER_memb_extensionValue_constr_168, &asn_PER_memb_extensionValue_constr_168,  memb_extensionValue_constraint_165 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs_tags_165[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToCounterCheckItemExtIEs_tag2el_165[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToCounterCheckItemExtIEs_specs_165 = {
+       sizeof(struct E_RABs_SubjectToCounterCheckItemExtIEs),
+       offsetof(struct E_RABs_SubjectToCounterCheckItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_SubjectToCounterCheckItemExtIEs_tag2el_165,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs = {
+       "E-RABs-SubjectToCounterCheckItemExtIEs",
+       "E-RABs-SubjectToCounterCheckItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs_tags_165,
+       sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs_tags_165)
+               /sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs_tags_165[0]), /* 1 */
+       asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs_tags_165,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs_tags_165)
+               /sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs_tags_165[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_SubjectToCounterCheckItemExtIEs_165,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_SubjectToCounterCheckItemExtIEs_specs_165       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_172[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve_ExtIEs__extensionValue, choice.UESidelinkAggregateMaximumBitRate),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UESidelinkAggregateMaximumBitRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UESidelinkAggregateMaximumBitRate"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_172[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* UESidelinkAggregateMaximumBitRate */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_172 = {
+       sizeof(struct UE_ContextInformationRetrieve_ExtIEs__extensionValue),
+       offsetof(struct UE_ContextInformationRetrieve_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct UE_ContextInformationRetrieve_ExtIEs__extensionValue, present),
+       sizeof(((struct UE_ContextInformationRetrieve_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_172,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_172 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_172,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_172       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UE_ContextInformationRetrieve_ExtIEs_169[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_170, &asn_PER_memb_id_constr_170,  memb_id_constraint_169 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_UE_ContextInformationRetrieve_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_171, &asn_PER_memb_criticality_constr_171,  memb_criticality_constraint_169 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_172,
+               select_UE_ContextInformationRetrieve_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_172, &asn_PER_memb_extensionValue_constr_172,  memb_extensionValue_constraint_169 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UE_ContextInformationRetrieve_ExtIEs_tags_169[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UE_ContextInformationRetrieve_ExtIEs_tag2el_169[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformationRetrieve_ExtIEs_specs_169 = {
+       sizeof(struct UE_ContextInformationRetrieve_ExtIEs),
+       offsetof(struct UE_ContextInformationRetrieve_ExtIEs, _asn_ctx),
+       asn_MAP_UE_ContextInformationRetrieve_ExtIEs_tag2el_169,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationRetrieve_ExtIEs = {
+       "UE-ContextInformationRetrieve-ExtIEs",
+       "UE-ContextInformationRetrieve-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UE_ContextInformationRetrieve_ExtIEs_tags_169,
+       sizeof(asn_DEF_UE_ContextInformationRetrieve_ExtIEs_tags_169)
+               /sizeof(asn_DEF_UE_ContextInformationRetrieve_ExtIEs_tags_169[0]), /* 1 */
+       asn_DEF_UE_ContextInformationRetrieve_ExtIEs_tags_169,  /* Same as above */
+       sizeof(asn_DEF_UE_ContextInformationRetrieve_ExtIEs_tags_169)
+               /sizeof(asn_DEF_UE_ContextInformationRetrieve_ExtIEs_tags_169[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UE_ContextInformationRetrieve_ExtIEs_169,
+       3,      /* Elements count */
+       &asn_SPC_UE_ContextInformationRetrieve_ExtIEs_specs_169 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_176[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue, choice.GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GTPtunnelEndpoint"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue, choice.DL_Forwarding),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_DL_Forwarding,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "DL-Forwarding"
+               },
+};
+static const unsigned asn_MAP_extensionValue_to_canonical_176[] = { 1, 0 };
+static const unsigned asn_MAP_extensionValue_from_canonical_176[] = { 1, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_176[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* DL-Forwarding */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GTPtunnelEndpoint */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_176 = {
+       sizeof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_176,
+       2,      /* Count of tags in the map */
+       asn_MAP_extensionValue_to_canonical_176,
+       asn_MAP_extensionValue_from_canonical_176,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_176 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_176,
+       2,      /* Elements count */
+       &asn_SPC_extensionValue_specs_176       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetupRetrieve_ItemExtIEs_173[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_174, &asn_PER_memb_id_constr_174,  memb_id_constraint_173 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeSetupRetrieve_ItemExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_175, &asn_PER_memb_criticality_constr_175,  memb_criticality_constraint_173 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_176,
+               select_E_RABs_ToBeSetupRetrieve_ItemExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_176, &asn_PER_memb_extensionValue_constr_176,  memb_extensionValue_constraint_173 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tags_173[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tag2el_173[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetupRetrieve_ItemExtIEs_specs_173 = {
+       sizeof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs),
+       offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tag2el_173,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs = {
+       "E-RABs-ToBeSetupRetrieve-ItemExtIEs",
+       "E-RABs-ToBeSetupRetrieve-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tags_173,
+       sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tags_173)
+               /sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tags_173[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tags_173,   /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tags_173)
+               /sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tags_173[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeSetupRetrieve_ItemExtIEs_173,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeSetupRetrieve_ItemExtIEs_specs_173  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_180 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_180 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_180       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_177[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_178, &asn_PER_memb_id_constr_178,  memb_id_constraint_177 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_179, &asn_PER_memb_criticality_constr_179,  memb_criticality_constraint_177 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_180,
+               0,
+               { &asn_OER_memb_extensionValue_constr_180, &asn_PER_memb_extensionValue_constr_180,  memb_extensionValue_constraint_177 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tags_177[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tag2el_177[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_specs_177 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tag2el_177,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs = {
+       "E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs",
+       "E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tags_177,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tags_177)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tags_177[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tags_177,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tags_177)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tags_177[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_177,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_specs_177       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_184[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue, choice.RLCMode),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_RLCMode,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RLCMode"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_184[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* RLCMode */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_184 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_184,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_184 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_184,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_184       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_181[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_182, &asn_PER_memb_id_constr_182,  memb_id_constraint_181 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_183, &asn_PER_memb_criticality_constr_183,  memb_criticality_constraint_181 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_184,
+               select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_184, &asn_PER_memb_extensionValue_constr_184,  memb_extensionValue_constraint_181 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tags_181[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tag2el_181[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_specs_181 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tag2el_181,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs = {
+       "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs",
+       "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tags_181,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tags_181)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tags_181[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tags_181,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tags_181)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tags_181[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_181,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_specs_181       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_188[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.PDCPSnLength),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_PDCPSnLength,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PDCPSnLength"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.DuplicationActivation),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_DuplicationActivation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "DuplicationActivation"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_188[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 1 }, /* PDCPSnLength */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, -1, 0 } /* DuplicationActivation */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_188 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_188,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_188 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_188,
+       2,      /* Elements count */
+       &asn_SPC_extensionValue_specs_188       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_185[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_186, &asn_PER_memb_id_constr_186,  memb_id_constraint_185 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_187, &asn_PER_memb_criticality_constr_187,  memb_criticality_constraint_185 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_188,
+               select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_188, &asn_PER_memb_extensionValue_constr_188,  memb_extensionValue_constraint_185 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tags_185[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_185[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_specs_185 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_185,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs = {
+       "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs",
+       "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tags_185,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tags_185)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tags_185[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tags_185,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tags_185)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tags_185[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_185,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_specs_185    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_192 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_192 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_192       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_189[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_190, &asn_PER_memb_id_constr_190,  memb_id_constraint_189 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_191, &asn_PER_memb_criticality_constr_191,  memb_criticality_constraint_189 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_192,
+               0,
+               { &asn_OER_memb_extensionValue_constr_192, &asn_PER_memb_extensionValue_constr_192,  memb_extensionValue_constraint_189 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tags_189[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tag2el_189[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_specs_189 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tag2el_189,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs = {
+       "E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs",
+       "E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tags_189,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tags_189)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tags_189[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tags_189,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tags_189)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tags_189[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_189,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_specs_189    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_196[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue, choice.PDCPSnLength),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_PDCPSnLength,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PDCPSnLength"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_196[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* PDCPSnLength */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_196 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_196,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_196 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_196,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_196       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_193[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_194, &asn_PER_memb_id_constr_194,  memb_id_constraint_193 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_195, &asn_PER_memb_criticality_constr_195,  memb_criticality_constraint_193 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_196,
+               select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_196, &asn_PER_memb_extensionValue_constr_196,  memb_extensionValue_constraint_193 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tags_193[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tag2el_193[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_specs_193 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tag2el_193,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs = {
+       "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs",
+       "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tags_193,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tags_193)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tags_193[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tags_193,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tags_193)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tags_193[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_193,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_specs_193   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_200[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.LCID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_LCID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "LCID"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_200[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* LCID */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_200 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_200,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_200 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_200,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_200       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_197[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_198, &asn_PER_memb_id_constr_198,  memb_id_constraint_197 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_199, &asn_PER_memb_criticality_constr_199,  memb_criticality_constraint_197 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_200,
+               select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_200, &asn_PER_memb_extensionValue_constr_200,  memb_extensionValue_constraint_197 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tags_197[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tag2el_197[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_specs_197 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tag2el_197,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs = {
+       "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs",
+       "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tags_197,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tags_197)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tags_197[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tags_197, /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tags_197)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tags_197[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_197,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_specs_197        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_204 = {
+       sizeof(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue),
+       offsetof(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue, present),
+       sizeof(((struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_204 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_204       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_201[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_202, &asn_PER_memb_id_constr_202,  memb_id_constraint_201 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_203, &asn_PER_memb_criticality_constr_203,  memb_criticality_constraint_201 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_204,
+               0,
+               { &asn_OER_memb_extensionValue_constr_204, &asn_PER_memb_extensionValue_constr_204,  memb_extensionValue_constraint_201 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tags_201[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tag2el_201[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_specs_201 = {
+       sizeof(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs),
+       offsetof(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs, _asn_ctx),
+       asn_MAP_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tag2el_201,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs = {
+       "ResponseInformationSgNBReconfComp-SuccessItemExtIEs",
+       "ResponseInformationSgNBReconfComp-SuccessItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tags_201,
+       sizeof(asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tags_201)
+               /sizeof(asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tags_201[0]), /* 1 */
+       asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tags_201,   /* Same as above */
+       sizeof(asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tags_201)
+               /sizeof(asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tags_201[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_201,
+       3,      /* Elements count */
+       &asn_SPC_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_specs_201  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_208 = {
+       sizeof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue),
+       offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue, present),
+       sizeof(((struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_208 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_208       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_205[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_206, &asn_PER_memb_id_constr_206,  memb_id_constraint_205 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_207, &asn_PER_memb_criticality_constr_207,  memb_criticality_constraint_205 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_208,
+               0,
+               { &asn_OER_memb_extensionValue_constr_208, &asn_PER_memb_extensionValue_constr_208,  memb_extensionValue_constraint_205 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tags_205[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tag2el_205[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_specs_205 = {
+       sizeof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs),
+       offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs, _asn_ctx),
+       asn_MAP_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tag2el_205,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs = {
+       "ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs",
+       "ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tags_205,
+       sizeof(asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tags_205)
+               /sizeof(asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tags_205[0]), /* 1 */
+       asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tags_205,      /* Same as above */
+       sizeof(asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tags_205)
+               /sizeof(asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tags_205[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_205,
+       3,      /* Elements count */
+       &asn_SPC_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_specs_205     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_212[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationSgNBModReqExtIEs__extensionValue, choice.SubscriberProfileIDforRFP),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SubscriberProfileIDforRFP,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SubscriberProfileIDforRFP"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_212[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* SubscriberProfileIDforRFP */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_212 = {
+       sizeof(struct UE_ContextInformationSgNBModReqExtIEs__extensionValue),
+       offsetof(struct UE_ContextInformationSgNBModReqExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct UE_ContextInformationSgNBModReqExtIEs__extensionValue, present),
+       sizeof(((struct UE_ContextInformationSgNBModReqExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_212,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_212 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_212,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_212       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UE_ContextInformationSgNBModReqExtIEs_209[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationSgNBModReqExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_210, &asn_PER_memb_id_constr_210,  memb_id_constraint_209 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationSgNBModReqExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_UE_ContextInformationSgNBModReqExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_211, &asn_PER_memb_criticality_constr_211,  memb_criticality_constraint_209 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationSgNBModReqExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_212,
+               select_UE_ContextInformationSgNBModReqExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_212, &asn_PER_memb_extensionValue_constr_212,  memb_extensionValue_constraint_209 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UE_ContextInformationSgNBModReqExtIEs_tags_209[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UE_ContextInformationSgNBModReqExtIEs_tag2el_209[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformationSgNBModReqExtIEs_specs_209 = {
+       sizeof(struct UE_ContextInformationSgNBModReqExtIEs),
+       offsetof(struct UE_ContextInformationSgNBModReqExtIEs, _asn_ctx),
+       asn_MAP_UE_ContextInformationSgNBModReqExtIEs_tag2el_209,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationSgNBModReqExtIEs = {
+       "UE-ContextInformationSgNBModReqExtIEs",
+       "UE-ContextInformationSgNBModReqExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UE_ContextInformationSgNBModReqExtIEs_tags_209,
+       sizeof(asn_DEF_UE_ContextInformationSgNBModReqExtIEs_tags_209)
+               /sizeof(asn_DEF_UE_ContextInformationSgNBModReqExtIEs_tags_209[0]), /* 1 */
+       asn_DEF_UE_ContextInformationSgNBModReqExtIEs_tags_209, /* Same as above */
+       sizeof(asn_DEF_UE_ContextInformationSgNBModReqExtIEs_tags_209)
+               /sizeof(asn_DEF_UE_ContextInformationSgNBModReqExtIEs_tags_209[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UE_ContextInformationSgNBModReqExtIEs_209,
+       3,      /* Elements count */
+       &asn_SPC_UE_ContextInformationSgNBModReqExtIEs_specs_209        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_216 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_216 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_216       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_213[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_214, &asn_PER_memb_id_constr_214,  memb_id_constraint_213 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_215, &asn_PER_memb_criticality_constr_215,  memb_criticality_constraint_213 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_216,
+               0,
+               { &asn_OER_memb_extensionValue_constr_216, &asn_PER_memb_extensionValue_constr_216,  memb_extensionValue_constraint_213 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tags_213[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tag2el_213[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_specs_213 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tag2el_213,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs = {
+       "E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs",
+       "E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tags_213,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tags_213)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tags_213[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tags_213,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tags_213)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tags_213[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_213,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_specs_213       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_220[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue, choice.RLCMode),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_RLCMode,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RLCMode"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_220[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* RLCMode */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_220 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_220,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_220 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_220,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_220       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_217[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_218, &asn_PER_memb_id_constr_218,  memb_id_constraint_217 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_219, &asn_PER_memb_criticality_constr_219,  memb_criticality_constraint_217 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_220,
+               select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_220, &asn_PER_memb_extensionValue_constr_220,  memb_extensionValue_constraint_217 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_217[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tag2el_217[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_217 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tag2el_217,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs = {
+       "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs",
+       "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_217,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_217)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_217[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_217,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_217)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_217[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_217,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_217       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_224[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.PDCPSnLength),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_PDCPSnLength,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PDCPSnLength"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.DuplicationActivation),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_DuplicationActivation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "DuplicationActivation"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_224[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 1 }, /* PDCPSnLength */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, -1, 0 } /* DuplicationActivation */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_224 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_224,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_224 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_224,
+       2,      /* Elements count */
+       &asn_SPC_extensionValue_specs_224       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_221[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_222, &asn_PER_memb_id_constr_222,  memb_id_constraint_221 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_223, &asn_PER_memb_criticality_constr_223,  memb_criticality_constraint_221 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_224,
+               select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_224, &asn_PER_memb_extensionValue_constr_224,  memb_extensionValue_constraint_221 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_221[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_221[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_221 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_221,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs = {
+       "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs",
+       "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_221,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_221)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_221[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_221,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_221)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_221[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_221,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_221    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_228 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_228 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_228       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_225[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_226, &asn_PER_memb_id_constr_226,  memb_id_constraint_225 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_227, &asn_PER_memb_criticality_constr_227,  memb_criticality_constraint_225 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_228,
+               0,
+               { &asn_OER_memb_extensionValue_constr_228, &asn_PER_memb_extensionValue_constr_228,  memb_extensionValue_constraint_225 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tags_225[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tag2el_225[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_specs_225 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tag2el_225,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs = {
+       "E-RABs-ToBeModified-SgNBModReq-ItemExtIEs",
+       "E-RABs-ToBeModified-SgNBModReq-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tags_225,
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tags_225)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tags_225[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tags_225,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tags_225)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tags_225[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_225,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_specs_225    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_232[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue, choice.RLC_Status),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RLC_Status,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RLC-Status"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_232[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RLC-Status */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_232 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_232,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_232 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_232,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_232       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_229[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_230, &asn_PER_memb_id_constr_230,  memb_id_constraint_229 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_231, &asn_PER_memb_criticality_constr_231,  memb_criticality_constraint_229 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_232,
+               select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_232, &asn_PER_memb_extensionValue_constr_232,  memb_extensionValue_constraint_229 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_229[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tag2el_229[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_229 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tag2el_229,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs = {
+       "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs",
+       "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_229,
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_229)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_229[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_229,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_229)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_229[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_229,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_229    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_236[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.PDCPSnLength),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_PDCPSnLength,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PDCPSnLength"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GTPtunnelEndpoint"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_236[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 }, /* PDCPSnLength */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* GTPtunnelEndpoint */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_236 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_236,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_236 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_236,
+       2,      /* Elements count */
+       &asn_SPC_extensionValue_specs_236       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_233[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_234, &asn_PER_memb_id_constr_234,  memb_id_constraint_233 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_235, &asn_PER_memb_criticality_constr_235,  memb_criticality_constraint_233 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_236,
+               select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_236, &asn_PER_memb_extensionValue_constr_236,  memb_extensionValue_constraint_233 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_233[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_233[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_233 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_233,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs = {
+       "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs",
+       "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_233,
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_233)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_233[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_233,  /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_233)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_233[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_233,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_233 /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_240 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_240 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_240       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_237[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_238, &asn_PER_memb_id_constr_238,  memb_id_constraint_237 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_239, &asn_PER_memb_criticality_constr_239,  memb_criticality_constraint_237 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_240,
+               0,
+               { &asn_OER_memb_extensionValue_constr_240, &asn_PER_memb_extensionValue_constr_240,  memb_extensionValue_constraint_237 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tags_237[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tag2el_237[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_specs_237 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tag2el_237,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs = {
+       "E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs",
+       "E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tags_237,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tags_237)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tags_237[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tags_237,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tags_237)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tags_237[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_237,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_specs_237    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_244 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_244 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_244       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_241[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_242, &asn_PER_memb_id_constr_242,  memb_id_constraint_241 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_243, &asn_PER_memb_criticality_constr_243,  memb_criticality_constraint_241 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_244,
+               0,
+               { &asn_OER_memb_extensionValue_constr_244, &asn_PER_memb_extensionValue_constr_244,  memb_extensionValue_constraint_241 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_241[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tag2el_241[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_241 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tag2el_241,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs = {
+       "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs",
+       "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_241,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_241)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_241[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_241,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_241)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_241[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_241,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_241    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_248 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_248 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_248       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_245[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_246, &asn_PER_memb_id_constr_246,  memb_id_constraint_245 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_247, &asn_PER_memb_criticality_constr_247,  memb_criticality_constraint_245 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_248,
+               0,
+               { &asn_OER_memb_extensionValue_constr_248, &asn_PER_memb_extensionValue_constr_248,  memb_extensionValue_constraint_245 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_245[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_245[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_245 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_245,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs = {
+       "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs",
+       "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_245,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_245)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_245[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_245,  /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_245)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_245[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_245,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_245 /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_252 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_252 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_252       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_249[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_250, &asn_PER_memb_id_constr_250,  memb_id_constraint_249 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_251, &asn_PER_memb_criticality_constr_251,  memb_criticality_constraint_249 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_252,
+               0,
+               { &asn_OER_memb_extensionValue_constr_252, &asn_PER_memb_extensionValue_constr_252,  memb_extensionValue_constraint_249 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tags_249[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tag2el_249[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_specs_249 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tag2el_249,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs = {
+       "E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs",
+       "E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tags_249,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tags_249)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tags_249[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tags_249,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tags_249)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tags_249[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_249,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_specs_249      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_256[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue, choice.PDCPSnLength),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_PDCPSnLength,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PDCPSnLength"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_256[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* PDCPSnLength */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_256 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_256,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_256 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_256,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_256       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_253[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_254, &asn_PER_memb_id_constr_254,  memb_id_constraint_253 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_255, &asn_PER_memb_criticality_constr_255,  memb_criticality_constraint_253 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_256,
+               select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_256, &asn_PER_memb_extensionValue_constr_256,  memb_extensionValue_constraint_253 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_253[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tag2el_253[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_253 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tag2el_253,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs = {
+       "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs",
+       "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_253,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_253)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_253[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_253,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_253)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_253[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_253,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_253      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_260[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.LCID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_LCID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "LCID"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_260[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* LCID */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_260 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_260,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_260 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_260,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_260       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_257[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_258, &asn_PER_memb_id_constr_258,  memb_id_constraint_257 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_259, &asn_PER_memb_criticality_constr_259,  memb_criticality_constraint_257 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_260,
+               select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_260, &asn_PER_memb_extensionValue_constr_260,  memb_extensionValue_constraint_257 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_257[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tag2el_257[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_257 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tag2el_257,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs = {
+       "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs",
+       "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_257,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_257)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_257[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_257,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_257)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_257[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_257,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_257   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_264 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_264 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_264       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_261[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_262, &asn_PER_memb_id_constr_262,  memb_id_constraint_261 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_263, &asn_PER_memb_criticality_constr_263,  memb_criticality_constraint_261 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_264,
+               0,
+               { &asn_OER_memb_extensionValue_constr_264, &asn_PER_memb_extensionValue_constr_264,  memb_extensionValue_constraint_261 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tags_261[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tag2el_261[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_specs_261 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tag2el_261,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs = {
+       "E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs",
+       "E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tags_261,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tags_261)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tags_261[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tags_261,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tags_261)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tags_261[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_261,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_specs_261       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_268[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue, choice.PDCPSnLength),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_PDCPSnLength,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PDCPSnLength"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_268[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* PDCPSnLength */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_268 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_268,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_268 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_268,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_268       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_265[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_266, &asn_PER_memb_id_constr_266,  memb_id_constraint_265 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_267, &asn_PER_memb_criticality_constr_267,  memb_criticality_constraint_265 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_268,
+               select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_268, &asn_PER_memb_extensionValue_constr_268,  memb_extensionValue_constraint_265 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_265[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tag2el_265[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_265 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tag2el_265,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs = {
+       "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs",
+       "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_265,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_265)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_265[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_265,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_265)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_265[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_265,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_265   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_272[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.GTPtunnelEndpoint),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GTPtunnelEndpoint,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GTPtunnelEndpoint"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.RLC_Status),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RLC_Status,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RLC-Status"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_272[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* GTPtunnelEndpoint */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RLC-Status */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_272 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_272,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_272 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_272,
+       2,      /* Elements count */
+       &asn_SPC_extensionValue_specs_272       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_269[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_270, &asn_PER_memb_id_constr_270,  memb_id_constraint_269 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_271, &asn_PER_memb_criticality_constr_271,  memb_criticality_constraint_269 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_272,
+               select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_272, &asn_PER_memb_extensionValue_constr_272,  memb_extensionValue_constraint_269 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_269[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tag2el_269[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_269 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tag2el_269,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs = {
+       "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs",
+       "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_269,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_269)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_269[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_269, /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_269)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_269[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_269,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_269        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_276 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_276 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_276       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_273[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_274, &asn_PER_memb_id_constr_274,  memb_id_constraint_273 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_275, &asn_PER_memb_criticality_constr_275,  memb_criticality_constraint_273 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_276,
+               0,
+               { &asn_OER_memb_extensionValue_constr_276, &asn_PER_memb_extensionValue_constr_276,  memb_extensionValue_constraint_273 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tags_273[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tag2el_273[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_specs_273 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tag2el_273,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs = {
+       "E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs",
+       "E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tags_273,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tags_273)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tags_273[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tags_273,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tags_273)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tags_273[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_273,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_specs_273    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_280 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_280 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_280       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_277[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_278, &asn_PER_memb_id_constr_278,  memb_id_constraint_277 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_279, &asn_PER_memb_criticality_constr_279,  memb_criticality_constraint_277 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_280,
+               0,
+               { &asn_OER_memb_extensionValue_constr_280, &asn_PER_memb_extensionValue_constr_280,  memb_extensionValue_constraint_277 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_277[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tag2el_277[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_277 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tag2el_277,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs = {
+       "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs",
+       "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_277,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_277)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_277[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_277,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_277)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_277[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_277,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_277   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_284 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_284 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_284       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_281[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_282, &asn_PER_memb_id_constr_282,  memb_id_constraint_281 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_283, &asn_PER_memb_criticality_constr_283,  memb_criticality_constraint_281 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_284,
+               0,
+               { &asn_OER_memb_extensionValue_constr_284, &asn_PER_memb_extensionValue_constr_284,  memb_extensionValue_constraint_281 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_281[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tag2el_281[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_281 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tag2el_281,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs = {
+       "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs",
+       "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_281,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_281)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_281[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_281, /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_281)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_281[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_281,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_281        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_288[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue, choice.RLCMode),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_RLCMode,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RLCMode"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_288[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* RLCMode */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_288 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_288,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_288 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_288,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_288       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_285[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_286, &asn_PER_memb_id_constr_286,  memb_id_constraint_285 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_287, &asn_PER_memb_criticality_constr_287,  memb_criticality_constraint_285 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_288,
+               select_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_288, &asn_PER_memb_extensionValue_constr_288,  memb_extensionValue_constraint_285 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tags_285[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tag2el_285[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_specs_285 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tag2el_285,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs = {
+       "E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs",
+       "E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tags_285,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tags_285)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tags_285[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tags_285,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tags_285)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tags_285[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_285,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_specs_285   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_292 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_292 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_292       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_289[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_290, &asn_PER_memb_id_constr_290,  memb_id_constraint_289 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_291, &asn_PER_memb_criticality_constr_291,  memb_criticality_constraint_289 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_292,
+               0,
+               { &asn_OER_memb_extensionValue_constr_292, &asn_PER_memb_extensionValue_constr_292,  memb_extensionValue_constraint_289 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tags_289[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tag2el_289[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_specs_289 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tag2el_289,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs = {
+       "E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs",
+       "E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tags_289,
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tags_289)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tags_289[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tags_289,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tags_289)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tags_289[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_289,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_specs_289   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_296[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue, choice.PDCPSnLength),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_PDCPSnLength,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PDCPSnLength"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue, choice.NewDRBIDrequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_NewDRBIDrequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "NewDRBIDrequest"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_296[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 1 }, /* PDCPSnLength */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, -1, 0 } /* NewDRBIDrequest */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_296 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_296,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_296 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_296,
+       2,      /* Elements count */
+       &asn_SPC_extensionValue_specs_296       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_293[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_294, &asn_PER_memb_id_constr_294,  memb_id_constraint_293 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_295, &asn_PER_memb_criticality_constr_295,  memb_criticality_constraint_293 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_296,
+               select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_296, &asn_PER_memb_extensionValue_constr_296,  memb_extensionValue_constraint_293 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tags_293[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tag2el_293[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_specs_293 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tag2el_293,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs = {
+       "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs",
+       "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tags_293,
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tags_293)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tags_293[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tags_293,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tags_293)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tags_293[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_293,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_specs_293   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_300[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.RLC_Status),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RLC_Status,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RLC-Status"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.LCID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_LCID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "LCID"
+               },
+};
+static const unsigned asn_MAP_extensionValue_to_canonical_300[] = { 1, 0 };
+static const unsigned asn_MAP_extensionValue_from_canonical_300[] = { 1, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_300[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* LCID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RLC-Status */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_300 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_300,
+       2,      /* Count of tags in the map */
+       asn_MAP_extensionValue_to_canonical_300,
+       asn_MAP_extensionValue_from_canonical_300,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_300 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_300,
+       2,      /* Elements count */
+       &asn_SPC_extensionValue_specs_300       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_297[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_298, &asn_PER_memb_id_constr_298,  memb_id_constraint_297 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_299, &asn_PER_memb_criticality_constr_299,  memb_criticality_constraint_297 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_300,
+               select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_300, &asn_PER_memb_extensionValue_constr_300,  memb_extensionValue_constraint_297 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tags_297[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tag2el_297[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_specs_297 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tag2el_297,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs = {
+       "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs",
+       "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tags_297,
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tags_297)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tags_297[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tags_297, /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tags_297)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tags_297[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_297,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_specs_297        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_304 = {
+       sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_304 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_304       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_301[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_302, &asn_PER_memb_id_constr_302,  memb_id_constraint_301 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_303, &asn_PER_memb_criticality_constr_303,  memb_criticality_constraint_301 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_304,
+               0,
+               { &asn_OER_memb_extensionValue_constr_304, &asn_PER_memb_extensionValue_constr_304,  memb_extensionValue_constraint_301 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tags_301[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tag2el_301[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_specs_301 = {
+       sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tag2el_301,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs = {
+       "E-RABs-AdmittedToBeModified-SgNBModConf-ItemExtIEs",
+       "E-RABs-AdmittedToBeModified-SgNBModConf-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tags_301,
+       sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tags_301)
+               /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tags_301[0]), /* 1 */
+       asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tags_301,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tags_301)
+               /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tags_301[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_301,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_specs_301   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_308 = {
+       sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_308 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_308       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_305[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_306, &asn_PER_memb_id_constr_306,  memb_id_constraint_305 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_307, &asn_PER_memb_criticality_constr_307,  memb_criticality_constraint_305 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_308,
+               0,
+               { &asn_OER_memb_extensionValue_constr_308, &asn_PER_memb_extensionValue_constr_308,  memb_extensionValue_constraint_305 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tags_305[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tag2el_305[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_specs_305 = {
+       sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tag2el_305,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs = {
+       "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresentExtIEs",
+       "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tags_305,
+       sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tags_305)
+               /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tags_305[0]), /* 1 */
+       asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tags_305,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tags_305)
+               /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tags_305[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_305,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_specs_305   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_312[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.PDCPSnLength),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_PDCPSnLength,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PDCPSnLength"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_312[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* PDCPSnLength */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_312 = {
+       sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_312,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_312 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_312,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_312       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_309[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_310, &asn_PER_memb_id_constr_310,  memb_id_constraint_309 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_311, &asn_PER_memb_criticality_constr_311,  memb_criticality_constraint_309 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_312,
+               select_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_312, &asn_PER_memb_extensionValue_constr_312,  memb_extensionValue_constraint_309 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tags_309[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tag2el_309[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_specs_309 = {
+       sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tag2el_309,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs = {
+       "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresentExtIEs",
+       "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tags_309,
+       sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tags_309)
+               /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tags_309[0]), /* 1 */
+       asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tags_309, /* Same as above */
+       sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tags_309)
+               /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tags_309[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_309,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_specs_309        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_316 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_316 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_316       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_313[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_314, &asn_PER_memb_id_constr_314,  memb_id_constraint_313 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_315, &asn_PER_memb_criticality_constr_315,  memb_criticality_constraint_313 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_316,
+               0,
+               { &asn_OER_memb_extensionValue_constr_316, &asn_PER_memb_extensionValue_constr_316,  memb_extensionValue_constraint_313 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tags_313[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tag2el_313[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_specs_313 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tag2el_313,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs = {
+       "E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs",
+       "E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tags_313,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tags_313)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tags_313[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tags_313,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tags_313)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tags_313[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_313,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_specs_313    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_320 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_320 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_320       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_317[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_318, &asn_PER_memb_id_constr_318,  memb_id_constraint_317 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_319, &asn_PER_memb_criticality_constr_319,  memb_criticality_constraint_317 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_320,
+               0,
+               { &asn_OER_memb_extensionValue_constr_320, &asn_PER_memb_extensionValue_constr_320,  memb_extensionValue_constraint_317 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tags_317[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tag2el_317[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_specs_317 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tag2el_317,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs = {
+       "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs",
+       "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tags_317,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tags_317)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tags_317[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tags_317,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tags_317)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tags_317[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_317,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_specs_317    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_324 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_324 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_324       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_321[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_322, &asn_PER_memb_id_constr_322,  memb_id_constraint_321 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_323, &asn_PER_memb_criticality_constr_323,  memb_criticality_constraint_321 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_324,
+               0,
+               { &asn_OER_memb_extensionValue_constr_324, &asn_PER_memb_extensionValue_constr_324,  memb_extensionValue_constraint_321 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tags_321[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_321[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_specs_321 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_321,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs = {
+       "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs",
+       "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tags_321,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tags_321)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tags_321[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tags_321,  /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tags_321)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tags_321[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_321,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_specs_321 /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_328 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_328 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_328       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_325[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_326, &asn_PER_memb_id_constr_326,  memb_id_constraint_325 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_327, &asn_PER_memb_criticality_constr_327,  memb_criticality_constraint_325 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_328,
+               0,
+               { &asn_OER_memb_extensionValue_constr_328, &asn_PER_memb_extensionValue_constr_328,  memb_extensionValue_constraint_325 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tags_325[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tag2el_325[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_specs_325 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tag2el_325,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs = {
+       "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemExtIEs",
+       "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tags_325,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tags_325)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tags_325[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tags_325, /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tags_325)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tags_325[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_325,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_specs_325        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_332 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_332 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_332       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_329[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_330, &asn_PER_memb_id_constr_330,  memb_id_constraint_329 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_331, &asn_PER_memb_criticality_constr_331,  memb_criticality_constraint_329 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_332,
+               0,
+               { &asn_OER_memb_extensionValue_constr_332, &asn_PER_memb_extensionValue_constr_332,  memb_extensionValue_constraint_329 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tags_329[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tag2el_329[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_specs_329 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tag2el_329,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs = {
+       "E-RABs-ToBeReleased-SgNBRelReqd-ItemExtIEs",
+       "E-RABs-ToBeReleased-SgNBRelReqd-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tags_329,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tags_329)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tags_329[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tags_329,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tags_329)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tags_329[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_329,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_specs_329   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_336 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_336 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_336       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_333[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_334, &asn_PER_memb_id_constr_334,  memb_id_constraint_333 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_335, &asn_PER_memb_criticality_constr_335,  memb_criticality_constraint_333 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_336,
+               0,
+               { &asn_OER_memb_extensionValue_constr_336, &asn_PER_memb_extensionValue_constr_336,  memb_extensionValue_constraint_333 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tags_333[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tag2el_333[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_specs_333 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tag2el_333,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs = {
+       "E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs",
+       "E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tags_333,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tags_333)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tags_333[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tags_333,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tags_333)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tags_333[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_333,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_specs_333   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_340 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_340 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_340       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_337[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_338, &asn_PER_memb_id_constr_338,  memb_id_constraint_337 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_339, &asn_PER_memb_criticality_constr_339,  memb_criticality_constraint_337 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_340,
+               0,
+               { &asn_OER_memb_extensionValue_constr_340, &asn_PER_memb_extensionValue_constr_340,  memb_extensionValue_constraint_337 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tags_337[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tag2el_337[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_specs_337 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tag2el_337,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs = {
+       "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs",
+       "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tags_337,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tags_337)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tags_337[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tags_337,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tags_337)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tags_337[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_337,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_specs_337   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_344 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_344 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_344       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_341[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_342, &asn_PER_memb_id_constr_342,  memb_id_constraint_341 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_343, &asn_PER_memb_criticality_constr_343,  memb_criticality_constraint_341 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_344,
+               0,
+               { &asn_OER_memb_extensionValue_constr_344, &asn_PER_memb_extensionValue_constr_344,  memb_extensionValue_constraint_341 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tags_341[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tag2el_341[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_specs_341 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tag2el_341,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs = {
+       "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs",
+       "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tags_341,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tags_341)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tags_341[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tags_341, /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tags_341)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tags_341[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_341,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_specs_341        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_348 = {
+       sizeof(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_348 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_348       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_345[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_346, &asn_PER_memb_id_constr_346,  memb_id_constraint_345 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_347, &asn_PER_memb_criticality_constr_347,  memb_criticality_constraint_345 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_348,
+               0,
+               { &asn_OER_memb_extensionValue_constr_348, &asn_PER_memb_extensionValue_constr_348,  memb_extensionValue_constraint_345 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tags_345[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tag2el_345[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_specs_345 = {
+       sizeof(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs),
+       offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tag2el_345,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs = {
+       "E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs",
+       "E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tags_345,
+       sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tags_345)
+               /sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tags_345[0]), /* 1 */
+       asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tags_345,   /* Same as above */
+       sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tags_345)
+               /sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tags_345[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_345,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_specs_345  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_352 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_352 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_352       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_349[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_350, &asn_PER_memb_id_constr_350,  memb_id_constraint_349 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_351, &asn_PER_memb_criticality_constr_351,  memb_criticality_constraint_349 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_352,
+               0,
+               { &asn_OER_memb_extensionValue_constr_352, &asn_PER_memb_extensionValue_constr_352,  memb_extensionValue_constraint_349 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tags_349[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tag2el_349[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_specs_349 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tag2el_349,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs = {
+       "E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs",
+       "E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tags_349,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tags_349)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tags_349[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tags_349,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tags_349)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tags_349[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_349,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_specs_349   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_356 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_356 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_356       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_353[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_354, &asn_PER_memb_id_constr_354,  memb_id_constraint_353 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_355, &asn_PER_memb_criticality_constr_355,  memb_criticality_constraint_353 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_356,
+               0,
+               { &asn_OER_memb_extensionValue_constr_356, &asn_PER_memb_extensionValue_constr_356,  memb_extensionValue_constraint_353 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tags_353[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tag2el_353[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_specs_353 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tag2el_353,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs = {
+       "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs",
+       "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tags_353,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tags_353)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tags_353[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tags_353,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tags_353)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tags_353[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_353,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_specs_353   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_360 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_360 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_360       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_357[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_358, &asn_PER_memb_id_constr_358,  memb_id_constraint_357 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_359, &asn_PER_memb_criticality_constr_359,  memb_criticality_constraint_357 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_360,
+               0,
+               { &asn_OER_memb_extensionValue_constr_360, &asn_PER_memb_extensionValue_constr_360,  memb_extensionValue_constraint_357 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tags_357[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tag2el_357[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_specs_357 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tag2el_357,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs = {
+       "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs",
+       "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tags_357,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tags_357)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tags_357[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tags_357, /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tags_357)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tags_357[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_357,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_specs_357        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_364 = {
+       sizeof(struct ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue),
+       offsetof(struct ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue, present),
+       sizeof(((struct ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_364 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_364       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ServedEUTRAcellsENDCX2Management_ExtIEs_361[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsENDCX2Management_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_362, &asn_PER_memb_id_constr_362,  memb_id_constraint_361 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsENDCX2Management_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_363, &asn_PER_memb_criticality_constr_363,  memb_criticality_constraint_361 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsENDCX2Management_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_364,
+               0,
+               { &asn_OER_memb_extensionValue_constr_364, &asn_PER_memb_extensionValue_constr_364,  memb_extensionValue_constraint_361 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs_tags_361[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ServedEUTRAcellsENDCX2Management_ExtIEs_tag2el_361[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ServedEUTRAcellsENDCX2Management_ExtIEs_specs_361 = {
+       sizeof(struct ServedEUTRAcellsENDCX2Management_ExtIEs),
+       offsetof(struct ServedEUTRAcellsENDCX2Management_ExtIEs, _asn_ctx),
+       asn_MAP_ServedEUTRAcellsENDCX2Management_ExtIEs_tag2el_361,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs = {
+       "ServedEUTRAcellsENDCX2Management-ExtIEs",
+       "ServedEUTRAcellsENDCX2Management-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs_tags_361,
+       sizeof(asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs_tags_361)
+               /sizeof(asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs_tags_361[0]), /* 1 */
+       asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs_tags_361,       /* Same as above */
+       sizeof(asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs_tags_361)
+               /sizeof(asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs_tags_361[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ServedEUTRAcellsENDCX2Management_ExtIEs_361,
+       3,      /* Elements count */
+       &asn_SPC_ServedEUTRAcellsENDCX2Management_ExtIEs_specs_361      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_368 = {
+       sizeof(struct En_gNBServedCells_ExtIEs__extensionValue),
+       offsetof(struct En_gNBServedCells_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct En_gNBServedCells_ExtIEs__extensionValue, present),
+       sizeof(((struct En_gNBServedCells_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_368 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_368       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_En_gNBServedCells_ExtIEs_365[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNBServedCells_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_366, &asn_PER_memb_id_constr_366,  memb_id_constraint_365 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNBServedCells_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_367, &asn_PER_memb_criticality_constr_367,  memb_criticality_constraint_365 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNBServedCells_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_368,
+               0,
+               { &asn_OER_memb_extensionValue_constr_368, &asn_PER_memb_extensionValue_constr_368,  memb_extensionValue_constraint_365 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_En_gNBServedCells_ExtIEs_tags_365[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_En_gNBServedCells_ExtIEs_tag2el_365[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_En_gNBServedCells_ExtIEs_specs_365 = {
+       sizeof(struct En_gNBServedCells_ExtIEs),
+       offsetof(struct En_gNBServedCells_ExtIEs, _asn_ctx),
+       asn_MAP_En_gNBServedCells_ExtIEs_tag2el_365,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_En_gNBServedCells_ExtIEs = {
+       "En-gNBServedCells-ExtIEs",
+       "En-gNBServedCells-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_En_gNBServedCells_ExtIEs_tags_365,
+       sizeof(asn_DEF_En_gNBServedCells_ExtIEs_tags_365)
+               /sizeof(asn_DEF_En_gNBServedCells_ExtIEs_tags_365[0]), /* 1 */
+       asn_DEF_En_gNBServedCells_ExtIEs_tags_365,      /* Same as above */
+       sizeof(asn_DEF_En_gNBServedCells_ExtIEs_tags_365)
+               /sizeof(asn_DEF_En_gNBServedCells_ExtIEs_tags_365[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_En_gNBServedCells_ExtIEs_365,
+       3,      /* Elements count */
+       &asn_SPC_En_gNBServedCells_ExtIEs_specs_365     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_372 = {
+       sizeof(struct ServedNRCell_Information_ExtIEs__extensionValue),
+       offsetof(struct ServedNRCell_Information_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ServedNRCell_Information_ExtIEs__extensionValue, present),
+       sizeof(((struct ServedNRCell_Information_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_372 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_372       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ServedNRCell_Information_ExtIEs_369[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedNRCell_Information_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_370, &asn_PER_memb_id_constr_370,  memb_id_constraint_369 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedNRCell_Information_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_371, &asn_PER_memb_criticality_constr_371,  memb_criticality_constraint_369 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedNRCell_Information_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_372,
+               0,
+               { &asn_OER_memb_extensionValue_constr_372, &asn_PER_memb_extensionValue_constr_372,  memb_extensionValue_constraint_369 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedNRCell_Information_ExtIEs_tags_369[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ServedNRCell_Information_ExtIEs_tag2el_369[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ServedNRCell_Information_ExtIEs_specs_369 = {
+       sizeof(struct ServedNRCell_Information_ExtIEs),
+       offsetof(struct ServedNRCell_Information_ExtIEs, _asn_ctx),
+       asn_MAP_ServedNRCell_Information_ExtIEs_tag2el_369,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedNRCell_Information_ExtIEs = {
+       "ServedNRCell-Information-ExtIEs",
+       "ServedNRCell-Information-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ServedNRCell_Information_ExtIEs_tags_369,
+       sizeof(asn_DEF_ServedNRCell_Information_ExtIEs_tags_369)
+               /sizeof(asn_DEF_ServedNRCell_Information_ExtIEs_tags_369[0]), /* 1 */
+       asn_DEF_ServedNRCell_Information_ExtIEs_tags_369,       /* Same as above */
+       sizeof(asn_DEF_ServedNRCell_Information_ExtIEs_tags_369)
+               /sizeof(asn_DEF_ServedNRCell_Information_ExtIEs_tags_369[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ServedNRCell_Information_ExtIEs_369,
+       3,      /* Elements count */
+       &asn_SPC_ServedNRCell_Information_ExtIEs_specs_369      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_376 = {
+       sizeof(struct FDD_InfoServedNRCell_Information_ExtIEs__extensionValue),
+       offsetof(struct FDD_InfoServedNRCell_Information_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct FDD_InfoServedNRCell_Information_ExtIEs__extensionValue, present),
+       sizeof(((struct FDD_InfoServedNRCell_Information_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_376 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_376       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_FDD_InfoServedNRCell_Information_ExtIEs_373[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoServedNRCell_Information_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_374, &asn_PER_memb_id_constr_374,  memb_id_constraint_373 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoServedNRCell_Information_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_375, &asn_PER_memb_criticality_constr_375,  memb_criticality_constraint_373 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct FDD_InfoServedNRCell_Information_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_376,
+               0,
+               { &asn_OER_memb_extensionValue_constr_376, &asn_PER_memb_extensionValue_constr_376,  memb_extensionValue_constraint_373 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs_tags_373[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_FDD_InfoServedNRCell_Information_ExtIEs_tag2el_373[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_FDD_InfoServedNRCell_Information_ExtIEs_specs_373 = {
+       sizeof(struct FDD_InfoServedNRCell_Information_ExtIEs),
+       offsetof(struct FDD_InfoServedNRCell_Information_ExtIEs, _asn_ctx),
+       asn_MAP_FDD_InfoServedNRCell_Information_ExtIEs_tag2el_373,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs = {
+       "FDD-InfoServedNRCell-Information-ExtIEs",
+       "FDD-InfoServedNRCell-Information-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs_tags_373,
+       sizeof(asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs_tags_373)
+               /sizeof(asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs_tags_373[0]), /* 1 */
+       asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs_tags_373,       /* Same as above */
+       sizeof(asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs_tags_373)
+               /sizeof(asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs_tags_373[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_FDD_InfoServedNRCell_Information_ExtIEs_373,
+       3,      /* Elements count */
+       &asn_SPC_FDD_InfoServedNRCell_Information_ExtIEs_specs_373      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_380 = {
+       sizeof(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue),
+       offsetof(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue, present),
+       sizeof(((struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_380 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_380       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_377[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_378, &asn_PER_memb_id_constr_378,  memb_id_constraint_377 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_379, &asn_PER_memb_criticality_constr_379,  memb_criticality_constraint_377 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_380,
+               0,
+               { &asn_OER_memb_extensionValue_constr_380, &asn_PER_memb_extensionValue_constr_380,  memb_extensionValue_constraint_377 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_377[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tag2el_377[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_specs_377 = {
+       sizeof(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs),
+       offsetof(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs, _asn_ctx),
+       asn_MAP_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tag2el_377,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs = {
+       "FDD-InfoNeighbourServedNRCell-Information-ExtIEs",
+       "FDD-InfoNeighbourServedNRCell-Information-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_377,
+       sizeof(asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_377)
+               /sizeof(asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_377[0]), /* 1 */
+       asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_377,      /* Same as above */
+       sizeof(asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_377)
+               /sizeof(asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_377[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_377,
+       3,      /* Elements count */
+       &asn_SPC_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_specs_377     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_384 = {
+       sizeof(struct TDD_InfoServedNRCell_Information_ExtIEs__extensionValue),
+       offsetof(struct TDD_InfoServedNRCell_Information_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct TDD_InfoServedNRCell_Information_ExtIEs__extensionValue, present),
+       sizeof(((struct TDD_InfoServedNRCell_Information_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_384 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_384       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_TDD_InfoServedNRCell_Information_ExtIEs_381[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TDD_InfoServedNRCell_Information_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_382, &asn_PER_memb_id_constr_382,  memb_id_constraint_381 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TDD_InfoServedNRCell_Information_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_383, &asn_PER_memb_criticality_constr_383,  memb_criticality_constraint_381 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TDD_InfoServedNRCell_Information_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_384,
+               0,
+               { &asn_OER_memb_extensionValue_constr_384, &asn_PER_memb_extensionValue_constr_384,  memb_extensionValue_constraint_381 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs_tags_381[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TDD_InfoServedNRCell_Information_ExtIEs_tag2el_381[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TDD_InfoServedNRCell_Information_ExtIEs_specs_381 = {
+       sizeof(struct TDD_InfoServedNRCell_Information_ExtIEs),
+       offsetof(struct TDD_InfoServedNRCell_Information_ExtIEs, _asn_ctx),
+       asn_MAP_TDD_InfoServedNRCell_Information_ExtIEs_tag2el_381,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs = {
+       "TDD-InfoServedNRCell-Information-ExtIEs",
+       "TDD-InfoServedNRCell-Information-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs_tags_381,
+       sizeof(asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs_tags_381)
+               /sizeof(asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs_tags_381[0]), /* 1 */
+       asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs_tags_381,       /* Same as above */
+       sizeof(asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs_tags_381)
+               /sizeof(asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs_tags_381[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TDD_InfoServedNRCell_Information_ExtIEs_381,
+       3,      /* Elements count */
+       &asn_SPC_TDD_InfoServedNRCell_Information_ExtIEs_specs_381      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_388 = {
+       sizeof(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue),
+       offsetof(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue, present),
+       sizeof(((struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_388 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_388       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_385[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_386, &asn_PER_memb_id_constr_386,  memb_id_constraint_385 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_387, &asn_PER_memb_criticality_constr_387,  memb_criticality_constraint_385 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_388,
+               0,
+               { &asn_OER_memb_extensionValue_constr_388, &asn_PER_memb_extensionValue_constr_388,  memb_extensionValue_constraint_385 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_385[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tag2el_385[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_specs_385 = {
+       sizeof(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs),
+       offsetof(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs, _asn_ctx),
+       asn_MAP_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tag2el_385,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs = {
+       "TDD-InfoNeighbourServedNRCell-Information-ExtIEs",
+       "TDD-InfoNeighbourServedNRCell-Information-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_385,
+       sizeof(asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_385)
+               /sizeof(asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_385[0]), /* 1 */
+       asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_385,      /* Same as above */
+       sizeof(asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_385)
+               /sizeof(asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_385[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_385,
+       3,      /* Elements count */
+       &asn_SPC_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_specs_385     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_392 = {
+       sizeof(struct NRNeighbour_Information_ExtIEs__extensionValue),
+       offsetof(struct NRNeighbour_Information_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct NRNeighbour_Information_ExtIEs__extensionValue, present),
+       sizeof(((struct NRNeighbour_Information_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_392 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_392       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_NRNeighbour_Information_ExtIEs_389[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct NRNeighbour_Information_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_390, &asn_PER_memb_id_constr_390,  memb_id_constraint_389 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct NRNeighbour_Information_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_391, &asn_PER_memb_criticality_constr_391,  memb_criticality_constraint_389 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NRNeighbour_Information_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_392,
+               0,
+               { &asn_OER_memb_extensionValue_constr_392, &asn_PER_memb_extensionValue_constr_392,  memb_extensionValue_constraint_389 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_NRNeighbour_Information_ExtIEs_tags_389[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_NRNeighbour_Information_ExtIEs_tag2el_389[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_NRNeighbour_Information_ExtIEs_specs_389 = {
+       sizeof(struct NRNeighbour_Information_ExtIEs),
+       offsetof(struct NRNeighbour_Information_ExtIEs, _asn_ctx),
+       asn_MAP_NRNeighbour_Information_ExtIEs_tag2el_389,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_NRNeighbour_Information_ExtIEs = {
+       "NRNeighbour-Information-ExtIEs",
+       "NRNeighbour-Information-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_NRNeighbour_Information_ExtIEs_tags_389,
+       sizeof(asn_DEF_NRNeighbour_Information_ExtIEs_tags_389)
+               /sizeof(asn_DEF_NRNeighbour_Information_ExtIEs_tags_389[0]), /* 1 */
+       asn_DEF_NRNeighbour_Information_ExtIEs_tags_389,        /* Same as above */
+       sizeof(asn_DEF_NRNeighbour_Information_ExtIEs_tags_389)
+               /sizeof(asn_DEF_NRNeighbour_Information_ExtIEs_tags_389[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_NRNeighbour_Information_ExtIEs_389,
+       3,      /* Elements count */
+       &asn_SPC_NRNeighbour_Information_ExtIEs_specs_389       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_396 = {
+       sizeof(struct Limited_list_ExtIEs__extensionValue),
+       offsetof(struct Limited_list_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct Limited_list_ExtIEs__extensionValue, present),
+       sizeof(((struct Limited_list_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_396 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_396       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_Limited_list_ExtIEs_393[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct Limited_list_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_394, &asn_PER_memb_id_constr_394,  memb_id_constraint_393 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct Limited_list_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_395, &asn_PER_memb_criticality_constr_395,  memb_criticality_constraint_393 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Limited_list_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_396,
+               0,
+               { &asn_OER_memb_extensionValue_constr_396, &asn_PER_memb_extensionValue_constr_396,  memb_extensionValue_constraint_393 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_Limited_list_ExtIEs_tags_393[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_Limited_list_ExtIEs_tag2el_393[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_Limited_list_ExtIEs_specs_393 = {
+       sizeof(struct Limited_list_ExtIEs),
+       offsetof(struct Limited_list_ExtIEs, _asn_ctx),
+       asn_MAP_Limited_list_ExtIEs_tag2el_393,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_Limited_list_ExtIEs = {
+       "Limited-list-ExtIEs",
+       "Limited-list-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_Limited_list_ExtIEs_tags_393,
+       sizeof(asn_DEF_Limited_list_ExtIEs_tags_393)
+               /sizeof(asn_DEF_Limited_list_ExtIEs_tags_393[0]), /* 1 */
+       asn_DEF_Limited_list_ExtIEs_tags_393,   /* Same as above */
+       sizeof(asn_DEF_Limited_list_ExtIEs_tags_393)
+               /sizeof(asn_DEF_Limited_list_ExtIEs_tags_393[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_Limited_list_ExtIEs_393,
+       3,      /* Elements count */
+       &asn_SPC_Limited_list_ExtIEs_specs_393  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_400 = {
+       sizeof(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue),
+       offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue, present),
+       sizeof(((struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_400 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_400       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_397[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_398, &asn_PER_memb_id_constr_398,  memb_id_constraint_397 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_399, &asn_PER_memb_criticality_constr_399,  memb_criticality_constraint_397 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_400,
+               0,
+               { &asn_OER_memb_extensionValue_constr_400, &asn_PER_memb_extensionValue_constr_400,  memb_extensionValue_constraint_397 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tags_397[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tag2el_397[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_specs_397 = {
+       sizeof(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs),
+       offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs, _asn_ctx),
+       asn_MAP_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tag2el_397,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs = {
+       "ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs",
+       "ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tags_397,
+       sizeof(asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tags_397)
+               /sizeof(asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tags_397[0]), /* 1 */
+       asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tags_397,        /* Same as above */
+       sizeof(asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tags_397)
+               /sizeof(asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tags_397[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_397,
+       3,      /* Elements count */
+       &asn_SPC_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_specs_397       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_404 = {
+       sizeof(struct ServedNRCellsToModify_Item_ExtIEs__extensionValue),
+       offsetof(struct ServedNRCellsToModify_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ServedNRCellsToModify_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct ServedNRCellsToModify_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_404 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_404       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ServedNRCellsToModify_Item_ExtIEs_401[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToModify_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_402, &asn_PER_memb_id_constr_402,  memb_id_constraint_401 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToModify_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_403, &asn_PER_memb_criticality_constr_403,  memb_criticality_constraint_401 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToModify_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_404,
+               0,
+               { &asn_OER_memb_extensionValue_constr_404, &asn_PER_memb_extensionValue_constr_404,  memb_extensionValue_constraint_401 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedNRCellsToModify_Item_ExtIEs_tags_401[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ServedNRCellsToModify_Item_ExtIEs_tag2el_401[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ServedNRCellsToModify_Item_ExtIEs_specs_401 = {
+       sizeof(struct ServedNRCellsToModify_Item_ExtIEs),
+       offsetof(struct ServedNRCellsToModify_Item_ExtIEs, _asn_ctx),
+       asn_MAP_ServedNRCellsToModify_Item_ExtIEs_tag2el_401,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToModify_Item_ExtIEs = {
+       "ServedNRCellsToModify-Item-ExtIEs",
+       "ServedNRCellsToModify-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ServedNRCellsToModify_Item_ExtIEs_tags_401,
+       sizeof(asn_DEF_ServedNRCellsToModify_Item_ExtIEs_tags_401)
+               /sizeof(asn_DEF_ServedNRCellsToModify_Item_ExtIEs_tags_401[0]), /* 1 */
+       asn_DEF_ServedNRCellsToModify_Item_ExtIEs_tags_401,     /* Same as above */
+       sizeof(asn_DEF_ServedNRCellsToModify_Item_ExtIEs_tags_401)
+               /sizeof(asn_DEF_ServedNRCellsToModify_Item_ExtIEs_tags_401[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ServedNRCellsToModify_Item_ExtIEs_401,
+       3,      /* Elements count */
+       &asn_SPC_ServedNRCellsToModify_Item_ExtIEs_specs_401    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_408 = {
+       sizeof(struct ServedNRCellsToActivate_Item_ExtIEs__extensionValue),
+       offsetof(struct ServedNRCellsToActivate_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ServedNRCellsToActivate_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct ServedNRCellsToActivate_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_408 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_408       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ServedNRCellsToActivate_Item_ExtIEs_405[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToActivate_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_406, &asn_PER_memb_id_constr_406,  memb_id_constraint_405 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToActivate_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_407, &asn_PER_memb_criticality_constr_407,  memb_criticality_constraint_405 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToActivate_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_408,
+               0,
+               { &asn_OER_memb_extensionValue_constr_408, &asn_PER_memb_extensionValue_constr_408,  memb_extensionValue_constraint_405 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedNRCellsToActivate_Item_ExtIEs_tags_405[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ServedNRCellsToActivate_Item_ExtIEs_tag2el_405[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ServedNRCellsToActivate_Item_ExtIEs_specs_405 = {
+       sizeof(struct ServedNRCellsToActivate_Item_ExtIEs),
+       offsetof(struct ServedNRCellsToActivate_Item_ExtIEs, _asn_ctx),
+       asn_MAP_ServedNRCellsToActivate_Item_ExtIEs_tag2el_405,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToActivate_Item_ExtIEs = {
+       "ServedNRCellsToActivate-Item-ExtIEs",
+       "ServedNRCellsToActivate-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ServedNRCellsToActivate_Item_ExtIEs_tags_405,
+       sizeof(asn_DEF_ServedNRCellsToActivate_Item_ExtIEs_tags_405)
+               /sizeof(asn_DEF_ServedNRCellsToActivate_Item_ExtIEs_tags_405[0]), /* 1 */
+       asn_DEF_ServedNRCellsToActivate_Item_ExtIEs_tags_405,   /* Same as above */
+       sizeof(asn_DEF_ServedNRCellsToActivate_Item_ExtIEs_tags_405)
+               /sizeof(asn_DEF_ServedNRCellsToActivate_Item_ExtIEs_tags_405[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ServedNRCellsToActivate_Item_ExtIEs_405,
+       3,      /* Elements count */
+       &asn_SPC_ServedNRCellsToActivate_Item_ExtIEs_specs_405  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_412 = {
+       sizeof(struct ActivatedNRCellList_Item_ExtIEs__extensionValue),
+       offsetof(struct ActivatedNRCellList_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ActivatedNRCellList_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct ActivatedNRCellList_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_412 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_412       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ActivatedNRCellList_Item_ExtIEs_409[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ActivatedNRCellList_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_410, &asn_PER_memb_id_constr_410,  memb_id_constraint_409 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ActivatedNRCellList_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_411, &asn_PER_memb_criticality_constr_411,  memb_criticality_constraint_409 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ActivatedNRCellList_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_412,
+               0,
+               { &asn_OER_memb_extensionValue_constr_412, &asn_PER_memb_extensionValue_constr_412,  memb_extensionValue_constraint_409 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ActivatedNRCellList_Item_ExtIEs_tags_409[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ActivatedNRCellList_Item_ExtIEs_tag2el_409[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ActivatedNRCellList_Item_ExtIEs_specs_409 = {
+       sizeof(struct ActivatedNRCellList_Item_ExtIEs),
+       offsetof(struct ActivatedNRCellList_Item_ExtIEs, _asn_ctx),
+       asn_MAP_ActivatedNRCellList_Item_ExtIEs_tag2el_409,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ActivatedNRCellList_Item_ExtIEs = {
+       "ActivatedNRCellList-Item-ExtIEs",
+       "ActivatedNRCellList-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ActivatedNRCellList_Item_ExtIEs_tags_409,
+       sizeof(asn_DEF_ActivatedNRCellList_Item_ExtIEs_tags_409)
+               /sizeof(asn_DEF_ActivatedNRCellList_Item_ExtIEs_tags_409[0]), /* 1 */
+       asn_DEF_ActivatedNRCellList_Item_ExtIEs_tags_409,       /* Same as above */
+       sizeof(asn_DEF_ActivatedNRCellList_Item_ExtIEs_tags_409)
+               /sizeof(asn_DEF_ActivatedNRCellList_Item_ExtIEs_tags_409[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ActivatedNRCellList_Item_ExtIEs_409,
+       3,      /* Elements count */
+       &asn_SPC_ActivatedNRCellList_Item_ExtIEs_specs_409      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_416 = {
+       sizeof(struct E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue),
+       offsetof(struct E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue, present),
+       sizeof(((struct E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_416 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_416       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_DataForwardingAddress_ItemExtIEs_413[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_ItemExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_414, &asn_PER_memb_id_constr_414,  memb_id_constraint_413 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_ItemExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_415, &asn_PER_memb_criticality_constr_415,  memb_criticality_constraint_413 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_ItemExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_416,
+               0,
+               { &asn_OER_memb_extensionValue_constr_416, &asn_PER_memb_extensionValue_constr_416,  memb_extensionValue_constraint_413 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs_tags_413[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_DataForwardingAddress_ItemExtIEs_tag2el_413[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_DataForwardingAddress_ItemExtIEs_specs_413 = {
+       sizeof(struct E_RABs_DataForwardingAddress_ItemExtIEs),
+       offsetof(struct E_RABs_DataForwardingAddress_ItemExtIEs, _asn_ctx),
+       asn_MAP_E_RABs_DataForwardingAddress_ItemExtIEs_tag2el_413,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs = {
+       "E-RABs-DataForwardingAddress-ItemExtIEs",
+       "E-RABs-DataForwardingAddress-ItemExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs_tags_413,
+       sizeof(asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs_tags_413)
+               /sizeof(asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs_tags_413[0]), /* 1 */
+       asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs_tags_413,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs_tags_413)
+               /sizeof(asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs_tags_413[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_DataForwardingAddress_ItemExtIEs_413,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_DataForwardingAddress_ItemExtIEs_specs_413      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_420 = {
+       sizeof(struct ABSInformationFDD_ExtIEs__extensionValue),
+       offsetof(struct ABSInformationFDD_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ABSInformationFDD_ExtIEs__extensionValue, present),
+       sizeof(((struct ABSInformationFDD_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_420 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_420       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ABSInformationFDD_ExtIEs_417[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ABSInformationFDD_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_418, &asn_PER_memb_id_constr_418,  memb_id_constraint_417 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ABSInformationFDD_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_419, &asn_PER_memb_criticality_constr_419,  memb_criticality_constraint_417 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ABSInformationFDD_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_420,
+               0,
+               { &asn_OER_memb_extensionValue_constr_420, &asn_PER_memb_extensionValue_constr_420,  memb_extensionValue_constraint_417 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ABSInformationFDD_ExtIEs_tags_417[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ABSInformationFDD_ExtIEs_tag2el_417[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ABSInformationFDD_ExtIEs_specs_417 = {
+       sizeof(struct ABSInformationFDD_ExtIEs),
+       offsetof(struct ABSInformationFDD_ExtIEs, _asn_ctx),
+       asn_MAP_ABSInformationFDD_ExtIEs_tag2el_417,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ABSInformationFDD_ExtIEs = {
+       "ABSInformationFDD-ExtIEs",
+       "ABSInformationFDD-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ABSInformationFDD_ExtIEs_tags_417,
+       sizeof(asn_DEF_ABSInformationFDD_ExtIEs_tags_417)
+               /sizeof(asn_DEF_ABSInformationFDD_ExtIEs_tags_417[0]), /* 1 */
+       asn_DEF_ABSInformationFDD_ExtIEs_tags_417,      /* Same as above */
+       sizeof(asn_DEF_ABSInformationFDD_ExtIEs_tags_417)
+               /sizeof(asn_DEF_ABSInformationFDD_ExtIEs_tags_417[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ABSInformationFDD_ExtIEs_417,
+       3,      /* Elements count */
+       &asn_SPC_ABSInformationFDD_ExtIEs_specs_417     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_424 = {
+       sizeof(struct ABSInformationTDD_ExtIEs__extensionValue),
+       offsetof(struct ABSInformationTDD_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ABSInformationTDD_ExtIEs__extensionValue, present),
+       sizeof(((struct ABSInformationTDD_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_424 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_424       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ABSInformationTDD_ExtIEs_421[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ABSInformationTDD_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_422, &asn_PER_memb_id_constr_422,  memb_id_constraint_421 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ABSInformationTDD_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_423, &asn_PER_memb_criticality_constr_423,  memb_criticality_constraint_421 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ABSInformationTDD_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_424,
+               0,
+               { &asn_OER_memb_extensionValue_constr_424, &asn_PER_memb_extensionValue_constr_424,  memb_extensionValue_constraint_421 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ABSInformationTDD_ExtIEs_tags_421[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ABSInformationTDD_ExtIEs_tag2el_421[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ABSInformationTDD_ExtIEs_specs_421 = {
+       sizeof(struct ABSInformationTDD_ExtIEs),
+       offsetof(struct ABSInformationTDD_ExtIEs, _asn_ctx),
+       asn_MAP_ABSInformationTDD_ExtIEs_tag2el_421,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ABSInformationTDD_ExtIEs = {
+       "ABSInformationTDD-ExtIEs",
+       "ABSInformationTDD-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ABSInformationTDD_ExtIEs_tags_421,
+       sizeof(asn_DEF_ABSInformationTDD_ExtIEs_tags_421)
+               /sizeof(asn_DEF_ABSInformationTDD_ExtIEs_tags_421[0]), /* 1 */
+       asn_DEF_ABSInformationTDD_ExtIEs_tags_421,      /* Same as above */
+       sizeof(asn_DEF_ABSInformationTDD_ExtIEs_tags_421)
+               /sizeof(asn_DEF_ABSInformationTDD_ExtIEs_tags_421[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ABSInformationTDD_ExtIEs_421,
+       3,      /* Elements count */
+       &asn_SPC_ABSInformationTDD_ExtIEs_specs_421     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_428 = {
+       sizeof(struct ABS_Status_ExtIEs__extensionValue),
+       offsetof(struct ABS_Status_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ABS_Status_ExtIEs__extensionValue, present),
+       sizeof(((struct ABS_Status_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_428 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_428       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ABS_Status_ExtIEs_425[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ABS_Status_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_426, &asn_PER_memb_id_constr_426,  memb_id_constraint_425 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ABS_Status_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_427, &asn_PER_memb_criticality_constr_427,  memb_criticality_constraint_425 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ABS_Status_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_428,
+               0,
+               { &asn_OER_memb_extensionValue_constr_428, &asn_PER_memb_extensionValue_constr_428,  memb_extensionValue_constraint_425 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ABS_Status_ExtIEs_tags_425[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ABS_Status_ExtIEs_tag2el_425[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ABS_Status_ExtIEs_specs_425 = {
+       sizeof(struct ABS_Status_ExtIEs),
+       offsetof(struct ABS_Status_ExtIEs, _asn_ctx),
+       asn_MAP_ABS_Status_ExtIEs_tag2el_425,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ABS_Status_ExtIEs = {
+       "ABS-Status-ExtIEs",
+       "ABS-Status-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ABS_Status_ExtIEs_tags_425,
+       sizeof(asn_DEF_ABS_Status_ExtIEs_tags_425)
+               /sizeof(asn_DEF_ABS_Status_ExtIEs_tags_425[0]), /* 1 */
+       asn_DEF_ABS_Status_ExtIEs_tags_425,     /* Same as above */
+       sizeof(asn_DEF_ABS_Status_ExtIEs_tags_425)
+               /sizeof(asn_DEF_ABS_Status_ExtIEs_tags_425[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ABS_Status_ExtIEs_425,
+       3,      /* Elements count */
+       &asn_SPC_ABS_Status_ExtIEs_specs_425    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_432 = {
+       sizeof(struct AdditionalSpecialSubframe_Info_ExtIEs__extensionValue),
+       offsetof(struct AdditionalSpecialSubframe_Info_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct AdditionalSpecialSubframe_Info_ExtIEs__extensionValue, present),
+       sizeof(((struct AdditionalSpecialSubframe_Info_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_432 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_432       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_AdditionalSpecialSubframe_Info_ExtIEs_429[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframe_Info_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_430, &asn_PER_memb_id_constr_430,  memb_id_constraint_429 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframe_Info_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_431, &asn_PER_memb_criticality_constr_431,  memb_criticality_constraint_429 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframe_Info_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_432,
+               0,
+               { &asn_OER_memb_extensionValue_constr_432, &asn_PER_memb_extensionValue_constr_432,  memb_extensionValue_constraint_429 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs_tags_429[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_AdditionalSpecialSubframe_Info_ExtIEs_tag2el_429[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_AdditionalSpecialSubframe_Info_ExtIEs_specs_429 = {
+       sizeof(struct AdditionalSpecialSubframe_Info_ExtIEs),
+       offsetof(struct AdditionalSpecialSubframe_Info_ExtIEs, _asn_ctx),
+       asn_MAP_AdditionalSpecialSubframe_Info_ExtIEs_tag2el_429,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs = {
+       "AdditionalSpecialSubframe-Info-ExtIEs",
+       "AdditionalSpecialSubframe-Info-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs_tags_429,
+       sizeof(asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs_tags_429)
+               /sizeof(asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs_tags_429[0]), /* 1 */
+       asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs_tags_429, /* Same as above */
+       sizeof(asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs_tags_429)
+               /sizeof(asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs_tags_429[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_AdditionalSpecialSubframe_Info_ExtIEs_429,
+       3,      /* Elements count */
+       &asn_SPC_AdditionalSpecialSubframe_Info_ExtIEs_specs_429        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_436 = {
+       sizeof(struct AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue),
+       offsetof(struct AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue, present),
+       sizeof(((struct AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_436 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_436       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_AdditionalSpecialSubframeExtension_Info_ExtIEs_433[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframeExtension_Info_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_434, &asn_PER_memb_id_constr_434,  memb_id_constraint_433 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframeExtension_Info_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_435, &asn_PER_memb_criticality_constr_435,  memb_criticality_constraint_433 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframeExtension_Info_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_436,
+               0,
+               { &asn_OER_memb_extensionValue_constr_436, &asn_PER_memb_extensionValue_constr_436,  memb_extensionValue_constraint_433 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs_tags_433[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_AdditionalSpecialSubframeExtension_Info_ExtIEs_tag2el_433[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_AdditionalSpecialSubframeExtension_Info_ExtIEs_specs_433 = {
+       sizeof(struct AdditionalSpecialSubframeExtension_Info_ExtIEs),
+       offsetof(struct AdditionalSpecialSubframeExtension_Info_ExtIEs, _asn_ctx),
+       asn_MAP_AdditionalSpecialSubframeExtension_Info_ExtIEs_tag2el_433,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs = {
+       "AdditionalSpecialSubframeExtension-Info-ExtIEs",
+       "AdditionalSpecialSubframeExtension-Info-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs_tags_433,
+       sizeof(asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs_tags_433)
+               /sizeof(asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs_tags_433[0]), /* 1 */
+       asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs_tags_433,        /* Same as above */
+       sizeof(asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs_tags_433)
+               /sizeof(asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs_tags_433[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_AdditionalSpecialSubframeExtension_Info_ExtIEs_433,
+       3,      /* Elements count */
+       &asn_SPC_AdditionalSpecialSubframeExtension_Info_ExtIEs_specs_433       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_440 = {
+       sizeof(struct AllocationAndRetentionPriority_ExtIEs__extensionValue),
+       offsetof(struct AllocationAndRetentionPriority_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct AllocationAndRetentionPriority_ExtIEs__extensionValue, present),
+       sizeof(((struct AllocationAndRetentionPriority_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_440 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_440       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_AllocationAndRetentionPriority_ExtIEs_437[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct AllocationAndRetentionPriority_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_438, &asn_PER_memb_id_constr_438,  memb_id_constraint_437 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct AllocationAndRetentionPriority_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_439, &asn_PER_memb_criticality_constr_439,  memb_criticality_constraint_437 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct AllocationAndRetentionPriority_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_440,
+               0,
+               { &asn_OER_memb_extensionValue_constr_440, &asn_PER_memb_extensionValue_constr_440,  memb_extensionValue_constraint_437 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_437[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_AllocationAndRetentionPriority_ExtIEs_tag2el_437[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_AllocationAndRetentionPriority_ExtIEs_specs_437 = {
+       sizeof(struct AllocationAndRetentionPriority_ExtIEs),
+       offsetof(struct AllocationAndRetentionPriority_ExtIEs, _asn_ctx),
+       asn_MAP_AllocationAndRetentionPriority_ExtIEs_tag2el_437,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_AllocationAndRetentionPriority_ExtIEs = {
+       "AllocationAndRetentionPriority-ExtIEs",
+       "AllocationAndRetentionPriority-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_437,
+       sizeof(asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_437)
+               /sizeof(asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_437[0]), /* 1 */
+       asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_437, /* Same as above */
+       sizeof(asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_437)
+               /sizeof(asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_437[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_AllocationAndRetentionPriority_ExtIEs_437,
+       3,      /* Elements count */
+       &asn_SPC_AllocationAndRetentionPriority_ExtIEs_specs_437        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_444 = {
+       sizeof(struct AS_SecurityInformation_ExtIEs__extensionValue),
+       offsetof(struct AS_SecurityInformation_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct AS_SecurityInformation_ExtIEs__extensionValue, present),
+       sizeof(((struct AS_SecurityInformation_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_444 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_444       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_AS_SecurityInformation_ExtIEs_441[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct AS_SecurityInformation_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_442, &asn_PER_memb_id_constr_442,  memb_id_constraint_441 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct AS_SecurityInformation_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_443, &asn_PER_memb_criticality_constr_443,  memb_criticality_constraint_441 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct AS_SecurityInformation_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_444,
+               0,
+               { &asn_OER_memb_extensionValue_constr_444, &asn_PER_memb_extensionValue_constr_444,  memb_extensionValue_constraint_441 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_AS_SecurityInformation_ExtIEs_tags_441[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_AS_SecurityInformation_ExtIEs_tag2el_441[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_AS_SecurityInformation_ExtIEs_specs_441 = {
+       sizeof(struct AS_SecurityInformation_ExtIEs),
+       offsetof(struct AS_SecurityInformation_ExtIEs, _asn_ctx),
+       asn_MAP_AS_SecurityInformation_ExtIEs_tag2el_441,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_AS_SecurityInformation_ExtIEs = {
+       "AS-SecurityInformation-ExtIEs",
+       "AS-SecurityInformation-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_AS_SecurityInformation_ExtIEs_tags_441,
+       sizeof(asn_DEF_AS_SecurityInformation_ExtIEs_tags_441)
+               /sizeof(asn_DEF_AS_SecurityInformation_ExtIEs_tags_441[0]), /* 1 */
+       asn_DEF_AS_SecurityInformation_ExtIEs_tags_441, /* Same as above */
+       sizeof(asn_DEF_AS_SecurityInformation_ExtIEs_tags_441)
+               /sizeof(asn_DEF_AS_SecurityInformation_ExtIEs_tags_441[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_AS_SecurityInformation_ExtIEs_441,
+       3,      /* Elements count */
+       &asn_SPC_AS_SecurityInformation_ExtIEs_specs_441        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_448 = {
+       sizeof(struct BluetoothMeasurementConfiguration_ExtIEs__extensionValue),
+       offsetof(struct BluetoothMeasurementConfiguration_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct BluetoothMeasurementConfiguration_ExtIEs__extensionValue, present),
+       sizeof(((struct BluetoothMeasurementConfiguration_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_448 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_448       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_BluetoothMeasurementConfiguration_ExtIEs_445[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct BluetoothMeasurementConfiguration_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_446, &asn_PER_memb_id_constr_446,  memb_id_constraint_445 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct BluetoothMeasurementConfiguration_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_447, &asn_PER_memb_criticality_constr_447,  memb_criticality_constraint_445 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct BluetoothMeasurementConfiguration_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_448,
+               0,
+               { &asn_OER_memb_extensionValue_constr_448, &asn_PER_memb_extensionValue_constr_448,  memb_extensionValue_constraint_445 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_BluetoothMeasurementConfiguration_ExtIEs_tags_445[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_BluetoothMeasurementConfiguration_ExtIEs_tag2el_445[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_BluetoothMeasurementConfiguration_ExtIEs_specs_445 = {
+       sizeof(struct BluetoothMeasurementConfiguration_ExtIEs),
+       offsetof(struct BluetoothMeasurementConfiguration_ExtIEs, _asn_ctx),
+       asn_MAP_BluetoothMeasurementConfiguration_ExtIEs_tag2el_445,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_BluetoothMeasurementConfiguration_ExtIEs = {
+       "BluetoothMeasurementConfiguration-ExtIEs",
+       "BluetoothMeasurementConfiguration-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_BluetoothMeasurementConfiguration_ExtIEs_tags_445,
+       sizeof(asn_DEF_BluetoothMeasurementConfiguration_ExtIEs_tags_445)
+               /sizeof(asn_DEF_BluetoothMeasurementConfiguration_ExtIEs_tags_445[0]), /* 1 */
+       asn_DEF_BluetoothMeasurementConfiguration_ExtIEs_tags_445,      /* Same as above */
+       sizeof(asn_DEF_BluetoothMeasurementConfiguration_ExtIEs_tags_445)
+               /sizeof(asn_DEF_BluetoothMeasurementConfiguration_ExtIEs_tags_445[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_BluetoothMeasurementConfiguration_ExtIEs_445,
+       3,      /* Elements count */
+       &asn_SPC_BluetoothMeasurementConfiguration_ExtIEs_specs_445     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_452 = {
+       sizeof(struct CellBasedMDT_ExtIEs__extensionValue),
+       offsetof(struct CellBasedMDT_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CellBasedMDT_ExtIEs__extensionValue, present),
+       sizeof(((struct CellBasedMDT_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_452 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_452       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CellBasedMDT_ExtIEs_449[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellBasedMDT_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_450, &asn_PER_memb_id_constr_450,  memb_id_constraint_449 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellBasedMDT_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_451, &asn_PER_memb_criticality_constr_451,  memb_criticality_constraint_449 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellBasedMDT_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_452,
+               0,
+               { &asn_OER_memb_extensionValue_constr_452, &asn_PER_memb_extensionValue_constr_452,  memb_extensionValue_constraint_449 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellBasedMDT_ExtIEs_tags_449[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellBasedMDT_ExtIEs_tag2el_449[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellBasedMDT_ExtIEs_specs_449 = {
+       sizeof(struct CellBasedMDT_ExtIEs),
+       offsetof(struct CellBasedMDT_ExtIEs, _asn_ctx),
+       asn_MAP_CellBasedMDT_ExtIEs_tag2el_449,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellBasedMDT_ExtIEs = {
+       "CellBasedMDT-ExtIEs",
+       "CellBasedMDT-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellBasedMDT_ExtIEs_tags_449,
+       sizeof(asn_DEF_CellBasedMDT_ExtIEs_tags_449)
+               /sizeof(asn_DEF_CellBasedMDT_ExtIEs_tags_449[0]), /* 1 */
+       asn_DEF_CellBasedMDT_ExtIEs_tags_449,   /* Same as above */
+       sizeof(asn_DEF_CellBasedMDT_ExtIEs_tags_449)
+               /sizeof(asn_DEF_CellBasedMDT_ExtIEs_tags_449[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellBasedMDT_ExtIEs_449,
+       3,      /* Elements count */
+       &asn_SPC_CellBasedMDT_ExtIEs_specs_449  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_456 = {
+       sizeof(struct CellBasedQMC_ExtIEs__extensionValue),
+       offsetof(struct CellBasedQMC_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CellBasedQMC_ExtIEs__extensionValue, present),
+       sizeof(((struct CellBasedQMC_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_456 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_456       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CellBasedQMC_ExtIEs_453[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellBasedQMC_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_454, &asn_PER_memb_id_constr_454,  memb_id_constraint_453 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellBasedQMC_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_455, &asn_PER_memb_criticality_constr_455,  memb_criticality_constraint_453 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellBasedQMC_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_456,
+               0,
+               { &asn_OER_memb_extensionValue_constr_456, &asn_PER_memb_extensionValue_constr_456,  memb_extensionValue_constraint_453 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellBasedQMC_ExtIEs_tags_453[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellBasedQMC_ExtIEs_tag2el_453[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellBasedQMC_ExtIEs_specs_453 = {
+       sizeof(struct CellBasedQMC_ExtIEs),
+       offsetof(struct CellBasedQMC_ExtIEs, _asn_ctx),
+       asn_MAP_CellBasedQMC_ExtIEs_tag2el_453,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellBasedQMC_ExtIEs = {
+       "CellBasedQMC-ExtIEs",
+       "CellBasedQMC-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellBasedQMC_ExtIEs_tags_453,
+       sizeof(asn_DEF_CellBasedQMC_ExtIEs_tags_453)
+               /sizeof(asn_DEF_CellBasedQMC_ExtIEs_tags_453[0]), /* 1 */
+       asn_DEF_CellBasedQMC_ExtIEs_tags_453,   /* Same as above */
+       sizeof(asn_DEF_CellBasedQMC_ExtIEs_tags_453)
+               /sizeof(asn_DEF_CellBasedQMC_ExtIEs_tags_453[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellBasedQMC_ExtIEs_453,
+       3,      /* Elements count */
+       &asn_SPC_CellBasedQMC_ExtIEs_specs_453  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_460 = {
+       sizeof(struct CellReplacingInfo_ExtIEs__extensionValue),
+       offsetof(struct CellReplacingInfo_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CellReplacingInfo_ExtIEs__extensionValue, present),
+       sizeof(((struct CellReplacingInfo_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_460 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_460       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CellReplacingInfo_ExtIEs_457[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellReplacingInfo_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_458, &asn_PER_memb_id_constr_458,  memb_id_constraint_457 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellReplacingInfo_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_459, &asn_PER_memb_criticality_constr_459,  memb_criticality_constraint_457 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellReplacingInfo_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_460,
+               0,
+               { &asn_OER_memb_extensionValue_constr_460, &asn_PER_memb_extensionValue_constr_460,  memb_extensionValue_constraint_457 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellReplacingInfo_ExtIEs_tags_457[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellReplacingInfo_ExtIEs_tag2el_457[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellReplacingInfo_ExtIEs_specs_457 = {
+       sizeof(struct CellReplacingInfo_ExtIEs),
+       offsetof(struct CellReplacingInfo_ExtIEs, _asn_ctx),
+       asn_MAP_CellReplacingInfo_ExtIEs_tag2el_457,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellReplacingInfo_ExtIEs = {
+       "CellReplacingInfo-ExtIEs",
+       "CellReplacingInfo-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellReplacingInfo_ExtIEs_tags_457,
+       sizeof(asn_DEF_CellReplacingInfo_ExtIEs_tags_457)
+               /sizeof(asn_DEF_CellReplacingInfo_ExtIEs_tags_457[0]), /* 1 */
+       asn_DEF_CellReplacingInfo_ExtIEs_tags_457,      /* Same as above */
+       sizeof(asn_DEF_CellReplacingInfo_ExtIEs_tags_457)
+               /sizeof(asn_DEF_CellReplacingInfo_ExtIEs_tags_457[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellReplacingInfo_ExtIEs_457,
+       3,      /* Elements count */
+       &asn_SPC_CellReplacingInfo_ExtIEs_specs_457     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_464 = {
+       sizeof(struct CellType_ExtIEs__extensionValue),
+       offsetof(struct CellType_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CellType_ExtIEs__extensionValue, present),
+       sizeof(((struct CellType_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_464 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_464       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CellType_ExtIEs_461[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellType_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_462, &asn_PER_memb_id_constr_462,  memb_id_constraint_461 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellType_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_463, &asn_PER_memb_criticality_constr_463,  memb_criticality_constraint_461 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellType_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_464,
+               0,
+               { &asn_OER_memb_extensionValue_constr_464, &asn_PER_memb_extensionValue_constr_464,  memb_extensionValue_constraint_461 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellType_ExtIEs_tags_461[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellType_ExtIEs_tag2el_461[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellType_ExtIEs_specs_461 = {
+       sizeof(struct CellType_ExtIEs),
+       offsetof(struct CellType_ExtIEs, _asn_ctx),
+       asn_MAP_CellType_ExtIEs_tag2el_461,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellType_ExtIEs = {
+       "CellType-ExtIEs",
+       "CellType-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellType_ExtIEs_tags_461,
+       sizeof(asn_DEF_CellType_ExtIEs_tags_461)
+               /sizeof(asn_DEF_CellType_ExtIEs_tags_461[0]), /* 1 */
+       asn_DEF_CellType_ExtIEs_tags_461,       /* Same as above */
+       sizeof(asn_DEF_CellType_ExtIEs_tags_461)
+               /sizeof(asn_DEF_CellType_ExtIEs_tags_461[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellType_ExtIEs_461,
+       3,      /* Elements count */
+       &asn_SPC_CellType_ExtIEs_specs_461      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_468 = {
+       sizeof(struct CNTypeRestrictionsItem_ExtIEs__extensionValue),
+       offsetof(struct CNTypeRestrictionsItem_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CNTypeRestrictionsItem_ExtIEs__extensionValue, present),
+       sizeof(((struct CNTypeRestrictionsItem_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_468 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_468       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CNTypeRestrictionsItem_ExtIEs_465[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CNTypeRestrictionsItem_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_466, &asn_PER_memb_id_constr_466,  memb_id_constraint_465 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CNTypeRestrictionsItem_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_467, &asn_PER_memb_criticality_constr_467,  memb_criticality_constraint_465 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CNTypeRestrictionsItem_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_468,
+               0,
+               { &asn_OER_memb_extensionValue_constr_468, &asn_PER_memb_extensionValue_constr_468,  memb_extensionValue_constraint_465 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CNTypeRestrictionsItem_ExtIEs_tags_465[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CNTypeRestrictionsItem_ExtIEs_tag2el_465[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CNTypeRestrictionsItem_ExtIEs_specs_465 = {
+       sizeof(struct CNTypeRestrictionsItem_ExtIEs),
+       offsetof(struct CNTypeRestrictionsItem_ExtIEs, _asn_ctx),
+       asn_MAP_CNTypeRestrictionsItem_ExtIEs_tag2el_465,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CNTypeRestrictionsItem_ExtIEs = {
+       "CNTypeRestrictionsItem-ExtIEs",
+       "CNTypeRestrictionsItem-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CNTypeRestrictionsItem_ExtIEs_tags_465,
+       sizeof(asn_DEF_CNTypeRestrictionsItem_ExtIEs_tags_465)
+               /sizeof(asn_DEF_CNTypeRestrictionsItem_ExtIEs_tags_465[0]), /* 1 */
+       asn_DEF_CNTypeRestrictionsItem_ExtIEs_tags_465, /* Same as above */
+       sizeof(asn_DEF_CNTypeRestrictionsItem_ExtIEs_tags_465)
+               /sizeof(asn_DEF_CNTypeRestrictionsItem_ExtIEs_tags_465[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CNTypeRestrictionsItem_ExtIEs_465,
+       3,      /* Elements count */
+       &asn_SPC_CNTypeRestrictionsItem_ExtIEs_specs_465        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_472 = {
+       sizeof(struct CoMPHypothesisSetItem_ExtIEs__extensionValue),
+       offsetof(struct CoMPHypothesisSetItem_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CoMPHypothesisSetItem_ExtIEs__extensionValue, present),
+       sizeof(((struct CoMPHypothesisSetItem_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_472 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_472       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CoMPHypothesisSetItem_ExtIEs_469[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CoMPHypothesisSetItem_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_470, &asn_PER_memb_id_constr_470,  memb_id_constraint_469 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CoMPHypothesisSetItem_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_471, &asn_PER_memb_criticality_constr_471,  memb_criticality_constraint_469 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CoMPHypothesisSetItem_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_472,
+               0,
+               { &asn_OER_memb_extensionValue_constr_472, &asn_PER_memb_extensionValue_constr_472,  memb_extensionValue_constraint_469 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CoMPHypothesisSetItem_ExtIEs_tags_469[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CoMPHypothesisSetItem_ExtIEs_tag2el_469[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CoMPHypothesisSetItem_ExtIEs_specs_469 = {
+       sizeof(struct CoMPHypothesisSetItem_ExtIEs),
+       offsetof(struct CoMPHypothesisSetItem_ExtIEs, _asn_ctx),
+       asn_MAP_CoMPHypothesisSetItem_ExtIEs_tag2el_469,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CoMPHypothesisSetItem_ExtIEs = {
+       "CoMPHypothesisSetItem-ExtIEs",
+       "CoMPHypothesisSetItem-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CoMPHypothesisSetItem_ExtIEs_tags_469,
+       sizeof(asn_DEF_CoMPHypothesisSetItem_ExtIEs_tags_469)
+               /sizeof(asn_DEF_CoMPHypothesisSetItem_ExtIEs_tags_469[0]), /* 1 */
+       asn_DEF_CoMPHypothesisSetItem_ExtIEs_tags_469,  /* Same as above */
+       sizeof(asn_DEF_CoMPHypothesisSetItem_ExtIEs_tags_469)
+               /sizeof(asn_DEF_CoMPHypothesisSetItem_ExtIEs_tags_469[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CoMPHypothesisSetItem_ExtIEs_469,
+       3,      /* Elements count */
+       &asn_SPC_CoMPHypothesisSetItem_ExtIEs_specs_469 /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_476 = {
+       sizeof(struct CoMPInformation_ExtIEs__extensionValue),
+       offsetof(struct CoMPInformation_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CoMPInformation_ExtIEs__extensionValue, present),
+       sizeof(((struct CoMPInformation_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_476 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_476       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CoMPInformation_ExtIEs_473[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CoMPInformation_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_474, &asn_PER_memb_id_constr_474,  memb_id_constraint_473 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CoMPInformation_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_475, &asn_PER_memb_criticality_constr_475,  memb_criticality_constraint_473 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CoMPInformation_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_476,
+               0,
+               { &asn_OER_memb_extensionValue_constr_476, &asn_PER_memb_extensionValue_constr_476,  memb_extensionValue_constraint_473 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CoMPInformation_ExtIEs_tags_473[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CoMPInformation_ExtIEs_tag2el_473[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CoMPInformation_ExtIEs_specs_473 = {
+       sizeof(struct CoMPInformation_ExtIEs),
+       offsetof(struct CoMPInformation_ExtIEs, _asn_ctx),
+       asn_MAP_CoMPInformation_ExtIEs_tag2el_473,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CoMPInformation_ExtIEs = {
+       "CoMPInformation-ExtIEs",
+       "CoMPInformation-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CoMPInformation_ExtIEs_tags_473,
+       sizeof(asn_DEF_CoMPInformation_ExtIEs_tags_473)
+               /sizeof(asn_DEF_CoMPInformation_ExtIEs_tags_473[0]), /* 1 */
+       asn_DEF_CoMPInformation_ExtIEs_tags_473,        /* Same as above */
+       sizeof(asn_DEF_CoMPInformation_ExtIEs_tags_473)
+               /sizeof(asn_DEF_CoMPInformation_ExtIEs_tags_473[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CoMPInformation_ExtIEs_473,
+       3,      /* Elements count */
+       &asn_SPC_CoMPInformation_ExtIEs_specs_473       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_480 = {
+       sizeof(struct CoMPInformationItem_ExtIEs__extensionValue),
+       offsetof(struct CoMPInformationItem_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CoMPInformationItem_ExtIEs__extensionValue, present),
+       sizeof(((struct CoMPInformationItem_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_480 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_480       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CoMPInformationItem_ExtIEs_477[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CoMPInformationItem_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_478, &asn_PER_memb_id_constr_478,  memb_id_constraint_477 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CoMPInformationItem_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_479, &asn_PER_memb_criticality_constr_479,  memb_criticality_constraint_477 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CoMPInformationItem_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_480,
+               0,
+               { &asn_OER_memb_extensionValue_constr_480, &asn_PER_memb_extensionValue_constr_480,  memb_extensionValue_constraint_477 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CoMPInformationItem_ExtIEs_tags_477[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CoMPInformationItem_ExtIEs_tag2el_477[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CoMPInformationItem_ExtIEs_specs_477 = {
+       sizeof(struct CoMPInformationItem_ExtIEs),
+       offsetof(struct CoMPInformationItem_ExtIEs, _asn_ctx),
+       asn_MAP_CoMPInformationItem_ExtIEs_tag2el_477,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CoMPInformationItem_ExtIEs = {
+       "CoMPInformationItem-ExtIEs",
+       "CoMPInformationItem-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CoMPInformationItem_ExtIEs_tags_477,
+       sizeof(asn_DEF_CoMPInformationItem_ExtIEs_tags_477)
+               /sizeof(asn_DEF_CoMPInformationItem_ExtIEs_tags_477[0]), /* 1 */
+       asn_DEF_CoMPInformationItem_ExtIEs_tags_477,    /* Same as above */
+       sizeof(asn_DEF_CoMPInformationItem_ExtIEs_tags_477)
+               /sizeof(asn_DEF_CoMPInformationItem_ExtIEs_tags_477[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CoMPInformationItem_ExtIEs_477,
+       3,      /* Elements count */
+       &asn_SPC_CoMPInformationItem_ExtIEs_specs_477   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_484 = {
+       sizeof(struct CoMPInformationStartTime_ExtIEs__extensionValue),
+       offsetof(struct CoMPInformationStartTime_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CoMPInformationStartTime_ExtIEs__extensionValue, present),
+       sizeof(((struct CoMPInformationStartTime_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_484 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_484       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CoMPInformationStartTime_ExtIEs_481[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CoMPInformationStartTime_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_482, &asn_PER_memb_id_constr_482,  memb_id_constraint_481 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CoMPInformationStartTime_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_483, &asn_PER_memb_criticality_constr_483,  memb_criticality_constraint_481 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CoMPInformationStartTime_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_484,
+               0,
+               { &asn_OER_memb_extensionValue_constr_484, &asn_PER_memb_extensionValue_constr_484,  memb_extensionValue_constraint_481 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CoMPInformationStartTime_ExtIEs_tags_481[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CoMPInformationStartTime_ExtIEs_tag2el_481[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CoMPInformationStartTime_ExtIEs_specs_481 = {
+       sizeof(struct CoMPInformationStartTime_ExtIEs),
+       offsetof(struct CoMPInformationStartTime_ExtIEs, _asn_ctx),
+       asn_MAP_CoMPInformationStartTime_ExtIEs_tag2el_481,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CoMPInformationStartTime_ExtIEs = {
+       "CoMPInformationStartTime-ExtIEs",
+       "CoMPInformationStartTime-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CoMPInformationStartTime_ExtIEs_tags_481,
+       sizeof(asn_DEF_CoMPInformationStartTime_ExtIEs_tags_481)
+               /sizeof(asn_DEF_CoMPInformationStartTime_ExtIEs_tags_481[0]), /* 1 */
+       asn_DEF_CoMPInformationStartTime_ExtIEs_tags_481,       /* Same as above */
+       sizeof(asn_DEF_CoMPInformationStartTime_ExtIEs_tags_481)
+               /sizeof(asn_DEF_CoMPInformationStartTime_ExtIEs_tags_481[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CoMPInformationStartTime_ExtIEs_481,
+       3,      /* Elements count */
+       &asn_SPC_CoMPInformationStartTime_ExtIEs_specs_481      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_488 = {
+       sizeof(struct CompositeAvailableCapacity_ExtIEs__extensionValue),
+       offsetof(struct CompositeAvailableCapacity_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CompositeAvailableCapacity_ExtIEs__extensionValue, present),
+       sizeof(((struct CompositeAvailableCapacity_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_488 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_488       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CompositeAvailableCapacity_ExtIEs_485[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacity_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_486, &asn_PER_memb_id_constr_486,  memb_id_constraint_485 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacity_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_487, &asn_PER_memb_criticality_constr_487,  memb_criticality_constraint_485 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacity_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_488,
+               0,
+               { &asn_OER_memb_extensionValue_constr_488, &asn_PER_memb_extensionValue_constr_488,  memb_extensionValue_constraint_485 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CompositeAvailableCapacity_ExtIEs_tags_485[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CompositeAvailableCapacity_ExtIEs_tag2el_485[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CompositeAvailableCapacity_ExtIEs_specs_485 = {
+       sizeof(struct CompositeAvailableCapacity_ExtIEs),
+       offsetof(struct CompositeAvailableCapacity_ExtIEs, _asn_ctx),
+       asn_MAP_CompositeAvailableCapacity_ExtIEs_tag2el_485,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CompositeAvailableCapacity_ExtIEs = {
+       "CompositeAvailableCapacity-ExtIEs",
+       "CompositeAvailableCapacity-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CompositeAvailableCapacity_ExtIEs_tags_485,
+       sizeof(asn_DEF_CompositeAvailableCapacity_ExtIEs_tags_485)
+               /sizeof(asn_DEF_CompositeAvailableCapacity_ExtIEs_tags_485[0]), /* 1 */
+       asn_DEF_CompositeAvailableCapacity_ExtIEs_tags_485,     /* Same as above */
+       sizeof(asn_DEF_CompositeAvailableCapacity_ExtIEs_tags_485)
+               /sizeof(asn_DEF_CompositeAvailableCapacity_ExtIEs_tags_485[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CompositeAvailableCapacity_ExtIEs_485,
+       3,      /* Elements count */
+       &asn_SPC_CompositeAvailableCapacity_ExtIEs_specs_485    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_492 = {
+       sizeof(struct CompositeAvailableCapacityGroup_ExtIEs__extensionValue),
+       offsetof(struct CompositeAvailableCapacityGroup_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CompositeAvailableCapacityGroup_ExtIEs__extensionValue, present),
+       sizeof(((struct CompositeAvailableCapacityGroup_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_492 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_492       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CompositeAvailableCapacityGroup_ExtIEs_489[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacityGroup_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_490, &asn_PER_memb_id_constr_490,  memb_id_constraint_489 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacityGroup_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_491, &asn_PER_memb_criticality_constr_491,  memb_criticality_constraint_489 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacityGroup_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_492,
+               0,
+               { &asn_OER_memb_extensionValue_constr_492, &asn_PER_memb_extensionValue_constr_492,  memb_extensionValue_constraint_489 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CompositeAvailableCapacityGroup_ExtIEs_tags_489[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CompositeAvailableCapacityGroup_ExtIEs_tag2el_489[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CompositeAvailableCapacityGroup_ExtIEs_specs_489 = {
+       sizeof(struct CompositeAvailableCapacityGroup_ExtIEs),
+       offsetof(struct CompositeAvailableCapacityGroup_ExtIEs, _asn_ctx),
+       asn_MAP_CompositeAvailableCapacityGroup_ExtIEs_tag2el_489,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CompositeAvailableCapacityGroup_ExtIEs = {
+       "CompositeAvailableCapacityGroup-ExtIEs",
+       "CompositeAvailableCapacityGroup-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CompositeAvailableCapacityGroup_ExtIEs_tags_489,
+       sizeof(asn_DEF_CompositeAvailableCapacityGroup_ExtIEs_tags_489)
+               /sizeof(asn_DEF_CompositeAvailableCapacityGroup_ExtIEs_tags_489[0]), /* 1 */
+       asn_DEF_CompositeAvailableCapacityGroup_ExtIEs_tags_489,        /* Same as above */
+       sizeof(asn_DEF_CompositeAvailableCapacityGroup_ExtIEs_tags_489)
+               /sizeof(asn_DEF_CompositeAvailableCapacityGroup_ExtIEs_tags_489[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CompositeAvailableCapacityGroup_ExtIEs_489,
+       3,      /* Elements count */
+       &asn_SPC_CompositeAvailableCapacityGroup_ExtIEs_specs_489       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_496 = {
+       sizeof(struct COUNTvalue_ExtIEs__extensionValue),
+       offsetof(struct COUNTvalue_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct COUNTvalue_ExtIEs__extensionValue, present),
+       sizeof(((struct COUNTvalue_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_496 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_496       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_COUNTvalue_ExtIEs_493[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct COUNTvalue_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_494, &asn_PER_memb_id_constr_494,  memb_id_constraint_493 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct COUNTvalue_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_495, &asn_PER_memb_criticality_constr_495,  memb_criticality_constraint_493 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct COUNTvalue_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_496,
+               0,
+               { &asn_OER_memb_extensionValue_constr_496, &asn_PER_memb_extensionValue_constr_496,  memb_extensionValue_constraint_493 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_COUNTvalue_ExtIEs_tags_493[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_COUNTvalue_ExtIEs_tag2el_493[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_COUNTvalue_ExtIEs_specs_493 = {
+       sizeof(struct COUNTvalue_ExtIEs),
+       offsetof(struct COUNTvalue_ExtIEs, _asn_ctx),
+       asn_MAP_COUNTvalue_ExtIEs_tag2el_493,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_COUNTvalue_ExtIEs = {
+       "COUNTvalue-ExtIEs",
+       "COUNTvalue-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_COUNTvalue_ExtIEs_tags_493,
+       sizeof(asn_DEF_COUNTvalue_ExtIEs_tags_493)
+               /sizeof(asn_DEF_COUNTvalue_ExtIEs_tags_493[0]), /* 1 */
+       asn_DEF_COUNTvalue_ExtIEs_tags_493,     /* Same as above */
+       sizeof(asn_DEF_COUNTvalue_ExtIEs_tags_493)
+               /sizeof(asn_DEF_COUNTvalue_ExtIEs_tags_493[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_COUNTvalue_ExtIEs_493,
+       3,      /* Elements count */
+       &asn_SPC_COUNTvalue_ExtIEs_specs_493    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_500 = {
+       sizeof(struct COUNTValueExtended_ExtIEs__extensionValue),
+       offsetof(struct COUNTValueExtended_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct COUNTValueExtended_ExtIEs__extensionValue, present),
+       sizeof(((struct COUNTValueExtended_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_500 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_500       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_COUNTValueExtended_ExtIEs_497[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct COUNTValueExtended_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_498, &asn_PER_memb_id_constr_498,  memb_id_constraint_497 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct COUNTValueExtended_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_499, &asn_PER_memb_criticality_constr_499,  memb_criticality_constraint_497 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct COUNTValueExtended_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_500,
+               0,
+               { &asn_OER_memb_extensionValue_constr_500, &asn_PER_memb_extensionValue_constr_500,  memb_extensionValue_constraint_497 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_COUNTValueExtended_ExtIEs_tags_497[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_COUNTValueExtended_ExtIEs_tag2el_497[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_COUNTValueExtended_ExtIEs_specs_497 = {
+       sizeof(struct COUNTValueExtended_ExtIEs),
+       offsetof(struct COUNTValueExtended_ExtIEs, _asn_ctx),
+       asn_MAP_COUNTValueExtended_ExtIEs_tag2el_497,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_COUNTValueExtended_ExtIEs = {
+       "COUNTValueExtended-ExtIEs",
+       "COUNTValueExtended-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_COUNTValueExtended_ExtIEs_tags_497,
+       sizeof(asn_DEF_COUNTValueExtended_ExtIEs_tags_497)
+               /sizeof(asn_DEF_COUNTValueExtended_ExtIEs_tags_497[0]), /* 1 */
+       asn_DEF_COUNTValueExtended_ExtIEs_tags_497,     /* Same as above */
+       sizeof(asn_DEF_COUNTValueExtended_ExtIEs_tags_497)
+               /sizeof(asn_DEF_COUNTValueExtended_ExtIEs_tags_497[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_COUNTValueExtended_ExtIEs_497,
+       3,      /* Elements count */
+       &asn_SPC_COUNTValueExtended_ExtIEs_specs_497    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_504 = {
+       sizeof(struct COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue),
+       offsetof(struct COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue, present),
+       sizeof(((struct COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_504 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_504       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_COUNTvaluePDCP_SNlength18_ExtIEs_501[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct COUNTvaluePDCP_SNlength18_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_502, &asn_PER_memb_id_constr_502,  memb_id_constraint_501 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct COUNTvaluePDCP_SNlength18_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_503, &asn_PER_memb_criticality_constr_503,  memb_criticality_constraint_501 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct COUNTvaluePDCP_SNlength18_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_504,
+               0,
+               { &asn_OER_memb_extensionValue_constr_504, &asn_PER_memb_extensionValue_constr_504,  memb_extensionValue_constraint_501 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs_tags_501[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_COUNTvaluePDCP_SNlength18_ExtIEs_tag2el_501[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_COUNTvaluePDCP_SNlength18_ExtIEs_specs_501 = {
+       sizeof(struct COUNTvaluePDCP_SNlength18_ExtIEs),
+       offsetof(struct COUNTvaluePDCP_SNlength18_ExtIEs, _asn_ctx),
+       asn_MAP_COUNTvaluePDCP_SNlength18_ExtIEs_tag2el_501,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs = {
+       "COUNTvaluePDCP-SNlength18-ExtIEs",
+       "COUNTvaluePDCP-SNlength18-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs_tags_501,
+       sizeof(asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs_tags_501)
+               /sizeof(asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs_tags_501[0]), /* 1 */
+       asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs_tags_501,      /* Same as above */
+       sizeof(asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs_tags_501)
+               /sizeof(asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs_tags_501[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_COUNTvaluePDCP_SNlength18_ExtIEs_501,
+       3,      /* Elements count */
+       &asn_SPC_COUNTvaluePDCP_SNlength18_ExtIEs_specs_501     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_508 = {
+       sizeof(struct CriticalityDiagnostics_ExtIEs__extensionValue),
+       offsetof(struct CriticalityDiagnostics_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CriticalityDiagnostics_ExtIEs__extensionValue, present),
+       sizeof(((struct CriticalityDiagnostics_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_508 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_508       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_ExtIEs_505[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_506, &asn_PER_memb_id_constr_506,  memb_id_constraint_505 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_507, &asn_PER_memb_criticality_constr_507,  memb_criticality_constraint_505 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_508,
+               0,
+               { &asn_OER_memb_extensionValue_constr_508, &asn_PER_memb_extensionValue_constr_508,  memb_extensionValue_constraint_505 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_ExtIEs_tags_505[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_ExtIEs_tag2el_505[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_ExtIEs_specs_505 = {
+       sizeof(struct CriticalityDiagnostics_ExtIEs),
+       offsetof(struct CriticalityDiagnostics_ExtIEs, _asn_ctx),
+       asn_MAP_CriticalityDiagnostics_ExtIEs_tag2el_505,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_ExtIEs = {
+       "CriticalityDiagnostics-ExtIEs",
+       "CriticalityDiagnostics-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CriticalityDiagnostics_ExtIEs_tags_505,
+       sizeof(asn_DEF_CriticalityDiagnostics_ExtIEs_tags_505)
+               /sizeof(asn_DEF_CriticalityDiagnostics_ExtIEs_tags_505[0]), /* 1 */
+       asn_DEF_CriticalityDiagnostics_ExtIEs_tags_505, /* Same as above */
+       sizeof(asn_DEF_CriticalityDiagnostics_ExtIEs_tags_505)
+               /sizeof(asn_DEF_CriticalityDiagnostics_ExtIEs_tags_505[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CriticalityDiagnostics_ExtIEs_505,
+       3,      /* Elements count */
+       &asn_SPC_CriticalityDiagnostics_ExtIEs_specs_505        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_512 = {
+       sizeof(struct CriticalityDiagnostics_IE_List_ExtIEs__extensionValue),
+       offsetof(struct CriticalityDiagnostics_IE_List_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CriticalityDiagnostics_IE_List_ExtIEs__extensionValue, present),
+       sizeof(((struct CriticalityDiagnostics_IE_List_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_512 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_512       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_ExtIEs_509[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_List_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_510, &asn_PER_memb_id_constr_510,  memb_id_constraint_509 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_List_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_511, &asn_PER_memb_criticality_constr_511,  memb_criticality_constraint_509 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_List_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_512,
+               0,
+               { &asn_OER_memb_extensionValue_constr_512, &asn_PER_memb_extensionValue_constr_512,  memb_extensionValue_constraint_509 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs_tags_509[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_IE_List_ExtIEs_tag2el_509[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_ExtIEs_specs_509 = {
+       sizeof(struct CriticalityDiagnostics_IE_List_ExtIEs),
+       offsetof(struct CriticalityDiagnostics_IE_List_ExtIEs, _asn_ctx),
+       asn_MAP_CriticalityDiagnostics_IE_List_ExtIEs_tag2el_509,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs = {
+       "CriticalityDiagnostics-IE-List-ExtIEs",
+       "CriticalityDiagnostics-IE-List-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs_tags_509,
+       sizeof(asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs_tags_509)
+               /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs_tags_509[0]), /* 1 */
+       asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs_tags_509, /* Same as above */
+       sizeof(asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs_tags_509)
+               /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs_tags_509[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CriticalityDiagnostics_IE_List_ExtIEs_509,
+       3,      /* Elements count */
+       &asn_SPC_CriticalityDiagnostics_IE_List_ExtIEs_specs_509        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_516 = {
+       sizeof(struct CSIReportList_ExtIEs__extensionValue),
+       offsetof(struct CSIReportList_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CSIReportList_ExtIEs__extensionValue, present),
+       sizeof(((struct CSIReportList_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_516 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_516       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CSIReportList_ExtIEs_513[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CSIReportList_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_514, &asn_PER_memb_id_constr_514,  memb_id_constraint_513 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CSIReportList_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_515, &asn_PER_memb_criticality_constr_515,  memb_criticality_constraint_513 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CSIReportList_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_516,
+               0,
+               { &asn_OER_memb_extensionValue_constr_516, &asn_PER_memb_extensionValue_constr_516,  memb_extensionValue_constraint_513 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CSIReportList_ExtIEs_tags_513[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CSIReportList_ExtIEs_tag2el_513[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CSIReportList_ExtIEs_specs_513 = {
+       sizeof(struct CSIReportList_ExtIEs),
+       offsetof(struct CSIReportList_ExtIEs, _asn_ctx),
+       asn_MAP_CSIReportList_ExtIEs_tag2el_513,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CSIReportList_ExtIEs = {
+       "CSIReportList-ExtIEs",
+       "CSIReportList-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CSIReportList_ExtIEs_tags_513,
+       sizeof(asn_DEF_CSIReportList_ExtIEs_tags_513)
+               /sizeof(asn_DEF_CSIReportList_ExtIEs_tags_513[0]), /* 1 */
+       asn_DEF_CSIReportList_ExtIEs_tags_513,  /* Same as above */
+       sizeof(asn_DEF_CSIReportList_ExtIEs_tags_513)
+               /sizeof(asn_DEF_CSIReportList_ExtIEs_tags_513[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CSIReportList_ExtIEs_513,
+       3,      /* Elements count */
+       &asn_SPC_CSIReportList_ExtIEs_specs_513 /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_520 = {
+       sizeof(struct CSIReportPerCSIProcess_ExtIEs__extensionValue),
+       offsetof(struct CSIReportPerCSIProcess_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CSIReportPerCSIProcess_ExtIEs__extensionValue, present),
+       sizeof(((struct CSIReportPerCSIProcess_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_520 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_520       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CSIReportPerCSIProcess_ExtIEs_517[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcess_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_518, &asn_PER_memb_id_constr_518,  memb_id_constraint_517 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcess_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_519, &asn_PER_memb_criticality_constr_519,  memb_criticality_constraint_517 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcess_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_520,
+               0,
+               { &asn_OER_memb_extensionValue_constr_520, &asn_PER_memb_extensionValue_constr_520,  memb_extensionValue_constraint_517 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CSIReportPerCSIProcess_ExtIEs_tags_517[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CSIReportPerCSIProcess_ExtIEs_tag2el_517[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CSIReportPerCSIProcess_ExtIEs_specs_517 = {
+       sizeof(struct CSIReportPerCSIProcess_ExtIEs),
+       offsetof(struct CSIReportPerCSIProcess_ExtIEs, _asn_ctx),
+       asn_MAP_CSIReportPerCSIProcess_ExtIEs_tag2el_517,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CSIReportPerCSIProcess_ExtIEs = {
+       "CSIReportPerCSIProcess-ExtIEs",
+       "CSIReportPerCSIProcess-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CSIReportPerCSIProcess_ExtIEs_tags_517,
+       sizeof(asn_DEF_CSIReportPerCSIProcess_ExtIEs_tags_517)
+               /sizeof(asn_DEF_CSIReportPerCSIProcess_ExtIEs_tags_517[0]), /* 1 */
+       asn_DEF_CSIReportPerCSIProcess_ExtIEs_tags_517, /* Same as above */
+       sizeof(asn_DEF_CSIReportPerCSIProcess_ExtIEs_tags_517)
+               /sizeof(asn_DEF_CSIReportPerCSIProcess_ExtIEs_tags_517[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CSIReportPerCSIProcess_ExtIEs_517,
+       3,      /* Elements count */
+       &asn_SPC_CSIReportPerCSIProcess_ExtIEs_specs_517        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_524 = {
+       sizeof(struct CSIReportPerCSIProcessItem_ExtIEs__extensionValue),
+       offsetof(struct CSIReportPerCSIProcessItem_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct CSIReportPerCSIProcessItem_ExtIEs__extensionValue, present),
+       sizeof(((struct CSIReportPerCSIProcessItem_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_524 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_524       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CSIReportPerCSIProcessItem_ExtIEs_521[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcessItem_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_522, &asn_PER_memb_id_constr_522,  memb_id_constraint_521 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcessItem_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_523, &asn_PER_memb_criticality_constr_523,  memb_criticality_constraint_521 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcessItem_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_524,
+               0,
+               { &asn_OER_memb_extensionValue_constr_524, &asn_PER_memb_extensionValue_constr_524,  memb_extensionValue_constraint_521 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CSIReportPerCSIProcessItem_ExtIEs_tags_521[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CSIReportPerCSIProcessItem_ExtIEs_tag2el_521[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CSIReportPerCSIProcessItem_ExtIEs_specs_521 = {
+       sizeof(struct CSIReportPerCSIProcessItem_ExtIEs),
+       offsetof(struct CSIReportPerCSIProcessItem_ExtIEs, _asn_ctx),
+       asn_MAP_CSIReportPerCSIProcessItem_ExtIEs_tag2el_521,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CSIReportPerCSIProcessItem_ExtIEs = {
+       "CSIReportPerCSIProcessItem-ExtIEs",
+       "CSIReportPerCSIProcessItem-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CSIReportPerCSIProcessItem_ExtIEs_tags_521,
+       sizeof(asn_DEF_CSIReportPerCSIProcessItem_ExtIEs_tags_521)
+               /sizeof(asn_DEF_CSIReportPerCSIProcessItem_ExtIEs_tags_521[0]), /* 1 */
+       asn_DEF_CSIReportPerCSIProcessItem_ExtIEs_tags_521,     /* Same as above */
+       sizeof(asn_DEF_CSIReportPerCSIProcessItem_ExtIEs_tags_521)
+               /sizeof(asn_DEF_CSIReportPerCSIProcessItem_ExtIEs_tags_521[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CSIReportPerCSIProcessItem_ExtIEs_521,
+       3,      /* Elements count */
+       &asn_SPC_CSIReportPerCSIProcessItem_ExtIEs_specs_521    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_528 = {
+       sizeof(struct DataTrafficResourceIndication_ExtIEs__extensionValue),
+       offsetof(struct DataTrafficResourceIndication_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct DataTrafficResourceIndication_ExtIEs__extensionValue, present),
+       sizeof(((struct DataTrafficResourceIndication_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_528 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_528       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_DataTrafficResourceIndication_ExtIEs_525[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct DataTrafficResourceIndication_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_526, &asn_PER_memb_id_constr_526,  memb_id_constraint_525 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct DataTrafficResourceIndication_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_527, &asn_PER_memb_criticality_constr_527,  memb_criticality_constraint_525 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DataTrafficResourceIndication_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_528,
+               0,
+               { &asn_OER_memb_extensionValue_constr_528, &asn_PER_memb_extensionValue_constr_528,  memb_extensionValue_constraint_525 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_DataTrafficResourceIndication_ExtIEs_tags_525[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_DataTrafficResourceIndication_ExtIEs_tag2el_525[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_DataTrafficResourceIndication_ExtIEs_specs_525 = {
+       sizeof(struct DataTrafficResourceIndication_ExtIEs),
+       offsetof(struct DataTrafficResourceIndication_ExtIEs, _asn_ctx),
+       asn_MAP_DataTrafficResourceIndication_ExtIEs_tag2el_525,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_DataTrafficResourceIndication_ExtIEs = {
+       "DataTrafficResourceIndication-ExtIEs",
+       "DataTrafficResourceIndication-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_DataTrafficResourceIndication_ExtIEs_tags_525,
+       sizeof(asn_DEF_DataTrafficResourceIndication_ExtIEs_tags_525)
+               /sizeof(asn_DEF_DataTrafficResourceIndication_ExtIEs_tags_525[0]), /* 1 */
+       asn_DEF_DataTrafficResourceIndication_ExtIEs_tags_525,  /* Same as above */
+       sizeof(asn_DEF_DataTrafficResourceIndication_ExtIEs_tags_525)
+               /sizeof(asn_DEF_DataTrafficResourceIndication_ExtIEs_tags_525[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_DataTrafficResourceIndication_ExtIEs_525,
+       3,      /* Elements count */
+       &asn_SPC_DataTrafficResourceIndication_ExtIEs_specs_525 /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_532 = {
+       sizeof(struct DeliveryStatus_ExtIEs__extensionValue),
+       offsetof(struct DeliveryStatus_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct DeliveryStatus_ExtIEs__extensionValue, present),
+       sizeof(((struct DeliveryStatus_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_532 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_532       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_DeliveryStatus_ExtIEs_529[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct DeliveryStatus_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_530, &asn_PER_memb_id_constr_530,  memb_id_constraint_529 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct DeliveryStatus_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_531, &asn_PER_memb_criticality_constr_531,  memb_criticality_constraint_529 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DeliveryStatus_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_532,
+               0,
+               { &asn_OER_memb_extensionValue_constr_532, &asn_PER_memb_extensionValue_constr_532,  memb_extensionValue_constraint_529 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_DeliveryStatus_ExtIEs_tags_529[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_DeliveryStatus_ExtIEs_tag2el_529[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_DeliveryStatus_ExtIEs_specs_529 = {
+       sizeof(struct DeliveryStatus_ExtIEs),
+       offsetof(struct DeliveryStatus_ExtIEs, _asn_ctx),
+       asn_MAP_DeliveryStatus_ExtIEs_tag2el_529,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_DeliveryStatus_ExtIEs = {
+       "DeliveryStatus-ExtIEs",
+       "DeliveryStatus-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_DeliveryStatus_ExtIEs_tags_529,
+       sizeof(asn_DEF_DeliveryStatus_ExtIEs_tags_529)
+               /sizeof(asn_DEF_DeliveryStatus_ExtIEs_tags_529[0]), /* 1 */
+       asn_DEF_DeliveryStatus_ExtIEs_tags_529, /* Same as above */
+       sizeof(asn_DEF_DeliveryStatus_ExtIEs_tags_529)
+               /sizeof(asn_DEF_DeliveryStatus_ExtIEs_tags_529[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_DeliveryStatus_ExtIEs_529,
+       3,      /* Elements count */
+       &asn_SPC_DeliveryStatus_ExtIEs_specs_529        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_536 = {
+       sizeof(struct DynamicNAICSInformation_ExtIEs__extensionValue),
+       offsetof(struct DynamicNAICSInformation_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct DynamicNAICSInformation_ExtIEs__extensionValue, present),
+       sizeof(((struct DynamicNAICSInformation_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_536 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_536       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_DynamicNAICSInformation_ExtIEs_533[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct DynamicNAICSInformation_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_534, &asn_PER_memb_id_constr_534,  memb_id_constraint_533 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct DynamicNAICSInformation_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_535, &asn_PER_memb_criticality_constr_535,  memb_criticality_constraint_533 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DynamicNAICSInformation_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_536,
+               0,
+               { &asn_OER_memb_extensionValue_constr_536, &asn_PER_memb_extensionValue_constr_536,  memb_extensionValue_constraint_533 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_DynamicNAICSInformation_ExtIEs_tags_533[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_DynamicNAICSInformation_ExtIEs_tag2el_533[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_DynamicNAICSInformation_ExtIEs_specs_533 = {
+       sizeof(struct DynamicNAICSInformation_ExtIEs),
+       offsetof(struct DynamicNAICSInformation_ExtIEs, _asn_ctx),
+       asn_MAP_DynamicNAICSInformation_ExtIEs_tag2el_533,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_DynamicNAICSInformation_ExtIEs = {
+       "DynamicNAICSInformation-ExtIEs",
+       "DynamicNAICSInformation-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_DynamicNAICSInformation_ExtIEs_tags_533,
+       sizeof(asn_DEF_DynamicNAICSInformation_ExtIEs_tags_533)
+               /sizeof(asn_DEF_DynamicNAICSInformation_ExtIEs_tags_533[0]), /* 1 */
+       asn_DEF_DynamicNAICSInformation_ExtIEs_tags_533,        /* Same as above */
+       sizeof(asn_DEF_DynamicNAICSInformation_ExtIEs_tags_533)
+               /sizeof(asn_DEF_DynamicNAICSInformation_ExtIEs_tags_533[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_DynamicNAICSInformation_ExtIEs_533,
+       3,      /* Elements count */
+       &asn_SPC_DynamicNAICSInformation_ExtIEs_specs_533       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_540 = {
+       sizeof(struct ECGI_ExtIEs__extensionValue),
+       offsetof(struct ECGI_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ECGI_ExtIEs__extensionValue, present),
+       sizeof(((struct ECGI_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_540 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_540       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ECGI_ExtIEs_537[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ECGI_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_538, &asn_PER_memb_id_constr_538,  memb_id_constraint_537 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ECGI_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_539, &asn_PER_memb_criticality_constr_539,  memb_criticality_constraint_537 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ECGI_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_540,
+               0,
+               { &asn_OER_memb_extensionValue_constr_540, &asn_PER_memb_extensionValue_constr_540,  memb_extensionValue_constraint_537 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ECGI_ExtIEs_tags_537[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ECGI_ExtIEs_tag2el_537[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ECGI_ExtIEs_specs_537 = {
+       sizeof(struct ECGI_ExtIEs),
+       offsetof(struct ECGI_ExtIEs, _asn_ctx),
+       asn_MAP_ECGI_ExtIEs_tag2el_537,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ECGI_ExtIEs = {
+       "ECGI-ExtIEs",
+       "ECGI-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ECGI_ExtIEs_tags_537,
+       sizeof(asn_DEF_ECGI_ExtIEs_tags_537)
+               /sizeof(asn_DEF_ECGI_ExtIEs_tags_537[0]), /* 1 */
+       asn_DEF_ECGI_ExtIEs_tags_537,   /* Same as above */
+       sizeof(asn_DEF_ECGI_ExtIEs_tags_537)
+               /sizeof(asn_DEF_ECGI_ExtIEs_tags_537[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ECGI_ExtIEs_537,
+       3,      /* Elements count */
+       &asn_SPC_ECGI_ExtIEs_specs_537  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_544 = {
+       sizeof(struct EnhancedRNTP_ExtIEs__extensionValue),
+       offsetof(struct EnhancedRNTP_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct EnhancedRNTP_ExtIEs__extensionValue, present),
+       sizeof(((struct EnhancedRNTP_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_544 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_544       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_EnhancedRNTP_ExtIEs_541[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTP_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_542, &asn_PER_memb_id_constr_542,  memb_id_constraint_541 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTP_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_543, &asn_PER_memb_criticality_constr_543,  memb_criticality_constraint_541 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTP_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_544,
+               0,
+               { &asn_OER_memb_extensionValue_constr_544, &asn_PER_memb_extensionValue_constr_544,  memb_extensionValue_constraint_541 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_EnhancedRNTP_ExtIEs_tags_541[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EnhancedRNTP_ExtIEs_tag2el_541[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EnhancedRNTP_ExtIEs_specs_541 = {
+       sizeof(struct EnhancedRNTP_ExtIEs),
+       offsetof(struct EnhancedRNTP_ExtIEs, _asn_ctx),
+       asn_MAP_EnhancedRNTP_ExtIEs_tag2el_541,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_EnhancedRNTP_ExtIEs = {
+       "EnhancedRNTP-ExtIEs",
+       "EnhancedRNTP-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_EnhancedRNTP_ExtIEs_tags_541,
+       sizeof(asn_DEF_EnhancedRNTP_ExtIEs_tags_541)
+               /sizeof(asn_DEF_EnhancedRNTP_ExtIEs_tags_541[0]), /* 1 */
+       asn_DEF_EnhancedRNTP_ExtIEs_tags_541,   /* Same as above */
+       sizeof(asn_DEF_EnhancedRNTP_ExtIEs_tags_541)
+               /sizeof(asn_DEF_EnhancedRNTP_ExtIEs_tags_541[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_EnhancedRNTP_ExtIEs_541,
+       3,      /* Elements count */
+       &asn_SPC_EnhancedRNTP_ExtIEs_specs_541  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_548 = {
+       sizeof(struct EnhancedRNTPStartTime_ExtIEs__extensionValue),
+       offsetof(struct EnhancedRNTPStartTime_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct EnhancedRNTPStartTime_ExtIEs__extensionValue, present),
+       sizeof(((struct EnhancedRNTPStartTime_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_548 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_548       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_EnhancedRNTPStartTime_ExtIEs_545[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTPStartTime_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_546, &asn_PER_memb_id_constr_546,  memb_id_constraint_545 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTPStartTime_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_547, &asn_PER_memb_criticality_constr_547,  memb_criticality_constraint_545 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTPStartTime_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_548,
+               0,
+               { &asn_OER_memb_extensionValue_constr_548, &asn_PER_memb_extensionValue_constr_548,  memb_extensionValue_constraint_545 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_EnhancedRNTPStartTime_ExtIEs_tags_545[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EnhancedRNTPStartTime_ExtIEs_tag2el_545[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EnhancedRNTPStartTime_ExtIEs_specs_545 = {
+       sizeof(struct EnhancedRNTPStartTime_ExtIEs),
+       offsetof(struct EnhancedRNTPStartTime_ExtIEs, _asn_ctx),
+       asn_MAP_EnhancedRNTPStartTime_ExtIEs_tag2el_545,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_EnhancedRNTPStartTime_ExtIEs = {
+       "EnhancedRNTPStartTime-ExtIEs",
+       "EnhancedRNTPStartTime-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_EnhancedRNTPStartTime_ExtIEs_tags_545,
+       sizeof(asn_DEF_EnhancedRNTPStartTime_ExtIEs_tags_545)
+               /sizeof(asn_DEF_EnhancedRNTPStartTime_ExtIEs_tags_545[0]), /* 1 */
+       asn_DEF_EnhancedRNTPStartTime_ExtIEs_tags_545,  /* Same as above */
+       sizeof(asn_DEF_EnhancedRNTPStartTime_ExtIEs_tags_545)
+               /sizeof(asn_DEF_EnhancedRNTPStartTime_ExtIEs_tags_545[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_EnhancedRNTPStartTime_ExtIEs_545,
+       3,      /* Elements count */
+       &asn_SPC_EnhancedRNTPStartTime_ExtIEs_specs_545 /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_552 = {
+       sizeof(struct EN_DC_ResourceConfigurationExtIEs__extensionValue),
+       offsetof(struct EN_DC_ResourceConfigurationExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct EN_DC_ResourceConfigurationExtIEs__extensionValue, present),
+       sizeof(((struct EN_DC_ResourceConfigurationExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_552 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_552       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_EN_DC_ResourceConfigurationExtIEs_549[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct EN_DC_ResourceConfigurationExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_550, &asn_PER_memb_id_constr_550,  memb_id_constraint_549 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct EN_DC_ResourceConfigurationExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_551, &asn_PER_memb_criticality_constr_551,  memb_criticality_constraint_549 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EN_DC_ResourceConfigurationExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_552,
+               0,
+               { &asn_OER_memb_extensionValue_constr_552, &asn_PER_memb_extensionValue_constr_552,  memb_extensionValue_constraint_549 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_EN_DC_ResourceConfigurationExtIEs_tags_549[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EN_DC_ResourceConfigurationExtIEs_tag2el_549[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EN_DC_ResourceConfigurationExtIEs_specs_549 = {
+       sizeof(struct EN_DC_ResourceConfigurationExtIEs),
+       offsetof(struct EN_DC_ResourceConfigurationExtIEs, _asn_ctx),
+       asn_MAP_EN_DC_ResourceConfigurationExtIEs_tag2el_549,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_EN_DC_ResourceConfigurationExtIEs = {
+       "EN-DC-ResourceConfigurationExtIEs",
+       "EN-DC-ResourceConfigurationExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_EN_DC_ResourceConfigurationExtIEs_tags_549,
+       sizeof(asn_DEF_EN_DC_ResourceConfigurationExtIEs_tags_549)
+               /sizeof(asn_DEF_EN_DC_ResourceConfigurationExtIEs_tags_549[0]), /* 1 */
+       asn_DEF_EN_DC_ResourceConfigurationExtIEs_tags_549,     /* Same as above */
+       sizeof(asn_DEF_EN_DC_ResourceConfigurationExtIEs_tags_549)
+               /sizeof(asn_DEF_EN_DC_ResourceConfigurationExtIEs_tags_549[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_EN_DC_ResourceConfigurationExtIEs_549,
+       3,      /* Elements count */
+       &asn_SPC_EN_DC_ResourceConfigurationExtIEs_specs_549    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_556 = {
+       sizeof(struct ERABActivityNotifyItem_ExtIEs__extensionValue),
+       offsetof(struct ERABActivityNotifyItem_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ERABActivityNotifyItem_ExtIEs__extensionValue, present),
+       sizeof(((struct ERABActivityNotifyItem_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_556 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_556       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ERABActivityNotifyItem_ExtIEs_553[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ERABActivityNotifyItem_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_554, &asn_PER_memb_id_constr_554,  memb_id_constraint_553 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ERABActivityNotifyItem_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_555, &asn_PER_memb_criticality_constr_555,  memb_criticality_constraint_553 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ERABActivityNotifyItem_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_556,
+               0,
+               { &asn_OER_memb_extensionValue_constr_556, &asn_PER_memb_extensionValue_constr_556,  memb_extensionValue_constraint_553 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ERABActivityNotifyItem_ExtIEs_tags_553[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ERABActivityNotifyItem_ExtIEs_tag2el_553[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ERABActivityNotifyItem_ExtIEs_specs_553 = {
+       sizeof(struct ERABActivityNotifyItem_ExtIEs),
+       offsetof(struct ERABActivityNotifyItem_ExtIEs, _asn_ctx),
+       asn_MAP_ERABActivityNotifyItem_ExtIEs_tag2el_553,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ERABActivityNotifyItem_ExtIEs = {
+       "ERABActivityNotifyItem-ExtIEs",
+       "ERABActivityNotifyItem-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ERABActivityNotifyItem_ExtIEs_tags_553,
+       sizeof(asn_DEF_ERABActivityNotifyItem_ExtIEs_tags_553)
+               /sizeof(asn_DEF_ERABActivityNotifyItem_ExtIEs_tags_553[0]), /* 1 */
+       asn_DEF_ERABActivityNotifyItem_ExtIEs_tags_553, /* Same as above */
+       sizeof(asn_DEF_ERABActivityNotifyItem_ExtIEs_tags_553)
+               /sizeof(asn_DEF_ERABActivityNotifyItem_ExtIEs_tags_553[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ERABActivityNotifyItem_ExtIEs_553,
+       3,      /* Elements count */
+       &asn_SPC_ERABActivityNotifyItem_ExtIEs_specs_553        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_560[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue, choice.Packet_LossRate),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_Packet_LossRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Packet-LossRate"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_560[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* Packet-LossRate */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_560 = {
+       sizeof(struct E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue),
+       offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue, present),
+       sizeof(((struct E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_560,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_560 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_560,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_560       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RAB_Level_QoS_Parameters_ExtIEs_557[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_558, &asn_PER_memb_id_constr_558,  memb_id_constraint_557 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RAB_Level_QoS_Parameters_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_559, &asn_PER_memb_criticality_constr_559,  memb_criticality_constraint_557 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_560,
+               select_E_RAB_Level_QoS_Parameters_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_560, &asn_PER_memb_extensionValue_constr_560,  memb_extensionValue_constraint_557 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs_tags_557[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RAB_Level_QoS_Parameters_ExtIEs_tag2el_557[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RAB_Level_QoS_Parameters_ExtIEs_specs_557 = {
+       sizeof(struct E_RAB_Level_QoS_Parameters_ExtIEs),
+       offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs, _asn_ctx),
+       asn_MAP_E_RAB_Level_QoS_Parameters_ExtIEs_tag2el_557,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs = {
+       "E-RAB-Level-QoS-Parameters-ExtIEs",
+       "E-RAB-Level-QoS-Parameters-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs_tags_557,
+       sizeof(asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs_tags_557)
+               /sizeof(asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs_tags_557[0]), /* 1 */
+       asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs_tags_557,     /* Same as above */
+       sizeof(asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs_tags_557)
+               /sizeof(asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs_tags_557[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RAB_Level_QoS_Parameters_ExtIEs_557,
+       3,      /* Elements count */
+       &asn_SPC_E_RAB_Level_QoS_Parameters_ExtIEs_specs_557    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_564 = {
+       sizeof(struct E_RAB_Item_ExtIEs__extensionValue),
+       offsetof(struct E_RAB_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RAB_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct E_RAB_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_564 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_564       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RAB_Item_ExtIEs_561[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_562, &asn_PER_memb_id_constr_562,  memb_id_constraint_561 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_563, &asn_PER_memb_criticality_constr_563,  memb_criticality_constraint_561 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RAB_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_564,
+               0,
+               { &asn_OER_memb_extensionValue_constr_564, &asn_PER_memb_extensionValue_constr_564,  memb_extensionValue_constraint_561 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RAB_Item_ExtIEs_tags_561[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RAB_Item_ExtIEs_tag2el_561[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RAB_Item_ExtIEs_specs_561 = {
+       sizeof(struct E_RAB_Item_ExtIEs),
+       offsetof(struct E_RAB_Item_ExtIEs, _asn_ctx),
+       asn_MAP_E_RAB_Item_ExtIEs_tag2el_561,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RAB_Item_ExtIEs = {
+       "E-RAB-Item-ExtIEs",
+       "E-RAB-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RAB_Item_ExtIEs_tags_561,
+       sizeof(asn_DEF_E_RAB_Item_ExtIEs_tags_561)
+               /sizeof(asn_DEF_E_RAB_Item_ExtIEs_tags_561[0]), /* 1 */
+       asn_DEF_E_RAB_Item_ExtIEs_tags_561,     /* Same as above */
+       sizeof(asn_DEF_E_RAB_Item_ExtIEs_tags_561)
+               /sizeof(asn_DEF_E_RAB_Item_ExtIEs_tags_561[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RAB_Item_ExtIEs_561,
+       3,      /* Elements count */
+       &asn_SPC_E_RAB_Item_ExtIEs_specs_561    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_568 = {
+       sizeof(struct E_RABUsageReport_Item_ExtIEs__extensionValue),
+       offsetof(struct E_RABUsageReport_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct E_RABUsageReport_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct E_RABUsageReport_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_568 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_568       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABUsageReport_Item_ExtIEs_565[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_566, &asn_PER_memb_id_constr_566,  memb_id_constraint_565 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_567, &asn_PER_memb_criticality_constr_567,  memb_criticality_constraint_565 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_568,
+               0,
+               { &asn_OER_memb_extensionValue_constr_568, &asn_PER_memb_extensionValue_constr_568,  memb_extensionValue_constraint_565 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABUsageReport_Item_ExtIEs_tags_565[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABUsageReport_Item_ExtIEs_tag2el_565[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABUsageReport_Item_ExtIEs_specs_565 = {
+       sizeof(struct E_RABUsageReport_Item_ExtIEs),
+       offsetof(struct E_RABUsageReport_Item_ExtIEs, _asn_ctx),
+       asn_MAP_E_RABUsageReport_Item_ExtIEs_tag2el_565,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABUsageReport_Item_ExtIEs = {
+       "E-RABUsageReport-Item-ExtIEs",
+       "E-RABUsageReport-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABUsageReport_Item_ExtIEs_tags_565,
+       sizeof(asn_DEF_E_RABUsageReport_Item_ExtIEs_tags_565)
+               /sizeof(asn_DEF_E_RABUsageReport_Item_ExtIEs_tags_565[0]), /* 1 */
+       asn_DEF_E_RABUsageReport_Item_ExtIEs_tags_565,  /* Same as above */
+       sizeof(asn_DEF_E_RABUsageReport_Item_ExtIEs_tags_565)
+               /sizeof(asn_DEF_E_RABUsageReport_Item_ExtIEs_tags_565[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABUsageReport_Item_ExtIEs_565,
+       3,      /* Elements count */
+       &asn_SPC_E_RABUsageReport_Item_ExtIEs_specs_565 /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_572 = {
+       sizeof(struct ExpectedUEBehaviour_ExtIEs__extensionValue),
+       offsetof(struct ExpectedUEBehaviour_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ExpectedUEBehaviour_ExtIEs__extensionValue, present),
+       sizeof(((struct ExpectedUEBehaviour_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_572 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_572       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ExpectedUEBehaviour_ExtIEs_569[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ExpectedUEBehaviour_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_570, &asn_PER_memb_id_constr_570,  memb_id_constraint_569 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ExpectedUEBehaviour_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_571, &asn_PER_memb_criticality_constr_571,  memb_criticality_constraint_569 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ExpectedUEBehaviour_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_572,
+               0,
+               { &asn_OER_memb_extensionValue_constr_572, &asn_PER_memb_extensionValue_constr_572,  memb_extensionValue_constraint_569 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ExpectedUEBehaviour_ExtIEs_tags_569[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ExpectedUEBehaviour_ExtIEs_tag2el_569[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEBehaviour_ExtIEs_specs_569 = {
+       sizeof(struct ExpectedUEBehaviour_ExtIEs),
+       offsetof(struct ExpectedUEBehaviour_ExtIEs, _asn_ctx),
+       asn_MAP_ExpectedUEBehaviour_ExtIEs_tag2el_569,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ExpectedUEBehaviour_ExtIEs = {
+       "ExpectedUEBehaviour-ExtIEs",
+       "ExpectedUEBehaviour-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ExpectedUEBehaviour_ExtIEs_tags_569,
+       sizeof(asn_DEF_ExpectedUEBehaviour_ExtIEs_tags_569)
+               /sizeof(asn_DEF_ExpectedUEBehaviour_ExtIEs_tags_569[0]), /* 1 */
+       asn_DEF_ExpectedUEBehaviour_ExtIEs_tags_569,    /* Same as above */
+       sizeof(asn_DEF_ExpectedUEBehaviour_ExtIEs_tags_569)
+               /sizeof(asn_DEF_ExpectedUEBehaviour_ExtIEs_tags_569[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ExpectedUEBehaviour_ExtIEs_569,
+       3,      /* Elements count */
+       &asn_SPC_ExpectedUEBehaviour_ExtIEs_specs_569   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_576 = {
+       sizeof(struct ExpectedUEActivityBehaviour_ExtIEs__extensionValue),
+       offsetof(struct ExpectedUEActivityBehaviour_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ExpectedUEActivityBehaviour_ExtIEs__extensionValue, present),
+       sizeof(((struct ExpectedUEActivityBehaviour_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_576 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_576       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ExpectedUEActivityBehaviour_ExtIEs_573[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ExpectedUEActivityBehaviour_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_574, &asn_PER_memb_id_constr_574,  memb_id_constraint_573 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ExpectedUEActivityBehaviour_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_575, &asn_PER_memb_criticality_constr_575,  memb_criticality_constraint_573 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ExpectedUEActivityBehaviour_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_576,
+               0,
+               { &asn_OER_memb_extensionValue_constr_576, &asn_PER_memb_extensionValue_constr_576,  memb_extensionValue_constraint_573 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ExpectedUEActivityBehaviour_ExtIEs_tags_573[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ExpectedUEActivityBehaviour_ExtIEs_tag2el_573[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEActivityBehaviour_ExtIEs_specs_573 = {
+       sizeof(struct ExpectedUEActivityBehaviour_ExtIEs),
+       offsetof(struct ExpectedUEActivityBehaviour_ExtIEs, _asn_ctx),
+       asn_MAP_ExpectedUEActivityBehaviour_ExtIEs_tag2el_573,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ExpectedUEActivityBehaviour_ExtIEs = {
+       "ExpectedUEActivityBehaviour-ExtIEs",
+       "ExpectedUEActivityBehaviour-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ExpectedUEActivityBehaviour_ExtIEs_tags_573,
+       sizeof(asn_DEF_ExpectedUEActivityBehaviour_ExtIEs_tags_573)
+               /sizeof(asn_DEF_ExpectedUEActivityBehaviour_ExtIEs_tags_573[0]), /* 1 */
+       asn_DEF_ExpectedUEActivityBehaviour_ExtIEs_tags_573,    /* Same as above */
+       sizeof(asn_DEF_ExpectedUEActivityBehaviour_ExtIEs_tags_573)
+               /sizeof(asn_DEF_ExpectedUEActivityBehaviour_ExtIEs_tags_573[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ExpectedUEActivityBehaviour_ExtIEs_573,
+       3,      /* Elements count */
+       &asn_SPC_ExpectedUEActivityBehaviour_ExtIEs_specs_573   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_580 = {
+       sizeof(struct ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue),
+       offsetof(struct ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue, present),
+       sizeof(((struct ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_580 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_580       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ExtendedULInterferenceOverloadInfo_ExtIEs_577[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ExtendedULInterferenceOverloadInfo_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_578, &asn_PER_memb_id_constr_578,  memb_id_constraint_577 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ExtendedULInterferenceOverloadInfo_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_579, &asn_PER_memb_criticality_constr_579,  memb_criticality_constraint_577 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ExtendedULInterferenceOverloadInfo_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_580,
+               0,
+               { &asn_OER_memb_extensionValue_constr_580, &asn_PER_memb_extensionValue_constr_580,  memb_extensionValue_constraint_577 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs_tags_577[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ExtendedULInterferenceOverloadInfo_ExtIEs_tag2el_577[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ExtendedULInterferenceOverloadInfo_ExtIEs_specs_577 = {
+       sizeof(struct ExtendedULInterferenceOverloadInfo_ExtIEs),
+       offsetof(struct ExtendedULInterferenceOverloadInfo_ExtIEs, _asn_ctx),
+       asn_MAP_ExtendedULInterferenceOverloadInfo_ExtIEs_tag2el_577,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs = {
+       "ExtendedULInterferenceOverloadInfo-ExtIEs",
+       "ExtendedULInterferenceOverloadInfo-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs_tags_577,
+       sizeof(asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs_tags_577)
+               /sizeof(asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs_tags_577[0]), /* 1 */
+       asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs_tags_577,     /* Same as above */
+       sizeof(asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs_tags_577)
+               /sizeof(asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs_tags_577[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ExtendedULInterferenceOverloadInfo_ExtIEs_577,
+       3,      /* Elements count */
+       &asn_SPC_ExtendedULInterferenceOverloadInfo_ExtIEs_specs_577    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_584[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_Info_ExtIEs__extensionValue, choice.EARFCNExtension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_EARFCNExtension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "EARFCNExtension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_Info_ExtIEs__extensionValue, choice.OffsetOfNbiotChannelNumberToEARFCN),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_OffsetOfNbiotChannelNumberToEARFCN,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "OffsetOfNbiotChannelNumberToEARFCN"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_Info_ExtIEs__extensionValue, choice.NRS_NSSS_PowerOffset),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_NRS_NSSS_PowerOffset,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "NRS-NSSS-PowerOffset"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_Info_ExtIEs__extensionValue, choice.NSSS_NumOccasionDifferentPrecoder),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_NSSS_NumOccasionDifferentPrecoder,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "NSSS-NumOccasionDifferentPrecoder"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_584[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* EARFCNExtension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 2 }, /* OffsetOfNbiotChannelNumberToEARFCN */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, -1, 1 }, /* NRS-NSSS-PowerOffset */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, -2, 0 } /* NSSS-NumOccasionDifferentPrecoder */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_584 = {
+       sizeof(struct FDD_Info_ExtIEs__extensionValue),
+       offsetof(struct FDD_Info_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct FDD_Info_ExtIEs__extensionValue, present),
+       sizeof(((struct FDD_Info_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_584,
+       4,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_584 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_584,
+       4,      /* Elements count */
+       &asn_SPC_extensionValue_specs_584       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_FDD_Info_ExtIEs_581[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_Info_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_582, &asn_PER_memb_id_constr_582,  memb_id_constraint_581 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct FDD_Info_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_FDD_Info_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_583, &asn_PER_memb_criticality_constr_583,  memb_criticality_constraint_581 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct FDD_Info_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_584,
+               select_FDD_Info_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_584, &asn_PER_memb_extensionValue_constr_584,  memb_extensionValue_constraint_581 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_FDD_Info_ExtIEs_tags_581[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_FDD_Info_ExtIEs_tag2el_581[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_FDD_Info_ExtIEs_specs_581 = {
+       sizeof(struct FDD_Info_ExtIEs),
+       offsetof(struct FDD_Info_ExtIEs, _asn_ctx),
+       asn_MAP_FDD_Info_ExtIEs_tag2el_581,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_FDD_Info_ExtIEs = {
+       "FDD-Info-ExtIEs",
+       "FDD-Info-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_FDD_Info_ExtIEs_tags_581,
+       sizeof(asn_DEF_FDD_Info_ExtIEs_tags_581)
+               /sizeof(asn_DEF_FDD_Info_ExtIEs_tags_581[0]), /* 1 */
+       asn_DEF_FDD_Info_ExtIEs_tags_581,       /* Same as above */
+       sizeof(asn_DEF_FDD_Info_ExtIEs_tags_581)
+               /sizeof(asn_DEF_FDD_Info_ExtIEs_tags_581[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_FDD_Info_ExtIEs_581,
+       3,      /* Elements count */
+       &asn_SPC_FDD_Info_ExtIEs_specs_581      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_588 = {
+       sizeof(struct ForbiddenTAs_Item_ExtIEs__extensionValue),
+       offsetof(struct ForbiddenTAs_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ForbiddenTAs_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct ForbiddenTAs_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_588 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_588       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ForbiddenTAs_Item_ExtIEs_585[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ForbiddenTAs_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_586, &asn_PER_memb_id_constr_586,  memb_id_constraint_585 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ForbiddenTAs_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_587, &asn_PER_memb_criticality_constr_587,  memb_criticality_constraint_585 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ForbiddenTAs_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_588,
+               0,
+               { &asn_OER_memb_extensionValue_constr_588, &asn_PER_memb_extensionValue_constr_588,  memb_extensionValue_constraint_585 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ForbiddenTAs_Item_ExtIEs_tags_585[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ForbiddenTAs_Item_ExtIEs_tag2el_585[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ForbiddenTAs_Item_ExtIEs_specs_585 = {
+       sizeof(struct ForbiddenTAs_Item_ExtIEs),
+       offsetof(struct ForbiddenTAs_Item_ExtIEs, _asn_ctx),
+       asn_MAP_ForbiddenTAs_Item_ExtIEs_tag2el_585,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ForbiddenTAs_Item_ExtIEs = {
+       "ForbiddenTAs-Item-ExtIEs",
+       "ForbiddenTAs-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ForbiddenTAs_Item_ExtIEs_tags_585,
+       sizeof(asn_DEF_ForbiddenTAs_Item_ExtIEs_tags_585)
+               /sizeof(asn_DEF_ForbiddenTAs_Item_ExtIEs_tags_585[0]), /* 1 */
+       asn_DEF_ForbiddenTAs_Item_ExtIEs_tags_585,      /* Same as above */
+       sizeof(asn_DEF_ForbiddenTAs_Item_ExtIEs_tags_585)
+               /sizeof(asn_DEF_ForbiddenTAs_Item_ExtIEs_tags_585[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ForbiddenTAs_Item_ExtIEs_585,
+       3,      /* Elements count */
+       &asn_SPC_ForbiddenTAs_Item_ExtIEs_specs_585     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_592 = {
+       sizeof(struct ForbiddenLAs_Item_ExtIEs__extensionValue),
+       offsetof(struct ForbiddenLAs_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ForbiddenLAs_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct ForbiddenLAs_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_592 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_592       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ForbiddenLAs_Item_ExtIEs_589[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ForbiddenLAs_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_590, &asn_PER_memb_id_constr_590,  memb_id_constraint_589 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ForbiddenLAs_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_591, &asn_PER_memb_criticality_constr_591,  memb_criticality_constraint_589 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ForbiddenLAs_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_592,
+               0,
+               { &asn_OER_memb_extensionValue_constr_592, &asn_PER_memb_extensionValue_constr_592,  memb_extensionValue_constraint_589 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ForbiddenLAs_Item_ExtIEs_tags_589[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ForbiddenLAs_Item_ExtIEs_tag2el_589[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ForbiddenLAs_Item_ExtIEs_specs_589 = {
+       sizeof(struct ForbiddenLAs_Item_ExtIEs),
+       offsetof(struct ForbiddenLAs_Item_ExtIEs, _asn_ctx),
+       asn_MAP_ForbiddenLAs_Item_ExtIEs_tag2el_589,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ForbiddenLAs_Item_ExtIEs = {
+       "ForbiddenLAs-Item-ExtIEs",
+       "ForbiddenLAs-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ForbiddenLAs_Item_ExtIEs_tags_589,
+       sizeof(asn_DEF_ForbiddenLAs_Item_ExtIEs_tags_589)
+               /sizeof(asn_DEF_ForbiddenLAs_Item_ExtIEs_tags_589[0]), /* 1 */
+       asn_DEF_ForbiddenLAs_Item_ExtIEs_tags_589,      /* Same as above */
+       sizeof(asn_DEF_ForbiddenLAs_Item_ExtIEs_tags_589)
+               /sizeof(asn_DEF_ForbiddenLAs_Item_ExtIEs_tags_589[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ForbiddenLAs_Item_ExtIEs_589,
+       3,      /* Elements count */
+       &asn_SPC_ForbiddenLAs_Item_ExtIEs_specs_589     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_596 = {
+       sizeof(struct FreqBandNrItem_ExtIEs__extensionValue),
+       offsetof(struct FreqBandNrItem_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct FreqBandNrItem_ExtIEs__extensionValue, present),
+       sizeof(((struct FreqBandNrItem_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_596 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_596       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_FreqBandNrItem_ExtIEs_593[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct FreqBandNrItem_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_594, &asn_PER_memb_id_constr_594,  memb_id_constraint_593 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct FreqBandNrItem_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_595, &asn_PER_memb_criticality_constr_595,  memb_criticality_constraint_593 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct FreqBandNrItem_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_596,
+               0,
+               { &asn_OER_memb_extensionValue_constr_596, &asn_PER_memb_extensionValue_constr_596,  memb_extensionValue_constraint_593 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_FreqBandNrItem_ExtIEs_tags_593[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_FreqBandNrItem_ExtIEs_tag2el_593[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_FreqBandNrItem_ExtIEs_specs_593 = {
+       sizeof(struct FreqBandNrItem_ExtIEs),
+       offsetof(struct FreqBandNrItem_ExtIEs, _asn_ctx),
+       asn_MAP_FreqBandNrItem_ExtIEs_tag2el_593,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_FreqBandNrItem_ExtIEs = {
+       "FreqBandNrItem-ExtIEs",
+       "FreqBandNrItem-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_FreqBandNrItem_ExtIEs_tags_593,
+       sizeof(asn_DEF_FreqBandNrItem_ExtIEs_tags_593)
+               /sizeof(asn_DEF_FreqBandNrItem_ExtIEs_tags_593[0]), /* 1 */
+       asn_DEF_FreqBandNrItem_ExtIEs_tags_593, /* Same as above */
+       sizeof(asn_DEF_FreqBandNrItem_ExtIEs_tags_593)
+               /sizeof(asn_DEF_FreqBandNrItem_ExtIEs_tags_593[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_FreqBandNrItem_ExtIEs_593,
+       3,      /* Elements count */
+       &asn_SPC_FreqBandNrItem_ExtIEs_specs_593        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_600[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation_ExtIEs__extensionValue, choice.ExtendedBitRate),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_ExtendedBitRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ExtendedBitRate"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_600[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* ExtendedBitRate */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_600 = {
+       sizeof(struct GBR_QosInformation_ExtIEs__extensionValue),
+       offsetof(struct GBR_QosInformation_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct GBR_QosInformation_ExtIEs__extensionValue, present),
+       sizeof(((struct GBR_QosInformation_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_600,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_600 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_600,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_600       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_GBR_QosInformation_ExtIEs_597[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_598, &asn_PER_memb_id_constr_598,  memb_id_constraint_597 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_GBR_QosInformation_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_599, &asn_PER_memb_criticality_constr_599,  memb_criticality_constraint_597 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_600,
+               select_GBR_QosInformation_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_600, &asn_PER_memb_extensionValue_constr_600,  memb_extensionValue_constraint_597 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_GBR_QosInformation_ExtIEs_tags_597[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GBR_QosInformation_ExtIEs_tag2el_597[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_GBR_QosInformation_ExtIEs_specs_597 = {
+       sizeof(struct GBR_QosInformation_ExtIEs),
+       offsetof(struct GBR_QosInformation_ExtIEs, _asn_ctx),
+       asn_MAP_GBR_QosInformation_ExtIEs_tag2el_597,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_GBR_QosInformation_ExtIEs = {
+       "GBR-QosInformation-ExtIEs",
+       "GBR-QosInformation-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_GBR_QosInformation_ExtIEs_tags_597,
+       sizeof(asn_DEF_GBR_QosInformation_ExtIEs_tags_597)
+               /sizeof(asn_DEF_GBR_QosInformation_ExtIEs_tags_597[0]), /* 1 */
+       asn_DEF_GBR_QosInformation_ExtIEs_tags_597,     /* Same as above */
+       sizeof(asn_DEF_GBR_QosInformation_ExtIEs_tags_597)
+               /sizeof(asn_DEF_GBR_QosInformation_ExtIEs_tags_597[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_GBR_QosInformation_ExtIEs_597,
+       3,      /* Elements count */
+       &asn_SPC_GBR_QosInformation_ExtIEs_specs_597    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_604 = {
+       sizeof(struct GlobalENB_ID_ExtIEs__extensionValue),
+       offsetof(struct GlobalENB_ID_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct GlobalENB_ID_ExtIEs__extensionValue, present),
+       sizeof(((struct GlobalENB_ID_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_604 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_604       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_GlobalENB_ID_ExtIEs_601[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_602, &asn_PER_memb_id_constr_602,  memb_id_constraint_601 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_603, &asn_PER_memb_criticality_constr_603,  memb_criticality_constraint_601 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_604,
+               0,
+               { &asn_OER_memb_extensionValue_constr_604, &asn_PER_memb_extensionValue_constr_604,  memb_extensionValue_constraint_601 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_GlobalENB_ID_ExtIEs_tags_601[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GlobalENB_ID_ExtIEs_tag2el_601[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_ExtIEs_specs_601 = {
+       sizeof(struct GlobalENB_ID_ExtIEs),
+       offsetof(struct GlobalENB_ID_ExtIEs, _asn_ctx),
+       asn_MAP_GlobalENB_ID_ExtIEs_tag2el_601,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID_ExtIEs = {
+       "GlobalENB-ID-ExtIEs",
+       "GlobalENB-ID-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_GlobalENB_ID_ExtIEs_tags_601,
+       sizeof(asn_DEF_GlobalENB_ID_ExtIEs_tags_601)
+               /sizeof(asn_DEF_GlobalENB_ID_ExtIEs_tags_601[0]), /* 1 */
+       asn_DEF_GlobalENB_ID_ExtIEs_tags_601,   /* Same as above */
+       sizeof(asn_DEF_GlobalENB_ID_ExtIEs_tags_601)
+               /sizeof(asn_DEF_GlobalENB_ID_ExtIEs_tags_601[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_GlobalENB_ID_ExtIEs_601,
+       3,      /* Elements count */
+       &asn_SPC_GlobalENB_ID_ExtIEs_specs_601  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_608 = {
+       sizeof(struct GlobalGNB_ID_ExtIEs__extensionValue),
+       offsetof(struct GlobalGNB_ID_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct GlobalGNB_ID_ExtIEs__extensionValue, present),
+       sizeof(((struct GlobalGNB_ID_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_608 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_608       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_GlobalGNB_ID_ExtIEs_605[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct GlobalGNB_ID_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_606, &asn_PER_memb_id_constr_606,  memb_id_constraint_605 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct GlobalGNB_ID_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_607, &asn_PER_memb_criticality_constr_607,  memb_criticality_constraint_605 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GlobalGNB_ID_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_608,
+               0,
+               { &asn_OER_memb_extensionValue_constr_608, &asn_PER_memb_extensionValue_constr_608,  memb_extensionValue_constraint_605 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_GlobalGNB_ID_ExtIEs_tags_605[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GlobalGNB_ID_ExtIEs_tag2el_605[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_GlobalGNB_ID_ExtIEs_specs_605 = {
+       sizeof(struct GlobalGNB_ID_ExtIEs),
+       offsetof(struct GlobalGNB_ID_ExtIEs, _asn_ctx),
+       asn_MAP_GlobalGNB_ID_ExtIEs_tag2el_605,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_GlobalGNB_ID_ExtIEs = {
+       "GlobalGNB-ID-ExtIEs",
+       "GlobalGNB-ID-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_GlobalGNB_ID_ExtIEs_tags_605,
+       sizeof(asn_DEF_GlobalGNB_ID_ExtIEs_tags_605)
+               /sizeof(asn_DEF_GlobalGNB_ID_ExtIEs_tags_605[0]), /* 1 */
+       asn_DEF_GlobalGNB_ID_ExtIEs_tags_605,   /* Same as above */
+       sizeof(asn_DEF_GlobalGNB_ID_ExtIEs_tags_605)
+               /sizeof(asn_DEF_GlobalGNB_ID_ExtIEs_tags_605[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_GlobalGNB_ID_ExtIEs_605,
+       3,      /* Elements count */
+       &asn_SPC_GlobalGNB_ID_ExtIEs_specs_605  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_612 = {
+       sizeof(struct GTPtunnelEndpoint_ExtIEs__extensionValue),
+       offsetof(struct GTPtunnelEndpoint_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct GTPtunnelEndpoint_ExtIEs__extensionValue, present),
+       sizeof(((struct GTPtunnelEndpoint_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_612 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_612       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_GTPtunnelEndpoint_ExtIEs_609[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct GTPtunnelEndpoint_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_610, &asn_PER_memb_id_constr_610,  memb_id_constraint_609 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct GTPtunnelEndpoint_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_611, &asn_PER_memb_criticality_constr_611,  memb_criticality_constraint_609 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GTPtunnelEndpoint_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_612,
+               0,
+               { &asn_OER_memb_extensionValue_constr_612, &asn_PER_memb_extensionValue_constr_612,  memb_extensionValue_constraint_609 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_GTPtunnelEndpoint_ExtIEs_tags_609[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GTPtunnelEndpoint_ExtIEs_tag2el_609[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_GTPtunnelEndpoint_ExtIEs_specs_609 = {
+       sizeof(struct GTPtunnelEndpoint_ExtIEs),
+       offsetof(struct GTPtunnelEndpoint_ExtIEs, _asn_ctx),
+       asn_MAP_GTPtunnelEndpoint_ExtIEs_tag2el_609,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_GTPtunnelEndpoint_ExtIEs = {
+       "GTPtunnelEndpoint-ExtIEs",
+       "GTPtunnelEndpoint-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_GTPtunnelEndpoint_ExtIEs_tags_609,
+       sizeof(asn_DEF_GTPtunnelEndpoint_ExtIEs_tags_609)
+               /sizeof(asn_DEF_GTPtunnelEndpoint_ExtIEs_tags_609[0]), /* 1 */
+       asn_DEF_GTPtunnelEndpoint_ExtIEs_tags_609,      /* Same as above */
+       sizeof(asn_DEF_GTPtunnelEndpoint_ExtIEs_tags_609)
+               /sizeof(asn_DEF_GTPtunnelEndpoint_ExtIEs_tags_609[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_GTPtunnelEndpoint_ExtIEs_609,
+       3,      /* Elements count */
+       &asn_SPC_GTPtunnelEndpoint_ExtIEs_specs_609     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_616 = {
+       sizeof(struct GU_Group_ID_ExtIEs__extensionValue),
+       offsetof(struct GU_Group_ID_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct GU_Group_ID_ExtIEs__extensionValue, present),
+       sizeof(((struct GU_Group_ID_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_616 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_616       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_GU_Group_ID_ExtIEs_613[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct GU_Group_ID_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_614, &asn_PER_memb_id_constr_614,  memb_id_constraint_613 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct GU_Group_ID_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_615, &asn_PER_memb_criticality_constr_615,  memb_criticality_constraint_613 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GU_Group_ID_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_616,
+               0,
+               { &asn_OER_memb_extensionValue_constr_616, &asn_PER_memb_extensionValue_constr_616,  memb_extensionValue_constraint_613 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_GU_Group_ID_ExtIEs_tags_613[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GU_Group_ID_ExtIEs_tag2el_613[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_GU_Group_ID_ExtIEs_specs_613 = {
+       sizeof(struct GU_Group_ID_ExtIEs),
+       offsetof(struct GU_Group_ID_ExtIEs, _asn_ctx),
+       asn_MAP_GU_Group_ID_ExtIEs_tag2el_613,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_GU_Group_ID_ExtIEs = {
+       "GU-Group-ID-ExtIEs",
+       "GU-Group-ID-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_GU_Group_ID_ExtIEs_tags_613,
+       sizeof(asn_DEF_GU_Group_ID_ExtIEs_tags_613)
+               /sizeof(asn_DEF_GU_Group_ID_ExtIEs_tags_613[0]), /* 1 */
+       asn_DEF_GU_Group_ID_ExtIEs_tags_613,    /* Same as above */
+       sizeof(asn_DEF_GU_Group_ID_ExtIEs_tags_613)
+               /sizeof(asn_DEF_GU_Group_ID_ExtIEs_tags_613[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_GU_Group_ID_ExtIEs_613,
+       3,      /* Elements count */
+       &asn_SPC_GU_Group_ID_ExtIEs_specs_613   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_620 = {
+       sizeof(struct GUMMEI_ExtIEs__extensionValue),
+       offsetof(struct GUMMEI_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct GUMMEI_ExtIEs__extensionValue, present),
+       sizeof(((struct GUMMEI_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_620 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_620       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_GUMMEI_ExtIEs_617[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct GUMMEI_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_618, &asn_PER_memb_id_constr_618,  memb_id_constraint_617 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct GUMMEI_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_619, &asn_PER_memb_criticality_constr_619,  memb_criticality_constraint_617 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GUMMEI_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_620,
+               0,
+               { &asn_OER_memb_extensionValue_constr_620, &asn_PER_memb_extensionValue_constr_620,  memb_extensionValue_constraint_617 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_GUMMEI_ExtIEs_tags_617[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GUMMEI_ExtIEs_tag2el_617[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_GUMMEI_ExtIEs_specs_617 = {
+       sizeof(struct GUMMEI_ExtIEs),
+       offsetof(struct GUMMEI_ExtIEs, _asn_ctx),
+       asn_MAP_GUMMEI_ExtIEs_tag2el_617,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_GUMMEI_ExtIEs = {
+       "GUMMEI-ExtIEs",
+       "GUMMEI-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_GUMMEI_ExtIEs_tags_617,
+       sizeof(asn_DEF_GUMMEI_ExtIEs_tags_617)
+               /sizeof(asn_DEF_GUMMEI_ExtIEs_tags_617[0]), /* 1 */
+       asn_DEF_GUMMEI_ExtIEs_tags_617, /* Same as above */
+       sizeof(asn_DEF_GUMMEI_ExtIEs_tags_617)
+               /sizeof(asn_DEF_GUMMEI_ExtIEs_tags_617[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_GUMMEI_ExtIEs_617,
+       3,      /* Elements count */
+       &asn_SPC_GUMMEI_ExtIEs_specs_617        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_624[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRestrictionList_ExtIEs__extensionValue, choice.NRrestrictioninEPSasSecondaryRAT),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_NRrestrictioninEPSasSecondaryRAT,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "NRrestrictioninEPSasSecondaryRAT"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRestrictionList_ExtIEs__extensionValue, choice.CNTypeRestrictions),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CNTypeRestrictions,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CNTypeRestrictions"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRestrictionList_ExtIEs__extensionValue, choice.NRrestrictionin5GS),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_NRrestrictionin5GS,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "NRrestrictionin5GS"
+               },
+};
+static const unsigned asn_MAP_extensionValue_to_canonical_624[] = { 0, 2, 1 };
+static const unsigned asn_MAP_extensionValue_from_canonical_624[] = { 0, 2, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_624[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 1 }, /* NRrestrictioninEPSasSecondaryRAT */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, -1, 0 }, /* NRrestrictionin5GS */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* CNTypeRestrictions */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_624 = {
+       sizeof(struct HandoverRestrictionList_ExtIEs__extensionValue),
+       offsetof(struct HandoverRestrictionList_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct HandoverRestrictionList_ExtIEs__extensionValue, present),
+       sizeof(((struct HandoverRestrictionList_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_624,
+       3,      /* Count of tags in the map */
+       asn_MAP_extensionValue_to_canonical_624,
+       asn_MAP_extensionValue_from_canonical_624,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_624 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_624,
+       3,      /* Elements count */
+       &asn_SPC_extensionValue_specs_624       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_HandoverRestrictionList_ExtIEs_621[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRestrictionList_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_622, &asn_PER_memb_id_constr_622,  memb_id_constraint_621 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRestrictionList_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_HandoverRestrictionList_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_623, &asn_PER_memb_criticality_constr_623,  memb_criticality_constraint_621 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct HandoverRestrictionList_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_624,
+               select_HandoverRestrictionList_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_624, &asn_PER_memb_extensionValue_constr_624,  memb_extensionValue_constraint_621 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_HandoverRestrictionList_ExtIEs_tags_621[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_HandoverRestrictionList_ExtIEs_tag2el_621[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_HandoverRestrictionList_ExtIEs_specs_621 = {
+       sizeof(struct HandoverRestrictionList_ExtIEs),
+       offsetof(struct HandoverRestrictionList_ExtIEs, _asn_ctx),
+       asn_MAP_HandoverRestrictionList_ExtIEs_tag2el_621,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_HandoverRestrictionList_ExtIEs = {
+       "HandoverRestrictionList-ExtIEs",
+       "HandoverRestrictionList-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_HandoverRestrictionList_ExtIEs_tags_621,
+       sizeof(asn_DEF_HandoverRestrictionList_ExtIEs_tags_621)
+               /sizeof(asn_DEF_HandoverRestrictionList_ExtIEs_tags_621[0]), /* 1 */
+       asn_DEF_HandoverRestrictionList_ExtIEs_tags_621,        /* Same as above */
+       sizeof(asn_DEF_HandoverRestrictionList_ExtIEs_tags_621)
+               /sizeof(asn_DEF_HandoverRestrictionList_ExtIEs_tags_621[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_HandoverRestrictionList_ExtIEs_621,
+       3,      /* Elements count */
+       &asn_SPC_HandoverRestrictionList_ExtIEs_specs_621       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_628 = {
+       sizeof(struct HWLoadIndicator_ExtIEs__extensionValue),
+       offsetof(struct HWLoadIndicator_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct HWLoadIndicator_ExtIEs__extensionValue, present),
+       sizeof(((struct HWLoadIndicator_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_628 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_628       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_HWLoadIndicator_ExtIEs_625[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HWLoadIndicator_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_626, &asn_PER_memb_id_constr_626,  memb_id_constraint_625 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HWLoadIndicator_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_627, &asn_PER_memb_criticality_constr_627,  memb_criticality_constraint_625 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct HWLoadIndicator_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_628,
+               0,
+               { &asn_OER_memb_extensionValue_constr_628, &asn_PER_memb_extensionValue_constr_628,  memb_extensionValue_constraint_625 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_HWLoadIndicator_ExtIEs_tags_625[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_HWLoadIndicator_ExtIEs_tag2el_625[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_HWLoadIndicator_ExtIEs_specs_625 = {
+       sizeof(struct HWLoadIndicator_ExtIEs),
+       offsetof(struct HWLoadIndicator_ExtIEs, _asn_ctx),
+       asn_MAP_HWLoadIndicator_ExtIEs_tag2el_625,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_HWLoadIndicator_ExtIEs = {
+       "HWLoadIndicator-ExtIEs",
+       "HWLoadIndicator-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_HWLoadIndicator_ExtIEs_tags_625,
+       sizeof(asn_DEF_HWLoadIndicator_ExtIEs_tags_625)
+               /sizeof(asn_DEF_HWLoadIndicator_ExtIEs_tags_625[0]), /* 1 */
+       asn_DEF_HWLoadIndicator_ExtIEs_tags_625,        /* Same as above */
+       sizeof(asn_DEF_HWLoadIndicator_ExtIEs_tags_625)
+               /sizeof(asn_DEF_HWLoadIndicator_ExtIEs_tags_625[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_HWLoadIndicator_ExtIEs_625,
+       3,      /* Elements count */
+       &asn_SPC_HWLoadIndicator_ExtIEs_specs_625       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_632[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs__extensionValue, choice.Time_UE_StayedInCell_EnhancedGranularity),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_Time_UE_StayedInCell_EnhancedGranularity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Time-UE-StayedInCell-EnhancedGranularity"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs__extensionValue, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_632[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* Time-UE-StayedInCell-EnhancedGranularity */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_632 = {
+       sizeof(struct LastVisitedEUTRANCellInformation_ExtIEs__extensionValue),
+       offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs__extensionValue, present),
+       sizeof(((struct LastVisitedEUTRANCellInformation_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_632,
+       5,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_632 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_632,
+       2,      /* Elements count */
+       &asn_SPC_extensionValue_specs_632       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_LastVisitedEUTRANCellInformation_ExtIEs_629[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_630, &asn_PER_memb_id_constr_630,  memb_id_constraint_629 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_LastVisitedEUTRANCellInformation_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_631, &asn_PER_memb_criticality_constr_631,  memb_criticality_constraint_629 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_632,
+               select_LastVisitedEUTRANCellInformation_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_632, &asn_PER_memb_extensionValue_constr_632,  memb_extensionValue_constraint_629 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs_tags_629[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_LastVisitedEUTRANCellInformation_ExtIEs_tag2el_629[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_LastVisitedEUTRANCellInformation_ExtIEs_specs_629 = {
+       sizeof(struct LastVisitedEUTRANCellInformation_ExtIEs),
+       offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs, _asn_ctx),
+       asn_MAP_LastVisitedEUTRANCellInformation_ExtIEs_tag2el_629,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs = {
+       "LastVisitedEUTRANCellInformation-ExtIEs",
+       "LastVisitedEUTRANCellInformation-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs_tags_629,
+       sizeof(asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs_tags_629)
+               /sizeof(asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs_tags_629[0]), /* 1 */
+       asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs_tags_629,       /* Same as above */
+       sizeof(asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs_tags_629)
+               /sizeof(asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs_tags_629[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_LastVisitedEUTRANCellInformation_ExtIEs_629,
+       3,      /* Elements count */
+       &asn_SPC_LastVisitedEUTRANCellInformation_ExtIEs_specs_629      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_636 = {
+       sizeof(struct LocationReportingInformation_ExtIEs__extensionValue),
+       offsetof(struct LocationReportingInformation_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct LocationReportingInformation_ExtIEs__extensionValue, present),
+       sizeof(((struct LocationReportingInformation_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_636 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_636       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_LocationReportingInformation_ExtIEs_633[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct LocationReportingInformation_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_634, &asn_PER_memb_id_constr_634,  memb_id_constraint_633 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct LocationReportingInformation_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_635, &asn_PER_memb_criticality_constr_635,  memb_criticality_constraint_633 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct LocationReportingInformation_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_636,
+               0,
+               { &asn_OER_memb_extensionValue_constr_636, &asn_PER_memb_extensionValue_constr_636,  memb_extensionValue_constraint_633 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_LocationReportingInformation_ExtIEs_tags_633[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_LocationReportingInformation_ExtIEs_tag2el_633[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_LocationReportingInformation_ExtIEs_specs_633 = {
+       sizeof(struct LocationReportingInformation_ExtIEs),
+       offsetof(struct LocationReportingInformation_ExtIEs, _asn_ctx),
+       asn_MAP_LocationReportingInformation_ExtIEs_tag2el_633,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_LocationReportingInformation_ExtIEs = {
+       "LocationReportingInformation-ExtIEs",
+       "LocationReportingInformation-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_LocationReportingInformation_ExtIEs_tags_633,
+       sizeof(asn_DEF_LocationReportingInformation_ExtIEs_tags_633)
+               /sizeof(asn_DEF_LocationReportingInformation_ExtIEs_tags_633[0]), /* 1 */
+       asn_DEF_LocationReportingInformation_ExtIEs_tags_633,   /* Same as above */
+       sizeof(asn_DEF_LocationReportingInformation_ExtIEs_tags_633)
+               /sizeof(asn_DEF_LocationReportingInformation_ExtIEs_tags_633[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_LocationReportingInformation_ExtIEs_633,
+       3,      /* Elements count */
+       &asn_SPC_LocationReportingInformation_ExtIEs_specs_633  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_640 = {
+       sizeof(struct M1PeriodicReporting_ExtIEs__extensionValue),
+       offsetof(struct M1PeriodicReporting_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct M1PeriodicReporting_ExtIEs__extensionValue, present),
+       sizeof(((struct M1PeriodicReporting_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_640 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_640       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_M1PeriodicReporting_ExtIEs_637[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct M1PeriodicReporting_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_638, &asn_PER_memb_id_constr_638,  memb_id_constraint_637 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct M1PeriodicReporting_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_639, &asn_PER_memb_criticality_constr_639,  memb_criticality_constraint_637 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct M1PeriodicReporting_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_640,
+               0,
+               { &asn_OER_memb_extensionValue_constr_640, &asn_PER_memb_extensionValue_constr_640,  memb_extensionValue_constraint_637 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_M1PeriodicReporting_ExtIEs_tags_637[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_M1PeriodicReporting_ExtIEs_tag2el_637[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_M1PeriodicReporting_ExtIEs_specs_637 = {
+       sizeof(struct M1PeriodicReporting_ExtIEs),
+       offsetof(struct M1PeriodicReporting_ExtIEs, _asn_ctx),
+       asn_MAP_M1PeriodicReporting_ExtIEs_tag2el_637,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_M1PeriodicReporting_ExtIEs = {
+       "M1PeriodicReporting-ExtIEs",
+       "M1PeriodicReporting-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_M1PeriodicReporting_ExtIEs_tags_637,
+       sizeof(asn_DEF_M1PeriodicReporting_ExtIEs_tags_637)
+               /sizeof(asn_DEF_M1PeriodicReporting_ExtIEs_tags_637[0]), /* 1 */
+       asn_DEF_M1PeriodicReporting_ExtIEs_tags_637,    /* Same as above */
+       sizeof(asn_DEF_M1PeriodicReporting_ExtIEs_tags_637)
+               /sizeof(asn_DEF_M1PeriodicReporting_ExtIEs_tags_637[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_M1PeriodicReporting_ExtIEs_637,
+       3,      /* Elements count */
+       &asn_SPC_M1PeriodicReporting_ExtIEs_specs_637   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_644 = {
+       sizeof(struct M1ThresholdEventA2_ExtIEs__extensionValue),
+       offsetof(struct M1ThresholdEventA2_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct M1ThresholdEventA2_ExtIEs__extensionValue, present),
+       sizeof(((struct M1ThresholdEventA2_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_644 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_644       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_M1ThresholdEventA2_ExtIEs_641[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct M1ThresholdEventA2_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_642, &asn_PER_memb_id_constr_642,  memb_id_constraint_641 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct M1ThresholdEventA2_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_643, &asn_PER_memb_criticality_constr_643,  memb_criticality_constraint_641 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct M1ThresholdEventA2_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_644,
+               0,
+               { &asn_OER_memb_extensionValue_constr_644, &asn_PER_memb_extensionValue_constr_644,  memb_extensionValue_constraint_641 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_M1ThresholdEventA2_ExtIEs_tags_641[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_M1ThresholdEventA2_ExtIEs_tag2el_641[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_M1ThresholdEventA2_ExtIEs_specs_641 = {
+       sizeof(struct M1ThresholdEventA2_ExtIEs),
+       offsetof(struct M1ThresholdEventA2_ExtIEs, _asn_ctx),
+       asn_MAP_M1ThresholdEventA2_ExtIEs_tag2el_641,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_M1ThresholdEventA2_ExtIEs = {
+       "M1ThresholdEventA2-ExtIEs",
+       "M1ThresholdEventA2-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_M1ThresholdEventA2_ExtIEs_tags_641,
+       sizeof(asn_DEF_M1ThresholdEventA2_ExtIEs_tags_641)
+               /sizeof(asn_DEF_M1ThresholdEventA2_ExtIEs_tags_641[0]), /* 1 */
+       asn_DEF_M1ThresholdEventA2_ExtIEs_tags_641,     /* Same as above */
+       sizeof(asn_DEF_M1ThresholdEventA2_ExtIEs_tags_641)
+               /sizeof(asn_DEF_M1ThresholdEventA2_ExtIEs_tags_641[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_M1ThresholdEventA2_ExtIEs_641,
+       3,      /* Elements count */
+       &asn_SPC_M1ThresholdEventA2_ExtIEs_specs_641    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_648 = {
+       sizeof(struct M3Configuration_ExtIEs__extensionValue),
+       offsetof(struct M3Configuration_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct M3Configuration_ExtIEs__extensionValue, present),
+       sizeof(((struct M3Configuration_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_648 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_648       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_M3Configuration_ExtIEs_645[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct M3Configuration_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_646, &asn_PER_memb_id_constr_646,  memb_id_constraint_645 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct M3Configuration_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_647, &asn_PER_memb_criticality_constr_647,  memb_criticality_constraint_645 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct M3Configuration_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_648,
+               0,
+               { &asn_OER_memb_extensionValue_constr_648, &asn_PER_memb_extensionValue_constr_648,  memb_extensionValue_constraint_645 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_M3Configuration_ExtIEs_tags_645[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_M3Configuration_ExtIEs_tag2el_645[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_M3Configuration_ExtIEs_specs_645 = {
+       sizeof(struct M3Configuration_ExtIEs),
+       offsetof(struct M3Configuration_ExtIEs, _asn_ctx),
+       asn_MAP_M3Configuration_ExtIEs_tag2el_645,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_M3Configuration_ExtIEs = {
+       "M3Configuration-ExtIEs",
+       "M3Configuration-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_M3Configuration_ExtIEs_tags_645,
+       sizeof(asn_DEF_M3Configuration_ExtIEs_tags_645)
+               /sizeof(asn_DEF_M3Configuration_ExtIEs_tags_645[0]), /* 1 */
+       asn_DEF_M3Configuration_ExtIEs_tags_645,        /* Same as above */
+       sizeof(asn_DEF_M3Configuration_ExtIEs_tags_645)
+               /sizeof(asn_DEF_M3Configuration_ExtIEs_tags_645[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_M3Configuration_ExtIEs_645,
+       3,      /* Elements count */
+       &asn_SPC_M3Configuration_ExtIEs_specs_645       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_652 = {
+       sizeof(struct M4Configuration_ExtIEs__extensionValue),
+       offsetof(struct M4Configuration_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct M4Configuration_ExtIEs__extensionValue, present),
+       sizeof(((struct M4Configuration_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_652 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_652       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_M4Configuration_ExtIEs_649[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct M4Configuration_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_650, &asn_PER_memb_id_constr_650,  memb_id_constraint_649 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct M4Configuration_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_651, &asn_PER_memb_criticality_constr_651,  memb_criticality_constraint_649 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct M4Configuration_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_652,
+               0,
+               { &asn_OER_memb_extensionValue_constr_652, &asn_PER_memb_extensionValue_constr_652,  memb_extensionValue_constraint_649 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_M4Configuration_ExtIEs_tags_649[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_M4Configuration_ExtIEs_tag2el_649[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_M4Configuration_ExtIEs_specs_649 = {
+       sizeof(struct M4Configuration_ExtIEs),
+       offsetof(struct M4Configuration_ExtIEs, _asn_ctx),
+       asn_MAP_M4Configuration_ExtIEs_tag2el_649,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_M4Configuration_ExtIEs = {
+       "M4Configuration-ExtIEs",
+       "M4Configuration-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_M4Configuration_ExtIEs_tags_649,
+       sizeof(asn_DEF_M4Configuration_ExtIEs_tags_649)
+               /sizeof(asn_DEF_M4Configuration_ExtIEs_tags_649[0]), /* 1 */
+       asn_DEF_M4Configuration_ExtIEs_tags_649,        /* Same as above */
+       sizeof(asn_DEF_M4Configuration_ExtIEs_tags_649)
+               /sizeof(asn_DEF_M4Configuration_ExtIEs_tags_649[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_M4Configuration_ExtIEs_649,
+       3,      /* Elements count */
+       &asn_SPC_M4Configuration_ExtIEs_specs_649       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_656 = {
+       sizeof(struct M5Configuration_ExtIEs__extensionValue),
+       offsetof(struct M5Configuration_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct M5Configuration_ExtIEs__extensionValue, present),
+       sizeof(((struct M5Configuration_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_656 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_656       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_M5Configuration_ExtIEs_653[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct M5Configuration_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_654, &asn_PER_memb_id_constr_654,  memb_id_constraint_653 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct M5Configuration_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_655, &asn_PER_memb_criticality_constr_655,  memb_criticality_constraint_653 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct M5Configuration_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_656,
+               0,
+               { &asn_OER_memb_extensionValue_constr_656, &asn_PER_memb_extensionValue_constr_656,  memb_extensionValue_constraint_653 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_M5Configuration_ExtIEs_tags_653[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_M5Configuration_ExtIEs_tag2el_653[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_M5Configuration_ExtIEs_specs_653 = {
+       sizeof(struct M5Configuration_ExtIEs),
+       offsetof(struct M5Configuration_ExtIEs, _asn_ctx),
+       asn_MAP_M5Configuration_ExtIEs_tag2el_653,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_M5Configuration_ExtIEs = {
+       "M5Configuration-ExtIEs",
+       "M5Configuration-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_M5Configuration_ExtIEs_tags_653,
+       sizeof(asn_DEF_M5Configuration_ExtIEs_tags_653)
+               /sizeof(asn_DEF_M5Configuration_ExtIEs_tags_653[0]), /* 1 */
+       asn_DEF_M5Configuration_ExtIEs_tags_653,        /* Same as above */
+       sizeof(asn_DEF_M5Configuration_ExtIEs_tags_653)
+               /sizeof(asn_DEF_M5Configuration_ExtIEs_tags_653[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_M5Configuration_ExtIEs_653,
+       3,      /* Elements count */
+       &asn_SPC_M5Configuration_ExtIEs_specs_653       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_660 = {
+       sizeof(struct M6Configuration_ExtIEs__extensionValue),
+       offsetof(struct M6Configuration_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct M6Configuration_ExtIEs__extensionValue, present),
+       sizeof(((struct M6Configuration_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_660 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_660       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_M6Configuration_ExtIEs_657[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct M6Configuration_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_658, &asn_PER_memb_id_constr_658,  memb_id_constraint_657 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct M6Configuration_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_659, &asn_PER_memb_criticality_constr_659,  memb_criticality_constraint_657 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct M6Configuration_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_660,
+               0,
+               { &asn_OER_memb_extensionValue_constr_660, &asn_PER_memb_extensionValue_constr_660,  memb_extensionValue_constraint_657 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_M6Configuration_ExtIEs_tags_657[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_M6Configuration_ExtIEs_tag2el_657[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_M6Configuration_ExtIEs_specs_657 = {
+       sizeof(struct M6Configuration_ExtIEs),
+       offsetof(struct M6Configuration_ExtIEs, _asn_ctx),
+       asn_MAP_M6Configuration_ExtIEs_tag2el_657,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_M6Configuration_ExtIEs = {
+       "M6Configuration-ExtIEs",
+       "M6Configuration-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_M6Configuration_ExtIEs_tags_657,
+       sizeof(asn_DEF_M6Configuration_ExtIEs_tags_657)
+               /sizeof(asn_DEF_M6Configuration_ExtIEs_tags_657[0]), /* 1 */
+       asn_DEF_M6Configuration_ExtIEs_tags_657,        /* Same as above */
+       sizeof(asn_DEF_M6Configuration_ExtIEs_tags_657)
+               /sizeof(asn_DEF_M6Configuration_ExtIEs_tags_657[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_M6Configuration_ExtIEs_657,
+       3,      /* Elements count */
+       &asn_SPC_M6Configuration_ExtIEs_specs_657       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_664 = {
+       sizeof(struct M7Configuration_ExtIEs__extensionValue),
+       offsetof(struct M7Configuration_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct M7Configuration_ExtIEs__extensionValue, present),
+       sizeof(((struct M7Configuration_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_664 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_664       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_M7Configuration_ExtIEs_661[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct M7Configuration_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_662, &asn_PER_memb_id_constr_662,  memb_id_constraint_661 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct M7Configuration_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_663, &asn_PER_memb_criticality_constr_663,  memb_criticality_constraint_661 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct M7Configuration_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_664,
+               0,
+               { &asn_OER_memb_extensionValue_constr_664, &asn_PER_memb_extensionValue_constr_664,  memb_extensionValue_constraint_661 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_M7Configuration_ExtIEs_tags_661[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_M7Configuration_ExtIEs_tag2el_661[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_M7Configuration_ExtIEs_specs_661 = {
+       sizeof(struct M7Configuration_ExtIEs),
+       offsetof(struct M7Configuration_ExtIEs, _asn_ctx),
+       asn_MAP_M7Configuration_ExtIEs_tag2el_661,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_M7Configuration_ExtIEs = {
+       "M7Configuration-ExtIEs",
+       "M7Configuration-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_M7Configuration_ExtIEs_tags_661,
+       sizeof(asn_DEF_M7Configuration_ExtIEs_tags_661)
+               /sizeof(asn_DEF_M7Configuration_ExtIEs_tags_661[0]), /* 1 */
+       asn_DEF_M7Configuration_ExtIEs_tags_661,        /* Same as above */
+       sizeof(asn_DEF_M7Configuration_ExtIEs_tags_661)
+               /sizeof(asn_DEF_M7Configuration_ExtIEs_tags_661[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_M7Configuration_ExtIEs_661,
+       3,      /* Elements count */
+       &asn_SPC_M7Configuration_ExtIEs_specs_661       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_668[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.M3Configuration),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_M3Configuration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "M3Configuration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.M4Configuration),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_M4Configuration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "M4Configuration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.M5Configuration),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_M5Configuration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "M5Configuration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.MDT_Location_Info),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_MDT_Location_Info,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MDT-Location-Info"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.MDTPLMNList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MDTPLMNList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MDTPLMNList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.M6Configuration),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_M6Configuration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "M6Configuration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.M7Configuration),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_M7Configuration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "M7Configuration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.BluetoothMeasurementConfiguration),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_BluetoothMeasurementConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "BluetoothMeasurementConfiguration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.WLANMeasurementConfiguration),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_WLANMeasurementConfiguration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "WLANMeasurementConfiguration"
+               },
+};
+static const unsigned asn_MAP_extensionValue_to_canonical_668[] = { 3, 0, 1, 2, 4, 5, 6, 7, 8 };
+static const unsigned asn_MAP_extensionValue_from_canonical_668[] = { 1, 2, 3, 0, 4, 5, 6, 7, 8 };
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_668[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 3, 0, 0 }, /* MDT-Location-Info */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 7 }, /* M3Configuration */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 6 }, /* M4Configuration */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 5 }, /* M5Configuration */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -3, 4 }, /* MDTPLMNList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -4, 3 }, /* M6Configuration */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -5, 2 }, /* M7Configuration */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -6, 1 }, /* BluetoothMeasurementConfiguration */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -7, 0 } /* WLANMeasurementConfiguration */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_668 = {
+       sizeof(struct MDT_Configuration_ExtIEs__extensionValue),
+       offsetof(struct MDT_Configuration_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct MDT_Configuration_ExtIEs__extensionValue, present),
+       sizeof(((struct MDT_Configuration_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_668,
+       9,      /* Count of tags in the map */
+       asn_MAP_extensionValue_to_canonical_668,
+       asn_MAP_extensionValue_from_canonical_668,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_668 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_668,
+       9,      /* Elements count */
+       &asn_SPC_extensionValue_specs_668       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_MDT_Configuration_ExtIEs_665[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_666, &asn_PER_memb_id_constr_666,  memb_id_constraint_665 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_MDT_Configuration_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_667, &asn_PER_memb_criticality_constr_667,  memb_criticality_constraint_665 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_668,
+               select_MDT_Configuration_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_668, &asn_PER_memb_extensionValue_constr_668,  memb_extensionValue_constraint_665 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MDT_Configuration_ExtIEs_tags_665[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MDT_Configuration_ExtIEs_tag2el_665[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_MDT_Configuration_ExtIEs_specs_665 = {
+       sizeof(struct MDT_Configuration_ExtIEs),
+       offsetof(struct MDT_Configuration_ExtIEs, _asn_ctx),
+       asn_MAP_MDT_Configuration_ExtIEs_tag2el_665,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MDT_Configuration_ExtIEs = {
+       "MDT-Configuration-ExtIEs",
+       "MDT-Configuration-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MDT_Configuration_ExtIEs_tags_665,
+       sizeof(asn_DEF_MDT_Configuration_ExtIEs_tags_665)
+               /sizeof(asn_DEF_MDT_Configuration_ExtIEs_tags_665[0]), /* 1 */
+       asn_DEF_MDT_Configuration_ExtIEs_tags_665,      /* Same as above */
+       sizeof(asn_DEF_MDT_Configuration_ExtIEs_tags_665)
+               /sizeof(asn_DEF_MDT_Configuration_ExtIEs_tags_665[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MDT_Configuration_ExtIEs_665,
+       3,      /* Elements count */
+       &asn_SPC_MDT_Configuration_ExtIEs_specs_665     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_672[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MeNBResourceCoordinationInformationExtIEs__extensionValue, choice.NRCGI),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_NRCGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "NRCGI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MeNBResourceCoordinationInformationExtIEs__extensionValue, choice.MeNBCoordinationAssistanceInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_MeNBCoordinationAssistanceInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MeNBCoordinationAssistanceInformation"
+               },
+};
+static const unsigned asn_MAP_extensionValue_to_canonical_672[] = { 1, 0 };
+static const unsigned asn_MAP_extensionValue_from_canonical_672[] = { 1, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_672[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* MeNBCoordinationAssistanceInformation */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* NRCGI */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_672 = {
+       sizeof(struct MeNBResourceCoordinationInformationExtIEs__extensionValue),
+       offsetof(struct MeNBResourceCoordinationInformationExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct MeNBResourceCoordinationInformationExtIEs__extensionValue, present),
+       sizeof(((struct MeNBResourceCoordinationInformationExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_672,
+       2,      /* Count of tags in the map */
+       asn_MAP_extensionValue_to_canonical_672,
+       asn_MAP_extensionValue_from_canonical_672,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_672 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_672,
+       2,      /* Elements count */
+       &asn_SPC_extensionValue_specs_672       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_MeNBResourceCoordinationInformationExtIEs_669[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MeNBResourceCoordinationInformationExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_670, &asn_PER_memb_id_constr_670,  memb_id_constraint_669 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MeNBResourceCoordinationInformationExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_MeNBResourceCoordinationInformationExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_671, &asn_PER_memb_criticality_constr_671,  memb_criticality_constraint_669 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MeNBResourceCoordinationInformationExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_672,
+               select_MeNBResourceCoordinationInformationExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_672, &asn_PER_memb_extensionValue_constr_672,  memb_extensionValue_constraint_669 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MeNBResourceCoordinationInformationExtIEs_tags_669[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MeNBResourceCoordinationInformationExtIEs_tag2el_669[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_MeNBResourceCoordinationInformationExtIEs_specs_669 = {
+       sizeof(struct MeNBResourceCoordinationInformationExtIEs),
+       offsetof(struct MeNBResourceCoordinationInformationExtIEs, _asn_ctx),
+       asn_MAP_MeNBResourceCoordinationInformationExtIEs_tag2el_669,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MeNBResourceCoordinationInformationExtIEs = {
+       "MeNBResourceCoordinationInformationExtIEs",
+       "MeNBResourceCoordinationInformationExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MeNBResourceCoordinationInformationExtIEs_tags_669,
+       sizeof(asn_DEF_MeNBResourceCoordinationInformationExtIEs_tags_669)
+               /sizeof(asn_DEF_MeNBResourceCoordinationInformationExtIEs_tags_669[0]), /* 1 */
+       asn_DEF_MeNBResourceCoordinationInformationExtIEs_tags_669,     /* Same as above */
+       sizeof(asn_DEF_MeNBResourceCoordinationInformationExtIEs_tags_669)
+               /sizeof(asn_DEF_MeNBResourceCoordinationInformationExtIEs_tags_669[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MeNBResourceCoordinationInformationExtIEs_669,
+       3,      /* Elements count */
+       &asn_SPC_MeNBResourceCoordinationInformationExtIEs_specs_669    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_676 = {
+       sizeof(struct MBSFN_Subframe_Info_ExtIEs__extensionValue),
+       offsetof(struct MBSFN_Subframe_Info_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct MBSFN_Subframe_Info_ExtIEs__extensionValue, present),
+       sizeof(((struct MBSFN_Subframe_Info_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_676 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_676       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_MBSFN_Subframe_Info_ExtIEs_673[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MBSFN_Subframe_Info_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_674, &asn_PER_memb_id_constr_674,  memb_id_constraint_673 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MBSFN_Subframe_Info_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_675, &asn_PER_memb_criticality_constr_675,  memb_criticality_constraint_673 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MBSFN_Subframe_Info_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_676,
+               0,
+               { &asn_OER_memb_extensionValue_constr_676, &asn_PER_memb_extensionValue_constr_676,  memb_extensionValue_constraint_673 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MBSFN_Subframe_Info_ExtIEs_tags_673[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MBSFN_Subframe_Info_ExtIEs_tag2el_673[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_MBSFN_Subframe_Info_ExtIEs_specs_673 = {
+       sizeof(struct MBSFN_Subframe_Info_ExtIEs),
+       offsetof(struct MBSFN_Subframe_Info_ExtIEs, _asn_ctx),
+       asn_MAP_MBSFN_Subframe_Info_ExtIEs_tag2el_673,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MBSFN_Subframe_Info_ExtIEs = {
+       "MBSFN-Subframe-Info-ExtIEs",
+       "MBSFN-Subframe-Info-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MBSFN_Subframe_Info_ExtIEs_tags_673,
+       sizeof(asn_DEF_MBSFN_Subframe_Info_ExtIEs_tags_673)
+               /sizeof(asn_DEF_MBSFN_Subframe_Info_ExtIEs_tags_673[0]), /* 1 */
+       asn_DEF_MBSFN_Subframe_Info_ExtIEs_tags_673,    /* Same as above */
+       sizeof(asn_DEF_MBSFN_Subframe_Info_ExtIEs_tags_673)
+               /sizeof(asn_DEF_MBSFN_Subframe_Info_ExtIEs_tags_673[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MBSFN_Subframe_Info_ExtIEs_673,
+       3,      /* Elements count */
+       &asn_SPC_MBSFN_Subframe_Info_ExtIEs_specs_673   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_680 = {
+       sizeof(struct BandInfo_ExtIEs__extensionValue),
+       offsetof(struct BandInfo_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct BandInfo_ExtIEs__extensionValue, present),
+       sizeof(((struct BandInfo_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_680 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_680       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_BandInfo_ExtIEs_677[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct BandInfo_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_678, &asn_PER_memb_id_constr_678,  memb_id_constraint_677 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct BandInfo_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_679, &asn_PER_memb_criticality_constr_679,  memb_criticality_constraint_677 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct BandInfo_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_680,
+               0,
+               { &asn_OER_memb_extensionValue_constr_680, &asn_PER_memb_extensionValue_constr_680,  memb_extensionValue_constraint_677 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_BandInfo_ExtIEs_tags_677[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_BandInfo_ExtIEs_tag2el_677[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_BandInfo_ExtIEs_specs_677 = {
+       sizeof(struct BandInfo_ExtIEs),
+       offsetof(struct BandInfo_ExtIEs, _asn_ctx),
+       asn_MAP_BandInfo_ExtIEs_tag2el_677,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_BandInfo_ExtIEs = {
+       "BandInfo-ExtIEs",
+       "BandInfo-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_BandInfo_ExtIEs_tags_677,
+       sizeof(asn_DEF_BandInfo_ExtIEs_tags_677)
+               /sizeof(asn_DEF_BandInfo_ExtIEs_tags_677[0]), /* 1 */
+       asn_DEF_BandInfo_ExtIEs_tags_677,       /* Same as above */
+       sizeof(asn_DEF_BandInfo_ExtIEs_tags_677)
+               /sizeof(asn_DEF_BandInfo_ExtIEs_tags_677[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_BandInfo_ExtIEs_677,
+       3,      /* Elements count */
+       &asn_SPC_BandInfo_ExtIEs_specs_677      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_684 = {
+       sizeof(struct SplitSRB_ExtIEs__extensionValue),
+       offsetof(struct SplitSRB_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct SplitSRB_ExtIEs__extensionValue, present),
+       sizeof(((struct SplitSRB_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_684 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_684       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SplitSRB_ExtIEs_681[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SplitSRB_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_682, &asn_PER_memb_id_constr_682,  memb_id_constraint_681 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SplitSRB_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_683, &asn_PER_memb_criticality_constr_683,  memb_criticality_constraint_681 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SplitSRB_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_684,
+               0,
+               { &asn_OER_memb_extensionValue_constr_684, &asn_PER_memb_extensionValue_constr_684,  memb_extensionValue_constraint_681 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SplitSRB_ExtIEs_tags_681[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SplitSRB_ExtIEs_tag2el_681[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SplitSRB_ExtIEs_specs_681 = {
+       sizeof(struct SplitSRB_ExtIEs),
+       offsetof(struct SplitSRB_ExtIEs, _asn_ctx),
+       asn_MAP_SplitSRB_ExtIEs_tag2el_681,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SplitSRB_ExtIEs = {
+       "SplitSRB-ExtIEs",
+       "SplitSRB-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SplitSRB_ExtIEs_tags_681,
+       sizeof(asn_DEF_SplitSRB_ExtIEs_tags_681)
+               /sizeof(asn_DEF_SplitSRB_ExtIEs_tags_681[0]), /* 1 */
+       asn_DEF_SplitSRB_ExtIEs_tags_681,       /* Same as above */
+       sizeof(asn_DEF_SplitSRB_ExtIEs_tags_681)
+               /sizeof(asn_DEF_SplitSRB_ExtIEs_tags_681[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SplitSRB_ExtIEs_681,
+       3,      /* Elements count */
+       &asn_SPC_SplitSRB_ExtIEs_specs_681      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_688 = {
+       sizeof(struct UENRMeasurement_ExtIEs__extensionValue),
+       offsetof(struct UENRMeasurement_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct UENRMeasurement_ExtIEs__extensionValue, present),
+       sizeof(((struct UENRMeasurement_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_688 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_688       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UENRMeasurement_ExtIEs_685[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UENRMeasurement_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_686, &asn_PER_memb_id_constr_686,  memb_id_constraint_685 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UENRMeasurement_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_687, &asn_PER_memb_criticality_constr_687,  memb_criticality_constraint_685 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UENRMeasurement_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_688,
+               0,
+               { &asn_OER_memb_extensionValue_constr_688, &asn_PER_memb_extensionValue_constr_688,  memb_extensionValue_constraint_685 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UENRMeasurement_ExtIEs_tags_685[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UENRMeasurement_ExtIEs_tag2el_685[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UENRMeasurement_ExtIEs_specs_685 = {
+       sizeof(struct UENRMeasurement_ExtIEs),
+       offsetof(struct UENRMeasurement_ExtIEs, _asn_ctx),
+       asn_MAP_UENRMeasurement_ExtIEs_tag2el_685,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UENRMeasurement_ExtIEs = {
+       "UENRMeasurement-ExtIEs",
+       "UENRMeasurement-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UENRMeasurement_ExtIEs_tags_685,
+       sizeof(asn_DEF_UENRMeasurement_ExtIEs_tags_685)
+               /sizeof(asn_DEF_UENRMeasurement_ExtIEs_tags_685[0]), /* 1 */
+       asn_DEF_UENRMeasurement_ExtIEs_tags_685,        /* Same as above */
+       sizeof(asn_DEF_UENRMeasurement_ExtIEs_tags_685)
+               /sizeof(asn_DEF_UENRMeasurement_ExtIEs_tags_685[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UENRMeasurement_ExtIEs_685,
+       3,      /* Elements count */
+       &asn_SPC_UENRMeasurement_ExtIEs_specs_685       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_692[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct Neighbour_Information_ExtIEs__extensionValue, choice.TAC),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_TAC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "TAC"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct Neighbour_Information_ExtIEs__extensionValue, choice.EARFCNExtension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_EARFCNExtension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "EARFCNExtension"
+               },
+};
+static const unsigned asn_MAP_extensionValue_to_canonical_692[] = { 1, 0 };
+static const unsigned asn_MAP_extensionValue_from_canonical_692[] = { 1, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_692[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* EARFCNExtension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 0 } /* TAC */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_692 = {
+       sizeof(struct Neighbour_Information_ExtIEs__extensionValue),
+       offsetof(struct Neighbour_Information_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct Neighbour_Information_ExtIEs__extensionValue, present),
+       sizeof(((struct Neighbour_Information_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_692,
+       2,      /* Count of tags in the map */
+       asn_MAP_extensionValue_to_canonical_692,
+       asn_MAP_extensionValue_from_canonical_692,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_692 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_692,
+       2,      /* Elements count */
+       &asn_SPC_extensionValue_specs_692       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_Neighbour_Information_ExtIEs_689[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct Neighbour_Information_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_690, &asn_PER_memb_id_constr_690,  memb_id_constraint_689 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct Neighbour_Information_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_Neighbour_Information_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_691, &asn_PER_memb_criticality_constr_691,  memb_criticality_constraint_689 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Neighbour_Information_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_692,
+               select_Neighbour_Information_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_692, &asn_PER_memb_extensionValue_constr_692,  memb_extensionValue_constraint_689 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_Neighbour_Information_ExtIEs_tags_689[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_Neighbour_Information_ExtIEs_tag2el_689[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_Neighbour_Information_ExtIEs_specs_689 = {
+       sizeof(struct Neighbour_Information_ExtIEs),
+       offsetof(struct Neighbour_Information_ExtIEs, _asn_ctx),
+       asn_MAP_Neighbour_Information_ExtIEs_tag2el_689,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_Neighbour_Information_ExtIEs = {
+       "Neighbour-Information-ExtIEs",
+       "Neighbour-Information-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_Neighbour_Information_ExtIEs_tags_689,
+       sizeof(asn_DEF_Neighbour_Information_ExtIEs_tags_689)
+               /sizeof(asn_DEF_Neighbour_Information_ExtIEs_tags_689[0]), /* 1 */
+       asn_DEF_Neighbour_Information_ExtIEs_tags_689,  /* Same as above */
+       sizeof(asn_DEF_Neighbour_Information_ExtIEs_tags_689)
+               /sizeof(asn_DEF_Neighbour_Information_ExtIEs_tags_689[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_Neighbour_Information_ExtIEs_689,
+       3,      /* Elements count */
+       &asn_SPC_Neighbour_Information_ExtIEs_specs_689 /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_696 = {
+       sizeof(struct NRFreqInfo_ExtIEs__extensionValue),
+       offsetof(struct NRFreqInfo_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct NRFreqInfo_ExtIEs__extensionValue, present),
+       sizeof(((struct NRFreqInfo_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_696 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_696       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_NRFreqInfo_ExtIEs_693[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct NRFreqInfo_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_694, &asn_PER_memb_id_constr_694,  memb_id_constraint_693 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct NRFreqInfo_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_695, &asn_PER_memb_criticality_constr_695,  memb_criticality_constraint_693 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NRFreqInfo_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_696,
+               0,
+               { &asn_OER_memb_extensionValue_constr_696, &asn_PER_memb_extensionValue_constr_696,  memb_extensionValue_constraint_693 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_NRFreqInfo_ExtIEs_tags_693[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_NRFreqInfo_ExtIEs_tag2el_693[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_NRFreqInfo_ExtIEs_specs_693 = {
+       sizeof(struct NRFreqInfo_ExtIEs),
+       offsetof(struct NRFreqInfo_ExtIEs, _asn_ctx),
+       asn_MAP_NRFreqInfo_ExtIEs_tag2el_693,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_NRFreqInfo_ExtIEs = {
+       "NRFreqInfo-ExtIEs",
+       "NRFreqInfo-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_NRFreqInfo_ExtIEs_tags_693,
+       sizeof(asn_DEF_NRFreqInfo_ExtIEs_tags_693)
+               /sizeof(asn_DEF_NRFreqInfo_ExtIEs_tags_693[0]), /* 1 */
+       asn_DEF_NRFreqInfo_ExtIEs_tags_693,     /* Same as above */
+       sizeof(asn_DEF_NRFreqInfo_ExtIEs_tags_693)
+               /sizeof(asn_DEF_NRFreqInfo_ExtIEs_tags_693[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_NRFreqInfo_ExtIEs_693,
+       3,      /* Elements count */
+       &asn_SPC_NRFreqInfo_ExtIEs_specs_693    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_700 = {
+       sizeof(struct NRCGI_ExtIEs__extensionValue),
+       offsetof(struct NRCGI_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct NRCGI_ExtIEs__extensionValue, present),
+       sizeof(((struct NRCGI_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_700 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_700       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_NRCGI_ExtIEs_697[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct NRCGI_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_698, &asn_PER_memb_id_constr_698,  memb_id_constraint_697 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct NRCGI_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_699, &asn_PER_memb_criticality_constr_699,  memb_criticality_constraint_697 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NRCGI_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_700,
+               0,
+               { &asn_OER_memb_extensionValue_constr_700, &asn_PER_memb_extensionValue_constr_700,  memb_extensionValue_constraint_697 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_NRCGI_ExtIEs_tags_697[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_NRCGI_ExtIEs_tag2el_697[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_NRCGI_ExtIEs_specs_697 = {
+       sizeof(struct NRCGI_ExtIEs),
+       offsetof(struct NRCGI_ExtIEs, _asn_ctx),
+       asn_MAP_NRCGI_ExtIEs_tag2el_697,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_NRCGI_ExtIEs = {
+       "NRCGI-ExtIEs",
+       "NRCGI-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_NRCGI_ExtIEs_tags_697,
+       sizeof(asn_DEF_NRCGI_ExtIEs_tags_697)
+               /sizeof(asn_DEF_NRCGI_ExtIEs_tags_697[0]), /* 1 */
+       asn_DEF_NRCGI_ExtIEs_tags_697,  /* Same as above */
+       sizeof(asn_DEF_NRCGI_ExtIEs_tags_697)
+               /sizeof(asn_DEF_NRCGI_ExtIEs_tags_697[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_NRCGI_ExtIEs_697,
+       3,      /* Elements count */
+       &asn_SPC_NRCGI_ExtIEs_specs_697 /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_704 = {
+       sizeof(struct NR_TxBW_ExtIEs__extensionValue),
+       offsetof(struct NR_TxBW_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct NR_TxBW_ExtIEs__extensionValue, present),
+       sizeof(((struct NR_TxBW_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_704 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_704       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_NR_TxBW_ExtIEs_701[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct NR_TxBW_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_702, &asn_PER_memb_id_constr_702,  memb_id_constraint_701 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct NR_TxBW_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_703, &asn_PER_memb_criticality_constr_703,  memb_criticality_constraint_701 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NR_TxBW_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_704,
+               0,
+               { &asn_OER_memb_extensionValue_constr_704, &asn_PER_memb_extensionValue_constr_704,  memb_extensionValue_constraint_701 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_NR_TxBW_ExtIEs_tags_701[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_NR_TxBW_ExtIEs_tag2el_701[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_NR_TxBW_ExtIEs_specs_701 = {
+       sizeof(struct NR_TxBW_ExtIEs),
+       offsetof(struct NR_TxBW_ExtIEs, _asn_ctx),
+       asn_MAP_NR_TxBW_ExtIEs_tag2el_701,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_NR_TxBW_ExtIEs = {
+       "NR-TxBW-ExtIEs",
+       "NR-TxBW-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_NR_TxBW_ExtIEs_tags_701,
+       sizeof(asn_DEF_NR_TxBW_ExtIEs_tags_701)
+               /sizeof(asn_DEF_NR_TxBW_ExtIEs_tags_701[0]), /* 1 */
+       asn_DEF_NR_TxBW_ExtIEs_tags_701,        /* Same as above */
+       sizeof(asn_DEF_NR_TxBW_ExtIEs_tags_701)
+               /sizeof(asn_DEF_NR_TxBW_ExtIEs_tags_701[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_NR_TxBW_ExtIEs_701,
+       3,      /* Elements count */
+       &asn_SPC_NR_TxBW_ExtIEs_specs_701       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_708 = {
+       sizeof(struct NRUESecurityCapabilities_ExtIEs__extensionValue),
+       offsetof(struct NRUESecurityCapabilities_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct NRUESecurityCapabilities_ExtIEs__extensionValue, present),
+       sizeof(((struct NRUESecurityCapabilities_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_708 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_708       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_NRUESecurityCapabilities_ExtIEs_705[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct NRUESecurityCapabilities_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_706, &asn_PER_memb_id_constr_706,  memb_id_constraint_705 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct NRUESecurityCapabilities_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_707, &asn_PER_memb_criticality_constr_707,  memb_criticality_constraint_705 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NRUESecurityCapabilities_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_708,
+               0,
+               { &asn_OER_memb_extensionValue_constr_708, &asn_PER_memb_extensionValue_constr_708,  memb_extensionValue_constraint_705 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_NRUESecurityCapabilities_ExtIEs_tags_705[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_NRUESecurityCapabilities_ExtIEs_tag2el_705[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_NRUESecurityCapabilities_ExtIEs_specs_705 = {
+       sizeof(struct NRUESecurityCapabilities_ExtIEs),
+       offsetof(struct NRUESecurityCapabilities_ExtIEs, _asn_ctx),
+       asn_MAP_NRUESecurityCapabilities_ExtIEs_tag2el_705,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_NRUESecurityCapabilities_ExtIEs = {
+       "NRUESecurityCapabilities-ExtIEs",
+       "NRUESecurityCapabilities-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_NRUESecurityCapabilities_ExtIEs_tags_705,
+       sizeof(asn_DEF_NRUESecurityCapabilities_ExtIEs_tags_705)
+               /sizeof(asn_DEF_NRUESecurityCapabilities_ExtIEs_tags_705[0]), /* 1 */
+       asn_DEF_NRUESecurityCapabilities_ExtIEs_tags_705,       /* Same as above */
+       sizeof(asn_DEF_NRUESecurityCapabilities_ExtIEs_tags_705)
+               /sizeof(asn_DEF_NRUESecurityCapabilities_ExtIEs_tags_705[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_NRUESecurityCapabilities_ExtIEs_705,
+       3,      /* Elements count */
+       &asn_SPC_NRUESecurityCapabilities_ExtIEs_specs_705      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_712 = {
+       sizeof(struct PRACH_Configuration_ExtIEs__extensionValue),
+       offsetof(struct PRACH_Configuration_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct PRACH_Configuration_ExtIEs__extensionValue, present),
+       sizeof(((struct PRACH_Configuration_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_712 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_712       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_PRACH_Configuration_ExtIEs_709[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct PRACH_Configuration_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_710, &asn_PER_memb_id_constr_710,  memb_id_constraint_709 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct PRACH_Configuration_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_711, &asn_PER_memb_criticality_constr_711,  memb_criticality_constraint_709 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PRACH_Configuration_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_712,
+               0,
+               { &asn_OER_memb_extensionValue_constr_712, &asn_PER_memb_extensionValue_constr_712,  memb_extensionValue_constraint_709 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_PRACH_Configuration_ExtIEs_tags_709[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_PRACH_Configuration_ExtIEs_tag2el_709[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_PRACH_Configuration_ExtIEs_specs_709 = {
+       sizeof(struct PRACH_Configuration_ExtIEs),
+       offsetof(struct PRACH_Configuration_ExtIEs, _asn_ctx),
+       asn_MAP_PRACH_Configuration_ExtIEs_tag2el_709,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_PRACH_Configuration_ExtIEs = {
+       "PRACH-Configuration-ExtIEs",
+       "PRACH-Configuration-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_PRACH_Configuration_ExtIEs_tags_709,
+       sizeof(asn_DEF_PRACH_Configuration_ExtIEs_tags_709)
+               /sizeof(asn_DEF_PRACH_Configuration_ExtIEs_tags_709[0]), /* 1 */
+       asn_DEF_PRACH_Configuration_ExtIEs_tags_709,    /* Same as above */
+       sizeof(asn_DEF_PRACH_Configuration_ExtIEs_tags_709)
+               /sizeof(asn_DEF_PRACH_Configuration_ExtIEs_tags_709[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_PRACH_Configuration_ExtIEs_709,
+       3,      /* Elements count */
+       &asn_SPC_PRACH_Configuration_ExtIEs_specs_709   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_716 = {
+       sizeof(struct PLMNAreaBasedQMC_ExtIEs__extensionValue),
+       offsetof(struct PLMNAreaBasedQMC_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct PLMNAreaBasedQMC_ExtIEs__extensionValue, present),
+       sizeof(((struct PLMNAreaBasedQMC_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_716 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_716       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_PLMNAreaBasedQMC_ExtIEs_713[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct PLMNAreaBasedQMC_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_714, &asn_PER_memb_id_constr_714,  memb_id_constraint_713 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct PLMNAreaBasedQMC_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_715, &asn_PER_memb_criticality_constr_715,  memb_criticality_constraint_713 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PLMNAreaBasedQMC_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_716,
+               0,
+               { &asn_OER_memb_extensionValue_constr_716, &asn_PER_memb_extensionValue_constr_716,  memb_extensionValue_constraint_713 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_PLMNAreaBasedQMC_ExtIEs_tags_713[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_PLMNAreaBasedQMC_ExtIEs_tag2el_713[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_PLMNAreaBasedQMC_ExtIEs_specs_713 = {
+       sizeof(struct PLMNAreaBasedQMC_ExtIEs),
+       offsetof(struct PLMNAreaBasedQMC_ExtIEs, _asn_ctx),
+       asn_MAP_PLMNAreaBasedQMC_ExtIEs_tag2el_713,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_PLMNAreaBasedQMC_ExtIEs = {
+       "PLMNAreaBasedQMC-ExtIEs",
+       "PLMNAreaBasedQMC-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_PLMNAreaBasedQMC_ExtIEs_tags_713,
+       sizeof(asn_DEF_PLMNAreaBasedQMC_ExtIEs_tags_713)
+               /sizeof(asn_DEF_PLMNAreaBasedQMC_ExtIEs_tags_713[0]), /* 1 */
+       asn_DEF_PLMNAreaBasedQMC_ExtIEs_tags_713,       /* Same as above */
+       sizeof(asn_DEF_PLMNAreaBasedQMC_ExtIEs_tags_713)
+               /sizeof(asn_DEF_PLMNAreaBasedQMC_ExtIEs_tags_713[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_PLMNAreaBasedQMC_ExtIEs_713,
+       3,      /* Elements count */
+       &asn_SPC_PLMNAreaBasedQMC_ExtIEs_specs_713      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_720[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ProSeAuthorized_ExtIEs__extensionValue, choice.ProSeUEtoNetworkRelaying),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_ProSeUEtoNetworkRelaying,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ProSeUEtoNetworkRelaying"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_720[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* ProSeUEtoNetworkRelaying */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_720 = {
+       sizeof(struct ProSeAuthorized_ExtIEs__extensionValue),
+       offsetof(struct ProSeAuthorized_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ProSeAuthorized_ExtIEs__extensionValue, present),
+       sizeof(((struct ProSeAuthorized_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_720,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_720 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_720,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_720       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProSeAuthorized_ExtIEs_717[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ProSeAuthorized_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_718, &asn_PER_memb_id_constr_718,  memb_id_constraint_717 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ProSeAuthorized_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ProSeAuthorized_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_719, &asn_PER_memb_criticality_constr_719,  memb_criticality_constraint_717 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ProSeAuthorized_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_720,
+               select_ProSeAuthorized_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_720, &asn_PER_memb_extensionValue_constr_720,  memb_extensionValue_constraint_717 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProSeAuthorized_ExtIEs_tags_717[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ProSeAuthorized_ExtIEs_tag2el_717[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ProSeAuthorized_ExtIEs_specs_717 = {
+       sizeof(struct ProSeAuthorized_ExtIEs),
+       offsetof(struct ProSeAuthorized_ExtIEs, _asn_ctx),
+       asn_MAP_ProSeAuthorized_ExtIEs_tag2el_717,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ProSeAuthorized_ExtIEs = {
+       "ProSeAuthorized-ExtIEs",
+       "ProSeAuthorized-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProSeAuthorized_ExtIEs_tags_717,
+       sizeof(asn_DEF_ProSeAuthorized_ExtIEs_tags_717)
+               /sizeof(asn_DEF_ProSeAuthorized_ExtIEs_tags_717[0]), /* 1 */
+       asn_DEF_ProSeAuthorized_ExtIEs_tags_717,        /* Same as above */
+       sizeof(asn_DEF_ProSeAuthorized_ExtIEs_tags_717)
+               /sizeof(asn_DEF_ProSeAuthorized_ExtIEs_tags_717[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ProSeAuthorized_ExtIEs_717,
+       3,      /* Elements count */
+       &asn_SPC_ProSeAuthorized_ExtIEs_specs_717       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_724 = {
+       sizeof(struct ProtectedEUTRAResourceIndication_ExtIEs__extensionValue),
+       offsetof(struct ProtectedEUTRAResourceIndication_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ProtectedEUTRAResourceIndication_ExtIEs__extensionValue, present),
+       sizeof(((struct ProtectedEUTRAResourceIndication_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_724 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_724       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtectedEUTRAResourceIndication_ExtIEs_721[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ProtectedEUTRAResourceIndication_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_722, &asn_PER_memb_id_constr_722,  memb_id_constraint_721 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ProtectedEUTRAResourceIndication_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_723, &asn_PER_memb_criticality_constr_723,  memb_criticality_constraint_721 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ProtectedEUTRAResourceIndication_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_724,
+               0,
+               { &asn_OER_memb_extensionValue_constr_724, &asn_PER_memb_extensionValue_constr_724,  memb_extensionValue_constraint_721 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs_tags_721[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ProtectedEUTRAResourceIndication_ExtIEs_tag2el_721[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ProtectedEUTRAResourceIndication_ExtIEs_specs_721 = {
+       sizeof(struct ProtectedEUTRAResourceIndication_ExtIEs),
+       offsetof(struct ProtectedEUTRAResourceIndication_ExtIEs, _asn_ctx),
+       asn_MAP_ProtectedEUTRAResourceIndication_ExtIEs_tag2el_721,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs = {
+       "ProtectedEUTRAResourceIndication-ExtIEs",
+       "ProtectedEUTRAResourceIndication-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs_tags_721,
+       sizeof(asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs_tags_721)
+               /sizeof(asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs_tags_721[0]), /* 1 */
+       asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs_tags_721,       /* Same as above */
+       sizeof(asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs_tags_721)
+               /sizeof(asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs_tags_721[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ProtectedEUTRAResourceIndication_ExtIEs_721,
+       3,      /* Elements count */
+       &asn_SPC_ProtectedEUTRAResourceIndication_ExtIEs_specs_721      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_728 = {
+       sizeof(struct ProtectedFootprintTimePattern_ExtIEs__extensionValue),
+       offsetof(struct ProtectedFootprintTimePattern_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ProtectedFootprintTimePattern_ExtIEs__extensionValue, present),
+       sizeof(((struct ProtectedFootprintTimePattern_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_728 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_728       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtectedFootprintTimePattern_ExtIEs_725[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ProtectedFootprintTimePattern_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_726, &asn_PER_memb_id_constr_726,  memb_id_constraint_725 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ProtectedFootprintTimePattern_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_727, &asn_PER_memb_criticality_constr_727,  memb_criticality_constraint_725 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ProtectedFootprintTimePattern_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_728,
+               0,
+               { &asn_OER_memb_extensionValue_constr_728, &asn_PER_memb_extensionValue_constr_728,  memb_extensionValue_constraint_725 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtectedFootprintTimePattern_ExtIEs_tags_725[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ProtectedFootprintTimePattern_ExtIEs_tag2el_725[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ProtectedFootprintTimePattern_ExtIEs_specs_725 = {
+       sizeof(struct ProtectedFootprintTimePattern_ExtIEs),
+       offsetof(struct ProtectedFootprintTimePattern_ExtIEs, _asn_ctx),
+       asn_MAP_ProtectedFootprintTimePattern_ExtIEs_tag2el_725,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtectedFootprintTimePattern_ExtIEs = {
+       "ProtectedFootprintTimePattern-ExtIEs",
+       "ProtectedFootprintTimePattern-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtectedFootprintTimePattern_ExtIEs_tags_725,
+       sizeof(asn_DEF_ProtectedFootprintTimePattern_ExtIEs_tags_725)
+               /sizeof(asn_DEF_ProtectedFootprintTimePattern_ExtIEs_tags_725[0]), /* 1 */
+       asn_DEF_ProtectedFootprintTimePattern_ExtIEs_tags_725,  /* Same as above */
+       sizeof(asn_DEF_ProtectedFootprintTimePattern_ExtIEs_tags_725)
+               /sizeof(asn_DEF_ProtectedFootprintTimePattern_ExtIEs_tags_725[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ProtectedFootprintTimePattern_ExtIEs_725,
+       3,      /* Elements count */
+       &asn_SPC_ProtectedFootprintTimePattern_ExtIEs_specs_725 /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_732 = {
+       sizeof(struct ProtectedResourceList_Item_ExtIEs__extensionValue),
+       offsetof(struct ProtectedResourceList_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ProtectedResourceList_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct ProtectedResourceList_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_732 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_732       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtectedResourceList_Item_ExtIEs_729[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ProtectedResourceList_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_730, &asn_PER_memb_id_constr_730,  memb_id_constraint_729 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ProtectedResourceList_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_731, &asn_PER_memb_criticality_constr_731,  memb_criticality_constraint_729 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ProtectedResourceList_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_732,
+               0,
+               { &asn_OER_memb_extensionValue_constr_732, &asn_PER_memb_extensionValue_constr_732,  memb_extensionValue_constraint_729 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtectedResourceList_Item_ExtIEs_tags_729[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ProtectedResourceList_Item_ExtIEs_tag2el_729[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ProtectedResourceList_Item_ExtIEs_specs_729 = {
+       sizeof(struct ProtectedResourceList_Item_ExtIEs),
+       offsetof(struct ProtectedResourceList_Item_ExtIEs, _asn_ctx),
+       asn_MAP_ProtectedResourceList_Item_ExtIEs_tag2el_729,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtectedResourceList_Item_ExtIEs = {
+       "ProtectedResourceList-Item-ExtIEs",
+       "ProtectedResourceList-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtectedResourceList_Item_ExtIEs_tags_729,
+       sizeof(asn_DEF_ProtectedResourceList_Item_ExtIEs_tags_729)
+               /sizeof(asn_DEF_ProtectedResourceList_Item_ExtIEs_tags_729[0]), /* 1 */
+       asn_DEF_ProtectedResourceList_Item_ExtIEs_tags_729,     /* Same as above */
+       sizeof(asn_DEF_ProtectedResourceList_Item_ExtIEs_tags_729)
+               /sizeof(asn_DEF_ProtectedResourceList_Item_ExtIEs_tags_729[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ProtectedResourceList_Item_ExtIEs_729,
+       3,      /* Elements count */
+       &asn_SPC_ProtectedResourceList_Item_ExtIEs_specs_729    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_736[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus_ExtIEs__extensionValue, choice.DL_scheduling_PDCCH_CCE_usage),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_DL_scheduling_PDCCH_CCE_usage,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "DL-scheduling-PDCCH-CCE-usage"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus_ExtIEs__extensionValue, choice.UL_scheduling_PDCCH_CCE_usage),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UL_scheduling_PDCCH_CCE_usage,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UL-scheduling-PDCCH-CCE-usage"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_736[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* DL-scheduling-PDCCH-CCE-usage */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 } /* UL-scheduling-PDCCH-CCE-usage */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_736 = {
+       sizeof(struct RadioResourceStatus_ExtIEs__extensionValue),
+       offsetof(struct RadioResourceStatus_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct RadioResourceStatus_ExtIEs__extensionValue, present),
+       sizeof(((struct RadioResourceStatus_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_736,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_736 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_736,
+       2,      /* Elements count */
+       &asn_SPC_extensionValue_specs_736       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RadioResourceStatus_ExtIEs_733[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_734, &asn_PER_memb_id_constr_734,  memb_id_constraint_733 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RadioResourceStatus_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_735, &asn_PER_memb_criticality_constr_735,  memb_criticality_constraint_733 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_736,
+               select_RadioResourceStatus_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_736, &asn_PER_memb_extensionValue_constr_736,  memb_extensionValue_constraint_733 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RadioResourceStatus_ExtIEs_tags_733[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RadioResourceStatus_ExtIEs_tag2el_733[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RadioResourceStatus_ExtIEs_specs_733 = {
+       sizeof(struct RadioResourceStatus_ExtIEs),
+       offsetof(struct RadioResourceStatus_ExtIEs, _asn_ctx),
+       asn_MAP_RadioResourceStatus_ExtIEs_tag2el_733,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RadioResourceStatus_ExtIEs = {
+       "RadioResourceStatus-ExtIEs",
+       "RadioResourceStatus-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RadioResourceStatus_ExtIEs_tags_733,
+       sizeof(asn_DEF_RadioResourceStatus_ExtIEs_tags_733)
+               /sizeof(asn_DEF_RadioResourceStatus_ExtIEs_tags_733[0]), /* 1 */
+       asn_DEF_RadioResourceStatus_ExtIEs_tags_733,    /* Same as above */
+       sizeof(asn_DEF_RadioResourceStatus_ExtIEs_tags_733)
+               /sizeof(asn_DEF_RadioResourceStatus_ExtIEs_tags_733[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RadioResourceStatus_ExtIEs_733,
+       3,      /* Elements count */
+       &asn_SPC_RadioResourceStatus_ExtIEs_specs_733   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_740[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower_ExtIEs__extensionValue, choice.EnhancedRNTP),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_EnhancedRNTP,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "EnhancedRNTP"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_740[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* EnhancedRNTP */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_740 = {
+       sizeof(struct RelativeNarrowbandTxPower_ExtIEs__extensionValue),
+       offsetof(struct RelativeNarrowbandTxPower_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct RelativeNarrowbandTxPower_ExtIEs__extensionValue, present),
+       sizeof(((struct RelativeNarrowbandTxPower_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_740,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_740 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_740,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_740       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RelativeNarrowbandTxPower_ExtIEs_737[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_738, &asn_PER_memb_id_constr_738,  memb_id_constraint_737 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RelativeNarrowbandTxPower_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_739, &asn_PER_memb_criticality_constr_739,  memb_criticality_constraint_737 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_740,
+               select_RelativeNarrowbandTxPower_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_740, &asn_PER_memb_extensionValue_constr_740,  memb_extensionValue_constraint_737 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RelativeNarrowbandTxPower_ExtIEs_tags_737[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RelativeNarrowbandTxPower_ExtIEs_tag2el_737[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RelativeNarrowbandTxPower_ExtIEs_specs_737 = {
+       sizeof(struct RelativeNarrowbandTxPower_ExtIEs),
+       offsetof(struct RelativeNarrowbandTxPower_ExtIEs, _asn_ctx),
+       asn_MAP_RelativeNarrowbandTxPower_ExtIEs_tag2el_737,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RelativeNarrowbandTxPower_ExtIEs = {
+       "RelativeNarrowbandTxPower-ExtIEs",
+       "RelativeNarrowbandTxPower-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RelativeNarrowbandTxPower_ExtIEs_tags_737,
+       sizeof(asn_DEF_RelativeNarrowbandTxPower_ExtIEs_tags_737)
+               /sizeof(asn_DEF_RelativeNarrowbandTxPower_ExtIEs_tags_737[0]), /* 1 */
+       asn_DEF_RelativeNarrowbandTxPower_ExtIEs_tags_737,      /* Same as above */
+       sizeof(asn_DEF_RelativeNarrowbandTxPower_ExtIEs_tags_737)
+               /sizeof(asn_DEF_RelativeNarrowbandTxPower_ExtIEs_tags_737[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RelativeNarrowbandTxPower_ExtIEs_737,
+       3,      /* Elements count */
+       &asn_SPC_RelativeNarrowbandTxPower_ExtIEs_specs_737     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_744 = {
+       sizeof(struct ReservedSubframePattern_ExtIEs__extensionValue),
+       offsetof(struct ReservedSubframePattern_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ReservedSubframePattern_ExtIEs__extensionValue, present),
+       sizeof(((struct ReservedSubframePattern_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_744 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_744       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ReservedSubframePattern_ExtIEs_741[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ReservedSubframePattern_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_742, &asn_PER_memb_id_constr_742,  memb_id_constraint_741 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ReservedSubframePattern_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_743, &asn_PER_memb_criticality_constr_743,  memb_criticality_constraint_741 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ReservedSubframePattern_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_744,
+               0,
+               { &asn_OER_memb_extensionValue_constr_744, &asn_PER_memb_extensionValue_constr_744,  memb_extensionValue_constraint_741 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ReservedSubframePattern_ExtIEs_tags_741[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ReservedSubframePattern_ExtIEs_tag2el_741[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ReservedSubframePattern_ExtIEs_specs_741 = {
+       sizeof(struct ReservedSubframePattern_ExtIEs),
+       offsetof(struct ReservedSubframePattern_ExtIEs, _asn_ctx),
+       asn_MAP_ReservedSubframePattern_ExtIEs_tag2el_741,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ReservedSubframePattern_ExtIEs = {
+       "ReservedSubframePattern-ExtIEs",
+       "ReservedSubframePattern-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ReservedSubframePattern_ExtIEs_tags_741,
+       sizeof(asn_DEF_ReservedSubframePattern_ExtIEs_tags_741)
+               /sizeof(asn_DEF_ReservedSubframePattern_ExtIEs_tags_741[0]), /* 1 */
+       asn_DEF_ReservedSubframePattern_ExtIEs_tags_741,        /* Same as above */
+       sizeof(asn_DEF_ReservedSubframePattern_ExtIEs_tags_741)
+               /sizeof(asn_DEF_ReservedSubframePattern_ExtIEs_tags_741[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ReservedSubframePattern_ExtIEs_741,
+       3,      /* Elements count */
+       &asn_SPC_ReservedSubframePattern_ExtIEs_specs_741       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_748 = {
+       sizeof(struct RLC_Status_ExtIEs__extensionValue),
+       offsetof(struct RLC_Status_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct RLC_Status_ExtIEs__extensionValue, present),
+       sizeof(((struct RLC_Status_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_748 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_748       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RLC_Status_ExtIEs_745[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RLC_Status_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_746, &asn_PER_memb_id_constr_746,  memb_id_constraint_745 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RLC_Status_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_747, &asn_PER_memb_criticality_constr_747,  memb_criticality_constraint_745 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RLC_Status_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_748,
+               0,
+               { &asn_OER_memb_extensionValue_constr_748, &asn_PER_memb_extensionValue_constr_748,  memb_extensionValue_constraint_745 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RLC_Status_ExtIEs_tags_745[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RLC_Status_ExtIEs_tag2el_745[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RLC_Status_ExtIEs_specs_745 = {
+       sizeof(struct RLC_Status_ExtIEs),
+       offsetof(struct RLC_Status_ExtIEs, _asn_ctx),
+       asn_MAP_RLC_Status_ExtIEs_tag2el_745,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RLC_Status_ExtIEs = {
+       "RLC-Status-ExtIEs",
+       "RLC-Status-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RLC_Status_ExtIEs_tags_745,
+       sizeof(asn_DEF_RLC_Status_ExtIEs_tags_745)
+               /sizeof(asn_DEF_RLC_Status_ExtIEs_tags_745[0]), /* 1 */
+       asn_DEF_RLC_Status_ExtIEs_tags_745,     /* Same as above */
+       sizeof(asn_DEF_RLC_Status_ExtIEs_tags_745)
+               /sizeof(asn_DEF_RLC_Status_ExtIEs_tags_745[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RLC_Status_ExtIEs_745,
+       3,      /* Elements count */
+       &asn_SPC_RLC_Status_ExtIEs_specs_745    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_752 = {
+       sizeof(struct RSRPMeasurementResult_ExtIEs__extensionValue),
+       offsetof(struct RSRPMeasurementResult_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct RSRPMeasurementResult_ExtIEs__extensionValue, present),
+       sizeof(((struct RSRPMeasurementResult_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_752 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_752       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RSRPMeasurementResult_ExtIEs_749[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RSRPMeasurementResult_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_750, &asn_PER_memb_id_constr_750,  memb_id_constraint_749 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RSRPMeasurementResult_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_751, &asn_PER_memb_criticality_constr_751,  memb_criticality_constraint_749 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RSRPMeasurementResult_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_752,
+               0,
+               { &asn_OER_memb_extensionValue_constr_752, &asn_PER_memb_extensionValue_constr_752,  memb_extensionValue_constraint_749 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RSRPMeasurementResult_ExtIEs_tags_749[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RSRPMeasurementResult_ExtIEs_tag2el_749[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RSRPMeasurementResult_ExtIEs_specs_749 = {
+       sizeof(struct RSRPMeasurementResult_ExtIEs),
+       offsetof(struct RSRPMeasurementResult_ExtIEs, _asn_ctx),
+       asn_MAP_RSRPMeasurementResult_ExtIEs_tag2el_749,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RSRPMeasurementResult_ExtIEs = {
+       "RSRPMeasurementResult-ExtIEs",
+       "RSRPMeasurementResult-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RSRPMeasurementResult_ExtIEs_tags_749,
+       sizeof(asn_DEF_RSRPMeasurementResult_ExtIEs_tags_749)
+               /sizeof(asn_DEF_RSRPMeasurementResult_ExtIEs_tags_749[0]), /* 1 */
+       asn_DEF_RSRPMeasurementResult_ExtIEs_tags_749,  /* Same as above */
+       sizeof(asn_DEF_RSRPMeasurementResult_ExtIEs_tags_749)
+               /sizeof(asn_DEF_RSRPMeasurementResult_ExtIEs_tags_749[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RSRPMeasurementResult_ExtIEs_749,
+       3,      /* Elements count */
+       &asn_SPC_RSRPMeasurementResult_ExtIEs_specs_749 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_756[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RSRPMRList_ExtIEs__extensionValue, choice.UEID),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_UEID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UEID"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_756[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 0 } /* UEID */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_756 = {
+       sizeof(struct RSRPMRList_ExtIEs__extensionValue),
+       offsetof(struct RSRPMRList_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct RSRPMRList_ExtIEs__extensionValue, present),
+       sizeof(((struct RSRPMRList_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_756,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_756 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_756,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_756       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RSRPMRList_ExtIEs_753[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RSRPMRList_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_754, &asn_PER_memb_id_constr_754,  memb_id_constraint_753 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RSRPMRList_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RSRPMRList_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_755, &asn_PER_memb_criticality_constr_755,  memb_criticality_constraint_753 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RSRPMRList_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_756,
+               select_RSRPMRList_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_756, &asn_PER_memb_extensionValue_constr_756,  memb_extensionValue_constraint_753 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RSRPMRList_ExtIEs_tags_753[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RSRPMRList_ExtIEs_tag2el_753[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RSRPMRList_ExtIEs_specs_753 = {
+       sizeof(struct RSRPMRList_ExtIEs),
+       offsetof(struct RSRPMRList_ExtIEs, _asn_ctx),
+       asn_MAP_RSRPMRList_ExtIEs_tag2el_753,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RSRPMRList_ExtIEs = {
+       "RSRPMRList-ExtIEs",
+       "RSRPMRList-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RSRPMRList_ExtIEs_tags_753,
+       sizeof(asn_DEF_RSRPMRList_ExtIEs_tags_753)
+               /sizeof(asn_DEF_RSRPMRList_ExtIEs_tags_753[0]), /* 1 */
+       asn_DEF_RSRPMRList_ExtIEs_tags_753,     /* Same as above */
+       sizeof(asn_DEF_RSRPMRList_ExtIEs_tags_753)
+               /sizeof(asn_DEF_RSRPMRList_ExtIEs_tags_753[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RSRPMRList_ExtIEs_753,
+       3,      /* Elements count */
+       &asn_SPC_RSRPMRList_ExtIEs_specs_753    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_760 = {
+       sizeof(struct S1TNLLoadIndicator_ExtIEs__extensionValue),
+       offsetof(struct S1TNLLoadIndicator_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct S1TNLLoadIndicator_ExtIEs__extensionValue, present),
+       sizeof(((struct S1TNLLoadIndicator_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_760 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_760       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_S1TNLLoadIndicator_ExtIEs_757[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct S1TNLLoadIndicator_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_758, &asn_PER_memb_id_constr_758,  memb_id_constraint_757 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct S1TNLLoadIndicator_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_759, &asn_PER_memb_criticality_constr_759,  memb_criticality_constraint_757 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct S1TNLLoadIndicator_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_760,
+               0,
+               { &asn_OER_memb_extensionValue_constr_760, &asn_PER_memb_extensionValue_constr_760,  memb_extensionValue_constraint_757 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_S1TNLLoadIndicator_ExtIEs_tags_757[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_S1TNLLoadIndicator_ExtIEs_tag2el_757[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_S1TNLLoadIndicator_ExtIEs_specs_757 = {
+       sizeof(struct S1TNLLoadIndicator_ExtIEs),
+       offsetof(struct S1TNLLoadIndicator_ExtIEs, _asn_ctx),
+       asn_MAP_S1TNLLoadIndicator_ExtIEs_tag2el_757,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_S1TNLLoadIndicator_ExtIEs = {
+       "S1TNLLoadIndicator-ExtIEs",
+       "S1TNLLoadIndicator-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_S1TNLLoadIndicator_ExtIEs_tags_757,
+       sizeof(asn_DEF_S1TNLLoadIndicator_ExtIEs_tags_757)
+               /sizeof(asn_DEF_S1TNLLoadIndicator_ExtIEs_tags_757[0]), /* 1 */
+       asn_DEF_S1TNLLoadIndicator_ExtIEs_tags_757,     /* Same as above */
+       sizeof(asn_DEF_S1TNLLoadIndicator_ExtIEs_tags_757)
+               /sizeof(asn_DEF_S1TNLLoadIndicator_ExtIEs_tags_757[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_S1TNLLoadIndicator_ExtIEs_757,
+       3,      /* Elements count */
+       &asn_SPC_S1TNLLoadIndicator_ExtIEs_specs_757    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_764 = {
+       sizeof(struct SecondaryRATUsageReport_Item_ExtIEs__extensionValue),
+       offsetof(struct SecondaryRATUsageReport_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct SecondaryRATUsageReport_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct SecondaryRATUsageReport_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_764 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_764       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SecondaryRATUsageReport_Item_ExtIEs_761[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_762, &asn_PER_memb_id_constr_762,  memb_id_constraint_761 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_763, &asn_PER_memb_criticality_constr_763,  memb_criticality_constraint_761 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_764,
+               0,
+               { &asn_OER_memb_extensionValue_constr_764, &asn_PER_memb_extensionValue_constr_764,  memb_extensionValue_constraint_761 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SecondaryRATUsageReport_Item_ExtIEs_tags_761[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SecondaryRATUsageReport_Item_ExtIEs_tag2el_761[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATUsageReport_Item_ExtIEs_specs_761 = {
+       sizeof(struct SecondaryRATUsageReport_Item_ExtIEs),
+       offsetof(struct SecondaryRATUsageReport_Item_ExtIEs, _asn_ctx),
+       asn_MAP_SecondaryRATUsageReport_Item_ExtIEs_tag2el_761,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SecondaryRATUsageReport_Item_ExtIEs = {
+       "SecondaryRATUsageReport-Item-ExtIEs",
+       "SecondaryRATUsageReport-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SecondaryRATUsageReport_Item_ExtIEs_tags_761,
+       sizeof(asn_DEF_SecondaryRATUsageReport_Item_ExtIEs_tags_761)
+               /sizeof(asn_DEF_SecondaryRATUsageReport_Item_ExtIEs_tags_761[0]), /* 1 */
+       asn_DEF_SecondaryRATUsageReport_Item_ExtIEs_tags_761,   /* Same as above */
+       sizeof(asn_DEF_SecondaryRATUsageReport_Item_ExtIEs_tags_761)
+               /sizeof(asn_DEF_SecondaryRATUsageReport_Item_ExtIEs_tags_761[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SecondaryRATUsageReport_Item_ExtIEs_761,
+       3,      /* Elements count */
+       &asn_SPC_SecondaryRATUsageReport_Item_ExtIEs_specs_761  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_768 = {
+       sizeof(struct ServedCell_ExtIEs__extensionValue),
+       offsetof(struct ServedCell_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ServedCell_ExtIEs__extensionValue, present),
+       sizeof(((struct ServedCell_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_768 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_768       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ServedCell_ExtIEs_765[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_766, &asn_PER_memb_id_constr_766,  memb_id_constraint_765 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_767, &asn_PER_memb_criticality_constr_767,  memb_criticality_constraint_765 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedCell_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_768,
+               0,
+               { &asn_OER_memb_extensionValue_constr_768, &asn_PER_memb_extensionValue_constr_768,  memb_extensionValue_constraint_765 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedCell_ExtIEs_tags_765[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ServedCell_ExtIEs_tag2el_765[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ServedCell_ExtIEs_specs_765 = {
+       sizeof(struct ServedCell_ExtIEs),
+       offsetof(struct ServedCell_ExtIEs, _asn_ctx),
+       asn_MAP_ServedCell_ExtIEs_tag2el_765,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedCell_ExtIEs = {
+       "ServedCell-ExtIEs",
+       "ServedCell-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ServedCell_ExtIEs_tags_765,
+       sizeof(asn_DEF_ServedCell_ExtIEs_tags_765)
+               /sizeof(asn_DEF_ServedCell_ExtIEs_tags_765[0]), /* 1 */
+       asn_DEF_ServedCell_ExtIEs_tags_765,     /* Same as above */
+       sizeof(asn_DEF_ServedCell_ExtIEs_tags_765)
+               /sizeof(asn_DEF_ServedCell_ExtIEs_tags_765[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ServedCell_ExtIEs_765,
+       3,      /* Elements count */
+       &asn_SPC_ServedCell_ExtIEs_specs_765    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_772[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.Number_of_Antennaports),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_Number_of_Antennaports,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Number-of-Antennaports"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.PRACH_Configuration),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_PRACH_Configuration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PRACH-Configuration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.MBSFN_Subframe_Infolist),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MBSFN_Subframe_Infolist,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MBSFN-Subframe-Infolist"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.CSG_Id),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_CSG_Id,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CSG-Id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.MBMS_Service_Area_Identity_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MBMS_Service_Area_Identity_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MBMS-Service-Area-Identity-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.MultibandInfoList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MultibandInfoList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MultibandInfoList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.FreqBandIndicatorPriority),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_FreqBandIndicatorPriority,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "FreqBandIndicatorPriority"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.BandwidthReducedSI),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_BandwidthReducedSI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "BandwidthReducedSI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.ProtectedEUTRAResourceIndication),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtectedEUTRAResourceIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ProtectedEUTRAResourceIndication"
+               },
+};
+static const unsigned asn_MAP_extensionValue_to_canonical_772[] = { 3, 0, 6, 7, 1, 2, 4, 5, 8 };
+static const unsigned asn_MAP_extensionValue_from_canonical_772[] = { 1, 4, 5, 0, 6, 7, 2, 3, 8 };
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_772[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 3, 0, 0 }, /* CSG-Id */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 2 }, /* Number-of-Antennaports */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 6, -1, 1 }, /* FreqBandIndicatorPriority */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 7, -2, 0 }, /* BandwidthReducedSI */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 4 }, /* PRACH-Configuration */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 3 }, /* MBSFN-Subframe-Infolist */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 2 }, /* MBMS-Service-Area-Identity-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -3, 1 }, /* MultibandInfoList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -4, 0 } /* ProtectedEUTRAResourceIndication */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_772 = {
+       sizeof(struct ServedCell_Information_ExtIEs__extensionValue),
+       offsetof(struct ServedCell_Information_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ServedCell_Information_ExtIEs__extensionValue, present),
+       sizeof(((struct ServedCell_Information_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_772,
+       9,      /* Count of tags in the map */
+       asn_MAP_extensionValue_to_canonical_772,
+       asn_MAP_extensionValue_from_canonical_772,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_772 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_772,
+       9,      /* Elements count */
+       &asn_SPC_extensionValue_specs_772       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ServedCell_Information_ExtIEs_769[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_770, &asn_PER_memb_id_constr_770,  memb_id_constraint_769 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ServedCell_Information_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_771, &asn_PER_memb_criticality_constr_771,  memb_criticality_constraint_769 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_772,
+               select_ServedCell_Information_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_772, &asn_PER_memb_extensionValue_constr_772,  memb_extensionValue_constraint_769 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedCell_Information_ExtIEs_tags_769[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ServedCell_Information_ExtIEs_tag2el_769[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ServedCell_Information_ExtIEs_specs_769 = {
+       sizeof(struct ServedCell_Information_ExtIEs),
+       offsetof(struct ServedCell_Information_ExtIEs, _asn_ctx),
+       asn_MAP_ServedCell_Information_ExtIEs_tag2el_769,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedCell_Information_ExtIEs = {
+       "ServedCell-Information-ExtIEs",
+       "ServedCell-Information-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ServedCell_Information_ExtIEs_tags_769,
+       sizeof(asn_DEF_ServedCell_Information_ExtIEs_tags_769)
+               /sizeof(asn_DEF_ServedCell_Information_ExtIEs_tags_769[0]), /* 1 */
+       asn_DEF_ServedCell_Information_ExtIEs_tags_769, /* Same as above */
+       sizeof(asn_DEF_ServedCell_Information_ExtIEs_tags_769)
+               /sizeof(asn_DEF_ServedCell_Information_ExtIEs_tags_769[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ServedCell_Information_ExtIEs_769,
+       3,      /* Elements count */
+       &asn_SPC_ServedCell_Information_ExtIEs_specs_769        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_776[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBResourceCoordinationInformationExtIEs__extensionValue, choice.ECGI),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ECGI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBResourceCoordinationInformationExtIEs__extensionValue, choice.SgNBCoordinationAssistanceInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_SgNBCoordinationAssistanceInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBCoordinationAssistanceInformation"
+               },
+};
+static const unsigned asn_MAP_extensionValue_to_canonical_776[] = { 1, 0 };
+static const unsigned asn_MAP_extensionValue_from_canonical_776[] = { 1, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_776[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* SgNBCoordinationAssistanceInformation */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ECGI */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_776 = {
+       sizeof(struct SgNBResourceCoordinationInformationExtIEs__extensionValue),
+       offsetof(struct SgNBResourceCoordinationInformationExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct SgNBResourceCoordinationInformationExtIEs__extensionValue, present),
+       sizeof(((struct SgNBResourceCoordinationInformationExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_776,
+       2,      /* Count of tags in the map */
+       asn_MAP_extensionValue_to_canonical_776,
+       asn_MAP_extensionValue_from_canonical_776,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_776 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_776,
+       2,      /* Elements count */
+       &asn_SPC_extensionValue_specs_776       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBResourceCoordinationInformationExtIEs_773[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBResourceCoordinationInformationExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_774, &asn_PER_memb_id_constr_774,  memb_id_constraint_773 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBResourceCoordinationInformationExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBResourceCoordinationInformationExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_775, &asn_PER_memb_criticality_constr_775,  memb_criticality_constraint_773 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBResourceCoordinationInformationExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_776,
+               select_SgNBResourceCoordinationInformationExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_776, &asn_PER_memb_extensionValue_constr_776,  memb_extensionValue_constraint_773 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBResourceCoordinationInformationExtIEs_tags_773[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBResourceCoordinationInformationExtIEs_tag2el_773[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBResourceCoordinationInformationExtIEs_specs_773 = {
+       sizeof(struct SgNBResourceCoordinationInformationExtIEs),
+       offsetof(struct SgNBResourceCoordinationInformationExtIEs, _asn_ctx),
+       asn_MAP_SgNBResourceCoordinationInformationExtIEs_tag2el_773,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBResourceCoordinationInformationExtIEs = {
+       "SgNBResourceCoordinationInformationExtIEs",
+       "SgNBResourceCoordinationInformationExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBResourceCoordinationInformationExtIEs_tags_773,
+       sizeof(asn_DEF_SgNBResourceCoordinationInformationExtIEs_tags_773)
+               /sizeof(asn_DEF_SgNBResourceCoordinationInformationExtIEs_tags_773[0]), /* 1 */
+       asn_DEF_SgNBResourceCoordinationInformationExtIEs_tags_773,     /* Same as above */
+       sizeof(asn_DEF_SgNBResourceCoordinationInformationExtIEs_tags_773)
+               /sizeof(asn_DEF_SgNBResourceCoordinationInformationExtIEs_tags_773[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBResourceCoordinationInformationExtIEs_773,
+       3,      /* Elements count */
+       &asn_SPC_SgNBResourceCoordinationInformationExtIEs_specs_773    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_780 = {
+       sizeof(struct SpecialSubframe_Info_ExtIEs__extensionValue),
+       offsetof(struct SpecialSubframe_Info_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct SpecialSubframe_Info_ExtIEs__extensionValue, present),
+       sizeof(((struct SpecialSubframe_Info_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_780 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_780       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SpecialSubframe_Info_ExtIEs_777[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SpecialSubframe_Info_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_778, &asn_PER_memb_id_constr_778,  memb_id_constraint_777 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SpecialSubframe_Info_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_779, &asn_PER_memb_criticality_constr_779,  memb_criticality_constraint_777 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SpecialSubframe_Info_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_780,
+               0,
+               { &asn_OER_memb_extensionValue_constr_780, &asn_PER_memb_extensionValue_constr_780,  memb_extensionValue_constraint_777 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SpecialSubframe_Info_ExtIEs_tags_777[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SpecialSubframe_Info_ExtIEs_tag2el_777[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SpecialSubframe_Info_ExtIEs_specs_777 = {
+       sizeof(struct SpecialSubframe_Info_ExtIEs),
+       offsetof(struct SpecialSubframe_Info_ExtIEs, _asn_ctx),
+       asn_MAP_SpecialSubframe_Info_ExtIEs_tag2el_777,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SpecialSubframe_Info_ExtIEs = {
+       "SpecialSubframe-Info-ExtIEs",
+       "SpecialSubframe-Info-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SpecialSubframe_Info_ExtIEs_tags_777,
+       sizeof(asn_DEF_SpecialSubframe_Info_ExtIEs_tags_777)
+               /sizeof(asn_DEF_SpecialSubframe_Info_ExtIEs_tags_777[0]), /* 1 */
+       asn_DEF_SpecialSubframe_Info_ExtIEs_tags_777,   /* Same as above */
+       sizeof(asn_DEF_SpecialSubframe_Info_ExtIEs_tags_777)
+               /sizeof(asn_DEF_SpecialSubframe_Info_ExtIEs_tags_777[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SpecialSubframe_Info_ExtIEs_777,
+       3,      /* Elements count */
+       &asn_SPC_SpecialSubframe_Info_ExtIEs_specs_777  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_784 = {
+       sizeof(struct SubbandCQI_ExtIEs__extensionValue),
+       offsetof(struct SubbandCQI_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct SubbandCQI_ExtIEs__extensionValue, present),
+       sizeof(((struct SubbandCQI_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_784 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_784       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SubbandCQI_ExtIEs_781[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SubbandCQI_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_782, &asn_PER_memb_id_constr_782,  memb_id_constraint_781 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SubbandCQI_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_783, &asn_PER_memb_criticality_constr_783,  memb_criticality_constraint_781 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SubbandCQI_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_784,
+               0,
+               { &asn_OER_memb_extensionValue_constr_784, &asn_PER_memb_extensionValue_constr_784,  memb_extensionValue_constraint_781 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SubbandCQI_ExtIEs_tags_781[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SubbandCQI_ExtIEs_tag2el_781[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SubbandCQI_ExtIEs_specs_781 = {
+       sizeof(struct SubbandCQI_ExtIEs),
+       offsetof(struct SubbandCQI_ExtIEs, _asn_ctx),
+       asn_MAP_SubbandCQI_ExtIEs_tag2el_781,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SubbandCQI_ExtIEs = {
+       "SubbandCQI-ExtIEs",
+       "SubbandCQI-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SubbandCQI_ExtIEs_tags_781,
+       sizeof(asn_DEF_SubbandCQI_ExtIEs_tags_781)
+               /sizeof(asn_DEF_SubbandCQI_ExtIEs_tags_781[0]), /* 1 */
+       asn_DEF_SubbandCQI_ExtIEs_tags_781,     /* Same as above */
+       sizeof(asn_DEF_SubbandCQI_ExtIEs_tags_781)
+               /sizeof(asn_DEF_SubbandCQI_ExtIEs_tags_781[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SubbandCQI_ExtIEs_781,
+       3,      /* Elements count */
+       &asn_SPC_SubbandCQI_ExtIEs_specs_781    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_788 = {
+       sizeof(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue),
+       offsetof(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue, present),
+       sizeof(((struct Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_788 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_788       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_Subscription_Based_UE_DifferentiationInfo_ExtIEs_785[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_786, &asn_PER_memb_id_constr_786,  memb_id_constraint_785 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_787, &asn_PER_memb_criticality_constr_787,  memb_criticality_constraint_785 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_788,
+               0,
+               { &asn_OER_memb_extensionValue_constr_788, &asn_PER_memb_extensionValue_constr_788,  memb_extensionValue_constraint_785 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tags_785[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tag2el_785[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_Subscription_Based_UE_DifferentiationInfo_ExtIEs_specs_785 = {
+       sizeof(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs),
+       offsetof(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs, _asn_ctx),
+       asn_MAP_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tag2el_785,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs = {
+       "Subscription-Based-UE-DifferentiationInfo-ExtIEs",
+       "Subscription-Based-UE-DifferentiationInfo-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tags_785,
+       sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tags_785)
+               /sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tags_785[0]), /* 1 */
+       asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tags_785,      /* Same as above */
+       sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tags_785)
+               /sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tags_785[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_Subscription_Based_UE_DifferentiationInfo_ExtIEs_785,
+       3,      /* Elements count */
+       &asn_SPC_Subscription_Based_UE_DifferentiationInfo_ExtIEs_specs_785     /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_792 = {
+       sizeof(struct ScheduledCommunicationTime_ExtIEs__extensionValue),
+       offsetof(struct ScheduledCommunicationTime_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ScheduledCommunicationTime_ExtIEs__extensionValue, present),
+       sizeof(((struct ScheduledCommunicationTime_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_792 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_792       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ScheduledCommunicationTime_ExtIEs_789[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ScheduledCommunicationTime_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_790, &asn_PER_memb_id_constr_790,  memb_id_constraint_789 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ScheduledCommunicationTime_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_791, &asn_PER_memb_criticality_constr_791,  memb_criticality_constraint_789 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ScheduledCommunicationTime_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_792,
+               0,
+               { &asn_OER_memb_extensionValue_constr_792, &asn_PER_memb_extensionValue_constr_792,  memb_extensionValue_constraint_789 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ScheduledCommunicationTime_ExtIEs_tags_789[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ScheduledCommunicationTime_ExtIEs_tag2el_789[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ScheduledCommunicationTime_ExtIEs_specs_789 = {
+       sizeof(struct ScheduledCommunicationTime_ExtIEs),
+       offsetof(struct ScheduledCommunicationTime_ExtIEs, _asn_ctx),
+       asn_MAP_ScheduledCommunicationTime_ExtIEs_tag2el_789,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ScheduledCommunicationTime_ExtIEs = {
+       "ScheduledCommunicationTime-ExtIEs",
+       "ScheduledCommunicationTime-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ScheduledCommunicationTime_ExtIEs_tags_789,
+       sizeof(asn_DEF_ScheduledCommunicationTime_ExtIEs_tags_789)
+               /sizeof(asn_DEF_ScheduledCommunicationTime_ExtIEs_tags_789[0]), /* 1 */
+       asn_DEF_ScheduledCommunicationTime_ExtIEs_tags_789,     /* Same as above */
+       sizeof(asn_DEF_ScheduledCommunicationTime_ExtIEs_tags_789)
+               /sizeof(asn_DEF_ScheduledCommunicationTime_ExtIEs_tags_789[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ScheduledCommunicationTime_ExtIEs_789,
+       3,      /* Elements count */
+       &asn_SPC_ScheduledCommunicationTime_ExtIEs_specs_789    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_796 = {
+       sizeof(struct SubbandCQIItem_ExtIEs__extensionValue),
+       offsetof(struct SubbandCQIItem_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct SubbandCQIItem_ExtIEs__extensionValue, present),
+       sizeof(((struct SubbandCQIItem_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_796 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_796       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SubbandCQIItem_ExtIEs_793[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SubbandCQIItem_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_794, &asn_PER_memb_id_constr_794,  memb_id_constraint_793 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SubbandCQIItem_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_795, &asn_PER_memb_criticality_constr_795,  memb_criticality_constraint_793 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SubbandCQIItem_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_796,
+               0,
+               { &asn_OER_memb_extensionValue_constr_796, &asn_PER_memb_extensionValue_constr_796,  memb_extensionValue_constraint_793 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SubbandCQIItem_ExtIEs_tags_793[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SubbandCQIItem_ExtIEs_tag2el_793[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SubbandCQIItem_ExtIEs_specs_793 = {
+       sizeof(struct SubbandCQIItem_ExtIEs),
+       offsetof(struct SubbandCQIItem_ExtIEs, _asn_ctx),
+       asn_MAP_SubbandCQIItem_ExtIEs_tag2el_793,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SubbandCQIItem_ExtIEs = {
+       "SubbandCQIItem-ExtIEs",
+       "SubbandCQIItem-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SubbandCQIItem_ExtIEs_tags_793,
+       sizeof(asn_DEF_SubbandCQIItem_ExtIEs_tags_793)
+               /sizeof(asn_DEF_SubbandCQIItem_ExtIEs_tags_793[0]), /* 1 */
+       asn_DEF_SubbandCQIItem_ExtIEs_tags_793, /* Same as above */
+       sizeof(asn_DEF_SubbandCQIItem_ExtIEs_tags_793)
+               /sizeof(asn_DEF_SubbandCQIItem_ExtIEs_tags_793[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SubbandCQIItem_ExtIEs_793,
+       3,      /* Elements count */
+       &asn_SPC_SubbandCQIItem_ExtIEs_specs_793        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_800 = {
+       sizeof(struct SULInformation_ExtIEs__extensionValue),
+       offsetof(struct SULInformation_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct SULInformation_ExtIEs__extensionValue, present),
+       sizeof(((struct SULInformation_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_800 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_800       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SULInformation_ExtIEs_797[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SULInformation_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_798, &asn_PER_memb_id_constr_798,  memb_id_constraint_797 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SULInformation_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_799, &asn_PER_memb_criticality_constr_799,  memb_criticality_constraint_797 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SULInformation_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_800,
+               0,
+               { &asn_OER_memb_extensionValue_constr_800, &asn_PER_memb_extensionValue_constr_800,  memb_extensionValue_constraint_797 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SULInformation_ExtIEs_tags_797[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SULInformation_ExtIEs_tag2el_797[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SULInformation_ExtIEs_specs_797 = {
+       sizeof(struct SULInformation_ExtIEs),
+       offsetof(struct SULInformation_ExtIEs, _asn_ctx),
+       asn_MAP_SULInformation_ExtIEs_tag2el_797,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SULInformation_ExtIEs = {
+       "SULInformation-ExtIEs",
+       "SULInformation-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SULInformation_ExtIEs_tags_797,
+       sizeof(asn_DEF_SULInformation_ExtIEs_tags_797)
+               /sizeof(asn_DEF_SULInformation_ExtIEs_tags_797[0]), /* 1 */
+       asn_DEF_SULInformation_ExtIEs_tags_797, /* Same as above */
+       sizeof(asn_DEF_SULInformation_ExtIEs_tags_797)
+               /sizeof(asn_DEF_SULInformation_ExtIEs_tags_797[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SULInformation_ExtIEs_797,
+       3,      /* Elements count */
+       &asn_SPC_SULInformation_ExtIEs_specs_797        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_804 = {
+       sizeof(struct SupportedSULFreqBandItem_ExtIEs__extensionValue),
+       offsetof(struct SupportedSULFreqBandItem_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct SupportedSULFreqBandItem_ExtIEs__extensionValue, present),
+       sizeof(((struct SupportedSULFreqBandItem_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_804 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_804       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SupportedSULFreqBandItem_ExtIEs_801[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SupportedSULFreqBandItem_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_802, &asn_PER_memb_id_constr_802,  memb_id_constraint_801 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SupportedSULFreqBandItem_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_803, &asn_PER_memb_criticality_constr_803,  memb_criticality_constraint_801 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SupportedSULFreqBandItem_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_804,
+               0,
+               { &asn_OER_memb_extensionValue_constr_804, &asn_PER_memb_extensionValue_constr_804,  memb_extensionValue_constraint_801 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_801[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SupportedSULFreqBandItem_ExtIEs_tag2el_801[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SupportedSULFreqBandItem_ExtIEs_specs_801 = {
+       sizeof(struct SupportedSULFreqBandItem_ExtIEs),
+       offsetof(struct SupportedSULFreqBandItem_ExtIEs, _asn_ctx),
+       asn_MAP_SupportedSULFreqBandItem_ExtIEs_tag2el_801,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SupportedSULFreqBandItem_ExtIEs = {
+       "SupportedSULFreqBandItem-ExtIEs",
+       "SupportedSULFreqBandItem-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_801,
+       sizeof(asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_801)
+               /sizeof(asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_801[0]), /* 1 */
+       asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_801,       /* Same as above */
+       sizeof(asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_801)
+               /sizeof(asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_801[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SupportedSULFreqBandItem_ExtIEs_801,
+       3,      /* Elements count */
+       &asn_SPC_SupportedSULFreqBandItem_ExtIEs_specs_801      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_808 = {
+       sizeof(struct TABasedMDT_ExtIEs__extensionValue),
+       offsetof(struct TABasedMDT_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct TABasedMDT_ExtIEs__extensionValue, present),
+       sizeof(((struct TABasedMDT_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_808 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_808       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_TABasedMDT_ExtIEs_805[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TABasedMDT_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_806, &asn_PER_memb_id_constr_806,  memb_id_constraint_805 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TABasedMDT_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_807, &asn_PER_memb_criticality_constr_807,  memb_criticality_constraint_805 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TABasedMDT_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_808,
+               0,
+               { &asn_OER_memb_extensionValue_constr_808, &asn_PER_memb_extensionValue_constr_808,  memb_extensionValue_constraint_805 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_TABasedMDT_ExtIEs_tags_805[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TABasedMDT_ExtIEs_tag2el_805[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TABasedMDT_ExtIEs_specs_805 = {
+       sizeof(struct TABasedMDT_ExtIEs),
+       offsetof(struct TABasedMDT_ExtIEs, _asn_ctx),
+       asn_MAP_TABasedMDT_ExtIEs_tag2el_805,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TABasedMDT_ExtIEs = {
+       "TABasedMDT-ExtIEs",
+       "TABasedMDT-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TABasedMDT_ExtIEs_tags_805,
+       sizeof(asn_DEF_TABasedMDT_ExtIEs_tags_805)
+               /sizeof(asn_DEF_TABasedMDT_ExtIEs_tags_805[0]), /* 1 */
+       asn_DEF_TABasedMDT_ExtIEs_tags_805,     /* Same as above */
+       sizeof(asn_DEF_TABasedMDT_ExtIEs_tags_805)
+               /sizeof(asn_DEF_TABasedMDT_ExtIEs_tags_805[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TABasedMDT_ExtIEs_805,
+       3,      /* Elements count */
+       &asn_SPC_TABasedMDT_ExtIEs_specs_805    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_812 = {
+       sizeof(struct TAIBasedMDT_ExtIEs__extensionValue),
+       offsetof(struct TAIBasedMDT_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct TAIBasedMDT_ExtIEs__extensionValue, present),
+       sizeof(((struct TAIBasedMDT_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_812 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_812       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_TAIBasedMDT_ExtIEs_809[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TAIBasedMDT_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_810, &asn_PER_memb_id_constr_810,  memb_id_constraint_809 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TAIBasedMDT_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_811, &asn_PER_memb_criticality_constr_811,  memb_criticality_constraint_809 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TAIBasedMDT_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_812,
+               0,
+               { &asn_OER_memb_extensionValue_constr_812, &asn_PER_memb_extensionValue_constr_812,  memb_extensionValue_constraint_809 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_TAIBasedMDT_ExtIEs_tags_809[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TAIBasedMDT_ExtIEs_tag2el_809[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TAIBasedMDT_ExtIEs_specs_809 = {
+       sizeof(struct TAIBasedMDT_ExtIEs),
+       offsetof(struct TAIBasedMDT_ExtIEs, _asn_ctx),
+       asn_MAP_TAIBasedMDT_ExtIEs_tag2el_809,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TAIBasedMDT_ExtIEs = {
+       "TAIBasedMDT-ExtIEs",
+       "TAIBasedMDT-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TAIBasedMDT_ExtIEs_tags_809,
+       sizeof(asn_DEF_TAIBasedMDT_ExtIEs_tags_809)
+               /sizeof(asn_DEF_TAIBasedMDT_ExtIEs_tags_809[0]), /* 1 */
+       asn_DEF_TAIBasedMDT_ExtIEs_tags_809,    /* Same as above */
+       sizeof(asn_DEF_TAIBasedMDT_ExtIEs_tags_809)
+               /sizeof(asn_DEF_TAIBasedMDT_ExtIEs_tags_809[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TAIBasedMDT_ExtIEs_809,
+       3,      /* Elements count */
+       &asn_SPC_TAIBasedMDT_ExtIEs_specs_809   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_816 = {
+       sizeof(struct TAI_Item_ExtIEs__extensionValue),
+       offsetof(struct TAI_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct TAI_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct TAI_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_816 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_816       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_TAI_Item_ExtIEs_813[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TAI_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_814, &asn_PER_memb_id_constr_814,  memb_id_constraint_813 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TAI_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_815, &asn_PER_memb_criticality_constr_815,  memb_criticality_constraint_813 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TAI_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_816,
+               0,
+               { &asn_OER_memb_extensionValue_constr_816, &asn_PER_memb_extensionValue_constr_816,  memb_extensionValue_constraint_813 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_TAI_Item_ExtIEs_tags_813[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TAI_Item_ExtIEs_tag2el_813[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TAI_Item_ExtIEs_specs_813 = {
+       sizeof(struct TAI_Item_ExtIEs),
+       offsetof(struct TAI_Item_ExtIEs, _asn_ctx),
+       asn_MAP_TAI_Item_ExtIEs_tag2el_813,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TAI_Item_ExtIEs = {
+       "TAI-Item-ExtIEs",
+       "TAI-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TAI_Item_ExtIEs_tags_813,
+       sizeof(asn_DEF_TAI_Item_ExtIEs_tags_813)
+               /sizeof(asn_DEF_TAI_Item_ExtIEs_tags_813[0]), /* 1 */
+       asn_DEF_TAI_Item_ExtIEs_tags_813,       /* Same as above */
+       sizeof(asn_DEF_TAI_Item_ExtIEs_tags_813)
+               /sizeof(asn_DEF_TAI_Item_ExtIEs_tags_813[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TAI_Item_ExtIEs_813,
+       3,      /* Elements count */
+       &asn_SPC_TAI_Item_ExtIEs_specs_813      /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_820 = {
+       sizeof(struct TABasedQMC_ExtIEs__extensionValue),
+       offsetof(struct TABasedQMC_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct TABasedQMC_ExtIEs__extensionValue, present),
+       sizeof(((struct TABasedQMC_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_820 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_820       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_TABasedQMC_ExtIEs_817[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TABasedQMC_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_818, &asn_PER_memb_id_constr_818,  memb_id_constraint_817 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TABasedQMC_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_819, &asn_PER_memb_criticality_constr_819,  memb_criticality_constraint_817 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TABasedQMC_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_820,
+               0,
+               { &asn_OER_memb_extensionValue_constr_820, &asn_PER_memb_extensionValue_constr_820,  memb_extensionValue_constraint_817 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_TABasedQMC_ExtIEs_tags_817[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TABasedQMC_ExtIEs_tag2el_817[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TABasedQMC_ExtIEs_specs_817 = {
+       sizeof(struct TABasedQMC_ExtIEs),
+       offsetof(struct TABasedQMC_ExtIEs, _asn_ctx),
+       asn_MAP_TABasedQMC_ExtIEs_tag2el_817,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TABasedQMC_ExtIEs = {
+       "TABasedQMC-ExtIEs",
+       "TABasedQMC-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TABasedQMC_ExtIEs_tags_817,
+       sizeof(asn_DEF_TABasedQMC_ExtIEs_tags_817)
+               /sizeof(asn_DEF_TABasedQMC_ExtIEs_tags_817[0]), /* 1 */
+       asn_DEF_TABasedQMC_ExtIEs_tags_817,     /* Same as above */
+       sizeof(asn_DEF_TABasedQMC_ExtIEs_tags_817)
+               /sizeof(asn_DEF_TABasedQMC_ExtIEs_tags_817[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TABasedQMC_ExtIEs_817,
+       3,      /* Elements count */
+       &asn_SPC_TABasedQMC_ExtIEs_specs_817    /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_824 = {
+       sizeof(struct TAIBasedQMC_ExtIEs__extensionValue),
+       offsetof(struct TAIBasedQMC_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct TAIBasedQMC_ExtIEs__extensionValue, present),
+       sizeof(((struct TAIBasedQMC_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_824 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_824       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_TAIBasedQMC_ExtIEs_821[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TAIBasedQMC_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_822, &asn_PER_memb_id_constr_822,  memb_id_constraint_821 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TAIBasedQMC_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_823, &asn_PER_memb_criticality_constr_823,  memb_criticality_constraint_821 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TAIBasedQMC_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_824,
+               0,
+               { &asn_OER_memb_extensionValue_constr_824, &asn_PER_memb_extensionValue_constr_824,  memb_extensionValue_constraint_821 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_TAIBasedQMC_ExtIEs_tags_821[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TAIBasedQMC_ExtIEs_tag2el_821[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TAIBasedQMC_ExtIEs_specs_821 = {
+       sizeof(struct TAIBasedQMC_ExtIEs),
+       offsetof(struct TAIBasedQMC_ExtIEs, _asn_ctx),
+       asn_MAP_TAIBasedQMC_ExtIEs_tag2el_821,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TAIBasedQMC_ExtIEs = {
+       "TAIBasedQMC-ExtIEs",
+       "TAIBasedQMC-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TAIBasedQMC_ExtIEs_tags_821,
+       sizeof(asn_DEF_TAIBasedQMC_ExtIEs_tags_821)
+               /sizeof(asn_DEF_TAIBasedQMC_ExtIEs_tags_821[0]), /* 1 */
+       asn_DEF_TAIBasedQMC_ExtIEs_tags_821,    /* Same as above */
+       sizeof(asn_DEF_TAIBasedQMC_ExtIEs_tags_821)
+               /sizeof(asn_DEF_TAIBasedQMC_ExtIEs_tags_821[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TAIBasedQMC_ExtIEs_821,
+       3,      /* Elements count */
+       &asn_SPC_TAIBasedQMC_ExtIEs_specs_821   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_828[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TDD_Info_ExtIEs__extensionValue, choice.AdditionalSpecialSubframe_Info),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_AdditionalSpecialSubframe_Info,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "AdditionalSpecialSubframe-Info"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TDD_Info_ExtIEs__extensionValue, choice.EARFCNExtension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_EARFCNExtension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "EARFCNExtension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TDD_Info_ExtIEs__extensionValue, choice.AdditionalSpecialSubframeExtension_Info),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_AdditionalSpecialSubframeExtension_Info,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "AdditionalSpecialSubframeExtension-Info"
+               },
+};
+static const unsigned asn_MAP_extensionValue_to_canonical_828[] = { 1, 0, 2 };
+static const unsigned asn_MAP_extensionValue_from_canonical_828[] = { 1, 0, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_828[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* EARFCNExtension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* AdditionalSpecialSubframe-Info */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* AdditionalSpecialSubframeExtension-Info */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_828 = {
+       sizeof(struct TDD_Info_ExtIEs__extensionValue),
+       offsetof(struct TDD_Info_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct TDD_Info_ExtIEs__extensionValue, present),
+       sizeof(((struct TDD_Info_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_828,
+       3,      /* Count of tags in the map */
+       asn_MAP_extensionValue_to_canonical_828,
+       asn_MAP_extensionValue_from_canonical_828,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_828 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_828,
+       3,      /* Elements count */
+       &asn_SPC_extensionValue_specs_828       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_TDD_Info_ExtIEs_825[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TDD_Info_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_826, &asn_PER_memb_id_constr_826,  memb_id_constraint_825 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TDD_Info_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_TDD_Info_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_827, &asn_PER_memb_criticality_constr_827,  memb_criticality_constraint_825 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TDD_Info_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_828,
+               select_TDD_Info_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_828, &asn_PER_memb_extensionValue_constr_828,  memb_extensionValue_constraint_825 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_TDD_Info_ExtIEs_tags_825[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TDD_Info_ExtIEs_tag2el_825[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TDD_Info_ExtIEs_specs_825 = {
+       sizeof(struct TDD_Info_ExtIEs),
+       offsetof(struct TDD_Info_ExtIEs, _asn_ctx),
+       asn_MAP_TDD_Info_ExtIEs_tag2el_825,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TDD_Info_ExtIEs = {
+       "TDD-Info-ExtIEs",
+       "TDD-Info-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TDD_Info_ExtIEs_tags_825,
+       sizeof(asn_DEF_TDD_Info_ExtIEs_tags_825)
+               /sizeof(asn_DEF_TDD_Info_ExtIEs_tags_825[0]), /* 1 */
+       asn_DEF_TDD_Info_ExtIEs_tags_825,       /* Same as above */
+       sizeof(asn_DEF_TDD_Info_ExtIEs_tags_825)
+               /sizeof(asn_DEF_TDD_Info_ExtIEs_tags_825[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TDD_Info_ExtIEs_825,
+       3,      /* Elements count */
+       &asn_SPC_TDD_Info_ExtIEs_specs_825      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_832[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TraceActivation_ExtIEs__extensionValue, choice.MDT_Configuration),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MDT_Configuration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MDT-Configuration"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TraceActivation_ExtIEs__extensionValue, choice.UEAppLayerMeasConfig),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UEAppLayerMeasConfig,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UEAppLayerMeasConfig"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_832[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* MDT-Configuration */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* UEAppLayerMeasConfig */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_832 = {
+       sizeof(struct TraceActivation_ExtIEs__extensionValue),
+       offsetof(struct TraceActivation_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct TraceActivation_ExtIEs__extensionValue, present),
+       sizeof(((struct TraceActivation_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_832,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_832 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_832,
+       2,      /* Elements count */
+       &asn_SPC_extensionValue_specs_832       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_TraceActivation_ExtIEs_829[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TraceActivation_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_830, &asn_PER_memb_id_constr_830,  memb_id_constraint_829 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TraceActivation_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_TraceActivation_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_831, &asn_PER_memb_criticality_constr_831,  memb_criticality_constraint_829 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TraceActivation_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_832,
+               select_TraceActivation_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_832, &asn_PER_memb_extensionValue_constr_832,  memb_extensionValue_constraint_829 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_TraceActivation_ExtIEs_tags_829[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TraceActivation_ExtIEs_tag2el_829[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TraceActivation_ExtIEs_specs_829 = {
+       sizeof(struct TraceActivation_ExtIEs),
+       offsetof(struct TraceActivation_ExtIEs, _asn_ctx),
+       asn_MAP_TraceActivation_ExtIEs_tag2el_829,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TraceActivation_ExtIEs = {
+       "TraceActivation-ExtIEs",
+       "TraceActivation-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TraceActivation_ExtIEs_tags_829,
+       sizeof(asn_DEF_TraceActivation_ExtIEs_tags_829)
+               /sizeof(asn_DEF_TraceActivation_ExtIEs_tags_829[0]), /* 1 */
+       asn_DEF_TraceActivation_ExtIEs_tags_829,        /* Same as above */
+       sizeof(asn_DEF_TraceActivation_ExtIEs_tags_829)
+               /sizeof(asn_DEF_TraceActivation_ExtIEs_tags_829[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TraceActivation_ExtIEs_829,
+       3,      /* Elements count */
+       &asn_SPC_TraceActivation_ExtIEs_specs_829       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_836 = {
+       sizeof(struct Tunnel_Information_ExtIEs__extensionValue),
+       offsetof(struct Tunnel_Information_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct Tunnel_Information_ExtIEs__extensionValue, present),
+       sizeof(((struct Tunnel_Information_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_836 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_836       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_Tunnel_Information_ExtIEs_833[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct Tunnel_Information_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_834, &asn_PER_memb_id_constr_834,  memb_id_constraint_833 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct Tunnel_Information_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_835, &asn_PER_memb_criticality_constr_835,  memb_criticality_constraint_833 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Tunnel_Information_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_836,
+               0,
+               { &asn_OER_memb_extensionValue_constr_836, &asn_PER_memb_extensionValue_constr_836,  memb_extensionValue_constraint_833 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_Tunnel_Information_ExtIEs_tags_833[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_Tunnel_Information_ExtIEs_tag2el_833[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_Tunnel_Information_ExtIEs_specs_833 = {
+       sizeof(struct Tunnel_Information_ExtIEs),
+       offsetof(struct Tunnel_Information_ExtIEs, _asn_ctx),
+       asn_MAP_Tunnel_Information_ExtIEs_tag2el_833,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_Tunnel_Information_ExtIEs = {
+       "Tunnel-Information-ExtIEs",
+       "Tunnel-Information-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_Tunnel_Information_ExtIEs_tags_833,
+       sizeof(asn_DEF_Tunnel_Information_ExtIEs_tags_833)
+               /sizeof(asn_DEF_Tunnel_Information_ExtIEs_tags_833[0]), /* 1 */
+       asn_DEF_Tunnel_Information_ExtIEs_tags_833,     /* Same as above */
+       sizeof(asn_DEF_Tunnel_Information_ExtIEs_tags_833)
+               /sizeof(asn_DEF_Tunnel_Information_ExtIEs_tags_833[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_Tunnel_Information_ExtIEs_833,
+       3,      /* Elements count */
+       &asn_SPC_Tunnel_Information_ExtIEs_specs_833    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_840[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UEAggregate_MaximumBitrate_ExtIEs__extensionValue, choice.ExtendedBitRate),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_ExtendedBitRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ExtendedBitRate"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_840[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* ExtendedBitRate */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_840 = {
+       sizeof(struct UEAggregate_MaximumBitrate_ExtIEs__extensionValue),
+       offsetof(struct UEAggregate_MaximumBitrate_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct UEAggregate_MaximumBitrate_ExtIEs__extensionValue, present),
+       sizeof(((struct UEAggregate_MaximumBitrate_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_840,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_840 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_840,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_840       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UEAggregate_MaximumBitrate_ExtIEs_837[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UEAggregate_MaximumBitrate_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_838, &asn_PER_memb_id_constr_838,  memb_id_constraint_837 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UEAggregate_MaximumBitrate_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_UEAggregate_MaximumBitrate_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_839, &asn_PER_memb_criticality_constr_839,  memb_criticality_constraint_837 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEAggregate_MaximumBitrate_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_840,
+               select_UEAggregate_MaximumBitrate_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_840, &asn_PER_memb_extensionValue_constr_840,  memb_extensionValue_constraint_837 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UEAggregate_MaximumBitrate_ExtIEs_tags_837[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEAggregate_MaximumBitrate_ExtIEs_tag2el_837[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UEAggregate_MaximumBitrate_ExtIEs_specs_837 = {
+       sizeof(struct UEAggregate_MaximumBitrate_ExtIEs),
+       offsetof(struct UEAggregate_MaximumBitrate_ExtIEs, _asn_ctx),
+       asn_MAP_UEAggregate_MaximumBitrate_ExtIEs_tag2el_837,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UEAggregate_MaximumBitrate_ExtIEs = {
+       "UEAggregate-MaximumBitrate-ExtIEs",
+       "UEAggregate-MaximumBitrate-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UEAggregate_MaximumBitrate_ExtIEs_tags_837,
+       sizeof(asn_DEF_UEAggregate_MaximumBitrate_ExtIEs_tags_837)
+               /sizeof(asn_DEF_UEAggregate_MaximumBitrate_ExtIEs_tags_837[0]), /* 1 */
+       asn_DEF_UEAggregate_MaximumBitrate_ExtIEs_tags_837,     /* Same as above */
+       sizeof(asn_DEF_UEAggregate_MaximumBitrate_ExtIEs_tags_837)
+               /sizeof(asn_DEF_UEAggregate_MaximumBitrate_ExtIEs_tags_837[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UEAggregate_MaximumBitrate_ExtIEs_837,
+       3,      /* Elements count */
+       &asn_SPC_UEAggregate_MaximumBitrate_ExtIEs_specs_837    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_extensionValue_844[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UEAppLayerMeasConfig_ExtIEs__extensionValue, choice.ServiceType),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_ServiceType,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServiceType"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_844[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* ServiceType */
+};
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_844 = {
+       sizeof(struct UEAppLayerMeasConfig_ExtIEs__extensionValue),
+       offsetof(struct UEAppLayerMeasConfig_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct UEAppLayerMeasConfig_ExtIEs__extensionValue, present),
+       sizeof(((struct UEAppLayerMeasConfig_ExtIEs__extensionValue *)0)->present),
+       asn_MAP_extensionValue_tag2el_844,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_844 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_extensionValue_844,
+       1,      /* Elements count */
+       &asn_SPC_extensionValue_specs_844       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UEAppLayerMeasConfig_ExtIEs_841[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UEAppLayerMeasConfig_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_842, &asn_PER_memb_id_constr_842,  memb_id_constraint_841 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UEAppLayerMeasConfig_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_UEAppLayerMeasConfig_ExtIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_843, &asn_PER_memb_criticality_constr_843,  memb_criticality_constraint_841 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEAppLayerMeasConfig_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_844,
+               select_UEAppLayerMeasConfig_ExtIEs_extensionValue_type,
+               { &asn_OER_memb_extensionValue_constr_844, &asn_PER_memb_extensionValue_constr_844,  memb_extensionValue_constraint_841 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UEAppLayerMeasConfig_ExtIEs_tags_841[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEAppLayerMeasConfig_ExtIEs_tag2el_841[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UEAppLayerMeasConfig_ExtIEs_specs_841 = {
+       sizeof(struct UEAppLayerMeasConfig_ExtIEs),
+       offsetof(struct UEAppLayerMeasConfig_ExtIEs, _asn_ctx),
+       asn_MAP_UEAppLayerMeasConfig_ExtIEs_tag2el_841,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UEAppLayerMeasConfig_ExtIEs = {
+       "UEAppLayerMeasConfig-ExtIEs",
+       "UEAppLayerMeasConfig-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UEAppLayerMeasConfig_ExtIEs_tags_841,
+       sizeof(asn_DEF_UEAppLayerMeasConfig_ExtIEs_tags_841)
+               /sizeof(asn_DEF_UEAppLayerMeasConfig_ExtIEs_tags_841[0]), /* 1 */
+       asn_DEF_UEAppLayerMeasConfig_ExtIEs_tags_841,   /* Same as above */
+       sizeof(asn_DEF_UEAppLayerMeasConfig_ExtIEs_tags_841)
+               /sizeof(asn_DEF_UEAppLayerMeasConfig_ExtIEs_tags_841[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UEAppLayerMeasConfig_ExtIEs_841,
+       3,      /* Elements count */
+       &asn_SPC_UEAppLayerMeasConfig_ExtIEs_specs_841  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_848 = {
+       sizeof(struct UESecurityCapabilities_ExtIEs__extensionValue),
+       offsetof(struct UESecurityCapabilities_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct UESecurityCapabilities_ExtIEs__extensionValue, present),
+       sizeof(((struct UESecurityCapabilities_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_848 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_848       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UESecurityCapabilities_ExtIEs_845[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UESecurityCapabilities_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_846, &asn_PER_memb_id_constr_846,  memb_id_constraint_845 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UESecurityCapabilities_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_847, &asn_PER_memb_criticality_constr_847,  memb_criticality_constraint_845 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UESecurityCapabilities_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_848,
+               0,
+               { &asn_OER_memb_extensionValue_constr_848, &asn_PER_memb_extensionValue_constr_848,  memb_extensionValue_constraint_845 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UESecurityCapabilities_ExtIEs_tags_845[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UESecurityCapabilities_ExtIEs_tag2el_845[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UESecurityCapabilities_ExtIEs_specs_845 = {
+       sizeof(struct UESecurityCapabilities_ExtIEs),
+       offsetof(struct UESecurityCapabilities_ExtIEs, _asn_ctx),
+       asn_MAP_UESecurityCapabilities_ExtIEs_tag2el_845,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UESecurityCapabilities_ExtIEs = {
+       "UESecurityCapabilities-ExtIEs",
+       "UESecurityCapabilities-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UESecurityCapabilities_ExtIEs_tags_845,
+       sizeof(asn_DEF_UESecurityCapabilities_ExtIEs_tags_845)
+               /sizeof(asn_DEF_UESecurityCapabilities_ExtIEs_tags_845[0]), /* 1 */
+       asn_DEF_UESecurityCapabilities_ExtIEs_tags_845, /* Same as above */
+       sizeof(asn_DEF_UESecurityCapabilities_ExtIEs_tags_845)
+               /sizeof(asn_DEF_UESecurityCapabilities_ExtIEs_tags_845[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UESecurityCapabilities_ExtIEs_845,
+       3,      /* Elements count */
+       &asn_SPC_UESecurityCapabilities_ExtIEs_specs_845        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_852 = {
+       sizeof(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue),
+       offsetof(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue, present),
+       sizeof(((struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_852 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_852       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_849[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_850, &asn_PER_memb_id_constr_850,  memb_id_constraint_849 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_851, &asn_PER_memb_criticality_constr_851,  memb_criticality_constraint_849 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_852,
+               0,
+               { &asn_OER_memb_extensionValue_constr_852, &asn_PER_memb_extensionValue_constr_852,  memb_extensionValue_constraint_849 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tags_849[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tag2el_849[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_specs_849 = {
+       sizeof(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs),
+       offsetof(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs, _asn_ctx),
+       asn_MAP_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tag2el_849,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs = {
+       "UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs",
+       "UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tags_849,
+       sizeof(asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tags_849)
+               /sizeof(asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tags_849[0]), /* 1 */
+       asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tags_849,   /* Same as above */
+       sizeof(asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tags_849)
+               /sizeof(asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tags_849[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_849,
+       3,      /* Elements count */
+       &asn_SPC_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_specs_849  /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_856 = {
+       sizeof(struct UEsToBeResetList_Item_ExtIEs__extensionValue),
+       offsetof(struct UEsToBeResetList_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct UEsToBeResetList_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct UEsToBeResetList_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_856 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_856       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UEsToBeResetList_Item_ExtIEs_853[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UEsToBeResetList_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_854, &asn_PER_memb_id_constr_854,  memb_id_constraint_853 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UEsToBeResetList_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_855, &asn_PER_memb_criticality_constr_855,  memb_criticality_constraint_853 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEsToBeResetList_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_856,
+               0,
+               { &asn_OER_memb_extensionValue_constr_856, &asn_PER_memb_extensionValue_constr_856,  memb_extensionValue_constraint_853 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UEsToBeResetList_Item_ExtIEs_tags_853[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEsToBeResetList_Item_ExtIEs_tag2el_853[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UEsToBeResetList_Item_ExtIEs_specs_853 = {
+       sizeof(struct UEsToBeResetList_Item_ExtIEs),
+       offsetof(struct UEsToBeResetList_Item_ExtIEs, _asn_ctx),
+       asn_MAP_UEsToBeResetList_Item_ExtIEs_tag2el_853,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UEsToBeResetList_Item_ExtIEs = {
+       "UEsToBeResetList-Item-ExtIEs",
+       "UEsToBeResetList-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UEsToBeResetList_Item_ExtIEs_tags_853,
+       sizeof(asn_DEF_UEsToBeResetList_Item_ExtIEs_tags_853)
+               /sizeof(asn_DEF_UEsToBeResetList_Item_ExtIEs_tags_853[0]), /* 1 */
+       asn_DEF_UEsToBeResetList_Item_ExtIEs_tags_853,  /* Same as above */
+       sizeof(asn_DEF_UEsToBeResetList_Item_ExtIEs_tags_853)
+               /sizeof(asn_DEF_UEsToBeResetList_Item_ExtIEs_tags_853[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UEsToBeResetList_Item_ExtIEs_853,
+       3,      /* Elements count */
+       &asn_SPC_UEsToBeResetList_Item_ExtIEs_specs_853 /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_860 = {
+       sizeof(struct ULandDLSharing_ExtIEs__extensionValue),
+       offsetof(struct ULandDLSharing_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ULandDLSharing_ExtIEs__extensionValue, present),
+       sizeof(((struct ULandDLSharing_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_860 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_860       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ULandDLSharing_ExtIEs_857[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ULandDLSharing_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_858, &asn_PER_memb_id_constr_858,  memb_id_constraint_857 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ULandDLSharing_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_859, &asn_PER_memb_criticality_constr_859,  memb_criticality_constraint_857 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ULandDLSharing_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_860,
+               0,
+               { &asn_OER_memb_extensionValue_constr_860, &asn_PER_memb_extensionValue_constr_860,  memb_extensionValue_constraint_857 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ULandDLSharing_ExtIEs_tags_857[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ULandDLSharing_ExtIEs_tag2el_857[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ULandDLSharing_ExtIEs_specs_857 = {
+       sizeof(struct ULandDLSharing_ExtIEs),
+       offsetof(struct ULandDLSharing_ExtIEs, _asn_ctx),
+       asn_MAP_ULandDLSharing_ExtIEs_tag2el_857,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ULandDLSharing_ExtIEs = {
+       "ULandDLSharing-ExtIEs",
+       "ULandDLSharing-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ULandDLSharing_ExtIEs_tags_857,
+       sizeof(asn_DEF_ULandDLSharing_ExtIEs_tags_857)
+               /sizeof(asn_DEF_ULandDLSharing_ExtIEs_tags_857[0]), /* 1 */
+       asn_DEF_ULandDLSharing_ExtIEs_tags_857, /* Same as above */
+       sizeof(asn_DEF_ULandDLSharing_ExtIEs_tags_857)
+               /sizeof(asn_DEF_ULandDLSharing_ExtIEs_tags_857[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ULandDLSharing_ExtIEs_857,
+       3,      /* Elements count */
+       &asn_SPC_ULandDLSharing_ExtIEs_specs_857        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_864 = {
+       sizeof(struct ULConfiguration_ExtIEs__extensionValue),
+       offsetof(struct ULConfiguration_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ULConfiguration_ExtIEs__extensionValue, present),
+       sizeof(((struct ULConfiguration_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_864 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_864       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ULConfiguration_ExtIEs_861[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ULConfiguration_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_862, &asn_PER_memb_id_constr_862,  memb_id_constraint_861 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ULConfiguration_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_863, &asn_PER_memb_criticality_constr_863,  memb_criticality_constraint_861 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ULConfiguration_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_864,
+               0,
+               { &asn_OER_memb_extensionValue_constr_864, &asn_PER_memb_extensionValue_constr_864,  memb_extensionValue_constraint_861 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ULConfiguration_ExtIEs_tags_861[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ULConfiguration_ExtIEs_tag2el_861[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ULConfiguration_ExtIEs_specs_861 = {
+       sizeof(struct ULConfiguration_ExtIEs),
+       offsetof(struct ULConfiguration_ExtIEs, _asn_ctx),
+       asn_MAP_ULConfiguration_ExtIEs_tag2el_861,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ULConfiguration_ExtIEs = {
+       "ULConfiguration-ExtIEs",
+       "ULConfiguration-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ULConfiguration_ExtIEs_tags_861,
+       sizeof(asn_DEF_ULConfiguration_ExtIEs_tags_861)
+               /sizeof(asn_DEF_ULConfiguration_ExtIEs_tags_861[0]), /* 1 */
+       asn_DEF_ULConfiguration_ExtIEs_tags_861,        /* Same as above */
+       sizeof(asn_DEF_ULConfiguration_ExtIEs_tags_861)
+               /sizeof(asn_DEF_ULConfiguration_ExtIEs_tags_861[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ULConfiguration_ExtIEs_861,
+       3,      /* Elements count */
+       &asn_SPC_ULConfiguration_ExtIEs_specs_861       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_868 = {
+       sizeof(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue),
+       offsetof(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue, present),
+       sizeof(((struct UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_868 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_868       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UL_HighInterferenceIndicationInfo_Item_ExtIEs_865[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_866, &asn_PER_memb_id_constr_866,  memb_id_constraint_865 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_867, &asn_PER_memb_criticality_constr_867,  memb_criticality_constraint_865 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_868,
+               0,
+               { &asn_OER_memb_extensionValue_constr_868, &asn_PER_memb_extensionValue_constr_868,  memb_extensionValue_constraint_865 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tags_865[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tag2el_865[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UL_HighInterferenceIndicationInfo_Item_ExtIEs_specs_865 = {
+       sizeof(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs),
+       offsetof(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs, _asn_ctx),
+       asn_MAP_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tag2el_865,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs = {
+       "UL-HighInterferenceIndicationInfo-Item-ExtIEs",
+       "UL-HighInterferenceIndicationInfo-Item-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tags_865,
+       sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tags_865)
+               /sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tags_865[0]), /* 1 */
+       asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tags_865, /* Same as above */
+       sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tags_865)
+               /sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tags_865[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UL_HighInterferenceIndicationInfo_Item_ExtIEs_865,
+       3,      /* Elements count */
+       &asn_SPC_UL_HighInterferenceIndicationInfo_Item_ExtIEs_specs_865        /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_872 = {
+       sizeof(struct ULOnlySharing_ExtIEs__extensionValue),
+       offsetof(struct ULOnlySharing_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct ULOnlySharing_ExtIEs__extensionValue, present),
+       sizeof(((struct ULOnlySharing_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_872 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_872       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ULOnlySharing_ExtIEs_869[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ULOnlySharing_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_870, &asn_PER_memb_id_constr_870,  memb_id_constraint_869 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ULOnlySharing_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_871, &asn_PER_memb_criticality_constr_871,  memb_criticality_constraint_869 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ULOnlySharing_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_872,
+               0,
+               { &asn_OER_memb_extensionValue_constr_872, &asn_PER_memb_extensionValue_constr_872,  memb_extensionValue_constraint_869 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ULOnlySharing_ExtIEs_tags_869[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ULOnlySharing_ExtIEs_tag2el_869[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ULOnlySharing_ExtIEs_specs_869 = {
+       sizeof(struct ULOnlySharing_ExtIEs),
+       offsetof(struct ULOnlySharing_ExtIEs, _asn_ctx),
+       asn_MAP_ULOnlySharing_ExtIEs_tag2el_869,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ULOnlySharing_ExtIEs = {
+       "ULOnlySharing-ExtIEs",
+       "ULOnlySharing-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ULOnlySharing_ExtIEs_tags_869,
+       sizeof(asn_DEF_ULOnlySharing_ExtIEs_tags_869)
+               /sizeof(asn_DEF_ULOnlySharing_ExtIEs_tags_869[0]), /* 1 */
+       asn_DEF_ULOnlySharing_ExtIEs_tags_869,  /* Same as above */
+       sizeof(asn_DEF_ULOnlySharing_ExtIEs_tags_869)
+               /sizeof(asn_DEF_ULOnlySharing_ExtIEs_tags_869[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ULOnlySharing_ExtIEs_869,
+       3,      /* Elements count */
+       &asn_SPC_ULOnlySharing_ExtIEs_specs_869 /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_876 = {
+       sizeof(struct UsableABSInformationFDD_ExtIEs__extensionValue),
+       offsetof(struct UsableABSInformationFDD_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct UsableABSInformationFDD_ExtIEs__extensionValue, present),
+       sizeof(((struct UsableABSInformationFDD_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_876 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_876       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UsableABSInformationFDD_ExtIEs_873[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UsableABSInformationFDD_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_874, &asn_PER_memb_id_constr_874,  memb_id_constraint_873 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UsableABSInformationFDD_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_875, &asn_PER_memb_criticality_constr_875,  memb_criticality_constraint_873 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UsableABSInformationFDD_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_876,
+               0,
+               { &asn_OER_memb_extensionValue_constr_876, &asn_PER_memb_extensionValue_constr_876,  memb_extensionValue_constraint_873 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UsableABSInformationFDD_ExtIEs_tags_873[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UsableABSInformationFDD_ExtIEs_tag2el_873[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UsableABSInformationFDD_ExtIEs_specs_873 = {
+       sizeof(struct UsableABSInformationFDD_ExtIEs),
+       offsetof(struct UsableABSInformationFDD_ExtIEs, _asn_ctx),
+       asn_MAP_UsableABSInformationFDD_ExtIEs_tag2el_873,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UsableABSInformationFDD_ExtIEs = {
+       "UsableABSInformationFDD-ExtIEs",
+       "UsableABSInformationFDD-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UsableABSInformationFDD_ExtIEs_tags_873,
+       sizeof(asn_DEF_UsableABSInformationFDD_ExtIEs_tags_873)
+               /sizeof(asn_DEF_UsableABSInformationFDD_ExtIEs_tags_873[0]), /* 1 */
+       asn_DEF_UsableABSInformationFDD_ExtIEs_tags_873,        /* Same as above */
+       sizeof(asn_DEF_UsableABSInformationFDD_ExtIEs_tags_873)
+               /sizeof(asn_DEF_UsableABSInformationFDD_ExtIEs_tags_873[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UsableABSInformationFDD_ExtIEs_873,
+       3,      /* Elements count */
+       &asn_SPC_UsableABSInformationFDD_ExtIEs_specs_873       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_880 = {
+       sizeof(struct UsableABSInformationTDD_ExtIEs__extensionValue),
+       offsetof(struct UsableABSInformationTDD_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct UsableABSInformationTDD_ExtIEs__extensionValue, present),
+       sizeof(((struct UsableABSInformationTDD_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_880 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_880       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UsableABSInformationTDD_ExtIEs_877[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UsableABSInformationTDD_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_878, &asn_PER_memb_id_constr_878,  memb_id_constraint_877 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UsableABSInformationTDD_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_879, &asn_PER_memb_criticality_constr_879,  memb_criticality_constraint_877 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UsableABSInformationTDD_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_880,
+               0,
+               { &asn_OER_memb_extensionValue_constr_880, &asn_PER_memb_extensionValue_constr_880,  memb_extensionValue_constraint_877 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UsableABSInformationTDD_ExtIEs_tags_877[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UsableABSInformationTDD_ExtIEs_tag2el_877[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UsableABSInformationTDD_ExtIEs_specs_877 = {
+       sizeof(struct UsableABSInformationTDD_ExtIEs),
+       offsetof(struct UsableABSInformationTDD_ExtIEs, _asn_ctx),
+       asn_MAP_UsableABSInformationTDD_ExtIEs_tag2el_877,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UsableABSInformationTDD_ExtIEs = {
+       "UsableABSInformationTDD-ExtIEs",
+       "UsableABSInformationTDD-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UsableABSInformationTDD_ExtIEs_tags_877,
+       sizeof(asn_DEF_UsableABSInformationTDD_ExtIEs_tags_877)
+               /sizeof(asn_DEF_UsableABSInformationTDD_ExtIEs_tags_877[0]), /* 1 */
+       asn_DEF_UsableABSInformationTDD_ExtIEs_tags_877,        /* Same as above */
+       sizeof(asn_DEF_UsableABSInformationTDD_ExtIEs_tags_877)
+               /sizeof(asn_DEF_UsableABSInformationTDD_ExtIEs_tags_877[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UsableABSInformationTDD_ExtIEs_877,
+       3,      /* Elements count */
+       &asn_SPC_UsableABSInformationTDD_ExtIEs_specs_877       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_884 = {
+       sizeof(struct V2XServicesAuthorized_ExtIEs__extensionValue),
+       offsetof(struct V2XServicesAuthorized_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct V2XServicesAuthorized_ExtIEs__extensionValue, present),
+       sizeof(((struct V2XServicesAuthorized_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_884 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_884       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_V2XServicesAuthorized_ExtIEs_881[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct V2XServicesAuthorized_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_882, &asn_PER_memb_id_constr_882,  memb_id_constraint_881 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct V2XServicesAuthorized_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_883, &asn_PER_memb_criticality_constr_883,  memb_criticality_constraint_881 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct V2XServicesAuthorized_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_884,
+               0,
+               { &asn_OER_memb_extensionValue_constr_884, &asn_PER_memb_extensionValue_constr_884,  memb_extensionValue_constraint_881 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_V2XServicesAuthorized_ExtIEs_tags_881[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_V2XServicesAuthorized_ExtIEs_tag2el_881[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_V2XServicesAuthorized_ExtIEs_specs_881 = {
+       sizeof(struct V2XServicesAuthorized_ExtIEs),
+       offsetof(struct V2XServicesAuthorized_ExtIEs, _asn_ctx),
+       asn_MAP_V2XServicesAuthorized_ExtIEs_tag2el_881,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_V2XServicesAuthorized_ExtIEs = {
+       "V2XServicesAuthorized-ExtIEs",
+       "V2XServicesAuthorized-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_V2XServicesAuthorized_ExtIEs_tags_881,
+       sizeof(asn_DEF_V2XServicesAuthorized_ExtIEs_tags_881)
+               /sizeof(asn_DEF_V2XServicesAuthorized_ExtIEs_tags_881[0]), /* 1 */
+       asn_DEF_V2XServicesAuthorized_ExtIEs_tags_881,  /* Same as above */
+       sizeof(asn_DEF_V2XServicesAuthorized_ExtIEs_tags_881)
+               /sizeof(asn_DEF_V2XServicesAuthorized_ExtIEs_tags_881[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_V2XServicesAuthorized_ExtIEs_881,
+       3,      /* Elements count */
+       &asn_SPC_V2XServicesAuthorized_ExtIEs_specs_881 /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_888 = {
+       sizeof(struct WidebandCQI_ExtIEs__extensionValue),
+       offsetof(struct WidebandCQI_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct WidebandCQI_ExtIEs__extensionValue, present),
+       sizeof(((struct WidebandCQI_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_888 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_888       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_WidebandCQI_ExtIEs_885[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct WidebandCQI_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_886, &asn_PER_memb_id_constr_886,  memb_id_constraint_885 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct WidebandCQI_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_887, &asn_PER_memb_criticality_constr_887,  memb_criticality_constraint_885 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct WidebandCQI_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_888,
+               0,
+               { &asn_OER_memb_extensionValue_constr_888, &asn_PER_memb_extensionValue_constr_888,  memb_extensionValue_constraint_885 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_WidebandCQI_ExtIEs_tags_885[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_WidebandCQI_ExtIEs_tag2el_885[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_WidebandCQI_ExtIEs_specs_885 = {
+       sizeof(struct WidebandCQI_ExtIEs),
+       offsetof(struct WidebandCQI_ExtIEs, _asn_ctx),
+       asn_MAP_WidebandCQI_ExtIEs_tag2el_885,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_WidebandCQI_ExtIEs = {
+       "WidebandCQI-ExtIEs",
+       "WidebandCQI-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_WidebandCQI_ExtIEs_tags_885,
+       sizeof(asn_DEF_WidebandCQI_ExtIEs_tags_885)
+               /sizeof(asn_DEF_WidebandCQI_ExtIEs_tags_885[0]), /* 1 */
+       asn_DEF_WidebandCQI_ExtIEs_tags_885,    /* Same as above */
+       sizeof(asn_DEF_WidebandCQI_ExtIEs_tags_885)
+               /sizeof(asn_DEF_WidebandCQI_ExtIEs_tags_885[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_WidebandCQI_ExtIEs_885,
+       3,      /* Elements count */
+       &asn_SPC_WidebandCQI_ExtIEs_specs_885   /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_892 = {
+       sizeof(struct WLANMeasurementConfiguration_ExtIEs__extensionValue),
+       offsetof(struct WLANMeasurementConfiguration_ExtIEs__extensionValue, _asn_ctx),
+       offsetof(struct WLANMeasurementConfiguration_ExtIEs__extensionValue, present),
+       sizeof(((struct WLANMeasurementConfiguration_ExtIEs__extensionValue *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_extensionValue_892 = {
+       "extensionValue",
+       "extensionValue",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_extensionValue_specs_892       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_WLANMeasurementConfiguration_ExtIEs_889[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct WLANMeasurementConfiguration_ExtIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_890, &asn_PER_memb_id_constr_890,  memb_id_constraint_889 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct WLANMeasurementConfiguration_ExtIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_891, &asn_PER_memb_criticality_constr_891,  memb_criticality_constraint_889 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct WLANMeasurementConfiguration_ExtIEs, extensionValue),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_extensionValue_892,
+               0,
+               { &asn_OER_memb_extensionValue_constr_892, &asn_PER_memb_extensionValue_constr_892,  memb_extensionValue_constraint_889 },
+               0, 0, /* No default value */
+               "extensionValue"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_WLANMeasurementConfiguration_ExtIEs_tags_889[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_WLANMeasurementConfiguration_ExtIEs_tag2el_889[] = {
+    { (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 } /* extensionValue */
+};
+asn_SEQUENCE_specifics_t asn_SPC_WLANMeasurementConfiguration_ExtIEs_specs_889 = {
+       sizeof(struct WLANMeasurementConfiguration_ExtIEs),
+       offsetof(struct WLANMeasurementConfiguration_ExtIEs, _asn_ctx),
+       asn_MAP_WLANMeasurementConfiguration_ExtIEs_tag2el_889,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_WLANMeasurementConfiguration_ExtIEs = {
+       "WLANMeasurementConfiguration-ExtIEs",
+       "WLANMeasurementConfiguration-ExtIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_WLANMeasurementConfiguration_ExtIEs_tags_889,
+       sizeof(asn_DEF_WLANMeasurementConfiguration_ExtIEs_tags_889)
+               /sizeof(asn_DEF_WLANMeasurementConfiguration_ExtIEs_tags_889[0]), /* 1 */
+       asn_DEF_WLANMeasurementConfiguration_ExtIEs_tags_889,   /* Same as above */
+       sizeof(asn_DEF_WLANMeasurementConfiguration_ExtIEs_tags_889)
+               /sizeof(asn_DEF_WLANMeasurementConfiguration_ExtIEs_tags_889[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_WLANMeasurementConfiguration_ExtIEs_889,
+       3,      /* Elements count */
+       &asn_SPC_WLANMeasurementConfiguration_ExtIEs_specs_889  /* Additional specs */
+};
+
diff --git a/e2ap/lib/ProtocolIE-Container.c b/e2ap/lib/ProtocolIE-Container.c
new file mode 100644 (file)
index 0000000..be2ee64
--- /dev/null
@@ -0,0 +1,5170 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProtocolIE-Container.h"
+
+#include "ProtocolIE-Field.h"
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P0_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P0_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P1_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P1_constr_3 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P2_constr_5 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P2_constr_5 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P3_constr_7 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P3_constr_7 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P4_constr_9 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P4_constr_9 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P5_constr_11 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P5_constr_11 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P6_constr_13 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P6_constr_13 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P7_constr_15 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P7_constr_15 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P8_constr_17 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P8_constr_17 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P9_constr_19 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P9_constr_19 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P10_constr_21 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P10_constr_21 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P11_constr_23 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P11_constr_23 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P12_constr_25 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P12_constr_25 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P13_constr_27 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P13_constr_27 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P14_constr_29 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P14_constr_29 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P15_constr_31 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P15_constr_31 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P16_constr_33 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P16_constr_33 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P17_constr_35 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P17_constr_35 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P18_constr_37 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P18_constr_37 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P19_constr_39 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P19_constr_39 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P20_constr_41 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P20_constr_41 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P21_constr_43 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P21_constr_43 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P22_constr_45 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P22_constr_45 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P23_constr_47 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P23_constr_47 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P24_constr_49 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P24_constr_49 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P25_constr_51 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P25_constr_51 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P26_constr_53 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P26_constr_53 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P27_constr_55 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P27_constr_55 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P28_constr_57 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P28_constr_57 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P29_constr_59 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P29_constr_59 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P30_constr_61 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P30_constr_61 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P31_constr_63 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P31_constr_63 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P32_constr_65 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P32_constr_65 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P33_constr_67 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P33_constr_67 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P34_constr_69 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P34_constr_69 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P35_constr_71 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P35_constr_71 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P36_constr_73 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P36_constr_73 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P37_constr_75 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P37_constr_75 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P38_constr_77 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P38_constr_77 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P39_constr_79 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P39_constr_79 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P40_constr_81 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P40_constr_81 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P41_constr_83 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P41_constr_83 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P42_constr_85 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P42_constr_85 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P43_constr_87 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P43_constr_87 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P44_constr_89 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P44_constr_89 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P45_constr_91 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P45_constr_91 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P46_constr_93 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P46_constr_93 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P47_constr_95 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P47_constr_95 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P48_constr_97 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P48_constr_97 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P49_constr_99 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P49_constr_99 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P50_constr_101 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P50_constr_101 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P51_constr_103 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P51_constr_103 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P52_constr_105 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P52_constr_105 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P53_constr_107 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P53_constr_107 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P54_constr_109 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P54_constr_109 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P55_constr_111 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P55_constr_111 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P56_constr_113 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P56_constr_113 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P57_constr_115 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P57_constr_115 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P58_constr_117 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P58_constr_117 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P59_constr_119 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P59_constr_119 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P60_constr_121 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P60_constr_121 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P61_constr_123 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P61_constr_123 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P62_constr_125 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P62_constr_125 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P63_constr_127 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P63_constr_127 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P64_constr_129 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P64_constr_129 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P65_constr_131 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P65_constr_131 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P66_constr_133 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P66_constr_133 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P67_constr_135 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P67_constr_135 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P68_constr_137 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P68_constr_137 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P69_constr_139 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P69_constr_139 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P70_constr_141 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P70_constr_141 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P71_constr_143 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P71_constr_143 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P72_constr_145 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P72_constr_145 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P73_constr_147 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P73_constr_147 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P74_constr_149 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P74_constr_149 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P75_constr_151 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P75_constr_151 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P76_constr_153 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P76_constr_153 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P77_constr_155 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P77_constr_155 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P78_constr_157 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P78_constr_157 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P79_constr_159 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P79_constr_159 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P80_constr_161 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P80_constr_161 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P81_constr_163 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P81_constr_163 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P82_constr_165 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P82_constr_165 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P83_constr_167 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P83_constr_167 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P84_constr_169 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P84_constr_169 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P85_constr_171 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P85_constr_171 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P86_constr_173 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P86_constr_173 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P87_constr_175 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P87_constr_175 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P88_constr_177 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P88_constr_177 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P89_constr_179 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P89_constr_179 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P90_constr_181 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P90_constr_181 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P91_constr_183 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P91_constr_183 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P92_constr_185 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P92_constr_185 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P93_constr_187 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P93_constr_187 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P94_constr_189 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P94_constr_189 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P95_constr_191 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P95_constr_191 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P96_constr_193 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P96_constr_193 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P97_constr_195 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P97_constr_195 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P98_constr_197 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P98_constr_197 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P99_constr_199 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P99_constr_199 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P100_constr_201 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P100_constr_201 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P101_constr_203 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P101_constr_203 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P102_constr_205 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P102_constr_205 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P103_constr_207 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P103_constr_207 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P104_constr_209 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P104_constr_209 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P105_constr_211 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P105_constr_211 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P106_constr_213 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P106_constr_213 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P107_constr_215 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P107_constr_215 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P108_constr_217 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P108_constr_217 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P109_constr_219 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P109_constr_219 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P110_constr_221 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P110_constr_221 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P111_constr_223 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P111_constr_223 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P112_constr_225 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P112_constr_225 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P113_constr_227 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P113_constr_227 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P114_constr_229 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P114_constr_229 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P115_constr_231 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P115_constr_231 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P116_constr_233 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P116_constr_233 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P117_constr_235 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P117_constr_235 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P118_constr_237 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P118_constr_237 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_9515P119_constr_239 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_9515P119_constr_239 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (SIZE(0..65535)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P0_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICsubscriptionRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P0_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P0_specs_1 = {
+       sizeof(struct ProtocolIE_Container_9515P0),
+       offsetof(struct ProtocolIE_Container_9515P0, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P0 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P0_tags_1,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P0_tags_1)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P0_tags_1[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P0_tags_1,     /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P0_tags_1)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P0_tags_1[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P0_constr_1, &asn_PER_type_ProtocolIE_Container_9515P0_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P0_1,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P0_specs_1    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P1_3[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICsubscriptionResponse_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P1_tags_3[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P1_specs_3 = {
+       sizeof(struct ProtocolIE_Container_9515P1),
+       offsetof(struct ProtocolIE_Container_9515P1, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P1 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P1_tags_3,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P1_tags_3)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P1_tags_3[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P1_tags_3,     /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P1_tags_3)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P1_tags_3[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P1_constr_3, &asn_PER_type_ProtocolIE_Container_9515P1_constr_3, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P1_3,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P1_specs_3    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P2_5[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICsubscriptionFailure_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P2_tags_5[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P2_specs_5 = {
+       sizeof(struct ProtocolIE_Container_9515P2),
+       offsetof(struct ProtocolIE_Container_9515P2, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P2 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P2_tags_5,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P2_tags_5)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P2_tags_5[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P2_tags_5,     /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P2_tags_5)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P2_tags_5[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P2_constr_5, &asn_PER_type_ProtocolIE_Container_9515P2_constr_5, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P2_5,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P2_specs_5    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P3_7[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICsubscriptionDeleteRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P3_tags_7[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P3_specs_7 = {
+       sizeof(struct ProtocolIE_Container_9515P3),
+       offsetof(struct ProtocolIE_Container_9515P3, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P3 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P3_tags_7,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P3_tags_7)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P3_tags_7[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P3_tags_7,     /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P3_tags_7)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P3_tags_7[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P3_constr_7, &asn_PER_type_ProtocolIE_Container_9515P3_constr_7, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P3_7,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P3_specs_7    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P4_9[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICsubscriptionDeleteResponse_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P4_tags_9[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P4_specs_9 = {
+       sizeof(struct ProtocolIE_Container_9515P4),
+       offsetof(struct ProtocolIE_Container_9515P4, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P4 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P4_tags_9,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P4_tags_9)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P4_tags_9[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P4_tags_9,     /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P4_tags_9)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P4_tags_9[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P4_constr_9, &asn_PER_type_ProtocolIE_Container_9515P4_constr_9, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P4_9,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P4_specs_9    /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P5_11[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICsubscriptionDeleteFailure_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P5_tags_11[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P5_specs_11 = {
+       sizeof(struct ProtocolIE_Container_9515P5),
+       offsetof(struct ProtocolIE_Container_9515P5, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P5 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P5_tags_11,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P5_tags_11)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P5_tags_11[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P5_tags_11,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P5_tags_11)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P5_tags_11[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P5_constr_11, &asn_PER_type_ProtocolIE_Container_9515P5_constr_11, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P5_11,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P5_specs_11   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P6_13[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICindication_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P6_tags_13[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P6_specs_13 = {
+       sizeof(struct ProtocolIE_Container_9515P6),
+       offsetof(struct ProtocolIE_Container_9515P6, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P6 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P6_tags_13,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P6_tags_13)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P6_tags_13[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P6_tags_13,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P6_tags_13)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P6_tags_13[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P6_constr_13, &asn_PER_type_ProtocolIE_Container_9515P6_constr_13, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P6_13,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P6_specs_13   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P7_15[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICcontrolRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P7_tags_15[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P7_specs_15 = {
+       sizeof(struct ProtocolIE_Container_9515P7),
+       offsetof(struct ProtocolIE_Container_9515P7, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P7 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P7_tags_15,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P7_tags_15)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P7_tags_15[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P7_tags_15,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P7_tags_15)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P7_tags_15[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P7_constr_15, &asn_PER_type_ProtocolIE_Container_9515P7_constr_15, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P7_15,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P7_specs_15   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P8_17[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICcontrolAcknowledge_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P8_tags_17[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P8_specs_17 = {
+       sizeof(struct ProtocolIE_Container_9515P8),
+       offsetof(struct ProtocolIE_Container_9515P8, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P8 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P8_tags_17,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P8_tags_17)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P8_tags_17[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P8_tags_17,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P8_tags_17)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P8_tags_17[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P8_constr_17, &asn_PER_type_ProtocolIE_Container_9515P8_constr_17, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P8_17,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P8_specs_17   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P9_19[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICcontrolFailure_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P9_tags_19[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P9_specs_19 = {
+       sizeof(struct ProtocolIE_Container_9515P9),
+       offsetof(struct ProtocolIE_Container_9515P9, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P9 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P9_tags_19,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P9_tags_19)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P9_tags_19[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P9_tags_19,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P9_tags_19)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P9_tags_19[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P9_constr_19, &asn_PER_type_ProtocolIE_Container_9515P9_constr_19, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P9_19,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P9_specs_19   /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P10_21[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICserviceUpdate_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P10_tags_21[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P10_specs_21 = {
+       sizeof(struct ProtocolIE_Container_9515P10),
+       offsetof(struct ProtocolIE_Container_9515P10, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P10 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P10_tags_21,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P10_tags_21)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P10_tags_21[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P10_tags_21,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P10_tags_21)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P10_tags_21[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P10_constr_21, &asn_PER_type_ProtocolIE_Container_9515P10_constr_21, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P10_21,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P10_specs_21  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P11_23[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICserviceUpdateAcknowledge_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P11_tags_23[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P11_specs_23 = {
+       sizeof(struct ProtocolIE_Container_9515P11),
+       offsetof(struct ProtocolIE_Container_9515P11, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P11 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P11_tags_23,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P11_tags_23)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P11_tags_23[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P11_tags_23,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P11_tags_23)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P11_tags_23[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P11_constr_23, &asn_PER_type_ProtocolIE_Container_9515P11_constr_23, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P11_23,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P11_specs_23  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P12_25[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICserviceUpdateFailure_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P12_tags_25[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P12_specs_25 = {
+       sizeof(struct ProtocolIE_Container_9515P12),
+       offsetof(struct ProtocolIE_Container_9515P12, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P12 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P12_tags_25,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P12_tags_25)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P12_tags_25[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P12_tags_25,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P12_tags_25)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P12_tags_25[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P12_constr_25, &asn_PER_type_ProtocolIE_Container_9515P12_constr_25, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P12_25,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P12_specs_25  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P13_27[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICserviceQuery_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P13_tags_27[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P13_specs_27 = {
+       sizeof(struct ProtocolIE_Container_9515P13),
+       offsetof(struct ProtocolIE_Container_9515P13, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P13 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P13_tags_27,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P13_tags_27)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P13_tags_27[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P13_tags_27,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P13_tags_27)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P13_tags_27[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P13_constr_27, &asn_PER_type_ProtocolIE_Container_9515P13_constr_27, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P13_27,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P13_specs_27  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P14_29[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_HandoverRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P14_tags_29[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P14_specs_29 = {
+       sizeof(struct ProtocolIE_Container_9515P14),
+       offsetof(struct ProtocolIE_Container_9515P14, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P14 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P14_tags_29,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P14_tags_29)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P14_tags_29[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P14_tags_29,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P14_tags_29)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P14_tags_29[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P14_constr_29, &asn_PER_type_ProtocolIE_Container_9515P14_constr_29, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P14_29,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P14_specs_29  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P15_31[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_HandoverRequestAcknowledge_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P15_tags_31[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P15_specs_31 = {
+       sizeof(struct ProtocolIE_Container_9515P15),
+       offsetof(struct ProtocolIE_Container_9515P15, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P15 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P15_tags_31,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P15_tags_31)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P15_tags_31[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P15_tags_31,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P15_tags_31)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P15_tags_31[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P15_constr_31, &asn_PER_type_ProtocolIE_Container_9515P15_constr_31, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P15_31,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P15_specs_31  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P16_33[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_HandoverPreparationFailure_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P16_tags_33[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P16_specs_33 = {
+       sizeof(struct ProtocolIE_Container_9515P16),
+       offsetof(struct ProtocolIE_Container_9515P16, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P16 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P16_tags_33,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P16_tags_33)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P16_tags_33[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P16_tags_33,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P16_tags_33)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P16_tags_33[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P16_constr_33, &asn_PER_type_ProtocolIE_Container_9515P16_constr_33, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P16_33,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P16_specs_33  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P17_35[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_HandoverReport_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P17_tags_35[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P17_specs_35 = {
+       sizeof(struct ProtocolIE_Container_9515P17),
+       offsetof(struct ProtocolIE_Container_9515P17, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P17 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P17_tags_35,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P17_tags_35)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P17_tags_35[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P17_tags_35,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P17_tags_35)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P17_tags_35[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P17_constr_35, &asn_PER_type_ProtocolIE_Container_9515P17_constr_35, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P17_35,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P17_specs_35  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P18_37[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SNStatusTransfer_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P18_tags_37[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P18_specs_37 = {
+       sizeof(struct ProtocolIE_Container_9515P18),
+       offsetof(struct ProtocolIE_Container_9515P18, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P18 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P18_tags_37,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P18_tags_37)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P18_tags_37[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P18_tags_37,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P18_tags_37)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P18_tags_37[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P18_constr_37, &asn_PER_type_ProtocolIE_Container_9515P18_constr_37, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P18_37,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P18_specs_37  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P19_39[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UEContextRelease_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P19_tags_39[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P19_specs_39 = {
+       sizeof(struct ProtocolIE_Container_9515P19),
+       offsetof(struct ProtocolIE_Container_9515P19, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P19 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P19_tags_39,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P19_tags_39)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P19_tags_39[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P19_tags_39,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P19_tags_39)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P19_tags_39[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P19_constr_39, &asn_PER_type_ProtocolIE_Container_9515P19_constr_39, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P19_39,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P19_specs_39  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P20_41[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_HandoverCancel_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P20_tags_41[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P20_specs_41 = {
+       sizeof(struct ProtocolIE_Container_9515P20),
+       offsetof(struct ProtocolIE_Container_9515P20, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P20 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P20_tags_41,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P20_tags_41)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P20_tags_41[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P20_tags_41,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P20_tags_41)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P20_tags_41[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P20_constr_41, &asn_PER_type_ProtocolIE_Container_9515P20_constr_41, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P20_41,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P20_specs_41  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P21_43[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ErrorIndication_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P21_tags_43[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P21_specs_43 = {
+       sizeof(struct ProtocolIE_Container_9515P21),
+       offsetof(struct ProtocolIE_Container_9515P21, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P21 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P21_tags_43,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P21_tags_43)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P21_tags_43[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P21_tags_43,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P21_tags_43)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P21_tags_43[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P21_constr_43, &asn_PER_type_ProtocolIE_Container_9515P21_constr_43, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P21_43,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P21_specs_43  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P22_45[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ResetRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P22_tags_45[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P22_specs_45 = {
+       sizeof(struct ProtocolIE_Container_9515P22),
+       offsetof(struct ProtocolIE_Container_9515P22, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P22 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P22_tags_45,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P22_tags_45)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P22_tags_45[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P22_tags_45,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P22_tags_45)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P22_tags_45[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P22_constr_45, &asn_PER_type_ProtocolIE_Container_9515P22_constr_45, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P22_45,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P22_specs_45  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P23_47[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ResetResponse_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P23_tags_47[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P23_specs_47 = {
+       sizeof(struct ProtocolIE_Container_9515P23),
+       offsetof(struct ProtocolIE_Container_9515P23, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P23 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P23_tags_47,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P23_tags_47)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P23_tags_47[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P23_tags_47,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P23_tags_47)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P23_tags_47[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P23_constr_47, &asn_PER_type_ProtocolIE_Container_9515P23_constr_47, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P23_47,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P23_specs_47  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P24_49[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_X2SetupRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P24_tags_49[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P24_specs_49 = {
+       sizeof(struct ProtocolIE_Container_9515P24),
+       offsetof(struct ProtocolIE_Container_9515P24, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P24 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P24_tags_49,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P24_tags_49)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P24_tags_49[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P24_tags_49,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P24_tags_49)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P24_tags_49[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P24_constr_49, &asn_PER_type_ProtocolIE_Container_9515P24_constr_49, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P24_49,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P24_specs_49  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P25_51[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_X2SetupResponse_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P25_tags_51[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P25_specs_51 = {
+       sizeof(struct ProtocolIE_Container_9515P25),
+       offsetof(struct ProtocolIE_Container_9515P25, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P25 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P25_tags_51,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P25_tags_51)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P25_tags_51[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P25_tags_51,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P25_tags_51)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P25_tags_51[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P25_constr_51, &asn_PER_type_ProtocolIE_Container_9515P25_constr_51, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P25_51,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P25_specs_51  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P26_53[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_X2SetupFailure_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P26_tags_53[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P26_specs_53 = {
+       sizeof(struct ProtocolIE_Container_9515P26),
+       offsetof(struct ProtocolIE_Container_9515P26, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P26 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P26_tags_53,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P26_tags_53)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P26_tags_53[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P26_tags_53,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P26_tags_53)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P26_tags_53[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P26_constr_53, &asn_PER_type_ProtocolIE_Container_9515P26_constr_53, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P26_53,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P26_specs_53  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P27_55[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_LoadInformation_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P27_tags_55[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P27_specs_55 = {
+       sizeof(struct ProtocolIE_Container_9515P27),
+       offsetof(struct ProtocolIE_Container_9515P27, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P27 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P27_tags_55,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P27_tags_55)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P27_tags_55[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P27_tags_55,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P27_tags_55)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P27_tags_55[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P27_constr_55, &asn_PER_type_ProtocolIE_Container_9515P27_constr_55, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P27_55,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P27_specs_55  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P28_57[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENBConfigurationUpdate_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P28_tags_57[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P28_specs_57 = {
+       sizeof(struct ProtocolIE_Container_9515P28),
+       offsetof(struct ProtocolIE_Container_9515P28, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P28 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P28_tags_57,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P28_tags_57)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P28_tags_57[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P28_tags_57,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P28_tags_57)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P28_tags_57[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P28_constr_57, &asn_PER_type_ProtocolIE_Container_9515P28_constr_57, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P28_57,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P28_specs_57  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P29_59[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENBConfigurationUpdateAcknowledge_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P29_tags_59[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P29_specs_59 = {
+       sizeof(struct ProtocolIE_Container_9515P29),
+       offsetof(struct ProtocolIE_Container_9515P29, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P29 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P29_tags_59,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P29_tags_59)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P29_tags_59[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P29_tags_59,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P29_tags_59)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P29_tags_59[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P29_constr_59, &asn_PER_type_ProtocolIE_Container_9515P29_constr_59, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P29_59,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P29_specs_59  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P30_61[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENBConfigurationUpdateFailure_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P30_tags_61[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P30_specs_61 = {
+       sizeof(struct ProtocolIE_Container_9515P30),
+       offsetof(struct ProtocolIE_Container_9515P30, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P30 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P30_tags_61,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P30_tags_61)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P30_tags_61[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P30_tags_61,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P30_tags_61)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P30_tags_61[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P30_constr_61, &asn_PER_type_ProtocolIE_Container_9515P30_constr_61, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P30_61,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P30_specs_61  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P31_63[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ResourceStatusRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P31_tags_63[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P31_specs_63 = {
+       sizeof(struct ProtocolIE_Container_9515P31),
+       offsetof(struct ProtocolIE_Container_9515P31, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P31 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P31_tags_63,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P31_tags_63)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P31_tags_63[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P31_tags_63,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P31_tags_63)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P31_tags_63[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P31_constr_63, &asn_PER_type_ProtocolIE_Container_9515P31_constr_63, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P31_63,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P31_specs_63  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P32_65[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ResourceStatusResponse_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P32_tags_65[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P32_specs_65 = {
+       sizeof(struct ProtocolIE_Container_9515P32),
+       offsetof(struct ProtocolIE_Container_9515P32, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P32 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P32_tags_65,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P32_tags_65)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P32_tags_65[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P32_tags_65,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P32_tags_65)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P32_tags_65[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P32_constr_65, &asn_PER_type_ProtocolIE_Container_9515P32_constr_65, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P32_65,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P32_specs_65  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P33_67[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ResourceStatusFailure_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P33_tags_67[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P33_specs_67 = {
+       sizeof(struct ProtocolIE_Container_9515P33),
+       offsetof(struct ProtocolIE_Container_9515P33, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P33 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P33_tags_67,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P33_tags_67)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P33_tags_67[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P33_tags_67,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P33_tags_67)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P33_tags_67[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P33_constr_67, &asn_PER_type_ProtocolIE_Container_9515P33_constr_67, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P33_67,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P33_specs_67  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P34_69[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ResourceStatusUpdate_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P34_tags_69[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P34_specs_69 = {
+       sizeof(struct ProtocolIE_Container_9515P34),
+       offsetof(struct ProtocolIE_Container_9515P34, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P34 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P34_tags_69,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P34_tags_69)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P34_tags_69[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P34_tags_69,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P34_tags_69)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P34_tags_69[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P34_constr_69, &asn_PER_type_ProtocolIE_Container_9515P34_constr_69, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P34_69,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P34_specs_69  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P35_71[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MobilityChangeRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P35_tags_71[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P35_specs_71 = {
+       sizeof(struct ProtocolIE_Container_9515P35),
+       offsetof(struct ProtocolIE_Container_9515P35, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P35 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P35_tags_71,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P35_tags_71)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P35_tags_71[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P35_tags_71,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P35_tags_71)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P35_tags_71[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P35_constr_71, &asn_PER_type_ProtocolIE_Container_9515P35_constr_71, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P35_71,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P35_specs_71  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P36_73[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MobilityChangeAcknowledge_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P36_tags_73[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P36_specs_73 = {
+       sizeof(struct ProtocolIE_Container_9515P36),
+       offsetof(struct ProtocolIE_Container_9515P36, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P36 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P36_tags_73,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P36_tags_73)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P36_tags_73[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P36_tags_73,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P36_tags_73)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P36_tags_73[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P36_constr_73, &asn_PER_type_ProtocolIE_Container_9515P36_constr_73, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P36_73,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P36_specs_73  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P37_75[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MobilityChangeFailure_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P37_tags_75[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P37_specs_75 = {
+       sizeof(struct ProtocolIE_Container_9515P37),
+       offsetof(struct ProtocolIE_Container_9515P37, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P37 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P37_tags_75,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P37_tags_75)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P37_tags_75[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P37_tags_75,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P37_tags_75)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P37_tags_75[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P37_constr_75, &asn_PER_type_ProtocolIE_Container_9515P37_constr_75, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P37_75,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P37_specs_75  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P38_77[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RLFIndication_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P38_tags_77[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P38_specs_77 = {
+       sizeof(struct ProtocolIE_Container_9515P38),
+       offsetof(struct ProtocolIE_Container_9515P38, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P38 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P38_tags_77,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P38_tags_77)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P38_tags_77[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P38_tags_77,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P38_tags_77)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P38_tags_77[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P38_constr_77, &asn_PER_type_ProtocolIE_Container_9515P38_constr_77, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P38_77,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P38_specs_77  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P39_79[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellActivationRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P39_tags_79[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P39_specs_79 = {
+       sizeof(struct ProtocolIE_Container_9515P39),
+       offsetof(struct ProtocolIE_Container_9515P39, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P39 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P39_tags_79,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P39_tags_79)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P39_tags_79[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P39_tags_79,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P39_tags_79)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P39_tags_79[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P39_constr_79, &asn_PER_type_ProtocolIE_Container_9515P39_constr_79, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P39_79,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P39_specs_79  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P40_81[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellActivationResponse_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P40_tags_81[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P40_specs_81 = {
+       sizeof(struct ProtocolIE_Container_9515P40),
+       offsetof(struct ProtocolIE_Container_9515P40, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P40 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P40_tags_81,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P40_tags_81)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P40_tags_81[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P40_tags_81,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P40_tags_81)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P40_tags_81[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P40_constr_81, &asn_PER_type_ProtocolIE_Container_9515P40_constr_81, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P40_81,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P40_specs_81  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P41_83[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellActivationFailure_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P41_tags_83[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P41_specs_83 = {
+       sizeof(struct ProtocolIE_Container_9515P41),
+       offsetof(struct ProtocolIE_Container_9515P41, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P41 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P41_tags_83,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P41_tags_83)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P41_tags_83[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P41_tags_83,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P41_tags_83)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P41_tags_83[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P41_constr_83, &asn_PER_type_ProtocolIE_Container_9515P41_constr_83, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P41_83,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P41_specs_83  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P42_85[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_X2Release_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P42_tags_85[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P42_specs_85 = {
+       sizeof(struct ProtocolIE_Container_9515P42),
+       offsetof(struct ProtocolIE_Container_9515P42, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P42 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P42_tags_85,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P42_tags_85)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P42_tags_85[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P42_tags_85,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P42_tags_85)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P42_tags_85[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P42_constr_85, &asn_PER_type_ProtocolIE_Container_9515P42_constr_85, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P42_85,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P42_specs_85  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P43_87[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_X2APMessageTransfer_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P43_tags_87[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P43_specs_87 = {
+       sizeof(struct ProtocolIE_Container_9515P43),
+       offsetof(struct ProtocolIE_Container_9515P43, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P43 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P43_tags_87,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P43_tags_87)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P43_tags_87[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P43_tags_87,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P43_tags_87)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P43_tags_87[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P43_constr_87, &asn_PER_type_ProtocolIE_Container_9515P43_constr_87, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P43_87,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P43_specs_87  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P44_89[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBAdditionRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P44_tags_89[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P44_specs_89 = {
+       sizeof(struct ProtocolIE_Container_9515P44),
+       offsetof(struct ProtocolIE_Container_9515P44, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P44 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P44_tags_89,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P44_tags_89)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P44_tags_89[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P44_tags_89,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P44_tags_89)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P44_tags_89[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P44_constr_89, &asn_PER_type_ProtocolIE_Container_9515P44_constr_89, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P44_89,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P44_specs_89  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P45_91[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBAdditionRequestAcknowledge_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P45_tags_91[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P45_specs_91 = {
+       sizeof(struct ProtocolIE_Container_9515P45),
+       offsetof(struct ProtocolIE_Container_9515P45, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P45 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P45_tags_91,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P45_tags_91)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P45_tags_91[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P45_tags_91,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P45_tags_91)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P45_tags_91[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P45_constr_91, &asn_PER_type_ProtocolIE_Container_9515P45_constr_91, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P45_91,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P45_specs_91  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P46_93[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBAdditionRequestReject_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P46_tags_93[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P46_specs_93 = {
+       sizeof(struct ProtocolIE_Container_9515P46),
+       offsetof(struct ProtocolIE_Container_9515P46, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P46 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P46_tags_93,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P46_tags_93)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P46_tags_93[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P46_tags_93,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P46_tags_93)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P46_tags_93[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P46_constr_93, &asn_PER_type_ProtocolIE_Container_9515P46_constr_93, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P46_93,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P46_specs_93  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P47_95[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBReconfigurationComplete_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P47_tags_95[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P47_specs_95 = {
+       sizeof(struct ProtocolIE_Container_9515P47),
+       offsetof(struct ProtocolIE_Container_9515P47, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P47 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P47_tags_95,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P47_tags_95)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P47_tags_95[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P47_tags_95,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P47_tags_95)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P47_tags_95[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P47_constr_95, &asn_PER_type_ProtocolIE_Container_9515P47_constr_95, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P47_95,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P47_specs_95  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P48_97[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBModificationRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P48_tags_97[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P48_specs_97 = {
+       sizeof(struct ProtocolIE_Container_9515P48),
+       offsetof(struct ProtocolIE_Container_9515P48, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P48 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P48_tags_97,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P48_tags_97)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P48_tags_97[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P48_tags_97,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P48_tags_97)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P48_tags_97[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P48_constr_97, &asn_PER_type_ProtocolIE_Container_9515P48_constr_97, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P48_97,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P48_specs_97  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P49_99[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBModificationRequestAcknowledge_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P49_tags_99[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P49_specs_99 = {
+       sizeof(struct ProtocolIE_Container_9515P49),
+       offsetof(struct ProtocolIE_Container_9515P49, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P49 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P49_tags_99,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P49_tags_99)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P49_tags_99[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P49_tags_99,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P49_tags_99)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P49_tags_99[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P49_constr_99, &asn_PER_type_ProtocolIE_Container_9515P49_constr_99, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P49_99,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P49_specs_99  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P50_101[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBModificationRequestReject_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P50_tags_101[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P50_specs_101 = {
+       sizeof(struct ProtocolIE_Container_9515P50),
+       offsetof(struct ProtocolIE_Container_9515P50, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P50 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P50_tags_101,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P50_tags_101)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P50_tags_101[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P50_tags_101,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P50_tags_101)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P50_tags_101[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P50_constr_101, &asn_PER_type_ProtocolIE_Container_9515P50_constr_101, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P50_101,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P50_specs_101 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P51_103[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBModificationRequired_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P51_tags_103[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P51_specs_103 = {
+       sizeof(struct ProtocolIE_Container_9515P51),
+       offsetof(struct ProtocolIE_Container_9515P51, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P51 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P51_tags_103,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P51_tags_103)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P51_tags_103[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P51_tags_103,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P51_tags_103)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P51_tags_103[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P51_constr_103, &asn_PER_type_ProtocolIE_Container_9515P51_constr_103, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P51_103,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P51_specs_103 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P52_105[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBModificationConfirm_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P52_tags_105[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P52_specs_105 = {
+       sizeof(struct ProtocolIE_Container_9515P52),
+       offsetof(struct ProtocolIE_Container_9515P52, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P52 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P52_tags_105,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P52_tags_105)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P52_tags_105[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P52_tags_105,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P52_tags_105)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P52_tags_105[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P52_constr_105, &asn_PER_type_ProtocolIE_Container_9515P52_constr_105, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P52_105,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P52_specs_105 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P53_107[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBModificationRefuse_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P53_tags_107[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P53_specs_107 = {
+       sizeof(struct ProtocolIE_Container_9515P53),
+       offsetof(struct ProtocolIE_Container_9515P53, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P53 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P53_tags_107,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P53_tags_107)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P53_tags_107[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P53_tags_107,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P53_tags_107)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P53_tags_107[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P53_constr_107, &asn_PER_type_ProtocolIE_Container_9515P53_constr_107, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P53_107,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P53_specs_107 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P54_109[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBReleaseRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P54_tags_109[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P54_specs_109 = {
+       sizeof(struct ProtocolIE_Container_9515P54),
+       offsetof(struct ProtocolIE_Container_9515P54, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P54 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P54_tags_109,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P54_tags_109)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P54_tags_109[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P54_tags_109,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P54_tags_109)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P54_tags_109[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P54_constr_109, &asn_PER_type_ProtocolIE_Container_9515P54_constr_109, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P54_109,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P54_specs_109 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P55_111[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBReleaseRequired_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P55_tags_111[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P55_specs_111 = {
+       sizeof(struct ProtocolIE_Container_9515P55),
+       offsetof(struct ProtocolIE_Container_9515P55, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P55 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P55_tags_111,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P55_tags_111)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P55_tags_111[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P55_tags_111,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P55_tags_111)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P55_tags_111[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P55_constr_111, &asn_PER_type_ProtocolIE_Container_9515P55_constr_111, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P55_111,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P55_specs_111 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P56_113[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBReleaseConfirm_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P56_tags_113[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P56_specs_113 = {
+       sizeof(struct ProtocolIE_Container_9515P56),
+       offsetof(struct ProtocolIE_Container_9515P56, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P56 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P56_tags_113,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P56_tags_113)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P56_tags_113[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P56_tags_113,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P56_tags_113)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P56_tags_113[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P56_constr_113, &asn_PER_type_ProtocolIE_Container_9515P56_constr_113, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P56_113,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P56_specs_113 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P57_115[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBCounterCheckRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P57_tags_115[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P57_specs_115 = {
+       sizeof(struct ProtocolIE_Container_9515P57),
+       offsetof(struct ProtocolIE_Container_9515P57, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P57 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P57_tags_115,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P57_tags_115)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P57_tags_115[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P57_tags_115,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P57_tags_115)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P57_tags_115[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P57_constr_115, &asn_PER_type_ProtocolIE_Container_9515P57_constr_115, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P57_115,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P57_specs_115 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P58_117[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_X2RemovalRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P58_tags_117[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P58_specs_117 = {
+       sizeof(struct ProtocolIE_Container_9515P58),
+       offsetof(struct ProtocolIE_Container_9515P58, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P58 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P58_tags_117,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P58_tags_117)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P58_tags_117[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P58_tags_117,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P58_tags_117)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P58_tags_117[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P58_constr_117, &asn_PER_type_ProtocolIE_Container_9515P58_constr_117, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P58_117,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P58_specs_117 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P59_119[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_X2RemovalResponse_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P59_tags_119[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P59_specs_119 = {
+       sizeof(struct ProtocolIE_Container_9515P59),
+       offsetof(struct ProtocolIE_Container_9515P59, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P59 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P59_tags_119,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P59_tags_119)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P59_tags_119[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P59_tags_119,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P59_tags_119)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P59_tags_119[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P59_constr_119, &asn_PER_type_ProtocolIE_Container_9515P59_constr_119, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P59_119,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P59_specs_119 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P60_121[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_X2RemovalFailure_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P60_tags_121[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P60_specs_121 = {
+       sizeof(struct ProtocolIE_Container_9515P60),
+       offsetof(struct ProtocolIE_Container_9515P60, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P60 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P60_tags_121,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P60_tags_121)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P60_tags_121[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P60_tags_121,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P60_tags_121)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P60_tags_121[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P60_constr_121, &asn_PER_type_ProtocolIE_Container_9515P60_constr_121, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P60_121,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P60_specs_121 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P61_123[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RetrieveUEContextRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P61_tags_123[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P61_specs_123 = {
+       sizeof(struct ProtocolIE_Container_9515P61),
+       offsetof(struct ProtocolIE_Container_9515P61, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P61 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P61_tags_123,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P61_tags_123)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P61_tags_123[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P61_tags_123,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P61_tags_123)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P61_tags_123[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P61_constr_123, &asn_PER_type_ProtocolIE_Container_9515P61_constr_123, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P61_123,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P61_specs_123 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P62_125[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RetrieveUEContextResponse_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P62_tags_125[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P62_specs_125 = {
+       sizeof(struct ProtocolIE_Container_9515P62),
+       offsetof(struct ProtocolIE_Container_9515P62, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P62 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P62_tags_125,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P62_tags_125)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P62_tags_125[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P62_tags_125,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P62_tags_125)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P62_tags_125[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P62_constr_125, &asn_PER_type_ProtocolIE_Container_9515P62_constr_125, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P62_125,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P62_specs_125 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P63_127[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RetrieveUEContextFailure_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P63_tags_127[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P63_specs_127 = {
+       sizeof(struct ProtocolIE_Container_9515P63),
+       offsetof(struct ProtocolIE_Container_9515P63, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P63 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P63_tags_127,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P63_tags_127)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P63_tags_127[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P63_tags_127,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P63_tags_127)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P63_tags_127[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P63_constr_127, &asn_PER_type_ProtocolIE_Container_9515P63_constr_127, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P63_127,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P63_specs_127 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P64_129[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBAdditionRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P64_tags_129[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P64_specs_129 = {
+       sizeof(struct ProtocolIE_Container_9515P64),
+       offsetof(struct ProtocolIE_Container_9515P64, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P64 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P64_tags_129,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P64_tags_129)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P64_tags_129[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P64_tags_129,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P64_tags_129)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P64_tags_129[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P64_constr_129, &asn_PER_type_ProtocolIE_Container_9515P64_constr_129, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P64_129,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P64_specs_129 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P65_131[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBAdditionRequestAcknowledge_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P65_tags_131[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P65_specs_131 = {
+       sizeof(struct ProtocolIE_Container_9515P65),
+       offsetof(struct ProtocolIE_Container_9515P65, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P65 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P65_tags_131,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P65_tags_131)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P65_tags_131[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P65_tags_131,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P65_tags_131)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P65_tags_131[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P65_constr_131, &asn_PER_type_ProtocolIE_Container_9515P65_constr_131, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P65_131,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P65_specs_131 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P66_133[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBAdditionRequestReject_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P66_tags_133[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P66_specs_133 = {
+       sizeof(struct ProtocolIE_Container_9515P66),
+       offsetof(struct ProtocolIE_Container_9515P66, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P66 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P66_tags_133,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P66_tags_133)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P66_tags_133[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P66_tags_133,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P66_tags_133)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P66_tags_133[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P66_constr_133, &asn_PER_type_ProtocolIE_Container_9515P66_constr_133, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P66_133,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P66_specs_133 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P67_135[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBReconfigurationComplete_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P67_tags_135[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P67_specs_135 = {
+       sizeof(struct ProtocolIE_Container_9515P67),
+       offsetof(struct ProtocolIE_Container_9515P67, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P67 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P67_tags_135,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P67_tags_135)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P67_tags_135[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P67_tags_135,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P67_tags_135)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P67_tags_135[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P67_constr_135, &asn_PER_type_ProtocolIE_Container_9515P67_constr_135, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P67_135,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P67_specs_135 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P68_137[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBModificationRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P68_tags_137[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P68_specs_137 = {
+       sizeof(struct ProtocolIE_Container_9515P68),
+       offsetof(struct ProtocolIE_Container_9515P68, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P68 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P68_tags_137,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P68_tags_137)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P68_tags_137[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P68_tags_137,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P68_tags_137)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P68_tags_137[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P68_constr_137, &asn_PER_type_ProtocolIE_Container_9515P68_constr_137, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P68_137,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P68_specs_137 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P69_139[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBModificationRequestAcknowledge_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P69_tags_139[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P69_specs_139 = {
+       sizeof(struct ProtocolIE_Container_9515P69),
+       offsetof(struct ProtocolIE_Container_9515P69, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P69 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P69_tags_139,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P69_tags_139)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P69_tags_139[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P69_tags_139,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P69_tags_139)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P69_tags_139[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P69_constr_139, &asn_PER_type_ProtocolIE_Container_9515P69_constr_139, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P69_139,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P69_specs_139 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P70_141[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBModificationRequestReject_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P70_tags_141[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P70_specs_141 = {
+       sizeof(struct ProtocolIE_Container_9515P70),
+       offsetof(struct ProtocolIE_Container_9515P70, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P70 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P70_tags_141,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P70_tags_141)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P70_tags_141[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P70_tags_141,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P70_tags_141)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P70_tags_141[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P70_constr_141, &asn_PER_type_ProtocolIE_Container_9515P70_constr_141, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P70_141,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P70_specs_141 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P71_143[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBModificationRequired_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P71_tags_143[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P71_specs_143 = {
+       sizeof(struct ProtocolIE_Container_9515P71),
+       offsetof(struct ProtocolIE_Container_9515P71, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P71 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P71_tags_143,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P71_tags_143)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P71_tags_143[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P71_tags_143,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P71_tags_143)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P71_tags_143[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P71_constr_143, &asn_PER_type_ProtocolIE_Container_9515P71_constr_143, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P71_143,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P71_specs_143 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P72_145[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBModificationConfirm_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P72_tags_145[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P72_specs_145 = {
+       sizeof(struct ProtocolIE_Container_9515P72),
+       offsetof(struct ProtocolIE_Container_9515P72, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P72 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P72_tags_145,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P72_tags_145)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P72_tags_145[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P72_tags_145,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P72_tags_145)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P72_tags_145[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P72_constr_145, &asn_PER_type_ProtocolIE_Container_9515P72_constr_145, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P72_145,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P72_specs_145 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P73_147[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBModificationRefuse_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P73_tags_147[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P73_specs_147 = {
+       sizeof(struct ProtocolIE_Container_9515P73),
+       offsetof(struct ProtocolIE_Container_9515P73, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P73 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P73_tags_147,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P73_tags_147)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P73_tags_147[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P73_tags_147,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P73_tags_147)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P73_tags_147[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P73_constr_147, &asn_PER_type_ProtocolIE_Container_9515P73_constr_147, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P73_147,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P73_specs_147 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P74_149[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBReleaseRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P74_tags_149[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P74_specs_149 = {
+       sizeof(struct ProtocolIE_Container_9515P74),
+       offsetof(struct ProtocolIE_Container_9515P74, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P74 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P74_tags_149,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P74_tags_149)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P74_tags_149[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P74_tags_149,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P74_tags_149)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P74_tags_149[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P74_constr_149, &asn_PER_type_ProtocolIE_Container_9515P74_constr_149, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P74_149,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P74_specs_149 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P75_151[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBReleaseRequestAcknowledge_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P75_tags_151[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P75_specs_151 = {
+       sizeof(struct ProtocolIE_Container_9515P75),
+       offsetof(struct ProtocolIE_Container_9515P75, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P75 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P75_tags_151,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P75_tags_151)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P75_tags_151[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P75_tags_151,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P75_tags_151)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P75_tags_151[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P75_constr_151, &asn_PER_type_ProtocolIE_Container_9515P75_constr_151, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P75_151,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P75_specs_151 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P76_153[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBReleaseRequestReject_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P76_tags_153[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P76_specs_153 = {
+       sizeof(struct ProtocolIE_Container_9515P76),
+       offsetof(struct ProtocolIE_Container_9515P76, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P76 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P76_tags_153,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P76_tags_153)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P76_tags_153[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P76_tags_153,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P76_tags_153)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P76_tags_153[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P76_constr_153, &asn_PER_type_ProtocolIE_Container_9515P76_constr_153, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P76_153,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P76_specs_153 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P77_155[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBReleaseRequired_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P77_tags_155[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P77_specs_155 = {
+       sizeof(struct ProtocolIE_Container_9515P77),
+       offsetof(struct ProtocolIE_Container_9515P77, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P77 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P77_tags_155,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P77_tags_155)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P77_tags_155[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P77_tags_155,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P77_tags_155)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P77_tags_155[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P77_constr_155, &asn_PER_type_ProtocolIE_Container_9515P77_constr_155, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P77_155,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P77_specs_155 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P78_157[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBReleaseConfirm_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P78_tags_157[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P78_specs_157 = {
+       sizeof(struct ProtocolIE_Container_9515P78),
+       offsetof(struct ProtocolIE_Container_9515P78, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P78 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P78_tags_157,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P78_tags_157)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P78_tags_157[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P78_tags_157,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P78_tags_157)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P78_tags_157[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P78_constr_157, &asn_PER_type_ProtocolIE_Container_9515P78_constr_157, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P78_157,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P78_specs_157 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P79_159[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBCounterCheckRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P79_tags_159[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P79_specs_159 = {
+       sizeof(struct ProtocolIE_Container_9515P79),
+       offsetof(struct ProtocolIE_Container_9515P79, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P79 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P79_tags_159,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P79_tags_159)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P79_tags_159[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P79_tags_159,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P79_tags_159)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P79_tags_159[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P79_constr_159, &asn_PER_type_ProtocolIE_Container_9515P79_constr_159, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P79_159,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P79_specs_159 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P80_161[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBChangeRequired_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P80_tags_161[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P80_specs_161 = {
+       sizeof(struct ProtocolIE_Container_9515P80),
+       offsetof(struct ProtocolIE_Container_9515P80, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P80 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P80_tags_161,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P80_tags_161)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P80_tags_161[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P80_tags_161,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P80_tags_161)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P80_tags_161[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P80_constr_161, &asn_PER_type_ProtocolIE_Container_9515P80_constr_161, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P80_161,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P80_specs_161 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P81_163[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBChangeConfirm_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P81_tags_163[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P81_specs_163 = {
+       sizeof(struct ProtocolIE_Container_9515P81),
+       offsetof(struct ProtocolIE_Container_9515P81, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P81 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P81_tags_163,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P81_tags_163)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P81_tags_163[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P81_tags_163,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P81_tags_163)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P81_tags_163[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P81_constr_163, &asn_PER_type_ProtocolIE_Container_9515P81_constr_163, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P81_163,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P81_specs_163 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P82_165[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RRCTransfer_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P82_tags_165[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P82_specs_165 = {
+       sizeof(struct ProtocolIE_Container_9515P82),
+       offsetof(struct ProtocolIE_Container_9515P82, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P82 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P82_tags_165,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P82_tags_165)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P82_tags_165[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P82_tags_165,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P82_tags_165)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P82_tags_165[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P82_constr_165, &asn_PER_type_ProtocolIE_Container_9515P82_constr_165, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P82_165,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P82_specs_165 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P83_167[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBChangeRefuse_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P83_tags_167[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P83_specs_167 = {
+       sizeof(struct ProtocolIE_Container_9515P83),
+       offsetof(struct ProtocolIE_Container_9515P83, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P83 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P83_tags_167,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P83_tags_167)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P83_tags_167[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P83_tags_167,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P83_tags_167)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P83_tags_167[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P83_constr_167, &asn_PER_type_ProtocolIE_Container_9515P83_constr_167, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P83_167,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P83_specs_167 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P84_169[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCX2SetupRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P84_tags_169[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P84_specs_169 = {
+       sizeof(struct ProtocolIE_Container_9515P84),
+       offsetof(struct ProtocolIE_Container_9515P84, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P84 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P84_tags_169,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P84_tags_169)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P84_tags_169[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P84_tags_169,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P84_tags_169)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P84_tags_169[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P84_constr_169, &asn_PER_type_ProtocolIE_Container_9515P84_constr_169, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P84_169,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P84_specs_169 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P85_171[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENB_ENDCX2SetupReqIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P85_tags_171[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P85_specs_171 = {
+       sizeof(struct ProtocolIE_Container_9515P85),
+       offsetof(struct ProtocolIE_Container_9515P85, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P85 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P85_tags_171,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P85_tags_171)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P85_tags_171[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P85_tags_171,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P85_tags_171)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P85_tags_171[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P85_constr_171, &asn_PER_type_ProtocolIE_Container_9515P85_constr_171, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P85_171,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P85_specs_171 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P86_173[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_En_gNB_ENDCX2SetupReqIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P86_tags_173[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P86_specs_173 = {
+       sizeof(struct ProtocolIE_Container_9515P86),
+       offsetof(struct ProtocolIE_Container_9515P86, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P86 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P86_tags_173,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P86_tags_173)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P86_tags_173[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P86_tags_173,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P86_tags_173)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P86_tags_173[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P86_constr_173, &asn_PER_type_ProtocolIE_Container_9515P86_constr_173, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P86_173,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P86_specs_173 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P87_175[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCX2SetupResponse_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P87_tags_175[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P87_specs_175 = {
+       sizeof(struct ProtocolIE_Container_9515P87),
+       offsetof(struct ProtocolIE_Container_9515P87, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P87 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P87_tags_175,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P87_tags_175)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P87_tags_175[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P87_tags_175,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P87_tags_175)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P87_tags_175[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P87_constr_175, &asn_PER_type_ProtocolIE_Container_9515P87_constr_175, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P87_175,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P87_specs_175 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P88_177[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENB_ENDCX2SetupReqAckIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P88_tags_177[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P88_specs_177 = {
+       sizeof(struct ProtocolIE_Container_9515P88),
+       offsetof(struct ProtocolIE_Container_9515P88, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P88 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P88_tags_177,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P88_tags_177)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P88_tags_177[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P88_tags_177,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P88_tags_177)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P88_tags_177[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P88_constr_177, &asn_PER_type_ProtocolIE_Container_9515P88_constr_177, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P88_177,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P88_specs_177 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P89_179[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_En_gNB_ENDCX2SetupReqAckIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P89_tags_179[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P89_specs_179 = {
+       sizeof(struct ProtocolIE_Container_9515P89),
+       offsetof(struct ProtocolIE_Container_9515P89, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P89 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P89_tags_179,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P89_tags_179)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P89_tags_179[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P89_tags_179,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P89_tags_179)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P89_tags_179[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P89_constr_179, &asn_PER_type_ProtocolIE_Container_9515P89_constr_179, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P89_179,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P89_specs_179 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P90_181[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCX2SetupFailure_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P90_tags_181[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P90_specs_181 = {
+       sizeof(struct ProtocolIE_Container_9515P90),
+       offsetof(struct ProtocolIE_Container_9515P90, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P90 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P90_tags_181,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P90_tags_181)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P90_tags_181[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P90_tags_181,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P90_tags_181)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P90_tags_181[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P90_constr_181, &asn_PER_type_ProtocolIE_Container_9515P90_constr_181, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P90_181,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P90_specs_181 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P91_183[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCConfigurationUpdate_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P91_tags_183[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P91_specs_183 = {
+       sizeof(struct ProtocolIE_Container_9515P91),
+       offsetof(struct ProtocolIE_Container_9515P91, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P91 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P91_tags_183,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P91_tags_183)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P91_tags_183[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P91_tags_183,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P91_tags_183)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P91_tags_183[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P91_constr_183, &asn_PER_type_ProtocolIE_Container_9515P91_constr_183, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P91_183,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P91_specs_183 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P92_185[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENB_ENDCConfigUpdateIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P92_tags_185[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P92_specs_185 = {
+       sizeof(struct ProtocolIE_Container_9515P92),
+       offsetof(struct ProtocolIE_Container_9515P92, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P92 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P92_tags_185,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P92_tags_185)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P92_tags_185[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P92_tags_185,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P92_tags_185)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P92_tags_185[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P92_constr_185, &asn_PER_type_ProtocolIE_Container_9515P92_constr_185, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P92_185,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P92_specs_185 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P93_187[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_En_gNB_ENDCConfigUpdateIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P93_tags_187[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P93_specs_187 = {
+       sizeof(struct ProtocolIE_Container_9515P93),
+       offsetof(struct ProtocolIE_Container_9515P93, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P93 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P93_tags_187,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P93_tags_187)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P93_tags_187[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P93_tags_187,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P93_tags_187)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P93_tags_187[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P93_constr_187, &asn_PER_type_ProtocolIE_Container_9515P93_constr_187, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P93_187,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P93_specs_187 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P94_189[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P94_tags_189[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P94_specs_189 = {
+       sizeof(struct ProtocolIE_Container_9515P94),
+       offsetof(struct ProtocolIE_Container_9515P94, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P94 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P94_tags_189,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P94_tags_189)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P94_tags_189[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P94_tags_189,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P94_tags_189)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P94_tags_189[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P94_constr_189, &asn_PER_type_ProtocolIE_Container_9515P94_constr_189, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P94_189,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P94_specs_189 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P95_191[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENB_ENDCConfigUpdateAckIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P95_tags_191[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P95_specs_191 = {
+       sizeof(struct ProtocolIE_Container_9515P95),
+       offsetof(struct ProtocolIE_Container_9515P95, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P95 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P95_tags_191,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P95_tags_191)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P95_tags_191[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P95_tags_191,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P95_tags_191)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P95_tags_191[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P95_constr_191, &asn_PER_type_ProtocolIE_Container_9515P95_constr_191, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P95_191,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P95_specs_191 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P96_193[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_En_gNB_ENDCConfigUpdateAckIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P96_tags_193[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P96_specs_193 = {
+       sizeof(struct ProtocolIE_Container_9515P96),
+       offsetof(struct ProtocolIE_Container_9515P96, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P96 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P96_tags_193,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P96_tags_193)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P96_tags_193[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P96_tags_193,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P96_tags_193)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P96_tags_193[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P96_constr_193, &asn_PER_type_ProtocolIE_Container_9515P96_constr_193, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P96_193,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P96_specs_193 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P97_195[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCConfigurationUpdateFailure_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P97_tags_195[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P97_specs_195 = {
+       sizeof(struct ProtocolIE_Container_9515P97),
+       offsetof(struct ProtocolIE_Container_9515P97, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P97 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P97_tags_195,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P97_tags_195)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P97_tags_195[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P97_tags_195,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P97_tags_195)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P97_tags_195[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P97_constr_195, &asn_PER_type_ProtocolIE_Container_9515P97_constr_195, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P97_195,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P97_specs_195 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P98_197[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCCellActivationRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P98_tags_197[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P98_specs_197 = {
+       sizeof(struct ProtocolIE_Container_9515P98),
+       offsetof(struct ProtocolIE_Container_9515P98, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P98 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P98_tags_197,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P98_tags_197)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P98_tags_197[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P98_tags_197,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P98_tags_197)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P98_tags_197[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P98_constr_197, &asn_PER_type_ProtocolIE_Container_9515P98_constr_197, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P98_197,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P98_specs_197 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P99_199[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCCellActivationResponse_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P99_tags_199[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P99_specs_199 = {
+       sizeof(struct ProtocolIE_Container_9515P99),
+       offsetof(struct ProtocolIE_Container_9515P99, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P99 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P99_tags_199,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P99_tags_199)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P99_tags_199[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P99_tags_199,  /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P99_tags_199)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P99_tags_199[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P99_constr_199, &asn_PER_type_ProtocolIE_Container_9515P99_constr_199, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P99_199,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P99_specs_199 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P100_201[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCCellActivationFailure_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P100_tags_201[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P100_specs_201 = {
+       sizeof(struct ProtocolIE_Container_9515P100),
+       offsetof(struct ProtocolIE_Container_9515P100, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P100 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P100_tags_201,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P100_tags_201)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P100_tags_201[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P100_tags_201, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P100_tags_201)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P100_tags_201[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P100_constr_201, &asn_PER_type_ProtocolIE_Container_9515P100_constr_201, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P100_201,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P100_specs_201        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P101_203[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SecondaryRATDataUsageReport_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P101_tags_203[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P101_specs_203 = {
+       sizeof(struct ProtocolIE_Container_9515P101),
+       offsetof(struct ProtocolIE_Container_9515P101, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P101 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P101_tags_203,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P101_tags_203)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P101_tags_203[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P101_tags_203, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P101_tags_203)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P101_tags_203[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P101_constr_203, &asn_PER_type_ProtocolIE_Container_9515P101_constr_203, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P101_203,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P101_specs_203        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P102_205[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBActivityNotification_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P102_tags_205[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P102_specs_205 = {
+       sizeof(struct ProtocolIE_Container_9515P102),
+       offsetof(struct ProtocolIE_Container_9515P102, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P102 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P102_tags_205,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P102_tags_205)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P102_tags_205[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P102_tags_205, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P102_tags_205)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P102_tags_205[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P102_constr_205, &asn_PER_type_ProtocolIE_Container_9515P102_constr_205, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P102_205,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P102_specs_205        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P103_207[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCPartialResetRequired_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P103_tags_207[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P103_specs_207 = {
+       sizeof(struct ProtocolIE_Container_9515P103),
+       offsetof(struct ProtocolIE_Container_9515P103, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P103 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P103_tags_207,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P103_tags_207)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P103_tags_207[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P103_tags_207, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P103_tags_207)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P103_tags_207[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P103_constr_207, &asn_PER_type_ProtocolIE_Container_9515P103_constr_207, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P103_207,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P103_specs_207        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P104_209[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCPartialResetConfirm_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P104_tags_209[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P104_specs_209 = {
+       sizeof(struct ProtocolIE_Container_9515P104),
+       offsetof(struct ProtocolIE_Container_9515P104, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P104 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P104_tags_209,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P104_tags_209)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P104_tags_209[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P104_tags_209, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P104_tags_209)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P104_tags_209[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P104_constr_209, &asn_PER_type_ProtocolIE_Container_9515P104_constr_209, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P104_209,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P104_specs_209        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P105_211[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P105_tags_211[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P105_specs_211 = {
+       sizeof(struct ProtocolIE_Container_9515P105),
+       offsetof(struct ProtocolIE_Container_9515P105, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P105 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P105_tags_211,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P105_tags_211)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P105_tags_211[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P105_tags_211, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P105_tags_211)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P105_tags_211[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P105_constr_211, &asn_PER_type_ProtocolIE_Container_9515P105_constr_211, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P105_211,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P105_specs_211        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P106_213[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P106_tags_213[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P106_specs_213 = {
+       sizeof(struct ProtocolIE_Container_9515P106),
+       offsetof(struct ProtocolIE_Container_9515P106, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P106 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P106_tags_213,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P106_tags_213)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P106_tags_213[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P106_tags_213, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P106_tags_213)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P106_tags_213[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P106_constr_213, &asn_PER_type_ProtocolIE_Container_9515P106_constr_213, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P106_213,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P106_specs_213        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P107_215[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P107_tags_215[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P107_specs_215 = {
+       sizeof(struct ProtocolIE_Container_9515P107),
+       offsetof(struct ProtocolIE_Container_9515P107, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P107 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P107_tags_215,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P107_tags_215)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P107_tags_215[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P107_tags_215, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P107_tags_215)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P107_tags_215[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P107_constr_215, &asn_PER_type_ProtocolIE_Container_9515P107_constr_215, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P107_215,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P107_specs_215        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P108_217[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P108_tags_217[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P108_specs_217 = {
+       sizeof(struct ProtocolIE_Container_9515P108),
+       offsetof(struct ProtocolIE_Container_9515P108, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P108 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P108_tags_217,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P108_tags_217)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P108_tags_217[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P108_tags_217, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P108_tags_217)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P108_tags_217[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P108_constr_217, &asn_PER_type_ProtocolIE_Container_9515P108_constr_217, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P108_217,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P108_specs_217        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P109_219[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P109_tags_219[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P109_specs_219 = {
+       sizeof(struct ProtocolIE_Container_9515P109),
+       offsetof(struct ProtocolIE_Container_9515P109, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P109 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P109_tags_219,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P109_tags_219)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P109_tags_219[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P109_tags_219, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P109_tags_219)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P109_tags_219[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P109_constr_219, &asn_PER_type_ProtocolIE_Container_9515P109_constr_219, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P109_219,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P109_specs_219        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P110_221[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P110_tags_221[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P110_specs_221 = {
+       sizeof(struct ProtocolIE_Container_9515P110),
+       offsetof(struct ProtocolIE_Container_9515P110, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P110 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P110_tags_221,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P110_tags_221)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P110_tags_221[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P110_tags_221, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P110_tags_221)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P110_tags_221[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P110_constr_221, &asn_PER_type_ProtocolIE_Container_9515P110_constr_221, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P110_221,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P110_specs_221        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P111_223[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCX2RemovalRequest_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P111_tags_223[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P111_specs_223 = {
+       sizeof(struct ProtocolIE_Container_9515P111),
+       offsetof(struct ProtocolIE_Container_9515P111, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P111 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P111_tags_223,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P111_tags_223)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P111_tags_223[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P111_tags_223, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P111_tags_223)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P111_tags_223[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P111_constr_223, &asn_PER_type_ProtocolIE_Container_9515P111_constr_223, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P111_223,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P111_specs_223        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P112_225[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENB_ENDCX2RemovalReqIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P112_tags_225[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P112_specs_225 = {
+       sizeof(struct ProtocolIE_Container_9515P112),
+       offsetof(struct ProtocolIE_Container_9515P112, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P112 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P112_tags_225,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P112_tags_225)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P112_tags_225[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P112_tags_225, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P112_tags_225)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P112_tags_225[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P112_constr_225, &asn_PER_type_ProtocolIE_Container_9515P112_constr_225, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P112_225,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P112_specs_225        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P113_227[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_En_gNB_ENDCX2RemovalReqIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P113_tags_227[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P113_specs_227 = {
+       sizeof(struct ProtocolIE_Container_9515P113),
+       offsetof(struct ProtocolIE_Container_9515P113, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P113 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P113_tags_227,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P113_tags_227)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P113_tags_227[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P113_tags_227, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P113_tags_227)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P113_tags_227[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P113_constr_227, &asn_PER_type_ProtocolIE_Container_9515P113_constr_227, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P113_227,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P113_specs_227        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P114_229[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCX2RemovalResponse_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P114_tags_229[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P114_specs_229 = {
+       sizeof(struct ProtocolIE_Container_9515P114),
+       offsetof(struct ProtocolIE_Container_9515P114, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P114 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P114_tags_229,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P114_tags_229)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P114_tags_229[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P114_tags_229, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P114_tags_229)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P114_tags_229[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P114_constr_229, &asn_PER_type_ProtocolIE_Container_9515P114_constr_229, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P114_229,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P114_specs_229        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P115_231[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENB_ENDCX2RemovalReqAckIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P115_tags_231[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P115_specs_231 = {
+       sizeof(struct ProtocolIE_Container_9515P115),
+       offsetof(struct ProtocolIE_Container_9515P115, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P115 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P115_tags_231,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P115_tags_231)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P115_tags_231[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P115_tags_231, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P115_tags_231)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P115_tags_231[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P115_constr_231, &asn_PER_type_ProtocolIE_Container_9515P115_constr_231, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P115_231,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P115_specs_231        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P116_233[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P116_tags_233[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P116_specs_233 = {
+       sizeof(struct ProtocolIE_Container_9515P116),
+       offsetof(struct ProtocolIE_Container_9515P116, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P116 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P116_tags_233,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P116_tags_233)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P116_tags_233[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P116_tags_233, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P116_tags_233)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P116_tags_233[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P116_constr_233, &asn_PER_type_ProtocolIE_Container_9515P116_constr_233, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P116_233,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P116_specs_233        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P117_235[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCX2RemovalFailure_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P117_tags_235[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P117_specs_235 = {
+       sizeof(struct ProtocolIE_Container_9515P117),
+       offsetof(struct ProtocolIE_Container_9515P117, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P117 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P117_tags_235,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P117_tags_235)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P117_tags_235[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P117_tags_235, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P117_tags_235)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P117_tags_235[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P117_constr_235, &asn_PER_type_ProtocolIE_Container_9515P117_constr_235, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P117_235,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P117_specs_235        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P118_237[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_DataForwardingAddressIndication_IEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P118_tags_237[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P118_specs_237 = {
+       sizeof(struct ProtocolIE_Container_9515P118),
+       offsetof(struct ProtocolIE_Container_9515P118, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P118 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P118_tags_237,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P118_tags_237)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P118_tags_237[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P118_tags_237, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P118_tags_237)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P118_tags_237[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P118_constr_237, &asn_PER_type_ProtocolIE_Container_9515P118_constr_237, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P118_237,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P118_specs_237        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_9515P119_239[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GNBStatusIndicationIEs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_9515P119_tags_239[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_9515P119_specs_239 = {
+       sizeof(struct ProtocolIE_Container_9515P119),
+       offsetof(struct ProtocolIE_Container_9515P119, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_9515P119 = {
+       "ProtocolIE-Container",
+       "ProtocolIE-Container",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ProtocolIE_Container_9515P119_tags_239,
+       sizeof(asn_DEF_ProtocolIE_Container_9515P119_tags_239)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P119_tags_239[0]), /* 1 */
+       asn_DEF_ProtocolIE_Container_9515P119_tags_239, /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Container_9515P119_tags_239)
+               /sizeof(asn_DEF_ProtocolIE_Container_9515P119_tags_239[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_Container_9515P119_constr_239, &asn_PER_type_ProtocolIE_Container_9515P119_constr_239, SEQUENCE_OF_constraint },
+       asn_MBR_ProtocolIE_Container_9515P119_239,
+       1,      /* Single element */
+       &asn_SPC_ProtocolIE_Container_9515P119_specs_239        /* Additional specs */
+};
+
diff --git a/e2ap/lib/ProtocolIE-ContainerList.c b/e2ap/lib/ProtocolIE-ContainerList.c
new file mode 100644 (file)
index 0000000..f57d99d
--- /dev/null
@@ -0,0 +1,9 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProtocolIE-ContainerList.h"
+
diff --git a/e2ap/lib/ProtocolIE-ContainerPair.c b/e2ap/lib/ProtocolIE-ContainerPair.c
new file mode 100644 (file)
index 0000000..41724fb
--- /dev/null
@@ -0,0 +1,9 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProtocolIE-ContainerPair.h"
+
diff --git a/e2ap/lib/ProtocolIE-ContainerPairList.c b/e2ap/lib/ProtocolIE-ContainerPairList.c
new file mode 100644 (file)
index 0000000..c287faa
--- /dev/null
@@ -0,0 +1,9 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProtocolIE-ContainerPairList.h"
+
diff --git a/e2ap/lib/ProtocolIE-Field.c b/e2ap/lib/ProtocolIE-Field.c
new file mode 100644 (file)
index 0000000..20cd2af
--- /dev/null
@@ -0,0 +1,49762 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProtocolIE-Field.h"
+
+static const long asn_VAL_4_id_RICaction_ToBeSetup_Item = 60011;
+static const long asn_VAL_4_ignore = 1;
+static const long asn_VAL_4_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_4_id_RICaction_ToBeSetup_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_ignore },
+       { "&Value", aioc__type, &asn_DEF_RICaction_ToBeSetup_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_4_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows }
+};
+static const long asn_VAL_9_id_RICaction_Admitted_Item = 60013;
+static const long asn_VAL_9_ignore = 1;
+static const long asn_VAL_9_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_RICaction_Admitted_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_9_id_RICaction_Admitted_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore },
+       { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_9_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_RICaction_Admitted_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_RICaction_Admitted_ItemIEs_1_rows }
+};
+static const long asn_VAL_10_id_RICaction_NotAdmitted_Item = 60015;
+static const long asn_VAL_10_ignore = 1;
+static const long asn_VAL_10_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_10_id_RICaction_NotAdmitted_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore },
+       { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_10_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows }
+};
+static const long asn_VAL_48_id_RANfunction_Item = 60001;
+static const long asn_VAL_48_ignore = 1;
+static const long asn_VAL_48_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_RANfunction_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_RANfunction_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_48_ignore },
+       { "&Value", aioc__type, &asn_DEF_RANfunction_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_48_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_RANfunction_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_RANfunction_ItemIEs_1_rows }
+};
+static const long asn_VAL_49_id_RANfunctionID_Item = 60004;
+static const long asn_VAL_49_ignore = 1;
+static const long asn_VAL_49_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_RANfunctionID_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_RANfunctionID_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_ignore },
+       { "&Value", aioc__type, &asn_DEF_RANfunctionID_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_49_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_RANfunctionID_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_RANfunctionID_ItemIEs_1_rows }
+};
+static const long asn_VAL_52_id_RANfunctionIEcause_Item = 60005;
+static const long asn_VAL_52_ignore = 1;
+static const long asn_VAL_52_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_RANfunctionIDcause_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_RANfunctionIEcause_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_ignore },
+       { "&Value", aioc__type, &asn_DEF_RANfunctionIDcause_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_52_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_RANfunctionIDcause_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_RANfunctionIDcause_ItemIEs_1_rows }
+};
+static const long asn_VAL_79_id_E_RABs_ToBeSetup_Item = 4;
+static const long asn_VAL_79_ignore = 1;
+static const long asn_VAL_79_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeSetup_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_79_id_E_RABs_ToBeSetup_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_79_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeSetup_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_79_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeSetup_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeSetup_ItemIEs_1_rows }
+};
+static const long asn_VAL_91_id_E_RABs_Admitted_Item = 0;
+static const long asn_VAL_91_ignore = 1;
+static const long asn_VAL_91_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_91_id_E_RABs_Admitted_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_91_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_91_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_Admitted_ItemIEs_1_rows }
+};
+static const long asn_VAL_112_id_E_RABs_SubjectToStatusTransfer_Item = 19;
+static const long asn_VAL_112_ignore = 1;
+static const long asn_VAL_112_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_SubjectToStatusTransfer_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_112_id_E_RABs_SubjectToStatusTransfer_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_112_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_SubjectToStatusTransfer_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_112_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_SubjectToStatusTransfer_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_SubjectToStatusTransfer_ItemIEs_1_rows }
+};
+static const long asn_VAL_146_id_CellInformation_Item = 7;
+static const long asn_VAL_146_ignore = 1;
+static const long asn_VAL_146_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_CellInformation_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_146_id_CellInformation_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_146_ignore },
+       { "&Value", aioc__type, &asn_DEF_CellInformation_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_146_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_CellInformation_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_CellInformation_ItemIEs_1_rows }
+};
+static const long asn_VAL_166_id_CellToReport_Item = 31;
+static const long asn_VAL_166_ignore = 1;
+static const long asn_VAL_166_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_CellToReport_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_166_id_CellToReport_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_166_ignore },
+       { "&Value", aioc__type, &asn_DEF_CellToReport_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_166_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_CellToReport_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_CellToReport_ItemIEs_1_rows }
+};
+static const long asn_VAL_171_id_MeasurementInitiationResult_Item = 66;
+static const long asn_VAL_171_ignore = 1;
+static const long asn_VAL_171_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_MeasurementInitiationResult_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_171_id_MeasurementInitiationResult_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_171_ignore },
+       { "&Value", aioc__type, &asn_DEF_MeasurementInitiationResult_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_171_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_MeasurementInitiationResult_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_MeasurementInitiationResult_ItemIEs_1_rows }
+};
+static const long asn_VAL_172_id_MeasurementFailureCause_Item = 67;
+static const long asn_VAL_172_ignore = 1;
+static const long asn_VAL_172_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_MeasurementFailureCause_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_172_id_MeasurementFailureCause_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_172_ignore },
+       { "&Value", aioc__type, &asn_DEF_MeasurementFailureCause_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_172_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_MeasurementFailureCause_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_MeasurementFailureCause_ItemIEs_1_rows }
+};
+static const long asn_VAL_178_id_CompleteFailureCauseInformation_Item = 69;
+static const long asn_VAL_178_ignore = 1;
+static const long asn_VAL_178_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_CompleteFailureCauseInformation_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_178_id_CompleteFailureCauseInformation_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_178_ignore },
+       { "&Value", aioc__type, &asn_DEF_CompleteFailureCauseInformation_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_178_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_CompleteFailureCauseInformation_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_CompleteFailureCauseInformation_ItemIEs_1_rows }
+};
+static const long asn_VAL_182_id_CellMeasurementResult_Item = 33;
+static const long asn_VAL_182_ignore = 1;
+static const long asn_VAL_182_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_CellMeasurementResult_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_182_id_CellMeasurementResult_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_182_ignore },
+       { "&Value", aioc__type, &asn_DEF_CellMeasurementResult_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_182_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_CellMeasurementResult_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_CellMeasurementResult_ItemIEs_1_rows }
+};
+static const long asn_VAL_224_id_E_RABs_ToBeAdded_Item = 118;
+static const long asn_VAL_224_reject = 0;
+static const long asn_VAL_224_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_224_id_E_RABs_ToBeAdded_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_224_reject },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeAdded_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_224_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeAdded_ItemIEs_1_rows }
+};
+static const long asn_VAL_236_id_E_RABs_Admitted_ToBeAdded_Item = 121;
+static const long asn_VAL_236_ignore = 1;
+static const long asn_VAL_236_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeAdded_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_236_id_E_RABs_Admitted_ToBeAdded_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_236_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeAdded_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_236_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeAdded_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_Admitted_ToBeAdded_ItemIEs_1_rows }
+};
+static const long asn_VAL_258_id_E_RABs_ToBeAdded_ModReqItem = 125;
+static const long asn_VAL_258_ignore = 1;
+static const long asn_VAL_258_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_ModReqItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_258_id_E_RABs_ToBeAdded_ModReqItem },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_258_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeAdded_ModReqItem },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_258_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_ModReqItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeAdded_ModReqItemIEs_1_rows }
+};
+static const long asn_VAL_259_id_E_RABs_ToBeModified_ModReqItem = 126;
+static const long asn_VAL_259_ignore = 1;
+static const long asn_VAL_259_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeModified_ModReqItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_259_id_E_RABs_ToBeModified_ModReqItem },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_259_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeModified_ModReqItem },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_259_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeModified_ModReqItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeModified_ModReqItemIEs_1_rows }
+};
+static const long asn_VAL_260_id_E_RABs_ToBeReleased_ModReqItem = 127;
+static const long asn_VAL_260_ignore = 1;
+static const long asn_VAL_260_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_ModReqItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_260_id_E_RABs_ToBeReleased_ModReqItem },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_260_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_ModReqItem },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_260_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_ModReqItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeReleased_ModReqItemIEs_1_rows }
+};
+static const long asn_VAL_271_id_E_RABs_Admitted_ToBeAdded_ModAckItem = 131;
+static const long asn_VAL_271_ignore = 1;
+static const long asn_VAL_271_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_271_id_E_RABs_Admitted_ToBeAdded_ModAckItem },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_271_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_271_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_1_rows }
+};
+static const long asn_VAL_272_id_E_RABs_Admitted_ToBeModified_ModAckItem = 132;
+static const long asn_VAL_272_ignore = 1;
+static const long asn_VAL_272_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeModified_ModAckItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_272_id_E_RABs_Admitted_ToBeModified_ModAckItem },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_272_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_272_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeModified_ModAckItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_Admitted_ToBeModified_ModAckItemIEs_1_rows }
+};
+static const long asn_VAL_273_id_E_RABs_Admitted_ToBeReleased_ModAckItem = 133;
+static const long asn_VAL_273_ignore = 1;
+static const long asn_VAL_273_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_273_id_E_RABs_Admitted_ToBeReleased_ModAckItem },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_273_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToReleased_ModAckItem },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_273_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_1_rows }
+};
+static const long asn_VAL_288_id_E_RABs_ToBeReleased_ModReqdItem = 135;
+static const long asn_VAL_288_ignore = 1;
+static const long asn_VAL_288_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_ModReqdItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_288_id_E_RABs_ToBeReleased_ModReqdItem },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_288_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_ModReqdItem },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_288_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_ModReqdItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeReleased_ModReqdItemIEs_1_rows }
+};
+static const long asn_VAL_310_id_E_RABs_ToBeReleased_RelReqItem = 138;
+static const long asn_VAL_310_ignore = 1;
+static const long asn_VAL_310_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_RelReqItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_310_id_E_RABs_ToBeReleased_RelReqItem },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_310_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_RelReqItem },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_310_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_RelReqItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeReleased_RelReqItemIEs_1_rows }
+};
+static const long asn_VAL_322_id_E_RABs_ToBeReleased_RelConfItem = 140;
+static const long asn_VAL_322_ignore = 1;
+static const long asn_VAL_322_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_RelConfItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_322_id_E_RABs_ToBeReleased_RelConfItem },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_322_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_RelConfItem },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_322_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_RelConfItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeReleased_RelConfItemIEs_1_rows }
+};
+static const long asn_VAL_328_id_E_RABs_SubjectToCounterCheckItem = 142;
+static const long asn_VAL_328_ignore = 1;
+static const long asn_VAL_328_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_SubjectToCounterCheckItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_328_id_E_RABs_SubjectToCounterCheckItem },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_328_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_SubjectToCounterCheckItem },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_328_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_SubjectToCounterCheckItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_SubjectToCounterCheckItemIEs_1_rows }
+};
+static const long asn_VAL_357_id_E_RABs_ToBeSetupRetrieve_Item = 174;
+static const long asn_VAL_357_ignore = 1;
+static const long asn_VAL_357_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeSetupRetrieve_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_357_id_E_RABs_ToBeSetupRetrieve_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_357_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeSetupRetrieve_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_357_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeSetupRetrieve_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeSetupRetrieve_ItemIEs_1_rows }
+};
+static const long asn_VAL_378_id_E_RABs_ToBeAdded_SgNBAddReq_Item = 209;
+static const long asn_VAL_378_reject = 0;
+static const long asn_VAL_378_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_378_id_E_RABs_ToBeAdded_SgNBAddReq_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_378_reject },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_378_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_1_rows }
+};
+static const long asn_VAL_389_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item = 213;
+static const long asn_VAL_389_ignore = 1;
+static const long asn_VAL_389_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_389_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_389_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_389_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_1_rows }
+};
+static const long asn_VAL_411_id_E_RABs_ToBeAdded_SgNBModReq_Item = 216;
+static const long asn_VAL_411_ignore = 1;
+static const long asn_VAL_411_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_411_id_E_RABs_ToBeAdded_SgNBModReq_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_411_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_411_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_1_rows }
+};
+static const long asn_VAL_412_id_E_RABs_ToBeModified_SgNBModReq_Item = 217;
+static const long asn_VAL_412_ignore = 1;
+static const long asn_VAL_412_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeModified_SgNBModReq_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_412_id_E_RABs_ToBeModified_SgNBModReq_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_412_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_412_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeModified_SgNBModReq_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeModified_SgNBModReq_ItemIEs_1_rows }
+};
+static const long asn_VAL_413_id_E_RABs_ToBeReleased_SgNBModReq_Item = 218;
+static const long asn_VAL_413_ignore = 1;
+static const long asn_VAL_413_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_413_id_E_RABs_ToBeReleased_SgNBModReq_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_413_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_413_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_1_rows }
+};
+static const long asn_VAL_427_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item = 222;
+static const long asn_VAL_427_ignore = 1;
+static const long asn_VAL_427_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_427_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_427_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_427_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_1_rows }
+};
+static const long asn_VAL_428_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item = 223;
+static const long asn_VAL_428_ignore = 1;
+static const long asn_VAL_428_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_428_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_428_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_428_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_1_rows }
+};
+static const long asn_VAL_429_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item = 224;
+static const long asn_VAL_429_ignore = 1;
+static const long asn_VAL_429_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_429_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_429_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_429_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_1_rows }
+};
+static const long asn_VAL_445_id_E_RABs_ToBeReleased_SgNBModReqd_Item = 227;
+static const long asn_VAL_445_ignore = 1;
+static const long asn_VAL_445_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_445_id_E_RABs_ToBeReleased_SgNBModReqd_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_445_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_445_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_1_rows }
+};
+static const long asn_VAL_446_id_E_RABs_ToBeModified_SgNBModReqd_Item = 228;
+static const long asn_VAL_446_ignore = 1;
+static const long asn_VAL_446_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_446_id_E_RABs_ToBeModified_SgNBModReqd_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_446_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_446_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_1_rows }
+};
+static const long asn_VAL_454_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item = 295;
+static const long asn_VAL_454_ignore = 1;
+static const long asn_VAL_454_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_454_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_454_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_454_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_1_rows }
+};
+static const long asn_VAL_468_id_E_RABs_ToBeReleased_SgNBRelReq_Item = 232;
+static const long asn_VAL_468_ignore = 1;
+static const long asn_VAL_468_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_468_id_E_RABs_ToBeReleased_SgNBRelReq_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_468_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_468_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_1_rows }
+};
+static const long asn_VAL_474_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item = 319;
+static const long asn_VAL_474_ignore = 1;
+static const long asn_VAL_474_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_474_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_474_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_474_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_1_rows }
+};
+static const long asn_VAL_485_id_E_RABs_ToBeReleased_SgNBRelReqd_Item = 321;
+static const long asn_VAL_485_ignore = 1;
+static const long asn_VAL_485_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_485_id_E_RABs_ToBeReleased_SgNBRelReqd_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_485_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_485_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_1_rows }
+};
+static const long asn_VAL_491_id_E_RABs_ToBeReleased_SgNBRelConf_Item = 234;
+static const long asn_VAL_491_ignore = 1;
+static const long asn_VAL_491_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_491_id_E_RABs_ToBeReleased_SgNBRelConf_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_491_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_491_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_1_rows }
+};
+static const long asn_VAL_496_id_E_RABs_SubjectToSgNBCounterCheck_Item = 236;
+static const long asn_VAL_496_ignore = 1;
+static const long asn_VAL_496_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_496_id_E_RABs_SubjectToSgNBCounterCheck_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_496_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_496_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_1_rows }
+};
+static const long asn_VAL_508_id_E_RABs_ToBeReleased_SgNBChaConf_Item = 230;
+static const long asn_VAL_508_ignore = 1;
+static const long asn_VAL_508_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_508_id_E_RABs_ToBeReleased_SgNBChaConf_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_508_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_508_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_1_rows }
+};
+static const long asn_VAL_592_id_E_RABs_DataForwardingAddress_Item = 308;
+static const long asn_VAL_592_ignore = 1;
+static const long asn_VAL_592_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABs_DataForwardingAddress_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_592_id_E_RABs_DataForwardingAddress_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_592_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_DataForwardingAddress_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_592_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABs_DataForwardingAddress_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABs_DataForwardingAddress_ItemIEs_1_rows }
+};
+static const long asn_VAL_594_id_E_RAB_Item = 2;
+static const long asn_VAL_594_ignore = 1;
+static const long asn_VAL_594_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RAB_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_594_id_E_RAB_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_594_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RAB_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_594_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RAB_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RAB_ItemIEs_1_rows }
+};
+static const long asn_VAL_595_id_E_RABUsageReport_Item = 263;
+static const long asn_VAL_595_ignore = 1;
+static const long asn_VAL_595_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E_RABUsageReport_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_595_id_E_RABUsageReport_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_595_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABUsageReport_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_595_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E_RABUsageReport_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_E_RABUsageReport_ItemIEs_1_rows }
+};
+static const long asn_VAL_596_id_SecondaryRATUsageReport_Item = 266;
+static const long asn_VAL_596_reject = 0;
+static const long asn_VAL_596_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_SecondaryRATUsageReport_ItemIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_596_id_SecondaryRATUsageReport_Item },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_596_reject },
+       { "&Value", aioc__type, &asn_DEF_SecondaryRATUsageReport_Item },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_596_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_SecondaryRATUsageReport_ItemIEs_1[] = {
+       { 1, 4, asn_IOS_SecondaryRATUsageReport_ItemIEs_1_rows }
+};
+static const long asn_VAL_1_id_RICrequestID = 60030;
+static const long asn_VAL_1_reject = 0;
+static const long asn_VAL_1_mandatory = 2;
+static const long asn_VAL_2_id_RANfunctionID = 60003;
+static const long asn_VAL_2_reject = 0;
+static const long asn_VAL_2_mandatory = 2;
+static const long asn_VAL_3_id_RICsubscription = 60033;
+static const long asn_VAL_3_reject = 0;
+static const long asn_VAL_3_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_RICsubscriptionRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_1_id_RICrequestID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject },
+       { "&Value", aioc__type, &asn_DEF_RICrequestID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_1_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_2_id_RANfunctionID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject },
+       { "&Value", aioc__type, &asn_DEF_RANfunctionID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_2_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_3_id_RICsubscription },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject },
+       { "&Value", aioc__type, &asn_DEF_RICsubscription },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_3_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_RICsubscriptionRequest_IEs_1[] = {
+       { 3, 4, asn_IOS_RICsubscriptionRequest_IEs_1_rows }
+};
+static const long asn_VAL_5_id_RICrequestID = 60030;
+static const long asn_VAL_5_reject = 0;
+static const long asn_VAL_5_mandatory = 2;
+static const long asn_VAL_6_id_RANfunctionID = 60003;
+static const long asn_VAL_6_reject = 0;
+static const long asn_VAL_6_mandatory = 2;
+static const long asn_VAL_7_id_RICactions_Admitted = 60012;
+static const long asn_VAL_7_reject = 0;
+static const long asn_VAL_7_mandatory = 2;
+static const long asn_VAL_8_id_RICactions_NotAdmitted = 60014;
+static const long asn_VAL_8_reject = 0;
+static const long asn_VAL_8_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RICsubscriptionResponse_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_5_id_RICrequestID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject },
+       { "&Value", aioc__type, &asn_DEF_RICrequestID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_5_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_6_id_RANfunctionID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject },
+       { "&Value", aioc__type, &asn_DEF_RANfunctionID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_6_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_7_id_RICactions_Admitted },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject },
+       { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_7_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_8_id_RICactions_NotAdmitted },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject },
+       { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_8_optional }
+};
+static const asn_ioc_set_t asn_IOS_RICsubscriptionResponse_IEs_1[] = {
+       { 4, 4, asn_IOS_RICsubscriptionResponse_IEs_1_rows }
+};
+static const long asn_VAL_11_id_RICrequestID = 60030;
+static const long asn_VAL_11_reject = 0;
+static const long asn_VAL_11_mandatory = 2;
+static const long asn_VAL_12_id_RANfunctionID = 60003;
+static const long asn_VAL_12_reject = 0;
+static const long asn_VAL_12_mandatory = 2;
+static const long asn_VAL_13_id_RICactions_NotAdmitted = 60014;
+static const long asn_VAL_13_reject = 0;
+static const long asn_VAL_13_mandatory = 2;
+static const long asn_VAL_14_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_14_ignore = 1;
+static const long asn_VAL_14_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RICsubscriptionFailure_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_11_id_RICrequestID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject },
+       { "&Value", aioc__type, &asn_DEF_RICrequestID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_11_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_12_id_RANfunctionID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_reject },
+       { "&Value", aioc__type, &asn_DEF_RANfunctionID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_12_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_RICactions_NotAdmitted },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_reject },
+       { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_13_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_14_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_14_optional }
+};
+static const asn_ioc_set_t asn_IOS_RICsubscriptionFailure_IEs_1[] = {
+       { 4, 4, asn_IOS_RICsubscriptionFailure_IEs_1_rows }
+};
+static const long asn_VAL_15_id_RICrequestID = 60030;
+static const long asn_VAL_15_reject = 0;
+static const long asn_VAL_15_mandatory = 2;
+static const long asn_VAL_16_id_RANfunctionID = 60003;
+static const long asn_VAL_16_reject = 0;
+static const long asn_VAL_16_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_15_id_RICrequestID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_reject },
+       { "&Value", aioc__type, &asn_DEF_RICrequestID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_15_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_16_id_RANfunctionID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_reject },
+       { "&Value", aioc__type, &asn_DEF_RANfunctionID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_16_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1[] = {
+       { 2, 4, asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows }
+};
+static const long asn_VAL_17_id_RICrequestID = 60030;
+static const long asn_VAL_17_reject = 0;
+static const long asn_VAL_17_mandatory = 2;
+static const long asn_VAL_18_id_RANfunctionID = 60003;
+static const long asn_VAL_18_reject = 0;
+static const long asn_VAL_18_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_17_id_RICrequestID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_reject },
+       { "&Value", aioc__type, &asn_DEF_RICrequestID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_17_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_18_id_RANfunctionID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_reject },
+       { "&Value", aioc__type, &asn_DEF_RANfunctionID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_18_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1[] = {
+       { 2, 4, asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows }
+};
+static const long asn_VAL_19_id_RICrequestID = 60030;
+static const long asn_VAL_19_reject = 0;
+static const long asn_VAL_19_mandatory = 2;
+static const long asn_VAL_20_id_RANfunctionID = 60003;
+static const long asn_VAL_20_reject = 0;
+static const long asn_VAL_20_mandatory = 2;
+static const long asn_VAL_21_id_RICcause = 60020;
+static const long asn_VAL_21_ignore = 1;
+static const long asn_VAL_21_mandatory = 2;
+static const long asn_VAL_22_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_22_ignore = 1;
+static const long asn_VAL_22_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_19_id_RICrequestID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_reject },
+       { "&Value", aioc__type, &asn_DEF_RICrequestID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_19_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_20_id_RANfunctionID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_reject },
+       { "&Value", aioc__type, &asn_DEF_RANfunctionID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_20_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_21_id_RICcause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_ignore },
+       { "&Value", aioc__type, &asn_DEF_RICcause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_21_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_22_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_22_optional }
+};
+static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1[] = {
+       { 4, 4, asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows }
+};
+static const long asn_VAL_23_id_RICrequestID = 60030;
+static const long asn_VAL_23_reject = 0;
+static const long asn_VAL_23_mandatory = 2;
+static const long asn_VAL_24_id_RANfunctionID = 60003;
+static const long asn_VAL_24_reject = 0;
+static const long asn_VAL_24_mandatory = 2;
+static const long asn_VAL_25_id_RICactionID = 60017;
+static const long asn_VAL_25_reject = 0;
+static const long asn_VAL_25_mandatory = 2;
+static const long asn_VAL_26_id_RICindicationSN = 60028;
+static const long asn_VAL_26_reject = 0;
+static const long asn_VAL_26_mandatory = 2;
+static const long asn_VAL_27_id_RICindicationType = 60029;
+static const long asn_VAL_27_reject = 0;
+static const long asn_VAL_27_mandatory = 2;
+static const long asn_VAL_28_id_RICindicationHeader = 60026;
+static const long asn_VAL_28_reject = 0;
+static const long asn_VAL_28_mandatory = 2;
+static const long asn_VAL_29_id_RICindicationMessage = 60027;
+static const long asn_VAL_29_reject = 0;
+static const long asn_VAL_29_mandatory = 2;
+static const long asn_VAL_30_id_RICcallProcessID = 60019;
+static const long asn_VAL_30_reject = 0;
+static const long asn_VAL_30_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RICindication_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_RICrequestID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_reject },
+       { "&Value", aioc__type, &asn_DEF_RICrequestID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_23_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_24_id_RANfunctionID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_reject },
+       { "&Value", aioc__type, &asn_DEF_RANfunctionID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_24_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_25_id_RICactionID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_reject },
+       { "&Value", aioc__type, &asn_DEF_RICactionID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_25_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_RICindicationSN },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_reject },
+       { "&Value", aioc__type, &asn_DEF_RICindicationSN },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_RICindicationType },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_reject },
+       { "&Value", aioc__type, &asn_DEF_RICindicationType },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_27_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_RICindicationHeader },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_reject },
+       { "&Value", aioc__type, &asn_DEF_RICindicationHeader },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_RICindicationMessage },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_reject },
+       { "&Value", aioc__type, &asn_DEF_RICindicationMessage },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_29_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_RICcallProcessID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_reject },
+       { "&Value", aioc__type, &asn_DEF_RICcallProcessID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_optional }
+};
+static const asn_ioc_set_t asn_IOS_RICindication_IEs_1[] = {
+       { 8, 4, asn_IOS_RICindication_IEs_1_rows }
+};
+static const long asn_VAL_31_id_RICrequestID = 60030;
+static const long asn_VAL_31_reject = 0;
+static const long asn_VAL_31_mandatory = 2;
+static const long asn_VAL_32_id_RANfunctionID = 60003;
+static const long asn_VAL_32_reject = 0;
+static const long asn_VAL_32_mandatory = 2;
+static const long asn_VAL_33_id_RICcallProcessID = 60019;
+static const long asn_VAL_33_reject = 0;
+static const long asn_VAL_33_optional = 0;
+static const long asn_VAL_34_id_RICcontrolHeader = 60022;
+static const long asn_VAL_34_reject = 0;
+static const long asn_VAL_34_mandatory = 2;
+static const long asn_VAL_35_id_RICcontrolMessage = 60023;
+static const long asn_VAL_35_reject = 0;
+static const long asn_VAL_35_mandatory = 2;
+static const long asn_VAL_36_id_RICcontrolAckRequest = 60021;
+static const long asn_VAL_36_reject = 0;
+static const long asn_VAL_36_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RICcontrolRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_RICrequestID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_reject },
+       { "&Value", aioc__type, &asn_DEF_RICrequestID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_RANfunctionID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_reject },
+       { "&Value", aioc__type, &asn_DEF_RANfunctionID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_32_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_33_id_RICcallProcessID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_reject },
+       { "&Value", aioc__type, &asn_DEF_RICcallProcessID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_RICcontrolHeader },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_reject },
+       { "&Value", aioc__type, &asn_DEF_RICcontrolHeader },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_34_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_RICcontrolMessage },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject },
+       { "&Value", aioc__type, &asn_DEF_RICcontrolMessage },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_RICcontrolAckRequest },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject },
+       { "&Value", aioc__type, &asn_DEF_RICcontrolAckRequest },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_optional }
+};
+static const asn_ioc_set_t asn_IOS_RICcontrolRequest_IEs_1[] = {
+       { 6, 4, asn_IOS_RICcontrolRequest_IEs_1_rows }
+};
+static const long asn_VAL_37_id_RICrequestID = 60030;
+static const long asn_VAL_37_reject = 0;
+static const long asn_VAL_37_mandatory = 2;
+static const long asn_VAL_38_id_RANfunctionID = 60003;
+static const long asn_VAL_38_reject = 0;
+static const long asn_VAL_38_mandatory = 2;
+static const long asn_VAL_39_id_RICcallProcessID = 60019;
+static const long asn_VAL_39_reject = 0;
+static const long asn_VAL_39_optional = 0;
+static const long asn_VAL_40_id_RICcontrolStatus = 60024;
+static const long asn_VAL_40_reject = 0;
+static const long asn_VAL_40_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_RICcontrolAcknowledge_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_RICrequestID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_reject },
+       { "&Value", aioc__type, &asn_DEF_RICrequestID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_RANfunctionID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_reject },
+       { "&Value", aioc__type, &asn_DEF_RANfunctionID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_38_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_39_id_RICcallProcessID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject },
+       { "&Value", aioc__type, &asn_DEF_RICcallProcessID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_RICcontrolStatus },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_reject },
+       { "&Value", aioc__type, &asn_DEF_RICcontrolStatus },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_40_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_RICcontrolAcknowledge_IEs_1[] = {
+       { 4, 4, asn_IOS_RICcontrolAcknowledge_IEs_1_rows }
+};
+static const long asn_VAL_41_id_RICrequestID = 60030;
+static const long asn_VAL_41_reject = 0;
+static const long asn_VAL_41_mandatory = 2;
+static const long asn_VAL_42_id_RANfunctionID = 60003;
+static const long asn_VAL_42_reject = 0;
+static const long asn_VAL_42_mandatory = 2;
+static const long asn_VAL_43_id_RICcallProcessID = 60019;
+static const long asn_VAL_43_reject = 0;
+static const long asn_VAL_43_optional = 0;
+static const long asn_VAL_44_id_RICcause = 60020;
+static const long asn_VAL_44_ignore = 1;
+static const long asn_VAL_44_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_RICcontrolFailure_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_RICrequestID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject },
+       { "&Value", aioc__type, &asn_DEF_RICrequestID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_RANfunctionID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject },
+       { "&Value", aioc__type, &asn_DEF_RANfunctionID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_43_id_RICcallProcessID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_reject },
+       { "&Value", aioc__type, &asn_DEF_RICcallProcessID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_43_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_RICcause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_ignore },
+       { "&Value", aioc__type, &asn_DEF_RICcause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_RICcontrolFailure_IEs_1[] = {
+       { 4, 4, asn_IOS_RICcontrolFailure_IEs_1_rows }
+};
+static const long asn_VAL_45_id_RANfunctionsAdded = 60007;
+static const long asn_VAL_45_reject = 0;
+static const long asn_VAL_45_optional = 0;
+static const long asn_VAL_46_id_RANfunctionsModified = 60009;
+static const long asn_VAL_46_reject = 0;
+static const long asn_VAL_46_optional = 0;
+static const long asn_VAL_47_id_RANfunctionsDeleted = 60008;
+static const long asn_VAL_47_reject = 0;
+static const long asn_VAL_47_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RICserviceUpdate_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_RANfunctionsAdded },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_reject },
+       { "&Value", aioc__type, &asn_DEF_RANfunctions_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_RANfunctionsModified },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_reject },
+       { "&Value", aioc__type, &asn_DEF_RANfunctions_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_RANfunctionsDeleted },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_reject },
+       { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_47_optional }
+};
+static const asn_ioc_set_t asn_IOS_RICserviceUpdate_IEs_1[] = {
+       { 3, 4, asn_IOS_RICserviceUpdate_IEs_1_rows }
+};
+static const long asn_VAL_50_id_RANfunctionsAccepted = 60006;
+static const long asn_VAL_50_reject = 0;
+static const long asn_VAL_50_optional = 0;
+static const long asn_VAL_51_id_RANfunctionsRejected = 60010;
+static const long asn_VAL_51_reject = 0;
+static const long asn_VAL_51_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_RANfunctionsAccepted },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_reject },
+       { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_51_id_RANfunctionsRejected },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_reject },
+       { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_optional }
+};
+static const asn_ioc_set_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1[] = {
+       { 2, 4, asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows }
+};
+static const long asn_VAL_53_id_RANfunctionsRejected = 60010;
+static const long asn_VAL_53_ignore = 1;
+static const long asn_VAL_53_optional = 0;
+static const long asn_VAL_54_id_TimeToWait = 22;
+static const long asn_VAL_54_ignore = 1;
+static const long asn_VAL_54_optional = 0;
+static const long asn_VAL_55_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_55_ignore = 1;
+static const long asn_VAL_55_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RICserviceUpdateFailure_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_53_id_RANfunctionsRejected },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_53_ignore },
+       { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_53_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_TimeToWait },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_54_ignore },
+       { "&Value", aioc__type, &asn_DEF_TimeToWait },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_55_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_optional }
+};
+static const asn_ioc_set_t asn_IOS_RICserviceUpdateFailure_IEs_1[] = {
+       { 3, 4, asn_IOS_RICserviceUpdateFailure_IEs_1_rows }
+};
+static const long asn_VAL_56_id_RANfunctionsAccepted = 60006;
+static const long asn_VAL_56_reject = 0;
+static const long asn_VAL_56_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RICserviceQuery_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_RANfunctionsAccepted },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_reject },
+       { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_56_optional }
+};
+static const asn_ioc_set_t asn_IOS_RICserviceQuery_IEs_1[] = {
+       { 1, 4, asn_IOS_RICserviceQuery_IEs_1_rows }
+};
+static const long asn_VAL_57_id_Old_eNB_UE_X2AP_ID = 10;
+static const long asn_VAL_57_reject = 0;
+static const long asn_VAL_57_mandatory = 2;
+static const long asn_VAL_58_id_Cause = 5;
+static const long asn_VAL_58_ignore = 1;
+static const long asn_VAL_58_mandatory = 2;
+static const long asn_VAL_59_id_TargetCell_ID = 11;
+static const long asn_VAL_59_reject = 0;
+static const long asn_VAL_59_mandatory = 2;
+static const long asn_VAL_60_id_GUMMEI_ID = 23;
+static const long asn_VAL_60_reject = 0;
+static const long asn_VAL_60_mandatory = 2;
+static const long asn_VAL_61_id_UE_ContextInformation = 14;
+static const long asn_VAL_61_reject = 0;
+static const long asn_VAL_61_mandatory = 2;
+static const long asn_VAL_62_id_UE_HistoryInformation = 15;
+static const long asn_VAL_62_ignore = 1;
+static const long asn_VAL_62_mandatory = 2;
+static const long asn_VAL_63_id_TraceActivation = 13;
+static const long asn_VAL_63_ignore = 1;
+static const long asn_VAL_63_optional = 0;
+static const long asn_VAL_64_id_SRVCCOperationPossible = 36;
+static const long asn_VAL_64_ignore = 1;
+static const long asn_VAL_64_optional = 0;
+static const long asn_VAL_65_id_CSGMembershipStatus = 71;
+static const long asn_VAL_65_reject = 0;
+static const long asn_VAL_65_optional = 0;
+static const long asn_VAL_66_id_MobilityInformation = 82;
+static const long asn_VAL_66_ignore = 1;
+static const long asn_VAL_66_optional = 0;
+static const long asn_VAL_67_id_Masked_IMEISV = 98;
+static const long asn_VAL_67_ignore = 1;
+static const long asn_VAL_67_optional = 0;
+static const long asn_VAL_68_id_UE_HistoryInformationFromTheUE = 105;
+static const long asn_VAL_68_ignore = 1;
+static const long asn_VAL_68_optional = 0;
+static const long asn_VAL_69_id_ExpectedUEBehaviour = 104;
+static const long asn_VAL_69_ignore = 1;
+static const long asn_VAL_69_optional = 0;
+static const long asn_VAL_70_id_ProSeAuthorized = 103;
+static const long asn_VAL_70_ignore = 1;
+static const long asn_VAL_70_optional = 0;
+static const long asn_VAL_71_id_UE_ContextReferenceAtSeNB = 153;
+static const long asn_VAL_71_ignore = 1;
+static const long asn_VAL_71_optional = 0;
+static const long asn_VAL_72_id_Old_eNB_UE_X2AP_ID_Extension = 156;
+static const long asn_VAL_72_reject = 0;
+static const long asn_VAL_72_optional = 0;
+static const long asn_VAL_73_id_V2XServicesAuthorized = 176;
+static const long asn_VAL_73_ignore = 1;
+static const long asn_VAL_73_optional = 0;
+static const long asn_VAL_74_id_UE_ContextReferenceAtWT = 182;
+static const long asn_VAL_74_ignore = 1;
+static const long asn_VAL_74_optional = 0;
+static const long asn_VAL_75_id_NRUESecurityCapabilities = 248;
+static const long asn_VAL_75_ignore = 1;
+static const long asn_VAL_75_optional = 0;
+static const long asn_VAL_76_id_UE_ContextReferenceAtSgNB = 254;
+static const long asn_VAL_76_ignore = 1;
+static const long asn_VAL_76_optional = 0;
+static const long asn_VAL_77_id_AerialUEsubscriptionInformation = 277;
+static const long asn_VAL_77_ignore = 1;
+static const long asn_VAL_77_optional = 0;
+static const long asn_VAL_78_id_Subscription_Based_UE_DifferentiationInfo = 309;
+static const long asn_VAL_78_ignore = 1;
+static const long asn_VAL_78_optional = 0;
+static const asn_ioc_cell_t asn_IOS_HandoverRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_57_id_Old_eNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_TargetCell_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_reject },
+       { "&Value", aioc__type, &asn_DEF_ECGI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_GUMMEI_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_reject },
+       { "&Value", aioc__type, &asn_DEF_GUMMEI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_UE_ContextInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_ContextInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_62_id_UE_HistoryInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_HistoryInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_TraceActivation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_ignore },
+       { "&Value", aioc__type, &asn_DEF_TraceActivation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_SRVCCOperationPossible },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_ignore },
+       { "&Value", aioc__type, &asn_DEF_SRVCCOperationPossible },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_CSGMembershipStatus },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_reject },
+       { "&Value", aioc__type, &asn_DEF_CSGMembershipStatus },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_MobilityInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_ignore },
+       { "&Value", aioc__type, &asn_DEF_MobilityInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_67_id_Masked_IMEISV },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_ignore },
+       { "&Value", aioc__type, &asn_DEF_Masked_IMEISV },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_UE_HistoryInformationFromTheUE },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_HistoryInformationFromTheUE },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_ExpectedUEBehaviour },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_ignore },
+       { "&Value", aioc__type, &asn_DEF_ExpectedUEBehaviour },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_ProSeAuthorized },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_ignore },
+       { "&Value", aioc__type, &asn_DEF_ProSeAuthorized },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_70_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_71_id_UE_ContextReferenceAtSeNB },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_ContextReferenceAtSeNB },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_71_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_72_id_Old_eNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_72_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_72_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_73_id_V2XServicesAuthorized },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_73_ignore },
+       { "&Value", aioc__type, &asn_DEF_V2XServicesAuthorized },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_73_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_74_id_UE_ContextReferenceAtWT },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_74_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_ContextReferenceAtWT },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_74_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_75_id_NRUESecurityCapabilities },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_75_ignore },
+       { "&Value", aioc__type, &asn_DEF_NRUESecurityCapabilities },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_75_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_76_id_UE_ContextReferenceAtSgNB },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_76_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_ContextReferenceAtSgNB },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_76_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_77_id_AerialUEsubscriptionInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_77_ignore },
+       { "&Value", aioc__type, &asn_DEF_AerialUEsubscriptionInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_77_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_78_id_Subscription_Based_UE_DifferentiationInfo },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_78_ignore },
+       { "&Value", aioc__type, &asn_DEF_Subscription_Based_UE_DifferentiationInfo },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_78_optional }
+};
+static const asn_ioc_set_t asn_IOS_HandoverRequest_IEs_1[] = {
+       { 22, 4, asn_IOS_HandoverRequest_IEs_1_rows }
+};
+static const long asn_VAL_80_id_Old_eNB_UE_X2AP_ID = 10;
+static const long asn_VAL_80_ignore = 1;
+static const long asn_VAL_80_mandatory = 2;
+static const long asn_VAL_81_id_New_eNB_UE_X2AP_ID = 9;
+static const long asn_VAL_81_ignore = 1;
+static const long asn_VAL_81_mandatory = 2;
+static const long asn_VAL_82_id_E_RABs_Admitted_List = 1;
+static const long asn_VAL_82_ignore = 1;
+static const long asn_VAL_82_mandatory = 2;
+static const long asn_VAL_83_id_E_RABs_NotAdmitted_List = 3;
+static const long asn_VAL_83_ignore = 1;
+static const long asn_VAL_83_optional = 0;
+static const long asn_VAL_84_id_TargeteNBtoSource_eNBTransparentContainer = 12;
+static const long asn_VAL_84_ignore = 1;
+static const long asn_VAL_84_mandatory = 2;
+static const long asn_VAL_85_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_85_ignore = 1;
+static const long asn_VAL_85_optional = 0;
+static const long asn_VAL_86_id_UE_ContextKeptIndicator = 154;
+static const long asn_VAL_86_ignore = 1;
+static const long asn_VAL_86_optional = 0;
+static const long asn_VAL_87_id_SeNB_UE_X2AP_ID_Extension = 158;
+static const long asn_VAL_87_ignore = 1;
+static const long asn_VAL_87_optional = 0;
+static const long asn_VAL_88_id_Old_eNB_UE_X2AP_ID_Extension = 156;
+static const long asn_VAL_88_ignore = 1;
+static const long asn_VAL_88_optional = 0;
+static const long asn_VAL_89_id_New_eNB_UE_X2AP_ID_Extension = 155;
+static const long asn_VAL_89_reject = 0;
+static const long asn_VAL_89_optional = 0;
+static const long asn_VAL_90_id_WT_UE_ContextKeptIndicator = 183;
+static const long asn_VAL_90_ignore = 1;
+static const long asn_VAL_90_optional = 0;
+static const asn_ioc_cell_t asn_IOS_HandoverRequestAcknowledge_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_80_id_Old_eNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_80_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_80_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_81_id_New_eNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_81_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_81_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_82_id_E_RABs_Admitted_List },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_82_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_82_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_83_id_E_RABs_NotAdmitted_List },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_83_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RAB_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_83_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_84_id_TargeteNBtoSource_eNBTransparentContainer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_84_ignore },
+       { "&Value", aioc__type, &asn_DEF_TargeteNBtoSource_eNBTransparentContainer },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_84_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_85_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_85_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_85_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_86_id_UE_ContextKeptIndicator },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_86_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_ContextKeptIndicator },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_86_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_87_id_SeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_87_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_87_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_88_id_Old_eNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_88_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_88_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_89_id_New_eNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_89_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_89_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_90_id_WT_UE_ContextKeptIndicator },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_90_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_ContextKeptIndicator },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_90_optional }
+};
+static const asn_ioc_set_t asn_IOS_HandoverRequestAcknowledge_IEs_1[] = {
+       { 11, 4, asn_IOS_HandoverRequestAcknowledge_IEs_1_rows }
+};
+static const long asn_VAL_92_id_Old_eNB_UE_X2AP_ID = 10;
+static const long asn_VAL_92_ignore = 1;
+static const long asn_VAL_92_mandatory = 2;
+static const long asn_VAL_93_id_Cause = 5;
+static const long asn_VAL_93_ignore = 1;
+static const long asn_VAL_93_mandatory = 2;
+static const long asn_VAL_94_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_94_ignore = 1;
+static const long asn_VAL_94_optional = 0;
+static const long asn_VAL_95_id_Old_eNB_UE_X2AP_ID_Extension = 156;
+static const long asn_VAL_95_ignore = 1;
+static const long asn_VAL_95_optional = 0;
+static const asn_ioc_cell_t asn_IOS_HandoverPreparationFailure_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_92_id_Old_eNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_92_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_92_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_93_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_93_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_93_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_94_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_94_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_94_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_95_id_Old_eNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_95_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_95_optional }
+};
+static const asn_ioc_set_t asn_IOS_HandoverPreparationFailure_IEs_1[] = {
+       { 4, 4, asn_IOS_HandoverPreparationFailure_IEs_1_rows }
+};
+static const long asn_VAL_96_id_HandoverReportType = 54;
+static const long asn_VAL_96_ignore = 1;
+static const long asn_VAL_96_mandatory = 2;
+static const long asn_VAL_97_id_Cause = 5;
+static const long asn_VAL_97_ignore = 1;
+static const long asn_VAL_97_mandatory = 2;
+static const long asn_VAL_98_id_SourceCellECGI = 52;
+static const long asn_VAL_98_ignore = 1;
+static const long asn_VAL_98_mandatory = 2;
+static const long asn_VAL_99_id_FailureCellECGI = 53;
+static const long asn_VAL_99_ignore = 1;
+static const long asn_VAL_99_mandatory = 2;
+static const long asn_VAL_100_id_Re_establishmentCellECGI = 49;
+static const long asn_VAL_100_ignore = 1;
+static const long asn_VAL_100_conditional = 1;
+static const long asn_VAL_101_id_TargetCellInUTRAN = 81;
+static const long asn_VAL_101_ignore = 1;
+static const long asn_VAL_101_conditional = 1;
+static const long asn_VAL_102_id_SourceCellCRNTI = 83;
+static const long asn_VAL_102_ignore = 1;
+static const long asn_VAL_102_optional = 0;
+static const long asn_VAL_103_id_MobilityInformation = 82;
+static const long asn_VAL_103_ignore = 1;
+static const long asn_VAL_103_optional = 0;
+static const long asn_VAL_104_id_UE_RLF_Report_Container = 60;
+static const long asn_VAL_104_ignore = 1;
+static const long asn_VAL_104_optional = 0;
+static const long asn_VAL_105_id_UE_RLF_Report_Container_for_extended_bands = 107;
+static const long asn_VAL_105_ignore = 1;
+static const long asn_VAL_105_optional = 0;
+static const asn_ioc_cell_t asn_IOS_HandoverReport_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_96_id_HandoverReportType },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_96_ignore },
+       { "&Value", aioc__type, &asn_DEF_HandoverReportType },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_96_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_97_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_97_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_97_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_98_id_SourceCellECGI },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_98_ignore },
+       { "&Value", aioc__type, &asn_DEF_ECGI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_98_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_99_id_FailureCellECGI },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_99_ignore },
+       { "&Value", aioc__type, &asn_DEF_ECGI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_99_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_100_id_Re_establishmentCellECGI },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_100_ignore },
+       { "&Value", aioc__type, &asn_DEF_ECGI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_100_conditional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_101_id_TargetCellInUTRAN },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_101_ignore },
+       { "&Value", aioc__type, &asn_DEF_TargetCellInUTRAN },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_101_conditional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_102_id_SourceCellCRNTI },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_102_ignore },
+       { "&Value", aioc__type, &asn_DEF_CRNTI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_102_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_103_id_MobilityInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_103_ignore },
+       { "&Value", aioc__type, &asn_DEF_MobilityInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_103_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_104_id_UE_RLF_Report_Container },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_104_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_RLF_Report_Container },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_104_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_105_id_UE_RLF_Report_Container_for_extended_bands },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_105_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_RLF_Report_Container_for_extended_bands },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_105_optional }
+};
+static const asn_ioc_set_t asn_IOS_HandoverReport_IEs_1[] = {
+       { 10, 4, asn_IOS_HandoverReport_IEs_1_rows }
+};
+static const long asn_VAL_106_id_Old_eNB_UE_X2AP_ID = 10;
+static const long asn_VAL_106_reject = 0;
+static const long asn_VAL_106_mandatory = 2;
+static const long asn_VAL_107_id_New_eNB_UE_X2AP_ID = 9;
+static const long asn_VAL_107_reject = 0;
+static const long asn_VAL_107_mandatory = 2;
+static const long asn_VAL_108_id_E_RABs_SubjectToStatusTransfer_List = 18;
+static const long asn_VAL_108_ignore = 1;
+static const long asn_VAL_108_mandatory = 2;
+static const long asn_VAL_109_id_Old_eNB_UE_X2AP_ID_Extension = 156;
+static const long asn_VAL_109_reject = 0;
+static const long asn_VAL_109_optional = 0;
+static const long asn_VAL_110_id_New_eNB_UE_X2AP_ID_Extension = 155;
+static const long asn_VAL_110_reject = 0;
+static const long asn_VAL_110_optional = 0;
+static const long asn_VAL_111_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_111_ignore = 1;
+static const long asn_VAL_111_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SNStatusTransfer_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_106_id_Old_eNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_106_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_106_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_107_id_New_eNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_107_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_107_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_108_id_E_RABs_SubjectToStatusTransfer_List },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_108_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_SubjectToStatusTransfer_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_108_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_109_id_Old_eNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_109_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_109_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_110_id_New_eNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_110_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_110_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_111_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_111_ignore },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_111_optional }
+};
+static const asn_ioc_set_t asn_IOS_SNStatusTransfer_IEs_1[] = {
+       { 6, 4, asn_IOS_SNStatusTransfer_IEs_1_rows }
+};
+static const long asn_VAL_113_id_Old_eNB_UE_X2AP_ID = 10;
+static const long asn_VAL_113_reject = 0;
+static const long asn_VAL_113_mandatory = 2;
+static const long asn_VAL_114_id_New_eNB_UE_X2AP_ID = 9;
+static const long asn_VAL_114_reject = 0;
+static const long asn_VAL_114_mandatory = 2;
+static const long asn_VAL_115_id_Old_eNB_UE_X2AP_ID_Extension = 156;
+static const long asn_VAL_115_reject = 0;
+static const long asn_VAL_115_optional = 0;
+static const long asn_VAL_116_id_New_eNB_UE_X2AP_ID_Extension = 155;
+static const long asn_VAL_116_reject = 0;
+static const long asn_VAL_116_optional = 0;
+static const long asn_VAL_117_id_SIPTO_BearerDeactivationIndication = 164;
+static const long asn_VAL_117_ignore = 1;
+static const long asn_VAL_117_optional = 0;
+static const long asn_VAL_118_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_118_ignore = 1;
+static const long asn_VAL_118_optional = 0;
+static const asn_ioc_cell_t asn_IOS_UEContextRelease_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_113_id_Old_eNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_113_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_113_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_114_id_New_eNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_114_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_114_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_115_id_Old_eNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_115_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_115_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_116_id_New_eNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_116_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_116_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_117_id_SIPTO_BearerDeactivationIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_117_ignore },
+       { "&Value", aioc__type, &asn_DEF_SIPTOBearerDeactivationIndication },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_117_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_118_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_118_ignore },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_118_optional }
+};
+static const asn_ioc_set_t asn_IOS_UEContextRelease_IEs_1[] = {
+       { 6, 4, asn_IOS_UEContextRelease_IEs_1_rows }
+};
+static const long asn_VAL_119_id_Old_eNB_UE_X2AP_ID = 10;
+static const long asn_VAL_119_reject = 0;
+static const long asn_VAL_119_mandatory = 2;
+static const long asn_VAL_120_id_New_eNB_UE_X2AP_ID = 9;
+static const long asn_VAL_120_ignore = 1;
+static const long asn_VAL_120_optional = 0;
+static const long asn_VAL_121_id_Cause = 5;
+static const long asn_VAL_121_ignore = 1;
+static const long asn_VAL_121_mandatory = 2;
+static const long asn_VAL_122_id_Old_eNB_UE_X2AP_ID_Extension = 156;
+static const long asn_VAL_122_reject = 0;
+static const long asn_VAL_122_optional = 0;
+static const long asn_VAL_123_id_New_eNB_UE_X2AP_ID_Extension = 155;
+static const long asn_VAL_123_ignore = 1;
+static const long asn_VAL_123_optional = 0;
+static const asn_ioc_cell_t asn_IOS_HandoverCancel_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_119_id_Old_eNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_119_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_119_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_120_id_New_eNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_120_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_120_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_121_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_121_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_121_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_122_id_Old_eNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_122_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_122_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_123_id_New_eNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_123_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_123_optional }
+};
+static const asn_ioc_set_t asn_IOS_HandoverCancel_IEs_1[] = {
+       { 5, 4, asn_IOS_HandoverCancel_IEs_1_rows }
+};
+static const long asn_VAL_124_id_Old_eNB_UE_X2AP_ID = 10;
+static const long asn_VAL_124_ignore = 1;
+static const long asn_VAL_124_optional = 0;
+static const long asn_VAL_125_id_New_eNB_UE_X2AP_ID = 9;
+static const long asn_VAL_125_ignore = 1;
+static const long asn_VAL_125_optional = 0;
+static const long asn_VAL_126_id_Cause = 5;
+static const long asn_VAL_126_ignore = 1;
+static const long asn_VAL_126_optional = 0;
+static const long asn_VAL_127_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_127_ignore = 1;
+static const long asn_VAL_127_optional = 0;
+static const long asn_VAL_128_id_Old_eNB_UE_X2AP_ID_Extension = 156;
+static const long asn_VAL_128_ignore = 1;
+static const long asn_VAL_128_optional = 0;
+static const long asn_VAL_129_id_New_eNB_UE_X2AP_ID_Extension = 155;
+static const long asn_VAL_129_ignore = 1;
+static const long asn_VAL_129_optional = 0;
+static const long asn_VAL_130_id_Old_SgNB_UE_X2AP_ID = 264;
+static const long asn_VAL_130_ignore = 1;
+static const long asn_VAL_130_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ErrorIndication_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_124_id_Old_eNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_124_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_124_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_125_id_New_eNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_125_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_125_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_126_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_126_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_126_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_127_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_127_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_127_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_128_id_Old_eNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_128_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_128_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_129_id_New_eNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_129_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_129_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_130_id_Old_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_130_ignore },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_130_optional }
+};
+static const asn_ioc_set_t asn_IOS_ErrorIndication_IEs_1[] = {
+       { 7, 4, asn_IOS_ErrorIndication_IEs_1_rows }
+};
+static const long asn_VAL_131_id_Cause = 5;
+static const long asn_VAL_131_ignore = 1;
+static const long asn_VAL_131_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ResetRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_131_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_131_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_131_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ResetRequest_IEs_1[] = {
+       { 1, 4, asn_IOS_ResetRequest_IEs_1_rows }
+};
+static const long asn_VAL_132_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_132_ignore = 1;
+static const long asn_VAL_132_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ResetResponse_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_132_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_132_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_132_optional }
+};
+static const asn_ioc_set_t asn_IOS_ResetResponse_IEs_1[] = {
+       { 1, 4, asn_IOS_ResetResponse_IEs_1_rows }
+};
+static const long asn_VAL_133_id_GlobalENB_ID = 21;
+static const long asn_VAL_133_reject = 0;
+static const long asn_VAL_133_mandatory = 2;
+static const long asn_VAL_134_id_ServedCells = 20;
+static const long asn_VAL_134_reject = 0;
+static const long asn_VAL_134_mandatory = 2;
+static const long asn_VAL_135_id_GUGroupIDList = 24;
+static const long asn_VAL_135_reject = 0;
+static const long asn_VAL_135_optional = 0;
+static const long asn_VAL_136_id_LHN_ID = 159;
+static const long asn_VAL_136_ignore = 1;
+static const long asn_VAL_136_optional = 0;
+static const asn_ioc_cell_t asn_IOS_X2SetupRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_133_id_GlobalENB_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_133_reject },
+       { "&Value", aioc__type, &asn_DEF_GlobalENB_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_133_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_134_id_ServedCells },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_134_reject },
+       { "&Value", aioc__type, &asn_DEF_ServedCells },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_134_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_135_id_GUGroupIDList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_135_reject },
+       { "&Value", aioc__type, &asn_DEF_GUGroupIDList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_135_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_136_id_LHN_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_136_ignore },
+       { "&Value", aioc__type, &asn_DEF_LHN_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_136_optional }
+};
+static const asn_ioc_set_t asn_IOS_X2SetupRequest_IEs_1[] = {
+       { 4, 4, asn_IOS_X2SetupRequest_IEs_1_rows }
+};
+static const long asn_VAL_137_id_GlobalENB_ID = 21;
+static const long asn_VAL_137_reject = 0;
+static const long asn_VAL_137_mandatory = 2;
+static const long asn_VAL_138_id_ServedCells = 20;
+static const long asn_VAL_138_reject = 0;
+static const long asn_VAL_138_mandatory = 2;
+static const long asn_VAL_139_id_GUGroupIDList = 24;
+static const long asn_VAL_139_reject = 0;
+static const long asn_VAL_139_optional = 0;
+static const long asn_VAL_140_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_140_ignore = 1;
+static const long asn_VAL_140_optional = 0;
+static const long asn_VAL_141_id_LHN_ID = 159;
+static const long asn_VAL_141_ignore = 1;
+static const long asn_VAL_141_optional = 0;
+static const asn_ioc_cell_t asn_IOS_X2SetupResponse_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_137_id_GlobalENB_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_137_reject },
+       { "&Value", aioc__type, &asn_DEF_GlobalENB_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_137_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_138_id_ServedCells },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_138_reject },
+       { "&Value", aioc__type, &asn_DEF_ServedCells },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_138_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_139_id_GUGroupIDList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_139_reject },
+       { "&Value", aioc__type, &asn_DEF_GUGroupIDList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_139_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_140_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_140_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_140_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_141_id_LHN_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_141_ignore },
+       { "&Value", aioc__type, &asn_DEF_LHN_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_141_optional }
+};
+static const asn_ioc_set_t asn_IOS_X2SetupResponse_IEs_1[] = {
+       { 5, 4, asn_IOS_X2SetupResponse_IEs_1_rows }
+};
+static const long asn_VAL_142_id_Cause = 5;
+static const long asn_VAL_142_ignore = 1;
+static const long asn_VAL_142_mandatory = 2;
+static const long asn_VAL_143_id_TimeToWait = 22;
+static const long asn_VAL_143_ignore = 1;
+static const long asn_VAL_143_optional = 0;
+static const long asn_VAL_144_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_144_ignore = 1;
+static const long asn_VAL_144_optional = 0;
+static const asn_ioc_cell_t asn_IOS_X2SetupFailure_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_142_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_142_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_142_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_143_id_TimeToWait },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_143_ignore },
+       { "&Value", aioc__type, &asn_DEF_TimeToWait },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_143_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_144_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_144_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_144_optional }
+};
+static const asn_ioc_set_t asn_IOS_X2SetupFailure_IEs_1[] = {
+       { 3, 4, asn_IOS_X2SetupFailure_IEs_1_rows }
+};
+static const long asn_VAL_145_id_CellInformation = 6;
+static const long asn_VAL_145_ignore = 1;
+static const long asn_VAL_145_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_LoadInformation_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_145_id_CellInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_145_ignore },
+       { "&Value", aioc__type, &asn_DEF_CellInformation_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_145_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_LoadInformation_IEs_1[] = {
+       { 1, 4, asn_IOS_LoadInformation_IEs_1_rows }
+};
+static const long asn_VAL_147_id_ServedCellsToAdd = 25;
+static const long asn_VAL_147_reject = 0;
+static const long asn_VAL_147_optional = 0;
+static const long asn_VAL_148_id_ServedCellsToModify = 26;
+static const long asn_VAL_148_reject = 0;
+static const long asn_VAL_148_optional = 0;
+static const long asn_VAL_149_id_ServedCellsToDelete = 27;
+static const long asn_VAL_149_reject = 0;
+static const long asn_VAL_149_optional = 0;
+static const long asn_VAL_150_id_GUGroupIDToAddList = 34;
+static const long asn_VAL_150_reject = 0;
+static const long asn_VAL_150_optional = 0;
+static const long asn_VAL_151_id_GUGroupIDToDeleteList = 35;
+static const long asn_VAL_151_reject = 0;
+static const long asn_VAL_151_optional = 0;
+static const long asn_VAL_152_id_CoverageModificationList = 143;
+static const long asn_VAL_152_reject = 0;
+static const long asn_VAL_152_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ENBConfigurationUpdate_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_147_id_ServedCellsToAdd },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_147_reject },
+       { "&Value", aioc__type, &asn_DEF_ServedCells },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_147_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_148_id_ServedCellsToModify },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_148_reject },
+       { "&Value", aioc__type, &asn_DEF_ServedCellsToModify },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_148_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_149_id_ServedCellsToDelete },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_149_reject },
+       { "&Value", aioc__type, &asn_DEF_Old_ECGIs },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_149_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_150_id_GUGroupIDToAddList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_150_reject },
+       { "&Value", aioc__type, &asn_DEF_GUGroupIDList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_150_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_151_id_GUGroupIDToDeleteList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_151_reject },
+       { "&Value", aioc__type, &asn_DEF_GUGroupIDList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_151_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_152_id_CoverageModificationList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_152_reject },
+       { "&Value", aioc__type, &asn_DEF_CoverageModificationList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_152_optional }
+};
+static const asn_ioc_set_t asn_IOS_ENBConfigurationUpdate_IEs_1[] = {
+       { 6, 4, asn_IOS_ENBConfigurationUpdate_IEs_1_rows }
+};
+static const long asn_VAL_153_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_153_ignore = 1;
+static const long asn_VAL_153_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ENBConfigurationUpdateAcknowledge_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_153_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_153_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_153_optional }
+};
+static const asn_ioc_set_t asn_IOS_ENBConfigurationUpdateAcknowledge_IEs_1[] = {
+       { 1, 4, asn_IOS_ENBConfigurationUpdateAcknowledge_IEs_1_rows }
+};
+static const long asn_VAL_154_id_Cause = 5;
+static const long asn_VAL_154_ignore = 1;
+static const long asn_VAL_154_mandatory = 2;
+static const long asn_VAL_155_id_TimeToWait = 22;
+static const long asn_VAL_155_ignore = 1;
+static const long asn_VAL_155_optional = 0;
+static const long asn_VAL_156_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_156_ignore = 1;
+static const long asn_VAL_156_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ENBConfigurationUpdateFailure_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_154_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_154_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_154_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_155_id_TimeToWait },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_155_ignore },
+       { "&Value", aioc__type, &asn_DEF_TimeToWait },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_155_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_156_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_156_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_156_optional }
+};
+static const asn_ioc_set_t asn_IOS_ENBConfigurationUpdateFailure_IEs_1[] = {
+       { 3, 4, asn_IOS_ENBConfigurationUpdateFailure_IEs_1_rows }
+};
+static const long asn_VAL_157_id_ENB1_Measurement_ID = 39;
+static const long asn_VAL_157_reject = 0;
+static const long asn_VAL_157_mandatory = 2;
+static const long asn_VAL_158_id_ENB2_Measurement_ID = 40;
+static const long asn_VAL_158_ignore = 1;
+static const long asn_VAL_158_conditional = 1;
+static const long asn_VAL_159_id_Registration_Request = 28;
+static const long asn_VAL_159_reject = 0;
+static const long asn_VAL_159_mandatory = 2;
+static const long asn_VAL_160_id_ReportCharacteristics = 38;
+static const long asn_VAL_160_reject = 0;
+static const long asn_VAL_160_optional = 0;
+static const long asn_VAL_161_id_CellToReport = 29;
+static const long asn_VAL_161_ignore = 1;
+static const long asn_VAL_161_mandatory = 2;
+static const long asn_VAL_162_id_ReportingPeriodicity = 30;
+static const long asn_VAL_162_ignore = 1;
+static const long asn_VAL_162_optional = 0;
+static const long asn_VAL_163_id_PartialSuccessIndicator = 64;
+static const long asn_VAL_163_ignore = 1;
+static const long asn_VAL_163_optional = 0;
+static const long asn_VAL_164_id_ReportingPeriodicityRSRPMR = 109;
+static const long asn_VAL_164_ignore = 1;
+static const long asn_VAL_164_optional = 0;
+static const long asn_VAL_165_id_ReportingPeriodicityCSIR = 145;
+static const long asn_VAL_165_ignore = 1;
+static const long asn_VAL_165_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ResourceStatusRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_157_id_ENB1_Measurement_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_157_reject },
+       { "&Value", aioc__type, &asn_DEF_Measurement_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_157_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_158_id_ENB2_Measurement_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_158_ignore },
+       { "&Value", aioc__type, &asn_DEF_Measurement_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_158_conditional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_159_id_Registration_Request },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_159_reject },
+       { "&Value", aioc__type, &asn_DEF_Registration_Request },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_159_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_160_id_ReportCharacteristics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_160_reject },
+       { "&Value", aioc__type, &asn_DEF_ReportCharacteristics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_160_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_161_id_CellToReport },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_161_ignore },
+       { "&Value", aioc__type, &asn_DEF_CellToReport_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_161_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_162_id_ReportingPeriodicity },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_162_ignore },
+       { "&Value", aioc__type, &asn_DEF_ReportingPeriodicity },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_162_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_163_id_PartialSuccessIndicator },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_163_ignore },
+       { "&Value", aioc__type, &asn_DEF_PartialSuccessIndicator },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_163_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_164_id_ReportingPeriodicityRSRPMR },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_164_ignore },
+       { "&Value", aioc__type, &asn_DEF_ReportingPeriodicityRSRPMR },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_164_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_165_id_ReportingPeriodicityCSIR },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_165_ignore },
+       { "&Value", aioc__type, &asn_DEF_ReportingPeriodicityCSIR },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_165_optional }
+};
+static const asn_ioc_set_t asn_IOS_ResourceStatusRequest_IEs_1[] = {
+       { 9, 4, asn_IOS_ResourceStatusRequest_IEs_1_rows }
+};
+static const long asn_VAL_167_id_ENB1_Measurement_ID = 39;
+static const long asn_VAL_167_reject = 0;
+static const long asn_VAL_167_mandatory = 2;
+static const long asn_VAL_168_id_ENB2_Measurement_ID = 40;
+static const long asn_VAL_168_reject = 0;
+static const long asn_VAL_168_mandatory = 2;
+static const long asn_VAL_169_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_169_ignore = 1;
+static const long asn_VAL_169_optional = 0;
+static const long asn_VAL_170_id_MeasurementInitiationResult_List = 65;
+static const long asn_VAL_170_ignore = 1;
+static const long asn_VAL_170_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ResourceStatusResponse_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_167_id_ENB1_Measurement_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_167_reject },
+       { "&Value", aioc__type, &asn_DEF_Measurement_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_167_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_168_id_ENB2_Measurement_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_168_reject },
+       { "&Value", aioc__type, &asn_DEF_Measurement_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_168_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_169_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_169_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_169_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_170_id_MeasurementInitiationResult_List },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_170_ignore },
+       { "&Value", aioc__type, &asn_DEF_MeasurementInitiationResult_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_170_optional }
+};
+static const asn_ioc_set_t asn_IOS_ResourceStatusResponse_IEs_1[] = {
+       { 4, 4, asn_IOS_ResourceStatusResponse_IEs_1_rows }
+};
+static const long asn_VAL_173_id_ENB1_Measurement_ID = 39;
+static const long asn_VAL_173_reject = 0;
+static const long asn_VAL_173_mandatory = 2;
+static const long asn_VAL_174_id_ENB2_Measurement_ID = 40;
+static const long asn_VAL_174_reject = 0;
+static const long asn_VAL_174_mandatory = 2;
+static const long asn_VAL_175_id_Cause = 5;
+static const long asn_VAL_175_ignore = 1;
+static const long asn_VAL_175_mandatory = 2;
+static const long asn_VAL_176_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_176_ignore = 1;
+static const long asn_VAL_176_optional = 0;
+static const long asn_VAL_177_id_CompleteFailureCauseInformation_List = 68;
+static const long asn_VAL_177_ignore = 1;
+static const long asn_VAL_177_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ResourceStatusFailure_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_173_id_ENB1_Measurement_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_173_reject },
+       { "&Value", aioc__type, &asn_DEF_Measurement_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_173_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_174_id_ENB2_Measurement_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_174_reject },
+       { "&Value", aioc__type, &asn_DEF_Measurement_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_174_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_175_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_175_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_175_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_176_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_176_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_176_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_177_id_CompleteFailureCauseInformation_List },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_177_ignore },
+       { "&Value", aioc__type, &asn_DEF_CompleteFailureCauseInformation_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_177_optional }
+};
+static const asn_ioc_set_t asn_IOS_ResourceStatusFailure_IEs_1[] = {
+       { 5, 4, asn_IOS_ResourceStatusFailure_IEs_1_rows }
+};
+static const long asn_VAL_179_id_ENB1_Measurement_ID = 39;
+static const long asn_VAL_179_reject = 0;
+static const long asn_VAL_179_mandatory = 2;
+static const long asn_VAL_180_id_ENB2_Measurement_ID = 40;
+static const long asn_VAL_180_reject = 0;
+static const long asn_VAL_180_mandatory = 2;
+static const long asn_VAL_181_id_CellMeasurementResult = 32;
+static const long asn_VAL_181_ignore = 1;
+static const long asn_VAL_181_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ResourceStatusUpdate_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_179_id_ENB1_Measurement_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_179_reject },
+       { "&Value", aioc__type, &asn_DEF_Measurement_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_179_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_180_id_ENB2_Measurement_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_180_reject },
+       { "&Value", aioc__type, &asn_DEF_Measurement_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_180_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_181_id_CellMeasurementResult },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_181_ignore },
+       { "&Value", aioc__type, &asn_DEF_CellMeasurementResult_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_181_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ResourceStatusUpdate_IEs_1[] = {
+       { 3, 4, asn_IOS_ResourceStatusUpdate_IEs_1_rows }
+};
+static const long asn_VAL_183_id_ENB1_Cell_ID = 43;
+static const long asn_VAL_183_reject = 0;
+static const long asn_VAL_183_mandatory = 2;
+static const long asn_VAL_184_id_ENB2_Cell_ID = 44;
+static const long asn_VAL_184_reject = 0;
+static const long asn_VAL_184_mandatory = 2;
+static const long asn_VAL_185_id_ENB1_Mobility_Parameters = 46;
+static const long asn_VAL_185_ignore = 1;
+static const long asn_VAL_185_optional = 0;
+static const long asn_VAL_186_id_ENB2_Proposed_Mobility_Parameters = 45;
+static const long asn_VAL_186_reject = 0;
+static const long asn_VAL_186_mandatory = 2;
+static const long asn_VAL_187_id_Cause = 5;
+static const long asn_VAL_187_reject = 0;
+static const long asn_VAL_187_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_MobilityChangeRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_183_id_ENB1_Cell_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_183_reject },
+       { "&Value", aioc__type, &asn_DEF_ECGI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_183_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_184_id_ENB2_Cell_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_184_reject },
+       { "&Value", aioc__type, &asn_DEF_ECGI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_184_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_185_id_ENB1_Mobility_Parameters },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_185_ignore },
+       { "&Value", aioc__type, &asn_DEF_MobilityParametersInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_185_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_186_id_ENB2_Proposed_Mobility_Parameters },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_186_reject },
+       { "&Value", aioc__type, &asn_DEF_MobilityParametersInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_186_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_187_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_187_reject },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_187_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_MobilityChangeRequest_IEs_1[] = {
+       { 5, 4, asn_IOS_MobilityChangeRequest_IEs_1_rows }
+};
+static const long asn_VAL_188_id_ENB1_Cell_ID = 43;
+static const long asn_VAL_188_reject = 0;
+static const long asn_VAL_188_mandatory = 2;
+static const long asn_VAL_189_id_ENB2_Cell_ID = 44;
+static const long asn_VAL_189_reject = 0;
+static const long asn_VAL_189_mandatory = 2;
+static const long asn_VAL_190_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_190_ignore = 1;
+static const long asn_VAL_190_optional = 0;
+static const asn_ioc_cell_t asn_IOS_MobilityChangeAcknowledge_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_188_id_ENB1_Cell_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_188_reject },
+       { "&Value", aioc__type, &asn_DEF_ECGI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_188_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_189_id_ENB2_Cell_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_189_reject },
+       { "&Value", aioc__type, &asn_DEF_ECGI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_189_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_190_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_190_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_190_optional }
+};
+static const asn_ioc_set_t asn_IOS_MobilityChangeAcknowledge_IEs_1[] = {
+       { 3, 4, asn_IOS_MobilityChangeAcknowledge_IEs_1_rows }
+};
+static const long asn_VAL_191_id_ENB1_Cell_ID = 43;
+static const long asn_VAL_191_ignore = 1;
+static const long asn_VAL_191_mandatory = 2;
+static const long asn_VAL_192_id_ENB2_Cell_ID = 44;
+static const long asn_VAL_192_ignore = 1;
+static const long asn_VAL_192_mandatory = 2;
+static const long asn_VAL_193_id_Cause = 5;
+static const long asn_VAL_193_ignore = 1;
+static const long asn_VAL_193_mandatory = 2;
+static const long asn_VAL_194_id_ENB2_Mobility_Parameters_Modification_Range = 47;
+static const long asn_VAL_194_ignore = 1;
+static const long asn_VAL_194_optional = 0;
+static const long asn_VAL_195_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_195_ignore = 1;
+static const long asn_VAL_195_optional = 0;
+static const asn_ioc_cell_t asn_IOS_MobilityChangeFailure_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_191_id_ENB1_Cell_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_191_ignore },
+       { "&Value", aioc__type, &asn_DEF_ECGI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_191_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_192_id_ENB2_Cell_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_192_ignore },
+       { "&Value", aioc__type, &asn_DEF_ECGI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_192_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_193_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_193_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_193_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_194_id_ENB2_Mobility_Parameters_Modification_Range },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_194_ignore },
+       { "&Value", aioc__type, &asn_DEF_MobilityParametersModificationRange },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_194_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_195_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_195_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_195_optional }
+};
+static const asn_ioc_set_t asn_IOS_MobilityChangeFailure_IEs_1[] = {
+       { 5, 4, asn_IOS_MobilityChangeFailure_IEs_1_rows }
+};
+static const long asn_VAL_196_id_FailureCellPCI = 48;
+static const long asn_VAL_196_ignore = 1;
+static const long asn_VAL_196_mandatory = 2;
+static const long asn_VAL_197_id_Re_establishmentCellECGI = 49;
+static const long asn_VAL_197_ignore = 1;
+static const long asn_VAL_197_mandatory = 2;
+static const long asn_VAL_198_id_FailureCellCRNTI = 50;
+static const long asn_VAL_198_ignore = 1;
+static const long asn_VAL_198_mandatory = 2;
+static const long asn_VAL_199_id_ShortMAC_I = 51;
+static const long asn_VAL_199_ignore = 1;
+static const long asn_VAL_199_optional = 0;
+static const long asn_VAL_200_id_UE_RLF_Report_Container = 60;
+static const long asn_VAL_200_ignore = 1;
+static const long asn_VAL_200_optional = 0;
+static const long asn_VAL_201_id_RRCConnSetupIndicator = 75;
+static const long asn_VAL_201_reject = 0;
+static const long asn_VAL_201_optional = 0;
+static const long asn_VAL_202_id_RRCConnReestabIndicator = 78;
+static const long asn_VAL_202_ignore = 1;
+static const long asn_VAL_202_optional = 0;
+static const long asn_VAL_203_id_UE_RLF_Report_Container_for_extended_bands = 107;
+static const long asn_VAL_203_ignore = 1;
+static const long asn_VAL_203_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RLFIndication_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_196_id_FailureCellPCI },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_196_ignore },
+       { "&Value", aioc__type, &asn_DEF_PCI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_196_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_197_id_Re_establishmentCellECGI },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_197_ignore },
+       { "&Value", aioc__type, &asn_DEF_ECGI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_197_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_198_id_FailureCellCRNTI },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_198_ignore },
+       { "&Value", aioc__type, &asn_DEF_CRNTI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_198_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_199_id_ShortMAC_I },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_199_ignore },
+       { "&Value", aioc__type, &asn_DEF_ShortMAC_I },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_199_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_200_id_UE_RLF_Report_Container },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_200_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_RLF_Report_Container },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_200_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_201_id_RRCConnSetupIndicator },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_201_reject },
+       { "&Value", aioc__type, &asn_DEF_RRCConnSetupIndicator },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_201_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_202_id_RRCConnReestabIndicator },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_202_ignore },
+       { "&Value", aioc__type, &asn_DEF_RRCConnReestabIndicator },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_202_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_203_id_UE_RLF_Report_Container_for_extended_bands },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_203_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_RLF_Report_Container_for_extended_bands },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_203_optional }
+};
+static const asn_ioc_set_t asn_IOS_RLFIndication_IEs_1[] = {
+       { 8, 4, asn_IOS_RLFIndication_IEs_1_rows }
+};
+static const long asn_VAL_204_id_ServedCellsToActivate = 57;
+static const long asn_VAL_204_reject = 0;
+static const long asn_VAL_204_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_CellActivationRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_204_id_ServedCellsToActivate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_204_reject },
+       { "&Value", aioc__type, &asn_DEF_ServedCellsToActivate },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_204_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_CellActivationRequest_IEs_1[] = {
+       { 1, 4, asn_IOS_CellActivationRequest_IEs_1_rows }
+};
+static const long asn_VAL_205_id_ActivatedCellList = 58;
+static const long asn_VAL_205_ignore = 1;
+static const long asn_VAL_205_mandatory = 2;
+static const long asn_VAL_206_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_206_ignore = 1;
+static const long asn_VAL_206_optional = 0;
+static const asn_ioc_cell_t asn_IOS_CellActivationResponse_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_205_id_ActivatedCellList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_205_ignore },
+       { "&Value", aioc__type, &asn_DEF_ActivatedCellList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_205_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_206_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_206_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_206_optional }
+};
+static const asn_ioc_set_t asn_IOS_CellActivationResponse_IEs_1[] = {
+       { 2, 4, asn_IOS_CellActivationResponse_IEs_1_rows }
+};
+static const long asn_VAL_207_id_Cause = 5;
+static const long asn_VAL_207_ignore = 1;
+static const long asn_VAL_207_mandatory = 2;
+static const long asn_VAL_208_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_208_ignore = 1;
+static const long asn_VAL_208_optional = 0;
+static const asn_ioc_cell_t asn_IOS_CellActivationFailure_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_207_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_207_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_207_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_208_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_208_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_208_optional }
+};
+static const asn_ioc_set_t asn_IOS_CellActivationFailure_IEs_1[] = {
+       { 2, 4, asn_IOS_CellActivationFailure_IEs_1_rows }
+};
+static const long asn_VAL_209_id_GlobalENB_ID = 21;
+static const long asn_VAL_209_reject = 0;
+static const long asn_VAL_209_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_X2Release_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_209_id_GlobalENB_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_209_reject },
+       { "&Value", aioc__type, &asn_DEF_GlobalENB_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_209_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_X2Release_IEs_1[] = {
+       { 1, 4, asn_IOS_X2Release_IEs_1_rows }
+};
+static const long asn_VAL_210_id_RNL_Header = 101;
+static const long asn_VAL_210_reject = 0;
+static const long asn_VAL_210_mandatory = 2;
+static const long asn_VAL_211_id_x2APMessage = 102;
+static const long asn_VAL_211_reject = 0;
+static const long asn_VAL_211_optional = 0;
+static const asn_ioc_cell_t asn_IOS_X2APMessageTransfer_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_210_id_RNL_Header },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_210_reject },
+       { "&Value", aioc__type, &asn_DEF_RNL_Header },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_210_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_211_id_x2APMessage },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_211_reject },
+       { "&Value", aioc__type, &asn_DEF_X2AP_Message },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_211_optional }
+};
+static const asn_ioc_set_t asn_IOS_X2APMessageTransfer_IEs_1[] = {
+       { 2, 4, asn_IOS_X2APMessageTransfer_IEs_1_rows }
+};
+static const long asn_VAL_212_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_212_reject = 0;
+static const long asn_VAL_212_mandatory = 2;
+static const long asn_VAL_213_id_UE_SecurityCapabilities = 113;
+static const long asn_VAL_213_reject = 0;
+static const long asn_VAL_213_conditional = 1;
+static const long asn_VAL_214_id_SeNBSecurityKey = 114;
+static const long asn_VAL_214_reject = 0;
+static const long asn_VAL_214_conditional = 1;
+static const long asn_VAL_215_id_SeNBUEAggregateMaximumBitRate = 115;
+static const long asn_VAL_215_reject = 0;
+static const long asn_VAL_215_mandatory = 2;
+static const long asn_VAL_216_id_ServingPLMN = 116;
+static const long asn_VAL_216_ignore = 1;
+static const long asn_VAL_216_optional = 0;
+static const long asn_VAL_217_id_E_RABs_ToBeAdded_List = 117;
+static const long asn_VAL_217_reject = 0;
+static const long asn_VAL_217_mandatory = 2;
+static const long asn_VAL_218_id_MeNBtoSeNBContainer = 119;
+static const long asn_VAL_218_reject = 0;
+static const long asn_VAL_218_mandatory = 2;
+static const long asn_VAL_219_id_CSGMembershipStatus = 71;
+static const long asn_VAL_219_reject = 0;
+static const long asn_VAL_219_optional = 0;
+static const long asn_VAL_220_id_SeNB_UE_X2AP_ID = 112;
+static const long asn_VAL_220_reject = 0;
+static const long asn_VAL_220_optional = 0;
+static const long asn_VAL_221_id_SeNB_UE_X2AP_ID_Extension = 158;
+static const long asn_VAL_221_reject = 0;
+static const long asn_VAL_221_optional = 0;
+static const long asn_VAL_222_id_ExpectedUEBehaviour = 104;
+static const long asn_VAL_222_ignore = 1;
+static const long asn_VAL_222_optional = 0;
+static const long asn_VAL_223_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_223_reject = 0;
+static const long asn_VAL_223_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SeNBAdditionRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_212_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_212_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_212_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_213_id_UE_SecurityCapabilities },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_213_reject },
+       { "&Value", aioc__type, &asn_DEF_UESecurityCapabilities },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_213_conditional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_214_id_SeNBSecurityKey },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_214_reject },
+       { "&Value", aioc__type, &asn_DEF_SeNBSecurityKey },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_214_conditional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_215_id_SeNBUEAggregateMaximumBitRate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_215_reject },
+       { "&Value", aioc__type, &asn_DEF_UEAggregateMaximumBitRate },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_215_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_216_id_ServingPLMN },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_216_ignore },
+       { "&Value", aioc__type, &asn_DEF_PLMN_Identity },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_216_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_217_id_E_RABs_ToBeAdded_List },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_217_reject },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeAdded_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_217_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_218_id_MeNBtoSeNBContainer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_218_reject },
+       { "&Value", aioc__type, &asn_DEF_MeNBtoSeNBContainer },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_218_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_219_id_CSGMembershipStatus },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_219_reject },
+       { "&Value", aioc__type, &asn_DEF_CSGMembershipStatus },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_219_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_220_id_SeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_220_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_220_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_221_id_SeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_221_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_221_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_222_id_ExpectedUEBehaviour },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_222_ignore },
+       { "&Value", aioc__type, &asn_DEF_ExpectedUEBehaviour },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_222_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_223_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_223_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_223_optional }
+};
+static const asn_ioc_set_t asn_IOS_SeNBAdditionRequest_IEs_1[] = {
+       { 12, 4, asn_IOS_SeNBAdditionRequest_IEs_1_rows }
+};
+static const long asn_VAL_225_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_225_reject = 0;
+static const long asn_VAL_225_mandatory = 2;
+static const long asn_VAL_226_id_SeNB_UE_X2AP_ID = 112;
+static const long asn_VAL_226_reject = 0;
+static const long asn_VAL_226_mandatory = 2;
+static const long asn_VAL_227_id_E_RABs_Admitted_ToBeAdded_List = 120;
+static const long asn_VAL_227_ignore = 1;
+static const long asn_VAL_227_mandatory = 2;
+static const long asn_VAL_228_id_E_RABs_NotAdmitted_List = 3;
+static const long asn_VAL_228_ignore = 1;
+static const long asn_VAL_228_optional = 0;
+static const long asn_VAL_229_id_SeNBtoMeNBContainer = 122;
+static const long asn_VAL_229_reject = 0;
+static const long asn_VAL_229_mandatory = 2;
+static const long asn_VAL_230_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_230_ignore = 1;
+static const long asn_VAL_230_optional = 0;
+static const long asn_VAL_231_id_GW_TransportLayerAddress = 165;
+static const long asn_VAL_231_ignore = 1;
+static const long asn_VAL_231_optional = 0;
+static const long asn_VAL_232_id_SIPTO_L_GW_TransportLayerAddress = 168;
+static const long asn_VAL_232_ignore = 1;
+static const long asn_VAL_232_optional = 0;
+static const long asn_VAL_233_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_233_reject = 0;
+static const long asn_VAL_233_optional = 0;
+static const long asn_VAL_234_id_SeNB_UE_X2AP_ID_Extension = 158;
+static const long asn_VAL_234_reject = 0;
+static const long asn_VAL_234_optional = 0;
+static const long asn_VAL_235_id_Tunnel_Information_for_BBF = 163;
+static const long asn_VAL_235_ignore = 1;
+static const long asn_VAL_235_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SeNBAdditionRequestAcknowledge_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_225_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_225_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_225_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_226_id_SeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_226_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_226_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_227_id_E_RABs_Admitted_ToBeAdded_List },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_227_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeAdded_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_227_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_228_id_E_RABs_NotAdmitted_List },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_228_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RAB_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_228_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_229_id_SeNBtoMeNBContainer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_229_reject },
+       { "&Value", aioc__type, &asn_DEF_SeNBtoMeNBContainer },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_229_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_230_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_230_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_230_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_231_id_GW_TransportLayerAddress },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_231_ignore },
+       { "&Value", aioc__type, &asn_DEF_TransportLayerAddress },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_231_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_232_id_SIPTO_L_GW_TransportLayerAddress },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_232_ignore },
+       { "&Value", aioc__type, &asn_DEF_TransportLayerAddress },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_232_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_233_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_233_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_233_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_234_id_SeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_234_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_234_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_235_id_Tunnel_Information_for_BBF },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_235_ignore },
+       { "&Value", aioc__type, &asn_DEF_TunnelInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_235_optional }
+};
+static const asn_ioc_set_t asn_IOS_SeNBAdditionRequestAcknowledge_IEs_1[] = {
+       { 11, 4, asn_IOS_SeNBAdditionRequestAcknowledge_IEs_1_rows }
+};
+static const long asn_VAL_237_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_237_reject = 0;
+static const long asn_VAL_237_mandatory = 2;
+static const long asn_VAL_238_id_SeNB_UE_X2AP_ID = 112;
+static const long asn_VAL_238_reject = 0;
+static const long asn_VAL_238_mandatory = 2;
+static const long asn_VAL_239_id_Cause = 5;
+static const long asn_VAL_239_ignore = 1;
+static const long asn_VAL_239_mandatory = 2;
+static const long asn_VAL_240_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_240_ignore = 1;
+static const long asn_VAL_240_optional = 0;
+static const long asn_VAL_241_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_241_reject = 0;
+static const long asn_VAL_241_optional = 0;
+static const long asn_VAL_242_id_SeNB_UE_X2AP_ID_Extension = 158;
+static const long asn_VAL_242_reject = 0;
+static const long asn_VAL_242_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SeNBAdditionRequestReject_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_237_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_237_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_237_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_238_id_SeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_238_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_238_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_239_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_239_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_239_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_240_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_240_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_240_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_241_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_241_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_241_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_242_id_SeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_242_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_242_optional }
+};
+static const asn_ioc_set_t asn_IOS_SeNBAdditionRequestReject_IEs_1[] = {
+       { 6, 4, asn_IOS_SeNBAdditionRequestReject_IEs_1_rows }
+};
+static const long asn_VAL_243_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_243_reject = 0;
+static const long asn_VAL_243_mandatory = 2;
+static const long asn_VAL_244_id_SeNB_UE_X2AP_ID = 112;
+static const long asn_VAL_244_reject = 0;
+static const long asn_VAL_244_mandatory = 2;
+static const long asn_VAL_245_id_ResponseInformationSeNBReconfComp = 123;
+static const long asn_VAL_245_ignore = 1;
+static const long asn_VAL_245_mandatory = 2;
+static const long asn_VAL_246_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_246_reject = 0;
+static const long asn_VAL_246_optional = 0;
+static const long asn_VAL_247_id_SeNB_UE_X2AP_ID_Extension = 158;
+static const long asn_VAL_247_reject = 0;
+static const long asn_VAL_247_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SeNBReconfigurationComplete_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_243_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_243_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_243_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_244_id_SeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_244_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_244_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_245_id_ResponseInformationSeNBReconfComp },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_245_ignore },
+       { "&Value", aioc__type, &asn_DEF_ResponseInformationSeNBReconfComp },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_245_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_246_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_246_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_246_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_247_id_SeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_247_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_247_optional }
+};
+static const asn_ioc_set_t asn_IOS_SeNBReconfigurationComplete_IEs_1[] = {
+       { 5, 4, asn_IOS_SeNBReconfigurationComplete_IEs_1_rows }
+};
+static const long asn_VAL_248_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_248_reject = 0;
+static const long asn_VAL_248_mandatory = 2;
+static const long asn_VAL_249_id_SeNB_UE_X2AP_ID = 112;
+static const long asn_VAL_249_reject = 0;
+static const long asn_VAL_249_mandatory = 2;
+static const long asn_VAL_250_id_Cause = 5;
+static const long asn_VAL_250_ignore = 1;
+static const long asn_VAL_250_mandatory = 2;
+static const long asn_VAL_251_id_SCGChangeIndication = 136;
+static const long asn_VAL_251_ignore = 1;
+static const long asn_VAL_251_optional = 0;
+static const long asn_VAL_252_id_ServingPLMN = 116;
+static const long asn_VAL_252_ignore = 1;
+static const long asn_VAL_252_optional = 0;
+static const long asn_VAL_253_id_UE_ContextInformationSeNBModReq = 124;
+static const long asn_VAL_253_reject = 0;
+static const long asn_VAL_253_optional = 0;
+static const long asn_VAL_254_id_MeNBtoSeNBContainer = 119;
+static const long asn_VAL_254_ignore = 1;
+static const long asn_VAL_254_optional = 0;
+static const long asn_VAL_255_id_CSGMembershipStatus = 71;
+static const long asn_VAL_255_reject = 0;
+static const long asn_VAL_255_optional = 0;
+static const long asn_VAL_256_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_256_reject = 0;
+static const long asn_VAL_256_optional = 0;
+static const long asn_VAL_257_id_SeNB_UE_X2AP_ID_Extension = 158;
+static const long asn_VAL_257_reject = 0;
+static const long asn_VAL_257_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SeNBModificationRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_248_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_248_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_248_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_249_id_SeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_249_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_249_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_250_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_250_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_250_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_251_id_SCGChangeIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_251_ignore },
+       { "&Value", aioc__type, &asn_DEF_SCGChangeIndication },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_251_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_252_id_ServingPLMN },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_252_ignore },
+       { "&Value", aioc__type, &asn_DEF_PLMN_Identity },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_252_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_253_id_UE_ContextInformationSeNBModReq },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_253_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_ContextInformationSeNBModReq },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_253_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_254_id_MeNBtoSeNBContainer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_254_ignore },
+       { "&Value", aioc__type, &asn_DEF_MeNBtoSeNBContainer },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_254_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_255_id_CSGMembershipStatus },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_255_reject },
+       { "&Value", aioc__type, &asn_DEF_CSGMembershipStatus },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_255_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_256_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_256_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_256_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_257_id_SeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_257_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_257_optional }
+};
+static const asn_ioc_set_t asn_IOS_SeNBModificationRequest_IEs_1[] = {
+       { 10, 4, asn_IOS_SeNBModificationRequest_IEs_1_rows }
+};
+static const long asn_VAL_261_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_261_ignore = 1;
+static const long asn_VAL_261_mandatory = 2;
+static const long asn_VAL_262_id_SeNB_UE_X2AP_ID = 112;
+static const long asn_VAL_262_ignore = 1;
+static const long asn_VAL_262_mandatory = 2;
+static const long asn_VAL_263_id_E_RABs_Admitted_ToBeAdded_ModAckList = 128;
+static const long asn_VAL_263_ignore = 1;
+static const long asn_VAL_263_optional = 0;
+static const long asn_VAL_264_id_E_RABs_Admitted_ToBeModified_ModAckList = 129;
+static const long asn_VAL_264_ignore = 1;
+static const long asn_VAL_264_optional = 0;
+static const long asn_VAL_265_id_E_RABs_Admitted_ToBeReleased_ModAckList = 130;
+static const long asn_VAL_265_ignore = 1;
+static const long asn_VAL_265_optional = 0;
+static const long asn_VAL_266_id_E_RABs_NotAdmitted_List = 3;
+static const long asn_VAL_266_ignore = 1;
+static const long asn_VAL_266_optional = 0;
+static const long asn_VAL_267_id_SeNBtoMeNBContainer = 122;
+static const long asn_VAL_267_ignore = 1;
+static const long asn_VAL_267_optional = 0;
+static const long asn_VAL_268_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_268_ignore = 1;
+static const long asn_VAL_268_optional = 0;
+static const long asn_VAL_269_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_269_ignore = 1;
+static const long asn_VAL_269_optional = 0;
+static const long asn_VAL_270_id_SeNB_UE_X2AP_ID_Extension = 158;
+static const long asn_VAL_270_ignore = 1;
+static const long asn_VAL_270_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SeNBModificationRequestAcknowledge_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_261_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_261_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_261_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_262_id_SeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_262_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_262_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_263_id_E_RABs_Admitted_ToBeAdded_ModAckList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_263_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_263_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_264_id_E_RABs_Admitted_ToBeModified_ModAckList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_264_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_264_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_265_id_E_RABs_Admitted_ToBeReleased_ModAckList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_265_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_265_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_266_id_E_RABs_NotAdmitted_List },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_266_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RAB_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_266_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_267_id_SeNBtoMeNBContainer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_267_ignore },
+       { "&Value", aioc__type, &asn_DEF_SeNBtoMeNBContainer },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_267_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_268_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_268_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_268_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_269_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_269_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_269_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_270_id_SeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_270_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_270_optional }
+};
+static const asn_ioc_set_t asn_IOS_SeNBModificationRequestAcknowledge_IEs_1[] = {
+       { 10, 4, asn_IOS_SeNBModificationRequestAcknowledge_IEs_1_rows }
+};
+static const long asn_VAL_274_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_274_ignore = 1;
+static const long asn_VAL_274_mandatory = 2;
+static const long asn_VAL_275_id_SeNB_UE_X2AP_ID = 112;
+static const long asn_VAL_275_ignore = 1;
+static const long asn_VAL_275_mandatory = 2;
+static const long asn_VAL_276_id_Cause = 5;
+static const long asn_VAL_276_ignore = 1;
+static const long asn_VAL_276_mandatory = 2;
+static const long asn_VAL_277_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_277_ignore = 1;
+static const long asn_VAL_277_optional = 0;
+static const long asn_VAL_278_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_278_ignore = 1;
+static const long asn_VAL_278_optional = 0;
+static const long asn_VAL_279_id_SeNB_UE_X2AP_ID_Extension = 158;
+static const long asn_VAL_279_ignore = 1;
+static const long asn_VAL_279_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SeNBModificationRequestReject_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_274_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_274_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_274_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_275_id_SeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_275_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_275_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_276_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_276_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_276_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_277_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_277_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_277_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_278_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_278_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_278_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_279_id_SeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_279_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_279_optional }
+};
+static const asn_ioc_set_t asn_IOS_SeNBModificationRequestReject_IEs_1[] = {
+       { 6, 4, asn_IOS_SeNBModificationRequestReject_IEs_1_rows }
+};
+static const long asn_VAL_280_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_280_reject = 0;
+static const long asn_VAL_280_mandatory = 2;
+static const long asn_VAL_281_id_SeNB_UE_X2AP_ID = 112;
+static const long asn_VAL_281_reject = 0;
+static const long asn_VAL_281_mandatory = 2;
+static const long asn_VAL_282_id_Cause = 5;
+static const long asn_VAL_282_ignore = 1;
+static const long asn_VAL_282_mandatory = 2;
+static const long asn_VAL_283_id_SCGChangeIndication = 136;
+static const long asn_VAL_283_ignore = 1;
+static const long asn_VAL_283_optional = 0;
+static const long asn_VAL_284_id_E_RABs_ToBeReleased_ModReqd = 134;
+static const long asn_VAL_284_ignore = 1;
+static const long asn_VAL_284_optional = 0;
+static const long asn_VAL_285_id_SeNBtoMeNBContainer = 122;
+static const long asn_VAL_285_ignore = 1;
+static const long asn_VAL_285_optional = 0;
+static const long asn_VAL_286_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_286_reject = 0;
+static const long asn_VAL_286_optional = 0;
+static const long asn_VAL_287_id_SeNB_UE_X2AP_ID_Extension = 158;
+static const long asn_VAL_287_reject = 0;
+static const long asn_VAL_287_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SeNBModificationRequired_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_280_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_280_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_280_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_281_id_SeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_281_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_281_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_282_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_282_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_282_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_283_id_SCGChangeIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_283_ignore },
+       { "&Value", aioc__type, &asn_DEF_SCGChangeIndication },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_283_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_284_id_E_RABs_ToBeReleased_ModReqd },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_284_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_ModReqd },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_284_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_285_id_SeNBtoMeNBContainer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_285_ignore },
+       { "&Value", aioc__type, &asn_DEF_SeNBtoMeNBContainer },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_285_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_286_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_286_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_286_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_287_id_SeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_287_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_287_optional }
+};
+static const asn_ioc_set_t asn_IOS_SeNBModificationRequired_IEs_1[] = {
+       { 8, 4, asn_IOS_SeNBModificationRequired_IEs_1_rows }
+};
+static const long asn_VAL_289_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_289_ignore = 1;
+static const long asn_VAL_289_mandatory = 2;
+static const long asn_VAL_290_id_SeNB_UE_X2AP_ID = 112;
+static const long asn_VAL_290_ignore = 1;
+static const long asn_VAL_290_mandatory = 2;
+static const long asn_VAL_291_id_MeNBtoSeNBContainer = 119;
+static const long asn_VAL_291_ignore = 1;
+static const long asn_VAL_291_optional = 0;
+static const long asn_VAL_292_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_292_ignore = 1;
+static const long asn_VAL_292_optional = 0;
+static const long asn_VAL_293_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_293_ignore = 1;
+static const long asn_VAL_293_optional = 0;
+static const long asn_VAL_294_id_SeNB_UE_X2AP_ID_Extension = 158;
+static const long asn_VAL_294_ignore = 1;
+static const long asn_VAL_294_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SeNBModificationConfirm_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_289_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_289_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_289_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_290_id_SeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_290_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_290_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_291_id_MeNBtoSeNBContainer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_291_ignore },
+       { "&Value", aioc__type, &asn_DEF_MeNBtoSeNBContainer },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_291_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_292_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_292_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_292_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_293_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_293_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_293_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_294_id_SeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_294_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_294_optional }
+};
+static const asn_ioc_set_t asn_IOS_SeNBModificationConfirm_IEs_1[] = {
+       { 6, 4, asn_IOS_SeNBModificationConfirm_IEs_1_rows }
+};
+static const long asn_VAL_295_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_295_ignore = 1;
+static const long asn_VAL_295_mandatory = 2;
+static const long asn_VAL_296_id_SeNB_UE_X2AP_ID = 112;
+static const long asn_VAL_296_ignore = 1;
+static const long asn_VAL_296_mandatory = 2;
+static const long asn_VAL_297_id_Cause = 5;
+static const long asn_VAL_297_ignore = 1;
+static const long asn_VAL_297_mandatory = 2;
+static const long asn_VAL_298_id_MeNBtoSeNBContainer = 119;
+static const long asn_VAL_298_ignore = 1;
+static const long asn_VAL_298_optional = 0;
+static const long asn_VAL_299_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_299_ignore = 1;
+static const long asn_VAL_299_optional = 0;
+static const long asn_VAL_300_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_300_ignore = 1;
+static const long asn_VAL_300_optional = 0;
+static const long asn_VAL_301_id_SeNB_UE_X2AP_ID_Extension = 158;
+static const long asn_VAL_301_ignore = 1;
+static const long asn_VAL_301_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SeNBModificationRefuse_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_295_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_295_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_295_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_296_id_SeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_296_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_296_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_297_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_297_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_297_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_298_id_MeNBtoSeNBContainer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_298_ignore },
+       { "&Value", aioc__type, &asn_DEF_MeNBtoSeNBContainer },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_298_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_299_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_299_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_299_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_300_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_300_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_300_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_301_id_SeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_301_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_301_optional }
+};
+static const asn_ioc_set_t asn_IOS_SeNBModificationRefuse_IEs_1[] = {
+       { 7, 4, asn_IOS_SeNBModificationRefuse_IEs_1_rows }
+};
+static const long asn_VAL_302_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_302_reject = 0;
+static const long asn_VAL_302_mandatory = 2;
+static const long asn_VAL_303_id_SeNB_UE_X2AP_ID = 112;
+static const long asn_VAL_303_reject = 0;
+static const long asn_VAL_303_optional = 0;
+static const long asn_VAL_304_id_Cause = 5;
+static const long asn_VAL_304_ignore = 1;
+static const long asn_VAL_304_optional = 0;
+static const long asn_VAL_305_id_E_RABs_ToBeReleased_List_RelReq = 137;
+static const long asn_VAL_305_ignore = 1;
+static const long asn_VAL_305_optional = 0;
+static const long asn_VAL_306_id_UE_ContextKeptIndicator = 154;
+static const long asn_VAL_306_ignore = 1;
+static const long asn_VAL_306_optional = 0;
+static const long asn_VAL_307_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_307_reject = 0;
+static const long asn_VAL_307_optional = 0;
+static const long asn_VAL_308_id_SeNB_UE_X2AP_ID_Extension = 158;
+static const long asn_VAL_308_reject = 0;
+static const long asn_VAL_308_optional = 0;
+static const long asn_VAL_309_id_MakeBeforeBreakIndicator = 181;
+static const long asn_VAL_309_ignore = 1;
+static const long asn_VAL_309_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SeNBReleaseRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_302_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_302_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_302_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_303_id_SeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_303_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_303_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_304_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_304_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_304_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_305_id_E_RABs_ToBeReleased_List_RelReq },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_305_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_List_RelReq },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_305_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_306_id_UE_ContextKeptIndicator },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_306_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_ContextKeptIndicator },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_306_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_307_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_307_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_307_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_308_id_SeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_308_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_308_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_309_id_MakeBeforeBreakIndicator },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_309_ignore },
+       { "&Value", aioc__type, &asn_DEF_MakeBeforeBreakIndicator },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_309_optional }
+};
+static const asn_ioc_set_t asn_IOS_SeNBReleaseRequest_IEs_1[] = {
+       { 8, 4, asn_IOS_SeNBReleaseRequest_IEs_1_rows }
+};
+static const long asn_VAL_311_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_311_reject = 0;
+static const long asn_VAL_311_mandatory = 2;
+static const long asn_VAL_312_id_SeNB_UE_X2AP_ID = 112;
+static const long asn_VAL_312_reject = 0;
+static const long asn_VAL_312_mandatory = 2;
+static const long asn_VAL_313_id_Cause = 5;
+static const long asn_VAL_313_ignore = 1;
+static const long asn_VAL_313_mandatory = 2;
+static const long asn_VAL_314_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_314_reject = 0;
+static const long asn_VAL_314_optional = 0;
+static const long asn_VAL_315_id_SeNB_UE_X2AP_ID_Extension = 158;
+static const long asn_VAL_315_reject = 0;
+static const long asn_VAL_315_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SeNBReleaseRequired_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_311_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_311_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_311_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_312_id_SeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_312_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_312_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_313_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_313_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_313_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_314_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_314_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_314_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_315_id_SeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_315_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_315_optional }
+};
+static const asn_ioc_set_t asn_IOS_SeNBReleaseRequired_IEs_1[] = {
+       { 5, 4, asn_IOS_SeNBReleaseRequired_IEs_1_rows }
+};
+static const long asn_VAL_316_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_316_ignore = 1;
+static const long asn_VAL_316_mandatory = 2;
+static const long asn_VAL_317_id_SeNB_UE_X2AP_ID = 112;
+static const long asn_VAL_317_ignore = 1;
+static const long asn_VAL_317_mandatory = 2;
+static const long asn_VAL_318_id_E_RABs_ToBeReleased_List_RelConf = 139;
+static const long asn_VAL_318_ignore = 1;
+static const long asn_VAL_318_optional = 0;
+static const long asn_VAL_319_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_319_ignore = 1;
+static const long asn_VAL_319_optional = 0;
+static const long asn_VAL_320_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_320_ignore = 1;
+static const long asn_VAL_320_optional = 0;
+static const long asn_VAL_321_id_SeNB_UE_X2AP_ID_Extension = 158;
+static const long asn_VAL_321_ignore = 1;
+static const long asn_VAL_321_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SeNBReleaseConfirm_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_316_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_316_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_316_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_317_id_SeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_317_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_317_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_318_id_E_RABs_ToBeReleased_List_RelConf },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_318_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_List_RelConf },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_318_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_319_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_319_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_319_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_320_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_320_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_320_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_321_id_SeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_321_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_321_optional }
+};
+static const asn_ioc_set_t asn_IOS_SeNBReleaseConfirm_IEs_1[] = {
+       { 6, 4, asn_IOS_SeNBReleaseConfirm_IEs_1_rows }
+};
+static const long asn_VAL_323_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_323_reject = 0;
+static const long asn_VAL_323_mandatory = 2;
+static const long asn_VAL_324_id_SeNB_UE_X2AP_ID = 112;
+static const long asn_VAL_324_reject = 0;
+static const long asn_VAL_324_mandatory = 2;
+static const long asn_VAL_325_id_E_RABs_SubjectToCounterCheck_List = 141;
+static const long asn_VAL_325_ignore = 1;
+static const long asn_VAL_325_mandatory = 2;
+static const long asn_VAL_326_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_326_ignore = 1;
+static const long asn_VAL_326_optional = 0;
+static const long asn_VAL_327_id_SeNB_UE_X2AP_ID_Extension = 158;
+static const long asn_VAL_327_ignore = 1;
+static const long asn_VAL_327_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SeNBCounterCheckRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_323_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_323_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_323_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_324_id_SeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_324_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_324_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_325_id_E_RABs_SubjectToCounterCheck_List },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_325_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_SubjectToCounterCheck_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_325_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_326_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_326_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_326_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_327_id_SeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_327_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_327_optional }
+};
+static const asn_ioc_set_t asn_IOS_SeNBCounterCheckRequest_IEs_1[] = {
+       { 5, 4, asn_IOS_SeNBCounterCheckRequest_IEs_1_rows }
+};
+static const long asn_VAL_329_id_GlobalENB_ID = 21;
+static const long asn_VAL_329_reject = 0;
+static const long asn_VAL_329_mandatory = 2;
+static const long asn_VAL_330_id_X2RemovalThreshold = 169;
+static const long asn_VAL_330_reject = 0;
+static const long asn_VAL_330_optional = 0;
+static const asn_ioc_cell_t asn_IOS_X2RemovalRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_329_id_GlobalENB_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_329_reject },
+       { "&Value", aioc__type, &asn_DEF_GlobalENB_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_329_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_330_id_X2RemovalThreshold },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_330_reject },
+       { "&Value", aioc__type, &asn_DEF_X2BenefitValue },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_330_optional }
+};
+static const asn_ioc_set_t asn_IOS_X2RemovalRequest_IEs_1[] = {
+       { 2, 4, asn_IOS_X2RemovalRequest_IEs_1_rows }
+};
+static const long asn_VAL_331_id_GlobalENB_ID = 21;
+static const long asn_VAL_331_reject = 0;
+static const long asn_VAL_331_mandatory = 2;
+static const long asn_VAL_332_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_332_ignore = 1;
+static const long asn_VAL_332_optional = 0;
+static const asn_ioc_cell_t asn_IOS_X2RemovalResponse_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_331_id_GlobalENB_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_331_reject },
+       { "&Value", aioc__type, &asn_DEF_GlobalENB_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_331_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_332_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_332_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_332_optional }
+};
+static const asn_ioc_set_t asn_IOS_X2RemovalResponse_IEs_1[] = {
+       { 2, 4, asn_IOS_X2RemovalResponse_IEs_1_rows }
+};
+static const long asn_VAL_333_id_Cause = 5;
+static const long asn_VAL_333_ignore = 1;
+static const long asn_VAL_333_mandatory = 2;
+static const long asn_VAL_334_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_334_ignore = 1;
+static const long asn_VAL_334_optional = 0;
+static const asn_ioc_cell_t asn_IOS_X2RemovalFailure_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_333_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_333_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_333_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_334_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_334_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_334_optional }
+};
+static const asn_ioc_set_t asn_IOS_X2RemovalFailure_IEs_1[] = {
+       { 2, 4, asn_IOS_X2RemovalFailure_IEs_1_rows }
+};
+static const long asn_VAL_335_id_New_eNB_UE_X2AP_ID = 9;
+static const long asn_VAL_335_reject = 0;
+static const long asn_VAL_335_mandatory = 2;
+static const long asn_VAL_336_id_SeNB_UE_X2AP_ID_Extension = 158;
+static const long asn_VAL_336_reject = 0;
+static const long asn_VAL_336_optional = 0;
+static const long asn_VAL_337_id_resumeID = 172;
+static const long asn_VAL_337_reject = 0;
+static const long asn_VAL_337_mandatory = 2;
+static const long asn_VAL_338_id_ShortMAC_I = 51;
+static const long asn_VAL_338_reject = 0;
+static const long asn_VAL_338_mandatory = 2;
+static const long asn_VAL_339_id_NewEUTRANCellIdentifier = 175;
+static const long asn_VAL_339_reject = 0;
+static const long asn_VAL_339_mandatory = 2;
+static const long asn_VAL_340_id_FailureCellCRNTI = 50;
+static const long asn_VAL_340_reject = 0;
+static const long asn_VAL_340_optional = 0;
+static const long asn_VAL_341_id_FailureCellPCI = 48;
+static const long asn_VAL_341_reject = 0;
+static const long asn_VAL_341_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RetrieveUEContextRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_335_id_New_eNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_335_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_335_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_336_id_SeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_336_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_336_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_337_id_resumeID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_337_reject },
+       { "&Value", aioc__type, &asn_DEF_ResumeID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_337_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_338_id_ShortMAC_I },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_338_reject },
+       { "&Value", aioc__type, &asn_DEF_ShortMAC_I },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_338_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_339_id_NewEUTRANCellIdentifier },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_339_reject },
+       { "&Value", aioc__type, &asn_DEF_EUTRANCellIdentifier },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_339_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_340_id_FailureCellCRNTI },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_340_reject },
+       { "&Value", aioc__type, &asn_DEF_CRNTI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_340_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_341_id_FailureCellPCI },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_341_reject },
+       { "&Value", aioc__type, &asn_DEF_PCI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_341_optional }
+};
+static const asn_ioc_set_t asn_IOS_RetrieveUEContextRequest_IEs_1[] = {
+       { 7, 4, asn_IOS_RetrieveUEContextRequest_IEs_1_rows }
+};
+static const long asn_VAL_342_id_New_eNB_UE_X2AP_ID = 9;
+static const long asn_VAL_342_ignore = 1;
+static const long asn_VAL_342_mandatory = 2;
+static const long asn_VAL_343_id_New_eNB_UE_X2AP_ID_Extension = 155;
+static const long asn_VAL_343_ignore = 1;
+static const long asn_VAL_343_optional = 0;
+static const long asn_VAL_344_id_Old_eNB_UE_X2AP_ID = 10;
+static const long asn_VAL_344_ignore = 1;
+static const long asn_VAL_344_mandatory = 2;
+static const long asn_VAL_345_id_Old_eNB_UE_X2AP_ID_Extension = 156;
+static const long asn_VAL_345_ignore = 1;
+static const long asn_VAL_345_optional = 0;
+static const long asn_VAL_346_id_GUMMEI_ID = 23;
+static const long asn_VAL_346_reject = 0;
+static const long asn_VAL_346_mandatory = 2;
+static const long asn_VAL_347_id_UE_ContextInformationRetrieve = 173;
+static const long asn_VAL_347_reject = 0;
+static const long asn_VAL_347_mandatory = 2;
+static const long asn_VAL_348_id_TraceActivation = 13;
+static const long asn_VAL_348_ignore = 1;
+static const long asn_VAL_348_optional = 0;
+static const long asn_VAL_349_id_SRVCCOperationPossible = 36;
+static const long asn_VAL_349_ignore = 1;
+static const long asn_VAL_349_optional = 0;
+static const long asn_VAL_350_id_Masked_IMEISV = 98;
+static const long asn_VAL_350_ignore = 1;
+static const long asn_VAL_350_optional = 0;
+static const long asn_VAL_351_id_ExpectedUEBehaviour = 104;
+static const long asn_VAL_351_ignore = 1;
+static const long asn_VAL_351_optional = 0;
+static const long asn_VAL_352_id_ProSeAuthorized = 103;
+static const long asn_VAL_352_ignore = 1;
+static const long asn_VAL_352_optional = 0;
+static const long asn_VAL_353_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_353_ignore = 1;
+static const long asn_VAL_353_optional = 0;
+static const long asn_VAL_354_id_V2XServicesAuthorized = 176;
+static const long asn_VAL_354_ignore = 1;
+static const long asn_VAL_354_optional = 0;
+static const long asn_VAL_355_id_AerialUEsubscriptionInformation = 277;
+static const long asn_VAL_355_ignore = 1;
+static const long asn_VAL_355_optional = 0;
+static const long asn_VAL_356_id_Subscription_Based_UE_DifferentiationInfo = 309;
+static const long asn_VAL_356_ignore = 1;
+static const long asn_VAL_356_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RetrieveUEContextResponse_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_342_id_New_eNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_342_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_342_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_343_id_New_eNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_343_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_343_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_344_id_Old_eNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_344_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_344_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_345_id_Old_eNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_345_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_345_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_346_id_GUMMEI_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_346_reject },
+       { "&Value", aioc__type, &asn_DEF_GUMMEI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_346_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_347_id_UE_ContextInformationRetrieve },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_347_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_ContextInformationRetrieve },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_347_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_348_id_TraceActivation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_348_ignore },
+       { "&Value", aioc__type, &asn_DEF_TraceActivation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_348_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_349_id_SRVCCOperationPossible },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_349_ignore },
+       { "&Value", aioc__type, &asn_DEF_SRVCCOperationPossible },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_349_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_350_id_Masked_IMEISV },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_350_ignore },
+       { "&Value", aioc__type, &asn_DEF_Masked_IMEISV },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_350_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_351_id_ExpectedUEBehaviour },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_351_ignore },
+       { "&Value", aioc__type, &asn_DEF_ExpectedUEBehaviour },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_351_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_352_id_ProSeAuthorized },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_352_ignore },
+       { "&Value", aioc__type, &asn_DEF_ProSeAuthorized },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_352_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_353_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_353_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_353_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_354_id_V2XServicesAuthorized },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_354_ignore },
+       { "&Value", aioc__type, &asn_DEF_V2XServicesAuthorized },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_354_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_355_id_AerialUEsubscriptionInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_355_ignore },
+       { "&Value", aioc__type, &asn_DEF_AerialUEsubscriptionInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_355_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_356_id_Subscription_Based_UE_DifferentiationInfo },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_356_ignore },
+       { "&Value", aioc__type, &asn_DEF_Subscription_Based_UE_DifferentiationInfo },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_356_optional }
+};
+static const asn_ioc_set_t asn_IOS_RetrieveUEContextResponse_IEs_1[] = {
+       { 15, 4, asn_IOS_RetrieveUEContextResponse_IEs_1_rows }
+};
+static const long asn_VAL_358_id_New_eNB_UE_X2AP_ID = 9;
+static const long asn_VAL_358_ignore = 1;
+static const long asn_VAL_358_mandatory = 2;
+static const long asn_VAL_359_id_New_eNB_UE_X2AP_ID_Extension = 155;
+static const long asn_VAL_359_ignore = 1;
+static const long asn_VAL_359_optional = 0;
+static const long asn_VAL_360_id_Cause = 5;
+static const long asn_VAL_360_ignore = 1;
+static const long asn_VAL_360_mandatory = 2;
+static const long asn_VAL_361_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_361_ignore = 1;
+static const long asn_VAL_361_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RetrieveUEContextFailure_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_358_id_New_eNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_358_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_358_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_359_id_New_eNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_359_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_359_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_360_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_360_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_360_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_361_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_361_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_361_optional }
+};
+static const asn_ioc_set_t asn_IOS_RetrieveUEContextFailure_IEs_1[] = {
+       { 4, 4, asn_IOS_RetrieveUEContextFailure_IEs_1_rows }
+};
+static const long asn_VAL_362_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_362_reject = 0;
+static const long asn_VAL_362_mandatory = 2;
+static const long asn_VAL_363_id_NRUESecurityCapabilities = 248;
+static const long asn_VAL_363_reject = 0;
+static const long asn_VAL_363_mandatory = 2;
+static const long asn_VAL_364_id_SgNBSecurityKey = 203;
+static const long asn_VAL_364_reject = 0;
+static const long asn_VAL_364_mandatory = 2;
+static const long asn_VAL_365_id_SgNBUEAggregateMaximumBitRate = 204;
+static const long asn_VAL_365_reject = 0;
+static const long asn_VAL_365_mandatory = 2;
+static const long asn_VAL_366_id_SelectedPLMN = 269;
+static const long asn_VAL_366_ignore = 1;
+static const long asn_VAL_366_optional = 0;
+static const long asn_VAL_367_id_HandoverRestrictionList = 240;
+static const long asn_VAL_367_ignore = 1;
+static const long asn_VAL_367_optional = 0;
+static const long asn_VAL_368_id_E_RABs_ToBeAdded_SgNBAddReqList = 205;
+static const long asn_VAL_368_reject = 0;
+static const long asn_VAL_368_mandatory = 2;
+static const long asn_VAL_369_id_MeNBtoSgNBContainer = 206;
+static const long asn_VAL_369_reject = 0;
+static const long asn_VAL_369_mandatory = 2;
+static const long asn_VAL_370_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_370_reject = 0;
+static const long asn_VAL_370_optional = 0;
+static const long asn_VAL_371_id_ExpectedUEBehaviour = 104;
+static const long asn_VAL_371_ignore = 1;
+static const long asn_VAL_371_optional = 0;
+static const long asn_VAL_372_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_372_reject = 0;
+static const long asn_VAL_372_optional = 0;
+static const long asn_VAL_373_id_RequestedSplitSRBs = 208;
+static const long asn_VAL_373_reject = 0;
+static const long asn_VAL_373_optional = 0;
+static const long asn_VAL_374_id_MeNBResourceCoordinationInformation = 257;
+static const long asn_VAL_374_ignore = 1;
+static const long asn_VAL_374_optional = 0;
+static const long asn_VAL_375_id_SGNB_Addition_Trigger_Ind = 278;
+static const long asn_VAL_375_reject = 0;
+static const long asn_VAL_375_optional = 0;
+static const long asn_VAL_376_id_SubscriberProfileIDforRFP = 275;
+static const long asn_VAL_376_ignore = 1;
+static const long asn_VAL_376_optional = 0;
+static const long asn_VAL_377_id_MeNBCell_ID = 279;
+static const long asn_VAL_377_reject = 0;
+static const long asn_VAL_377_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_SgNBAdditionRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_362_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_362_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_362_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_363_id_NRUESecurityCapabilities },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_363_reject },
+       { "&Value", aioc__type, &asn_DEF_NRUESecurityCapabilities },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_363_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_364_id_SgNBSecurityKey },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_364_reject },
+       { "&Value", aioc__type, &asn_DEF_SgNBSecurityKey },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_364_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_365_id_SgNBUEAggregateMaximumBitRate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_365_reject },
+       { "&Value", aioc__type, &asn_DEF_UEAggregateMaximumBitRate },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_365_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_366_id_SelectedPLMN },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_366_ignore },
+       { "&Value", aioc__type, &asn_DEF_PLMN_Identity },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_366_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_367_id_HandoverRestrictionList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_367_ignore },
+       { "&Value", aioc__type, &asn_DEF_HandoverRestrictionList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_367_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_368_id_E_RABs_ToBeAdded_SgNBAddReqList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_368_reject },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_368_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_369_id_MeNBtoSgNBContainer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_369_reject },
+       { "&Value", aioc__type, &asn_DEF_MeNBtoSgNBContainer },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_369_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_370_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_370_reject },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_370_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_371_id_ExpectedUEBehaviour },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_371_ignore },
+       { "&Value", aioc__type, &asn_DEF_ExpectedUEBehaviour },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_371_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_372_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_372_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_372_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_373_id_RequestedSplitSRBs },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_373_reject },
+       { "&Value", aioc__type, &asn_DEF_SplitSRBs },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_373_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_374_id_MeNBResourceCoordinationInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_374_ignore },
+       { "&Value", aioc__type, &asn_DEF_MeNBResourceCoordinationInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_374_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_375_id_SGNB_Addition_Trigger_Ind },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_375_reject },
+       { "&Value", aioc__type, &asn_DEF_SGNB_Addition_Trigger_Ind },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_375_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_376_id_SubscriberProfileIDforRFP },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_376_ignore },
+       { "&Value", aioc__type, &asn_DEF_SubscriberProfileIDforRFP },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_376_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_377_id_MeNBCell_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_377_reject },
+       { "&Value", aioc__type, &asn_DEF_ECGI },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_377_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_SgNBAdditionRequest_IEs_1[] = {
+       { 16, 4, asn_IOS_SgNBAdditionRequest_IEs_1_rows }
+};
+static const long asn_VAL_379_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_379_reject = 0;
+static const long asn_VAL_379_mandatory = 2;
+static const long asn_VAL_380_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_380_reject = 0;
+static const long asn_VAL_380_mandatory = 2;
+static const long asn_VAL_381_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList = 210;
+static const long asn_VAL_381_ignore = 1;
+static const long asn_VAL_381_mandatory = 2;
+static const long asn_VAL_382_id_E_RABs_NotAdmitted_List = 3;
+static const long asn_VAL_382_ignore = 1;
+static const long asn_VAL_382_optional = 0;
+static const long asn_VAL_383_id_SgNBtoMeNBContainer = 211;
+static const long asn_VAL_383_reject = 0;
+static const long asn_VAL_383_mandatory = 2;
+static const long asn_VAL_384_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_384_ignore = 1;
+static const long asn_VAL_384_optional = 0;
+static const long asn_VAL_385_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_385_reject = 0;
+static const long asn_VAL_385_optional = 0;
+static const long asn_VAL_386_id_AdmittedSplitSRBs = 212;
+static const long asn_VAL_386_reject = 0;
+static const long asn_VAL_386_optional = 0;
+static const long asn_VAL_387_id_SgNBResourceCoordinationInformation = 258;
+static const long asn_VAL_387_ignore = 1;
+static const long asn_VAL_387_optional = 0;
+static const long asn_VAL_388_id_RRCConfigIndication = 272;
+static const long asn_VAL_388_reject = 0;
+static const long asn_VAL_388_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBAdditionRequestAcknowledge_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_379_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_379_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_379_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_380_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_380_reject },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_380_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_381_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_381_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_381_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_382_id_E_RABs_NotAdmitted_List },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_382_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RAB_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_382_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_383_id_SgNBtoMeNBContainer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_383_reject },
+       { "&Value", aioc__type, &asn_DEF_SgNBtoMeNBContainer },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_383_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_384_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_384_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_384_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_385_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_385_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_385_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_386_id_AdmittedSplitSRBs },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_386_reject },
+       { "&Value", aioc__type, &asn_DEF_SplitSRBs },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_386_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_387_id_SgNBResourceCoordinationInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_387_ignore },
+       { "&Value", aioc__type, &asn_DEF_SgNBResourceCoordinationInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_387_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_388_id_RRCConfigIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_388_reject },
+       { "&Value", aioc__type, &asn_DEF_RRC_Config_Ind },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_388_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBAdditionRequestAcknowledge_IEs_1[] = {
+       { 10, 4, asn_IOS_SgNBAdditionRequestAcknowledge_IEs_1_rows }
+};
+static const long asn_VAL_390_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_390_reject = 0;
+static const long asn_VAL_390_mandatory = 2;
+static const long asn_VAL_391_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_391_reject = 0;
+static const long asn_VAL_391_optional = 0;
+static const long asn_VAL_392_id_Cause = 5;
+static const long asn_VAL_392_ignore = 1;
+static const long asn_VAL_392_mandatory = 2;
+static const long asn_VAL_393_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_393_ignore = 1;
+static const long asn_VAL_393_optional = 0;
+static const long asn_VAL_394_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_394_reject = 0;
+static const long asn_VAL_394_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBAdditionRequestReject_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_390_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_390_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_390_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_391_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_391_reject },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_391_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_392_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_392_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_392_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_393_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_393_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_393_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_394_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_394_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_394_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBAdditionRequestReject_IEs_1[] = {
+       { 5, 4, asn_IOS_SgNBAdditionRequestReject_IEs_1_rows }
+};
+static const long asn_VAL_395_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_395_reject = 0;
+static const long asn_VAL_395_mandatory = 2;
+static const long asn_VAL_396_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_396_reject = 0;
+static const long asn_VAL_396_mandatory = 2;
+static const long asn_VAL_397_id_ResponseInformationSgNBReconfComp = 214;
+static const long asn_VAL_397_ignore = 1;
+static const long asn_VAL_397_mandatory = 2;
+static const long asn_VAL_398_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_398_reject = 0;
+static const long asn_VAL_398_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBReconfigurationComplete_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_395_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_395_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_395_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_396_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_396_reject },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_396_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_397_id_ResponseInformationSgNBReconfComp },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_397_ignore },
+       { "&Value", aioc__type, &asn_DEF_ResponseInformationSgNBReconfComp },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_397_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_398_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_398_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_398_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBReconfigurationComplete_IEs_1[] = {
+       { 4, 4, asn_IOS_SgNBReconfigurationComplete_IEs_1_rows }
+};
+static const long asn_VAL_399_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_399_reject = 0;
+static const long asn_VAL_399_mandatory = 2;
+static const long asn_VAL_400_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_400_reject = 0;
+static const long asn_VAL_400_mandatory = 2;
+static const long asn_VAL_401_id_Cause = 5;
+static const long asn_VAL_401_ignore = 1;
+static const long asn_VAL_401_mandatory = 2;
+static const long asn_VAL_402_id_SelectedPLMN = 269;
+static const long asn_VAL_402_ignore = 1;
+static const long asn_VAL_402_optional = 0;
+static const long asn_VAL_403_id_HandoverRestrictionList = 240;
+static const long asn_VAL_403_ignore = 1;
+static const long asn_VAL_403_optional = 0;
+static const long asn_VAL_404_id_SCGConfigurationQuery = 241;
+static const long asn_VAL_404_ignore = 1;
+static const long asn_VAL_404_optional = 0;
+static const long asn_VAL_405_id_UE_ContextInformation_SgNBModReq = 215;
+static const long asn_VAL_405_reject = 0;
+static const long asn_VAL_405_optional = 0;
+static const long asn_VAL_406_id_MeNBtoSgNBContainer = 206;
+static const long asn_VAL_406_reject = 0;
+static const long asn_VAL_406_optional = 0;
+static const long asn_VAL_407_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_407_reject = 0;
+static const long asn_VAL_407_optional = 0;
+static const long asn_VAL_408_id_MeNBResourceCoordinationInformation = 257;
+static const long asn_VAL_408_ignore = 1;
+static const long asn_VAL_408_optional = 0;
+static const long asn_VAL_409_id_RequestedSplitSRBs = 208;
+static const long asn_VAL_409_ignore = 1;
+static const long asn_VAL_409_optional = 0;
+static const long asn_VAL_410_id_RequestedSplitSRBsrelease = 280;
+static const long asn_VAL_410_ignore = 1;
+static const long asn_VAL_410_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBModificationRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_399_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_399_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_399_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_400_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_400_reject },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_400_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_401_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_401_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_401_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_402_id_SelectedPLMN },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_402_ignore },
+       { "&Value", aioc__type, &asn_DEF_PLMN_Identity },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_402_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_403_id_HandoverRestrictionList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_403_ignore },
+       { "&Value", aioc__type, &asn_DEF_HandoverRestrictionList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_403_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_404_id_SCGConfigurationQuery },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_404_ignore },
+       { "&Value", aioc__type, &asn_DEF_SCGConfigurationQuery },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_404_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_405_id_UE_ContextInformation_SgNBModReq },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_405_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_ContextInformation_SgNBModReq },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_405_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_406_id_MeNBtoSgNBContainer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_406_reject },
+       { "&Value", aioc__type, &asn_DEF_MeNBtoSgNBContainer },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_406_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_407_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_407_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_407_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_408_id_MeNBResourceCoordinationInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_408_ignore },
+       { "&Value", aioc__type, &asn_DEF_MeNBResourceCoordinationInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_408_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_409_id_RequestedSplitSRBs },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_409_ignore },
+       { "&Value", aioc__type, &asn_DEF_SplitSRBs },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_409_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_410_id_RequestedSplitSRBsrelease },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_410_ignore },
+       { "&Value", aioc__type, &asn_DEF_SplitSRBs },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_410_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBModificationRequest_IEs_1[] = {
+       { 12, 4, asn_IOS_SgNBModificationRequest_IEs_1_rows }
+};
+static const long asn_VAL_414_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_414_ignore = 1;
+static const long asn_VAL_414_mandatory = 2;
+static const long asn_VAL_415_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_415_ignore = 1;
+static const long asn_VAL_415_mandatory = 2;
+static const long asn_VAL_416_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList = 219;
+static const long asn_VAL_416_ignore = 1;
+static const long asn_VAL_416_optional = 0;
+static const long asn_VAL_417_id_E_RABs_Admitted_ToBeModified_SgNBModAckList = 220;
+static const long asn_VAL_417_ignore = 1;
+static const long asn_VAL_417_optional = 0;
+static const long asn_VAL_418_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList = 221;
+static const long asn_VAL_418_ignore = 1;
+static const long asn_VAL_418_optional = 0;
+static const long asn_VAL_419_id_E_RABs_NotAdmitted_List = 3;
+static const long asn_VAL_419_ignore = 1;
+static const long asn_VAL_419_optional = 0;
+static const long asn_VAL_420_id_SgNBtoMeNBContainer = 211;
+static const long asn_VAL_420_ignore = 1;
+static const long asn_VAL_420_optional = 0;
+static const long asn_VAL_421_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_421_ignore = 1;
+static const long asn_VAL_421_optional = 0;
+static const long asn_VAL_422_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_422_ignore = 1;
+static const long asn_VAL_422_optional = 0;
+static const long asn_VAL_423_id_SgNBResourceCoordinationInformation = 258;
+static const long asn_VAL_423_ignore = 1;
+static const long asn_VAL_423_optional = 0;
+static const long asn_VAL_424_id_AdmittedSplitSRBs = 212;
+static const long asn_VAL_424_ignore = 1;
+static const long asn_VAL_424_optional = 0;
+static const long asn_VAL_425_id_AdmittedSplitSRBsrelease = 281;
+static const long asn_VAL_425_ignore = 1;
+static const long asn_VAL_425_optional = 0;
+static const long asn_VAL_426_id_RRCConfigIndication = 272;
+static const long asn_VAL_426_reject = 0;
+static const long asn_VAL_426_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBModificationRequestAcknowledge_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_414_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_414_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_414_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_415_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_415_ignore },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_415_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_416_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_416_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_416_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_417_id_E_RABs_Admitted_ToBeModified_SgNBModAckList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_417_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_417_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_418_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_418_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_418_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_419_id_E_RABs_NotAdmitted_List },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_419_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RAB_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_419_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_420_id_SgNBtoMeNBContainer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_420_ignore },
+       { "&Value", aioc__type, &asn_DEF_SgNBtoMeNBContainer },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_420_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_421_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_421_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_421_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_422_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_422_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_422_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_423_id_SgNBResourceCoordinationInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_423_ignore },
+       { "&Value", aioc__type, &asn_DEF_SgNBResourceCoordinationInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_423_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_424_id_AdmittedSplitSRBs },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_424_ignore },
+       { "&Value", aioc__type, &asn_DEF_SplitSRBs },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_424_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_425_id_AdmittedSplitSRBsrelease },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_425_ignore },
+       { "&Value", aioc__type, &asn_DEF_SplitSRBs },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_425_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_426_id_RRCConfigIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_426_reject },
+       { "&Value", aioc__type, &asn_DEF_RRC_Config_Ind },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_426_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBModificationRequestAcknowledge_IEs_1[] = {
+       { 13, 4, asn_IOS_SgNBModificationRequestAcknowledge_IEs_1_rows }
+};
+static const long asn_VAL_430_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_430_ignore = 1;
+static const long asn_VAL_430_mandatory = 2;
+static const long asn_VAL_431_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_431_ignore = 1;
+static const long asn_VAL_431_mandatory = 2;
+static const long asn_VAL_432_id_Cause = 5;
+static const long asn_VAL_432_ignore = 1;
+static const long asn_VAL_432_mandatory = 2;
+static const long asn_VAL_433_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_433_ignore = 1;
+static const long asn_VAL_433_optional = 0;
+static const long asn_VAL_434_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_434_ignore = 1;
+static const long asn_VAL_434_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBModificationRequestReject_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_430_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_430_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_430_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_431_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_431_ignore },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_431_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_432_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_432_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_432_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_433_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_433_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_433_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_434_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_434_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_434_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBModificationRequestReject_IEs_1[] = {
+       { 5, 4, asn_IOS_SgNBModificationRequestReject_IEs_1_rows }
+};
+static const long asn_VAL_435_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_435_reject = 0;
+static const long asn_VAL_435_mandatory = 2;
+static const long asn_VAL_436_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_436_reject = 0;
+static const long asn_VAL_436_mandatory = 2;
+static const long asn_VAL_437_id_Cause = 5;
+static const long asn_VAL_437_ignore = 1;
+static const long asn_VAL_437_mandatory = 2;
+static const long asn_VAL_438_id_PDCPChangeIndication = 249;
+static const long asn_VAL_438_ignore = 1;
+static const long asn_VAL_438_optional = 0;
+static const long asn_VAL_439_id_E_RABs_ToBeReleased_SgNBModReqdList = 225;
+static const long asn_VAL_439_ignore = 1;
+static const long asn_VAL_439_optional = 0;
+static const long asn_VAL_440_id_SgNBtoMeNBContainer = 211;
+static const long asn_VAL_440_ignore = 1;
+static const long asn_VAL_440_optional = 0;
+static const long asn_VAL_441_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_441_reject = 0;
+static const long asn_VAL_441_optional = 0;
+static const long asn_VAL_442_id_E_RABs_ToBeModified_SgNBModReqdList = 226;
+static const long asn_VAL_442_ignore = 1;
+static const long asn_VAL_442_optional = 0;
+static const long asn_VAL_443_id_SgNBResourceCoordinationInformation = 258;
+static const long asn_VAL_443_ignore = 1;
+static const long asn_VAL_443_optional = 0;
+static const long asn_VAL_444_id_RRCConfigIndication = 272;
+static const long asn_VAL_444_reject = 0;
+static const long asn_VAL_444_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBModificationRequired_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_435_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_435_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_435_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_436_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_436_reject },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_436_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_437_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_437_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_437_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_438_id_PDCPChangeIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_438_ignore },
+       { "&Value", aioc__type, &asn_DEF_PDCPChangeIndication },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_438_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_439_id_E_RABs_ToBeReleased_SgNBModReqdList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_439_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_439_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_440_id_SgNBtoMeNBContainer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_440_ignore },
+       { "&Value", aioc__type, &asn_DEF_SgNBtoMeNBContainer },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_440_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_441_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_441_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_441_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_442_id_E_RABs_ToBeModified_SgNBModReqdList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_442_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeModified_SgNBModReqdList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_442_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_443_id_SgNBResourceCoordinationInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_443_ignore },
+       { "&Value", aioc__type, &asn_DEF_SgNBResourceCoordinationInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_443_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_444_id_RRCConfigIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_444_reject },
+       { "&Value", aioc__type, &asn_DEF_RRC_Config_Ind },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_444_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBModificationRequired_IEs_1[] = {
+       { 10, 4, asn_IOS_SgNBModificationRequired_IEs_1_rows }
+};
+static const long asn_VAL_447_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_447_ignore = 1;
+static const long asn_VAL_447_mandatory = 2;
+static const long asn_VAL_448_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_448_ignore = 1;
+static const long asn_VAL_448_mandatory = 2;
+static const long asn_VAL_449_id_E_RABs_AdmittedToBeModified_SgNBModConfList = 294;
+static const long asn_VAL_449_ignore = 1;
+static const long asn_VAL_449_optional = 0;
+static const long asn_VAL_450_id_MeNBtoSgNBContainer = 206;
+static const long asn_VAL_450_ignore = 1;
+static const long asn_VAL_450_optional = 0;
+static const long asn_VAL_451_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_451_ignore = 1;
+static const long asn_VAL_451_optional = 0;
+static const long asn_VAL_452_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_452_ignore = 1;
+static const long asn_VAL_452_optional = 0;
+static const long asn_VAL_453_id_MeNBResourceCoordinationInformation = 257;
+static const long asn_VAL_453_ignore = 1;
+static const long asn_VAL_453_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBModificationConfirm_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_447_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_447_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_447_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_448_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_448_ignore },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_448_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_449_id_E_RABs_AdmittedToBeModified_SgNBModConfList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_449_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_449_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_450_id_MeNBtoSgNBContainer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_450_ignore },
+       { "&Value", aioc__type, &asn_DEF_MeNBtoSgNBContainer },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_450_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_451_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_451_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_451_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_452_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_452_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_452_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_453_id_MeNBResourceCoordinationInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_453_ignore },
+       { "&Value", aioc__type, &asn_DEF_MeNBResourceCoordinationInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_453_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBModificationConfirm_IEs_1[] = {
+       { 7, 4, asn_IOS_SgNBModificationConfirm_IEs_1_rows }
+};
+static const long asn_VAL_455_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_455_ignore = 1;
+static const long asn_VAL_455_mandatory = 2;
+static const long asn_VAL_456_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_456_ignore = 1;
+static const long asn_VAL_456_mandatory = 2;
+static const long asn_VAL_457_id_Cause = 5;
+static const long asn_VAL_457_ignore = 1;
+static const long asn_VAL_457_mandatory = 2;
+static const long asn_VAL_458_id_MeNBtoSgNBContainer = 206;
+static const long asn_VAL_458_ignore = 1;
+static const long asn_VAL_458_optional = 0;
+static const long asn_VAL_459_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_459_ignore = 1;
+static const long asn_VAL_459_optional = 0;
+static const long asn_VAL_460_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_460_ignore = 1;
+static const long asn_VAL_460_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBModificationRefuse_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_455_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_455_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_455_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_456_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_456_ignore },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_456_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_457_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_457_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_457_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_458_id_MeNBtoSgNBContainer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_458_ignore },
+       { "&Value", aioc__type, &asn_DEF_MeNBtoSgNBContainer },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_458_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_459_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_459_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_459_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_460_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_460_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_460_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBModificationRefuse_IEs_1[] = {
+       { 6, 4, asn_IOS_SgNBModificationRefuse_IEs_1_rows }
+};
+static const long asn_VAL_461_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_461_reject = 0;
+static const long asn_VAL_461_mandatory = 2;
+static const long asn_VAL_462_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_462_reject = 0;
+static const long asn_VAL_462_optional = 0;
+static const long asn_VAL_463_id_Cause = 5;
+static const long asn_VAL_463_ignore = 1;
+static const long asn_VAL_463_mandatory = 2;
+static const long asn_VAL_464_id_E_RABs_ToBeReleased_SgNBRelReqList = 231;
+static const long asn_VAL_464_ignore = 1;
+static const long asn_VAL_464_optional = 0;
+static const long asn_VAL_465_id_UE_ContextKeptIndicator = 154;
+static const long asn_VAL_465_ignore = 1;
+static const long asn_VAL_465_optional = 0;
+static const long asn_VAL_466_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_466_reject = 0;
+static const long asn_VAL_466_optional = 0;
+static const long asn_VAL_467_id_MeNBtoSgNBContainer = 206;
+static const long asn_VAL_467_reject = 0;
+static const long asn_VAL_467_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBReleaseRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_461_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_461_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_461_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_462_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_462_reject },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_462_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_463_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_463_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_463_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_464_id_E_RABs_ToBeReleased_SgNBRelReqList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_464_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_464_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_465_id_UE_ContextKeptIndicator },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_465_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_ContextKeptIndicator },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_465_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_466_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_466_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_466_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_467_id_MeNBtoSgNBContainer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_467_reject },
+       { "&Value", aioc__type, &asn_DEF_MeNBtoSgNBContainer },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_467_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBReleaseRequest_IEs_1[] = {
+       { 7, 4, asn_IOS_SgNBReleaseRequest_IEs_1_rows }
+};
+static const long asn_VAL_469_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_469_ignore = 1;
+static const long asn_VAL_469_mandatory = 2;
+static const long asn_VAL_470_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_470_ignore = 1;
+static const long asn_VAL_470_mandatory = 2;
+static const long asn_VAL_471_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_471_ignore = 1;
+static const long asn_VAL_471_optional = 0;
+static const long asn_VAL_472_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_472_reject = 0;
+static const long asn_VAL_472_optional = 0;
+static const long asn_VAL_473_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList = 318;
+static const long asn_VAL_473_ignore = 1;
+static const long asn_VAL_473_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBReleaseRequestAcknowledge_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_469_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_469_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_469_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_470_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_470_ignore },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_470_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_471_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_471_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_471_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_472_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_472_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_472_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_473_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_473_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_473_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBReleaseRequestAcknowledge_IEs_1[] = {
+       { 5, 4, asn_IOS_SgNBReleaseRequestAcknowledge_IEs_1_rows }
+};
+static const long asn_VAL_475_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_475_ignore = 1;
+static const long asn_VAL_475_mandatory = 2;
+static const long asn_VAL_476_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_476_ignore = 1;
+static const long asn_VAL_476_mandatory = 2;
+static const long asn_VAL_477_id_Cause = 5;
+static const long asn_VAL_477_ignore = 1;
+static const long asn_VAL_477_mandatory = 2;
+static const long asn_VAL_478_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_478_ignore = 1;
+static const long asn_VAL_478_optional = 0;
+static const long asn_VAL_479_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_479_reject = 0;
+static const long asn_VAL_479_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBReleaseRequestReject_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_475_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_475_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_475_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_476_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_476_ignore },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_476_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_477_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_477_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_477_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_478_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_478_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_478_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_479_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_479_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_479_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBReleaseRequestReject_IEs_1[] = {
+       { 5, 4, asn_IOS_SgNBReleaseRequestReject_IEs_1_rows }
+};
+static const long asn_VAL_480_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_480_reject = 0;
+static const long asn_VAL_480_mandatory = 2;
+static const long asn_VAL_481_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_481_reject = 0;
+static const long asn_VAL_481_mandatory = 2;
+static const long asn_VAL_482_id_Cause = 5;
+static const long asn_VAL_482_ignore = 1;
+static const long asn_VAL_482_mandatory = 2;
+static const long asn_VAL_483_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_483_reject = 0;
+static const long asn_VAL_483_optional = 0;
+static const long asn_VAL_484_id_E_RABs_ToBeReleased_SgNBRelReqdList = 320;
+static const long asn_VAL_484_ignore = 1;
+static const long asn_VAL_484_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBReleaseRequired_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_480_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_480_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_480_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_481_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_481_reject },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_481_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_482_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_482_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_482_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_483_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_483_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_483_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_484_id_E_RABs_ToBeReleased_SgNBRelReqdList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_484_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_484_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBReleaseRequired_IEs_1[] = {
+       { 5, 4, asn_IOS_SgNBReleaseRequired_IEs_1_rows }
+};
+static const long asn_VAL_486_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_486_ignore = 1;
+static const long asn_VAL_486_mandatory = 2;
+static const long asn_VAL_487_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_487_ignore = 1;
+static const long asn_VAL_487_mandatory = 2;
+static const long asn_VAL_488_id_E_RABs_ToBeReleased_SgNBRelConfList = 233;
+static const long asn_VAL_488_ignore = 1;
+static const long asn_VAL_488_optional = 0;
+static const long asn_VAL_489_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_489_ignore = 1;
+static const long asn_VAL_489_optional = 0;
+static const long asn_VAL_490_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_490_ignore = 1;
+static const long asn_VAL_490_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBReleaseConfirm_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_486_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_486_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_486_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_487_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_487_ignore },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_487_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_488_id_E_RABs_ToBeReleased_SgNBRelConfList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_488_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_488_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_489_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_489_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_489_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_490_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_490_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_490_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBReleaseConfirm_IEs_1[] = {
+       { 5, 4, asn_IOS_SgNBReleaseConfirm_IEs_1_rows }
+};
+static const long asn_VAL_492_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_492_reject = 0;
+static const long asn_VAL_492_mandatory = 2;
+static const long asn_VAL_493_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_493_reject = 0;
+static const long asn_VAL_493_mandatory = 2;
+static const long asn_VAL_494_id_E_RABs_SubjectToSgNBCounterCheck_List = 235;
+static const long asn_VAL_494_ignore = 1;
+static const long asn_VAL_494_mandatory = 2;
+static const long asn_VAL_495_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_495_ignore = 1;
+static const long asn_VAL_495_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBCounterCheckRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_492_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_492_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_492_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_493_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_493_reject },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_493_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_494_id_E_RABs_SubjectToSgNBCounterCheck_List },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_494_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_494_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_495_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_495_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_495_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBCounterCheckRequest_IEs_1[] = {
+       { 4, 4, asn_IOS_SgNBCounterCheckRequest_IEs_1_rows }
+};
+static const long asn_VAL_497_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_497_reject = 0;
+static const long asn_VAL_497_mandatory = 2;
+static const long asn_VAL_498_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_498_reject = 0;
+static const long asn_VAL_498_mandatory = 2;
+static const long asn_VAL_499_id_Target_SgNB_ID = 239;
+static const long asn_VAL_499_reject = 0;
+static const long asn_VAL_499_mandatory = 2;
+static const long asn_VAL_500_id_Cause = 5;
+static const long asn_VAL_500_ignore = 1;
+static const long asn_VAL_500_mandatory = 2;
+static const long asn_VAL_501_id_SgNBtoMeNBContainer = 211;
+static const long asn_VAL_501_reject = 0;
+static const long asn_VAL_501_optional = 0;
+static const long asn_VAL_502_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_502_reject = 0;
+static const long asn_VAL_502_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBChangeRequired_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_497_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_497_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_497_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_498_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_498_reject },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_498_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_499_id_Target_SgNB_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_499_reject },
+       { "&Value", aioc__type, &asn_DEF_GlobalGNB_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_499_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_500_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_500_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_500_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_501_id_SgNBtoMeNBContainer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_501_reject },
+       { "&Value", aioc__type, &asn_DEF_SgNBtoMeNBContainer },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_501_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_502_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_502_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_502_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBChangeRequired_IEs_1[] = {
+       { 6, 4, asn_IOS_SgNBChangeRequired_IEs_1_rows }
+};
+static const long asn_VAL_503_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_503_ignore = 1;
+static const long asn_VAL_503_mandatory = 2;
+static const long asn_VAL_504_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_504_ignore = 1;
+static const long asn_VAL_504_mandatory = 2;
+static const long asn_VAL_505_id_E_RABs_ToBeReleased_SgNBChaConfList = 229;
+static const long asn_VAL_505_ignore = 1;
+static const long asn_VAL_505_optional = 0;
+static const long asn_VAL_506_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_506_ignore = 1;
+static const long asn_VAL_506_optional = 0;
+static const long asn_VAL_507_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_507_ignore = 1;
+static const long asn_VAL_507_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBChangeConfirm_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_503_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_503_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_503_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_504_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_504_ignore },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_504_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_505_id_E_RABs_ToBeReleased_SgNBChaConfList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_505_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_505_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_506_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_506_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_506_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_507_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_507_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_507_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBChangeConfirm_IEs_1[] = {
+       { 5, 4, asn_IOS_SgNBChangeConfirm_IEs_1_rows }
+};
+static const long asn_VAL_509_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_509_reject = 0;
+static const long asn_VAL_509_mandatory = 2;
+static const long asn_VAL_510_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_510_reject = 0;
+static const long asn_VAL_510_mandatory = 2;
+static const long asn_VAL_511_id_SplitSRB = 242;
+static const long asn_VAL_511_reject = 0;
+static const long asn_VAL_511_optional = 0;
+static const long asn_VAL_512_id_UENRMeasurement = 243;
+static const long asn_VAL_512_reject = 0;
+static const long asn_VAL_512_optional = 0;
+static const long asn_VAL_513_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_513_reject = 0;
+static const long asn_VAL_513_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RRCTransfer_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_509_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_509_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_509_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_510_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_510_reject },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_510_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_511_id_SplitSRB },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_511_reject },
+       { "&Value", aioc__type, &asn_DEF_SplitSRB },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_511_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_512_id_UENRMeasurement },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_512_reject },
+       { "&Value", aioc__type, &asn_DEF_UENRMeasurement },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_512_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_513_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_513_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_513_optional }
+};
+static const asn_ioc_set_t asn_IOS_RRCTransfer_IEs_1[] = {
+       { 5, 4, asn_IOS_RRCTransfer_IEs_1_rows }
+};
+static const long asn_VAL_514_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_514_ignore = 1;
+static const long asn_VAL_514_mandatory = 2;
+static const long asn_VAL_515_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_515_ignore = 1;
+static const long asn_VAL_515_mandatory = 2;
+static const long asn_VAL_516_id_Cause = 5;
+static const long asn_VAL_516_ignore = 1;
+static const long asn_VAL_516_mandatory = 2;
+static const long asn_VAL_517_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_517_ignore = 1;
+static const long asn_VAL_517_optional = 0;
+static const long asn_VAL_518_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_518_reject = 0;
+static const long asn_VAL_518_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBChangeRefuse_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_514_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_514_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_514_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_515_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_515_ignore },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_515_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_516_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_516_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_516_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_517_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_517_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_517_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_518_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_518_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_518_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBChangeRefuse_IEs_1[] = {
+       { 5, 4, asn_IOS_SgNBChangeRefuse_IEs_1_rows }
+};
+static const long asn_VAL_519_id_InitiatingNodeType_EndcX2Setup = 244;
+static const long asn_VAL_519_reject = 0;
+static const long asn_VAL_519_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ENDCX2SetupRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_519_id_InitiatingNodeType_EndcX2Setup },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_519_reject },
+       { "&Value", aioc__type, &asn_DEF_InitiatingNodeType_EndcX2Setup },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_519_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ENDCX2SetupRequest_IEs_1[] = {
+       { 1, 4, asn_IOS_ENDCX2SetupRequest_IEs_1_rows }
+};
+static const long asn_VAL_520_id_GlobalENB_ID = 21;
+static const long asn_VAL_520_reject = 0;
+static const long asn_VAL_520_mandatory = 2;
+static const long asn_VAL_521_id_ServedEUTRAcellsENDCX2ManagementList = 250;
+static const long asn_VAL_521_reject = 0;
+static const long asn_VAL_521_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ENB_ENDCX2SetupReqIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_520_id_GlobalENB_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_520_reject },
+       { "&Value", aioc__type, &asn_DEF_GlobalENB_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_520_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_521_id_ServedEUTRAcellsENDCX2ManagementList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_521_reject },
+       { "&Value", aioc__type, &asn_DEF_ServedEUTRAcellsENDCX2ManagementList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_521_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ENB_ENDCX2SetupReqIEs_1[] = {
+       { 2, 4, asn_IOS_ENB_ENDCX2SetupReqIEs_1_rows }
+};
+static const long asn_VAL_522_id_Globalen_gNB_ID = 252;
+static const long asn_VAL_522_reject = 0;
+static const long asn_VAL_522_mandatory = 2;
+static const long asn_VAL_523_id_ServedNRcellsENDCX2ManagementList = 253;
+static const long asn_VAL_523_reject = 0;
+static const long asn_VAL_523_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_En_gNB_ENDCX2SetupReqIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_522_id_Globalen_gNB_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_522_reject },
+       { "&Value", aioc__type, &asn_DEF_GlobalGNB_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_522_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_523_id_ServedNRcellsENDCX2ManagementList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_523_reject },
+       { "&Value", aioc__type, &asn_DEF_ServedNRcellsENDCX2ManagementList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_523_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_En_gNB_ENDCX2SetupReqIEs_1[] = {
+       { 2, 4, asn_IOS_En_gNB_ENDCX2SetupReqIEs_1_rows }
+};
+static const long asn_VAL_524_id_RespondingNodeType_EndcX2Setup = 246;
+static const long asn_VAL_524_reject = 0;
+static const long asn_VAL_524_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ENDCX2SetupResponse_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_524_id_RespondingNodeType_EndcX2Setup },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_524_reject },
+       { "&Value", aioc__type, &asn_DEF_RespondingNodeType_EndcX2Setup },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_524_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ENDCX2SetupResponse_IEs_1[] = {
+       { 1, 4, asn_IOS_ENDCX2SetupResponse_IEs_1_rows }
+};
+static const long asn_VAL_525_id_GlobalENB_ID = 21;
+static const long asn_VAL_525_reject = 0;
+static const long asn_VAL_525_mandatory = 2;
+static const long asn_VAL_526_id_ServedEUTRAcellsENDCX2ManagementList = 250;
+static const long asn_VAL_526_reject = 0;
+static const long asn_VAL_526_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ENB_ENDCX2SetupReqAckIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_525_id_GlobalENB_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_525_reject },
+       { "&Value", aioc__type, &asn_DEF_GlobalENB_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_525_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_526_id_ServedEUTRAcellsENDCX2ManagementList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_526_reject },
+       { "&Value", aioc__type, &asn_DEF_ServedEUTRAcellsENDCX2ManagementList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_526_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ENB_ENDCX2SetupReqAckIEs_1[] = {
+       { 2, 4, asn_IOS_ENB_ENDCX2SetupReqAckIEs_1_rows }
+};
+static const long asn_VAL_527_id_Globalen_gNB_ID = 252;
+static const long asn_VAL_527_reject = 0;
+static const long asn_VAL_527_mandatory = 2;
+static const long asn_VAL_528_id_ServedNRcellsENDCX2ManagementList = 253;
+static const long asn_VAL_528_reject = 0;
+static const long asn_VAL_528_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_En_gNB_ENDCX2SetupReqAckIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_527_id_Globalen_gNB_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_527_reject },
+       { "&Value", aioc__type, &asn_DEF_GlobalGNB_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_527_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_528_id_ServedNRcellsENDCX2ManagementList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_528_reject },
+       { "&Value", aioc__type, &asn_DEF_ServedNRcellsENDCX2ManagementList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_528_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_En_gNB_ENDCX2SetupReqAckIEs_1[] = {
+       { 2, 4, asn_IOS_En_gNB_ENDCX2SetupReqAckIEs_1_rows }
+};
+static const long asn_VAL_529_id_Cause = 5;
+static const long asn_VAL_529_ignore = 1;
+static const long asn_VAL_529_mandatory = 2;
+static const long asn_VAL_530_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_530_ignore = 1;
+static const long asn_VAL_530_optional = 0;
+static const long asn_VAL_531_id_TimeToWait = 22;
+static const long asn_VAL_531_ignore = 1;
+static const long asn_VAL_531_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ENDCX2SetupFailure_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_529_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_529_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_529_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_530_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_530_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_530_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_531_id_TimeToWait },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_531_ignore },
+       { "&Value", aioc__type, &asn_DEF_TimeToWait },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_531_optional }
+};
+static const asn_ioc_set_t asn_IOS_ENDCX2SetupFailure_IEs_1[] = {
+       { 3, 4, asn_IOS_ENDCX2SetupFailure_IEs_1_rows }
+};
+static const long asn_VAL_532_id_InitiatingNodeType_EndcConfigUpdate = 245;
+static const long asn_VAL_532_reject = 0;
+static const long asn_VAL_532_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ENDCConfigurationUpdate_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_532_id_InitiatingNodeType_EndcConfigUpdate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_532_reject },
+       { "&Value", aioc__type, &asn_DEF_InitiatingNodeType_EndcConfigUpdate },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_532_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ENDCConfigurationUpdate_IEs_1[] = {
+       { 1, 4, asn_IOS_ENDCConfigurationUpdate_IEs_1_rows }
+};
+static const long asn_VAL_533_id_CellAssistanceInformation = 251;
+static const long asn_VAL_533_reject = 0;
+static const long asn_VAL_533_optional = 0;
+static const long asn_VAL_534_id_ServedEUTRAcellsENDCX2ManagementList = 250;
+static const long asn_VAL_534_reject = 0;
+static const long asn_VAL_534_optional = 0;
+static const long asn_VAL_535_id_ServedEUTRAcellsToModifyListENDCConfUpd = 259;
+static const long asn_VAL_535_reject = 0;
+static const long asn_VAL_535_optional = 0;
+static const long asn_VAL_536_id_ServedEUTRAcellsToDeleteListENDCConfUpd = 260;
+static const long asn_VAL_536_reject = 0;
+static const long asn_VAL_536_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ENB_ENDCConfigUpdateIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_533_id_CellAssistanceInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_533_reject },
+       { "&Value", aioc__type, &asn_DEF_CellAssistanceInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_533_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_534_id_ServedEUTRAcellsENDCX2ManagementList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_534_reject },
+       { "&Value", aioc__type, &asn_DEF_ServedEUTRAcellsENDCX2ManagementList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_534_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_535_id_ServedEUTRAcellsToModifyListENDCConfUpd },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_535_reject },
+       { "&Value", aioc__type, &asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_535_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_536_id_ServedEUTRAcellsToDeleteListENDCConfUpd },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_536_reject },
+       { "&Value", aioc__type, &asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_536_optional }
+};
+static const asn_ioc_set_t asn_IOS_ENB_ENDCConfigUpdateIEs_1[] = {
+       { 4, 4, asn_IOS_ENB_ENDCConfigUpdateIEs_1_rows }
+};
+static const long asn_VAL_537_id_ServedNRcellsENDCX2ManagementList = 253;
+static const long asn_VAL_537_reject = 0;
+static const long asn_VAL_537_optional = 0;
+static const long asn_VAL_538_id_ServedNRcellsToModifyListENDCConfUpd = 261;
+static const long asn_VAL_538_reject = 0;
+static const long asn_VAL_538_optional = 0;
+static const long asn_VAL_539_id_ServedNRcellsToDeleteListENDCConfUpd = 262;
+static const long asn_VAL_539_reject = 0;
+static const long asn_VAL_539_optional = 0;
+static const asn_ioc_cell_t asn_IOS_En_gNB_ENDCConfigUpdateIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_537_id_ServedNRcellsENDCX2ManagementList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_537_reject },
+       { "&Value", aioc__type, &asn_DEF_ServedNRcellsENDCX2ManagementList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_537_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_538_id_ServedNRcellsToModifyListENDCConfUpd },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_538_reject },
+       { "&Value", aioc__type, &asn_DEF_ServedNRcellsToModifyENDCConfUpdList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_538_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_539_id_ServedNRcellsToDeleteListENDCConfUpd },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_539_reject },
+       { "&Value", aioc__type, &asn_DEF_ServedNRcellsToDeleteENDCConfUpdList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_539_optional }
+};
+static const asn_ioc_set_t asn_IOS_En_gNB_ENDCConfigUpdateIEs_1[] = {
+       { 3, 4, asn_IOS_En_gNB_ENDCConfigUpdateIEs_1_rows }
+};
+static const long asn_VAL_540_id_RespondingNodeType_EndcConfigUpdate = 247;
+static const long asn_VAL_540_reject = 0;
+static const long asn_VAL_540_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ENDCConfigurationUpdateAcknowledge_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_540_id_RespondingNodeType_EndcConfigUpdate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_540_reject },
+       { "&Value", aioc__type, &asn_DEF_RespondingNodeType_EndcConfigUpdate },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_540_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ENDCConfigurationUpdateAcknowledge_IEs_1[] = {
+       { 1, 4, asn_IOS_ENDCConfigurationUpdateAcknowledge_IEs_1_rows }
+};
+static const long asn_VAL_541_id_ServedNRcellsENDCX2ManagementList = 253;
+static const long asn_VAL_541_reject = 0;
+static const long asn_VAL_541_optional = 0;
+static const asn_ioc_cell_t asn_IOS_En_gNB_ENDCConfigUpdateAckIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_541_id_ServedNRcellsENDCX2ManagementList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_541_reject },
+       { "&Value", aioc__type, &asn_DEF_ServedNRcellsENDCX2ManagementList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_541_optional }
+};
+static const asn_ioc_set_t asn_IOS_En_gNB_ENDCConfigUpdateAckIEs_1[] = {
+       { 1, 4, asn_IOS_En_gNB_ENDCConfigUpdateAckIEs_1_rows }
+};
+static const long asn_VAL_542_id_Cause = 5;
+static const long asn_VAL_542_ignore = 1;
+static const long asn_VAL_542_mandatory = 2;
+static const long asn_VAL_543_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_543_ignore = 1;
+static const long asn_VAL_543_optional = 0;
+static const long asn_VAL_544_id_TimeToWait = 22;
+static const long asn_VAL_544_ignore = 1;
+static const long asn_VAL_544_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ENDCConfigurationUpdateFailure_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_542_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_542_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_542_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_543_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_543_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_543_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_544_id_TimeToWait },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_544_ignore },
+       { "&Value", aioc__type, &asn_DEF_TimeToWait },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_544_optional }
+};
+static const asn_ioc_set_t asn_IOS_ENDCConfigurationUpdateFailure_IEs_1[] = {
+       { 3, 4, asn_IOS_ENDCConfigurationUpdateFailure_IEs_1_rows }
+};
+static const long asn_VAL_545_id_ServedNRCellsToActivate = 267;
+static const long asn_VAL_545_reject = 0;
+static const long asn_VAL_545_mandatory = 2;
+static const long asn_VAL_546_id_ActivationID = 256;
+static const long asn_VAL_546_reject = 0;
+static const long asn_VAL_546_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ENDCCellActivationRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_545_id_ServedNRCellsToActivate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_545_reject },
+       { "&Value", aioc__type, &asn_DEF_ServedNRCellsToActivate },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_545_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_546_id_ActivationID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_546_reject },
+       { "&Value", aioc__type, &asn_DEF_ActivationID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_546_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ENDCCellActivationRequest_IEs_1[] = {
+       { 2, 4, asn_IOS_ENDCCellActivationRequest_IEs_1_rows }
+};
+static const long asn_VAL_547_id_ActivatedNRCellList = 268;
+static const long asn_VAL_547_ignore = 1;
+static const long asn_VAL_547_mandatory = 2;
+static const long asn_VAL_548_id_ActivationID = 256;
+static const long asn_VAL_548_reject = 0;
+static const long asn_VAL_548_mandatory = 2;
+static const long asn_VAL_549_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_549_ignore = 1;
+static const long asn_VAL_549_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ENDCCellActivationResponse_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_547_id_ActivatedNRCellList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_547_ignore },
+       { "&Value", aioc__type, &asn_DEF_ActivatedNRCellList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_547_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_548_id_ActivationID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_548_reject },
+       { "&Value", aioc__type, &asn_DEF_ActivationID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_548_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_549_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_549_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_549_optional }
+};
+static const asn_ioc_set_t asn_IOS_ENDCCellActivationResponse_IEs_1[] = {
+       { 3, 4, asn_IOS_ENDCCellActivationResponse_IEs_1_rows }
+};
+static const long asn_VAL_550_id_ActivationID = 256;
+static const long asn_VAL_550_reject = 0;
+static const long asn_VAL_550_mandatory = 2;
+static const long asn_VAL_551_id_Cause = 5;
+static const long asn_VAL_551_ignore = 1;
+static const long asn_VAL_551_mandatory = 2;
+static const long asn_VAL_552_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_552_ignore = 1;
+static const long asn_VAL_552_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ENDCCellActivationFailure_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_550_id_ActivationID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_550_reject },
+       { "&Value", aioc__type, &asn_DEF_ActivationID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_550_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_551_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_551_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_551_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_552_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_552_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_552_optional }
+};
+static const asn_ioc_set_t asn_IOS_ENDCCellActivationFailure_IEs_1[] = {
+       { 3, 4, asn_IOS_ENDCCellActivationFailure_IEs_1_rows }
+};
+static const long asn_VAL_553_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_553_reject = 0;
+static const long asn_VAL_553_mandatory = 2;
+static const long asn_VAL_554_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_554_reject = 0;
+static const long asn_VAL_554_mandatory = 2;
+static const long asn_VAL_555_id_SecondaryRATUsageReportList = 265;
+static const long asn_VAL_555_reject = 0;
+static const long asn_VAL_555_mandatory = 2;
+static const long asn_VAL_556_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_556_reject = 0;
+static const long asn_VAL_556_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SecondaryRATDataUsageReport_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_553_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_553_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_553_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_554_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_554_reject },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_554_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_555_id_SecondaryRATUsageReportList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_555_reject },
+       { "&Value", aioc__type, &asn_DEF_SecondaryRATUsageReportList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_555_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_556_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_556_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_556_optional }
+};
+static const asn_ioc_set_t asn_IOS_SecondaryRATDataUsageReport_IEs_1[] = {
+       { 4, 4, asn_IOS_SecondaryRATDataUsageReport_IEs_1_rows }
+};
+static const long asn_VAL_557_id_MeNB_UE_X2AP_ID = 111;
+static const long asn_VAL_557_reject = 0;
+static const long asn_VAL_557_mandatory = 2;
+static const long asn_VAL_558_id_SgNB_UE_X2AP_ID = 207;
+static const long asn_VAL_558_reject = 0;
+static const long asn_VAL_558_mandatory = 2;
+static const long asn_VAL_559_id_UEContextLevelUserPlaneActivity = 296;
+static const long asn_VAL_559_ignore = 1;
+static const long asn_VAL_559_optional = 0;
+static const long asn_VAL_560_id_ERABActivityNotifyItemList = 297;
+static const long asn_VAL_560_ignore = 1;
+static const long asn_VAL_560_optional = 0;
+static const long asn_VAL_561_id_MeNB_UE_X2AP_ID_Extension = 157;
+static const long asn_VAL_561_reject = 0;
+static const long asn_VAL_561_optional = 0;
+static const asn_ioc_cell_t asn_IOS_SgNBActivityNotification_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_557_id_MeNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_557_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_557_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_558_id_SgNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_558_reject },
+       { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_558_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_559_id_UEContextLevelUserPlaneActivity },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_559_ignore },
+       { "&Value", aioc__type, &asn_DEF_UserPlaneTrafficActivityReport },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_559_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_560_id_ERABActivityNotifyItemList },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_560_ignore },
+       { "&Value", aioc__type, &asn_DEF_ERABActivityNotifyItemList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_560_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_561_id_MeNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_561_reject },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_561_optional }
+};
+static const asn_ioc_set_t asn_IOS_SgNBActivityNotification_IEs_1[] = {
+       { 5, 4, asn_IOS_SgNBActivityNotification_IEs_1_rows }
+};
+static const long asn_VAL_562_id_UEs_ToBeReset = 270;
+static const long asn_VAL_562_reject = 0;
+static const long asn_VAL_562_mandatory = 2;
+static const long asn_VAL_563_id_Cause = 5;
+static const long asn_VAL_563_ignore = 1;
+static const long asn_VAL_563_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ENDCPartialResetRequired_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_562_id_UEs_ToBeReset },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_562_reject },
+       { "&Value", aioc__type, &asn_DEF_UEsToBeResetList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_562_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_563_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_563_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_563_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ENDCPartialResetRequired_IEs_1[] = {
+       { 2, 4, asn_IOS_ENDCPartialResetRequired_IEs_1_rows }
+};
+static const long asn_VAL_564_id_UEs_Admitted_ToBeReset = 271;
+static const long asn_VAL_564_reject = 0;
+static const long asn_VAL_564_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ENDCPartialResetConfirm_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_564_id_UEs_Admitted_ToBeReset },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_564_reject },
+       { "&Value", aioc__type, &asn_DEF_UEsToBeResetList },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_564_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ENDCPartialResetConfirm_IEs_1[] = {
+       { 1, 4, asn_IOS_ENDCPartialResetConfirm_IEs_1_rows }
+};
+static const long asn_VAL_565_id_InitiatingNodeType_EutranrCellResourceCoordination = 285;
+static const long asn_VAL_565_reject = 0;
+static const long asn_VAL_565_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_EUTRANRCellResourceCoordinationRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_565_id_InitiatingNodeType_EutranrCellResourceCoordination },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_565_reject },
+       { "&Value", aioc__type, &asn_DEF_InitiatingNodeType_EutranrCellResourceCoordination },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_565_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_EUTRANRCellResourceCoordinationRequest_IEs_1[] = {
+       { 1, 4, asn_IOS_EUTRANRCellResourceCoordinationRequest_IEs_1_rows }
+};
+static const long asn_VAL_566_id_DataTrafficResourceIndication = 287;
+static const long asn_VAL_566_reject = 0;
+static const long asn_VAL_566_mandatory = 2;
+static const long asn_VAL_567_id_SpectrumSharingGroupID = 288;
+static const long asn_VAL_567_reject = 0;
+static const long asn_VAL_567_mandatory = 2;
+static const long asn_VAL_568_id_ListofEUTRACellsinEUTRACoordinationReq = 289;
+static const long asn_VAL_568_reject = 0;
+static const long asn_VAL_568_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_566_id_DataTrafficResourceIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_566_reject },
+       { "&Value", aioc__type, &asn_DEF_DataTrafficResourceIndication },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_566_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_567_id_SpectrumSharingGroupID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_567_reject },
+       { "&Value", aioc__type, &asn_DEF_SpectrumSharingGroupID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_567_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_568_id_ListofEUTRACellsinEUTRACoordinationReq },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_568_reject },
+       { "&Value", aioc__type, &asn_DEF_ListofEUTRACellsinEUTRACoordinationReq },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_568_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqIEs_1[] = {
+       { 3, 4, asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqIEs_1_rows }
+};
+static const long asn_VAL_569_id_DataTrafficResourceIndication = 287;
+static const long asn_VAL_569_reject = 0;
+static const long asn_VAL_569_mandatory = 2;
+static const long asn_VAL_570_id_ListofEUTRACellsinNRCoordinationReq = 291;
+static const long asn_VAL_570_reject = 0;
+static const long asn_VAL_570_mandatory = 2;
+static const long asn_VAL_571_id_SpectrumSharingGroupID = 288;
+static const long asn_VAL_571_reject = 0;
+static const long asn_VAL_571_mandatory = 2;
+static const long asn_VAL_572_id_ListofNRCellsinNRCoordinationReq = 292;
+static const long asn_VAL_572_reject = 0;
+static const long asn_VAL_572_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_569_id_DataTrafficResourceIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_569_reject },
+       { "&Value", aioc__type, &asn_DEF_DataTrafficResourceIndication },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_569_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_570_id_ListofEUTRACellsinNRCoordinationReq },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_570_reject },
+       { "&Value", aioc__type, &asn_DEF_ListofEUTRACellsinNRCoordinationReq },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_570_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_571_id_SpectrumSharingGroupID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_571_reject },
+       { "&Value", aioc__type, &asn_DEF_SpectrumSharingGroupID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_571_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_572_id_ListofNRCellsinNRCoordinationReq },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_572_reject },
+       { "&Value", aioc__type, &asn_DEF_ListofNRCellsinNRCoordinationReq },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_572_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_1[] = {
+       { 4, 4, asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_1_rows }
+};
+static const long asn_VAL_573_id_RespondingNodeType_EutranrCellResourceCoordination = 286;
+static const long asn_VAL_573_reject = 0;
+static const long asn_VAL_573_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_EUTRANRCellResourceCoordinationResponse_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_573_id_RespondingNodeType_EutranrCellResourceCoordination },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_573_reject },
+       { "&Value", aioc__type, &asn_DEF_RespondingNodeType_EutranrCellResourceCoordination },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_573_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_EUTRANRCellResourceCoordinationResponse_IEs_1[] = {
+       { 1, 4, asn_IOS_EUTRANRCellResourceCoordinationResponse_IEs_1_rows }
+};
+static const long asn_VAL_574_id_DataTrafficResourceIndication = 287;
+static const long asn_VAL_574_reject = 0;
+static const long asn_VAL_574_mandatory = 2;
+static const long asn_VAL_575_id_SpectrumSharingGroupID = 288;
+static const long asn_VAL_575_reject = 0;
+static const long asn_VAL_575_mandatory = 2;
+static const long asn_VAL_576_id_ListofEUTRACellsinEUTRACoordinationResp = 290;
+static const long asn_VAL_576_reject = 0;
+static const long asn_VAL_576_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_574_id_DataTrafficResourceIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_574_reject },
+       { "&Value", aioc__type, &asn_DEF_DataTrafficResourceIndication },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_574_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_575_id_SpectrumSharingGroupID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_575_reject },
+       { "&Value", aioc__type, &asn_DEF_SpectrumSharingGroupID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_575_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_576_id_ListofEUTRACellsinEUTRACoordinationResp },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_576_reject },
+       { "&Value", aioc__type, &asn_DEF_ListofEUTRACellsinEUTRACoordinationResp },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_576_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_1[] = {
+       { 3, 4, asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_1_rows }
+};
+static const long asn_VAL_577_id_DataTrafficResourceIndication = 287;
+static const long asn_VAL_577_reject = 0;
+static const long asn_VAL_577_mandatory = 2;
+static const long asn_VAL_578_id_SpectrumSharingGroupID = 288;
+static const long asn_VAL_578_reject = 0;
+static const long asn_VAL_578_mandatory = 2;
+static const long asn_VAL_579_id_ListofNRCellsinNRCoordinationResp = 293;
+static const long asn_VAL_579_reject = 0;
+static const long asn_VAL_579_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_577_id_DataTrafficResourceIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_577_reject },
+       { "&Value", aioc__type, &asn_DEF_DataTrafficResourceIndication },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_577_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_578_id_SpectrumSharingGroupID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_578_reject },
+       { "&Value", aioc__type, &asn_DEF_SpectrumSharingGroupID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_578_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_579_id_ListofNRCellsinNRCoordinationResp },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_579_reject },
+       { "&Value", aioc__type, &asn_DEF_ListofNRCellsinNRCoordinationResp },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_579_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_1[] = {
+       { 3, 4, asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_1_rows }
+};
+static const long asn_VAL_580_id_InitiatingNodeType_EndcX2Removal = 298;
+static const long asn_VAL_580_reject = 0;
+static const long asn_VAL_580_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ENDCX2RemovalRequest_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_580_id_InitiatingNodeType_EndcX2Removal },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_580_reject },
+       { "&Value", aioc__type, &asn_DEF_InitiatingNodeType_EndcX2Removal },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_580_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ENDCX2RemovalRequest_IEs_1[] = {
+       { 1, 4, asn_IOS_ENDCX2RemovalRequest_IEs_1_rows }
+};
+static const long asn_VAL_581_id_GlobalENB_ID = 21;
+static const long asn_VAL_581_reject = 0;
+static const long asn_VAL_581_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ENB_ENDCX2RemovalReqIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_581_id_GlobalENB_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_581_reject },
+       { "&Value", aioc__type, &asn_DEF_GlobalENB_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_581_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ENB_ENDCX2RemovalReqIEs_1[] = {
+       { 1, 4, asn_IOS_ENB_ENDCX2RemovalReqIEs_1_rows }
+};
+static const long asn_VAL_582_id_Globalen_gNB_ID = 252;
+static const long asn_VAL_582_reject = 0;
+static const long asn_VAL_582_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_En_gNB_ENDCX2RemovalReqIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_582_id_Globalen_gNB_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_582_reject },
+       { "&Value", aioc__type, &asn_DEF_GlobalGNB_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_582_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_En_gNB_ENDCX2RemovalReqIEs_1[] = {
+       { 1, 4, asn_IOS_En_gNB_ENDCX2RemovalReqIEs_1_rows }
+};
+static const long asn_VAL_583_id_RespondingNodeType_EndcX2Removal = 299;
+static const long asn_VAL_583_reject = 0;
+static const long asn_VAL_583_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ENDCX2RemovalResponse_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_583_id_RespondingNodeType_EndcX2Removal },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_583_reject },
+       { "&Value", aioc__type, &asn_DEF_RespondingNodeType_EndcX2Removal },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_583_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ENDCX2RemovalResponse_IEs_1[] = {
+       { 1, 4, asn_IOS_ENDCX2RemovalResponse_IEs_1_rows }
+};
+static const long asn_VAL_584_id_GlobalENB_ID = 21;
+static const long asn_VAL_584_reject = 0;
+static const long asn_VAL_584_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ENB_ENDCX2RemovalReqAckIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_584_id_GlobalENB_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_584_reject },
+       { "&Value", aioc__type, &asn_DEF_GlobalENB_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_584_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ENB_ENDCX2RemovalReqAckIEs_1[] = {
+       { 1, 4, asn_IOS_ENB_ENDCX2RemovalReqAckIEs_1_rows }
+};
+static const long asn_VAL_585_id_Globalen_gNB_ID = 252;
+static const long asn_VAL_585_reject = 0;
+static const long asn_VAL_585_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_En_gNB_ENDCX2RemovalReqAckIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_585_id_Globalen_gNB_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_585_reject },
+       { "&Value", aioc__type, &asn_DEF_GlobalGNB_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_585_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_En_gNB_ENDCX2RemovalReqAckIEs_1[] = {
+       { 1, 4, asn_IOS_En_gNB_ENDCX2RemovalReqAckIEs_1_rows }
+};
+static const long asn_VAL_586_id_Cause = 5;
+static const long asn_VAL_586_ignore = 1;
+static const long asn_VAL_586_mandatory = 2;
+static const long asn_VAL_587_id_CriticalityDiagnostics = 17;
+static const long asn_VAL_587_ignore = 1;
+static const long asn_VAL_587_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ENDCX2RemovalFailure_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_586_id_Cause },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_586_ignore },
+       { "&Value", aioc__type, &asn_DEF_Cause },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_586_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_587_id_CriticalityDiagnostics },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_587_ignore },
+       { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_587_optional }
+};
+static const asn_ioc_set_t asn_IOS_ENDCX2RemovalFailure_IEs_1[] = {
+       { 2, 4, asn_IOS_ENDCX2RemovalFailure_IEs_1_rows }
+};
+static const long asn_VAL_588_id_New_eNB_UE_X2AP_ID_Extension = 155;
+static const long asn_VAL_588_ignore = 1;
+static const long asn_VAL_588_optional = 0;
+static const long asn_VAL_589_id_Old_eNB_UE_X2AP_ID = 10;
+static const long asn_VAL_589_ignore = 1;
+static const long asn_VAL_589_mandatory = 2;
+static const long asn_VAL_590_id_Old_eNB_UE_X2AP_ID_Extension = 156;
+static const long asn_VAL_590_ignore = 1;
+static const long asn_VAL_590_optional = 0;
+static const long asn_VAL_591_id_E_RABs_DataForwardingAddress_List = 307;
+static const long asn_VAL_591_ignore = 1;
+static const long asn_VAL_591_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_DataForwardingAddressIndication_IEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_588_id_New_eNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_588_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_588_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_589_id_Old_eNB_UE_X2AP_ID },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_589_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_589_mandatory },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_590_id_Old_eNB_UE_X2AP_ID_Extension },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_590_ignore },
+       { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_590_optional },
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_591_id_E_RABs_DataForwardingAddress_List },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_591_ignore },
+       { "&Value", aioc__type, &asn_DEF_E_RABs_DataForwardingAddress_List },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_591_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_DataForwardingAddressIndication_IEs_1[] = {
+       { 4, 4, asn_IOS_DataForwardingAddressIndication_IEs_1_rows }
+};
+static const long asn_VAL_593_id_GNBOverloadInformation = 310;
+static const long asn_VAL_593_ignore = 1;
+static const long asn_VAL_593_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_GNBStatusIndicationIEs_1_rows[] = {
+       { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_593_id_GNBOverloadInformation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_593_ignore },
+       { "&Value", aioc__type, &asn_DEF_GNBOverloadInformation },
+       { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_593_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_GNBStatusIndicationIEs_1[] = {
+       { 1, 4, asn_IOS_GNBStatusIndicationIEs_1_rows }
+};
+static int
+memb_id_constraint_1(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RICaction_ToBeSetup_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICaction_ToBeSetup_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_ToBeSetup_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RICaction_ToBeSetup_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICaction_ToBeSetup_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_ToBeSetup_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_5(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RICaction_Admitted_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICaction_Admitted_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_Admitted_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_5(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RICaction_Admitted_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICaction_Admitted_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_Admitted_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_5(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_9(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RICaction_NotAdmitted_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICaction_NotAdmitted_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_NotAdmitted_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_9(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RICaction_NotAdmitted_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICaction_NotAdmitted_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_NotAdmitted_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_9(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_13(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RANfunction_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_13(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RANfunction_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_13(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_17(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RANfunctionID_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_17(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RANfunctionID_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_17(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_21(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RANfunctionIDcause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_21(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RANfunctionIDcause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_21(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_25(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeSetup_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeSetup_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeSetup_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_25(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeSetup_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeSetup_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeSetup_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_25(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_29(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_Admitted_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_29(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_Admitted_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_29(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_33(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_SubjectToStatusTransfer_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_SubjectToStatusTransfer_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_33(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_SubjectToStatusTransfer_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_SubjectToStatusTransfer_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_33(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_37(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_CellInformation_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CellInformation_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellInformation_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_37(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_CellInformation_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CellInformation_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellInformation_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_37(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_41(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_CellToReport_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CellToReport_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellToReport_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_41(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_CellToReport_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CellToReport_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellToReport_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_41(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_45(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_MeasurementInitiationResult_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_MeasurementInitiationResult_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MeasurementInitiationResult_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_45(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_MeasurementInitiationResult_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_MeasurementInitiationResult_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MeasurementInitiationResult_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_45(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_49(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_MeasurementFailureCause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_MeasurementFailureCause_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MeasurementFailureCause_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_49(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_MeasurementFailureCause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_MeasurementFailureCause_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MeasurementFailureCause_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_49(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_53(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_CompleteFailureCauseInformation_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CompleteFailureCauseInformation_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CompleteFailureCauseInformation_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_53(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_CompleteFailureCauseInformation_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CompleteFailureCauseInformation_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CompleteFailureCauseInformation_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_53(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_57(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_CellMeasurementResult_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CellMeasurementResult_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellMeasurementResult_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_57(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_CellMeasurementResult_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CellMeasurementResult_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellMeasurementResult_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_57(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_61(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeAdded_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_61(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeAdded_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_61(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_65(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_Admitted_ToBeAdded_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_65(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_Admitted_ToBeAdded_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_65(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_69(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeAdded_ModReqItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_ModReqItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_69(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeAdded_ModReqItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_ModReqItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_69(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_73(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeModified_ModReqItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_ModReqItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_ModReqItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_73(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeModified_ModReqItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_ModReqItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_ModReqItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_73(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_77(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeReleased_ModReqItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_ModReqItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_77(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeReleased_ModReqItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_ModReqItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_77(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_81(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_81(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_81(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_85(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_Admitted_ToBeModified_ModAckItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeModified_ModAckItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_85(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_Admitted_ToBeModified_ModAckItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeModified_ModAckItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_85(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_89(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_89(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_89(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_93(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeReleased_ModReqdItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_ModReqdItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_93(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeReleased_ModReqdItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_ModReqdItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_93(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_97(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeReleased_RelReqItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_RelReqItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_97(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeReleased_RelReqItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_RelReqItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_97(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_101(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeReleased_RelConfItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_RelConfItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_101(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeReleased_RelConfItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_RelConfItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_101(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_105(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_SubjectToCounterCheckItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_SubjectToCounterCheckItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_SubjectToCounterCheckItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_105(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_SubjectToCounterCheckItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_SubjectToCounterCheckItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_SubjectToCounterCheckItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_105(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_109(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeSetupRetrieve_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeSetupRetrieve_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_109(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeSetupRetrieve_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeSetupRetrieve_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_109(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_113(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_113(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_113(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_117(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_117(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_117(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_121(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_121(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_121(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_125(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeModified_SgNBModReq_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReq_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_125(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeModified_SgNBModReq_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReq_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_125(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_129(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_129(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_129(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_133(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_133(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_133(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_137(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_137(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_137(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_141(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_141(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_141(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_145(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_145(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_145(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_149(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_149(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_149(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_153(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_153(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_153(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_157(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_157(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_157(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_161(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_161(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_161(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_165(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_165(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_165(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_169(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_169(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_169(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_173(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_173(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_173(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_177(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_177(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_177(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_181(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABs_DataForwardingAddress_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_DataForwardingAddress_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_DataForwardingAddress_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_181(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABs_DataForwardingAddress_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABs_DataForwardingAddress_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_DataForwardingAddress_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_181(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_185(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RAB_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RAB_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RAB_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_185(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RAB_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RAB_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RAB_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_185(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_189(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_E_RABUsageReport_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABUsageReport_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABUsageReport_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_189(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E_RABUsageReport_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E_RABUsageReport_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABUsageReport_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_189(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_193(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SecondaryRATUsageReport_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SecondaryRATUsageReport_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SecondaryRATUsageReport_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_193(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SecondaryRATUsageReport_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SecondaryRATUsageReport_ItemIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SecondaryRATUsageReport_ItemIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_193(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_197(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RICsubscriptionRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_197(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RICsubscriptionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_197(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_201(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RICsubscriptionResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_201(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RICsubscriptionResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_201(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_205(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RICsubscriptionFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_205(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RICsubscriptionFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_205(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_209(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RICsubscriptionDeleteRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_209(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RICsubscriptionDeleteRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_209(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_213(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RICsubscriptionDeleteResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_213(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RICsubscriptionDeleteResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_213(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_217(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RICsubscriptionDeleteFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_217(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RICsubscriptionDeleteFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_217(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_221(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RICindication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_221(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RICindication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_221(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_225(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RICcontrolRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_225(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RICcontrolRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_225(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_229(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RICcontrolAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_229(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RICcontrolAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_229(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_233(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RICcontrolFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_233(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RICcontrolFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_233(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_237(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RICserviceUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_237(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RICserviceUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_237(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_241(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RICserviceUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_241(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RICserviceUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_241(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_245(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RICserviceUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_245(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RICserviceUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_245(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_249(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RICserviceQuery_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_249(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RICserviceQuery_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_249(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_253(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_HandoverRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_HandoverRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_253(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_HandoverRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_HandoverRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_253(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_257(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_HandoverRequestAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_HandoverRequestAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverRequestAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_257(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_HandoverRequestAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_HandoverRequestAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverRequestAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_257(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_261(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_HandoverPreparationFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_HandoverPreparationFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverPreparationFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_261(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_HandoverPreparationFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_HandoverPreparationFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverPreparationFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_261(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_265(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_HandoverReport_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_HandoverReport_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverReport_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_265(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_HandoverReport_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_HandoverReport_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverReport_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_265(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_269(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SNStatusTransfer_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SNStatusTransfer_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SNStatusTransfer_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_269(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SNStatusTransfer_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SNStatusTransfer_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SNStatusTransfer_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_269(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_273(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_UEContextRelease_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_UEContextRelease_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextRelease_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_273(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_UEContextRelease_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_UEContextRelease_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextRelease_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_273(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_277(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_HandoverCancel_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_HandoverCancel_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverCancel_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_277(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_HandoverCancel_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_HandoverCancel_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverCancel_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_277(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_281(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ErrorIndication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_281(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ErrorIndication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_281(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_285(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ResetRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ResetRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_285(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ResetRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ResetRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_285(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_289(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ResetResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ResetResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_289(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ResetResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ResetResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_289(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_293(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_X2SetupRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2SetupRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2SetupRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_293(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_X2SetupRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2SetupRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2SetupRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_293(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_297(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_X2SetupResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2SetupResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2SetupResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_297(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_X2SetupResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2SetupResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2SetupResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_297(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_301(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_X2SetupFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2SetupFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2SetupFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_301(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_X2SetupFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2SetupFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2SetupFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_301(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_305(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_LoadInformation_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_LoadInformation_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct LoadInformation_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_305(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_LoadInformation_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_LoadInformation_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct LoadInformation_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_305(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_309(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENBConfigurationUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENBConfigurationUpdate_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENBConfigurationUpdate_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_309(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENBConfigurationUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENBConfigurationUpdate_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENBConfigurationUpdate_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_309(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_313(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENBConfigurationUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENBConfigurationUpdateAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENBConfigurationUpdateAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_313(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENBConfigurationUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENBConfigurationUpdateAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENBConfigurationUpdateAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_313(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_317(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENBConfigurationUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENBConfigurationUpdateFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENBConfigurationUpdateFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_317(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENBConfigurationUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENBConfigurationUpdateFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENBConfigurationUpdateFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_317(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_321(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ResourceStatusRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ResourceStatusRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_321(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ResourceStatusRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ResourceStatusRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_321(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_325(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ResourceStatusResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ResourceStatusResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_325(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ResourceStatusResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ResourceStatusResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_325(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_329(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ResourceStatusFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ResourceStatusFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_329(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ResourceStatusFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ResourceStatusFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_329(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_333(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ResourceStatusUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ResourceStatusUpdate_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusUpdate_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_333(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ResourceStatusUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ResourceStatusUpdate_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusUpdate_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_333(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_337(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_MobilityChangeRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_MobilityChangeRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MobilityChangeRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_337(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_MobilityChangeRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_MobilityChangeRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MobilityChangeRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_337(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_341(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_MobilityChangeAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_MobilityChangeAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MobilityChangeAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_341(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_MobilityChangeAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_MobilityChangeAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MobilityChangeAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_341(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_345(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_MobilityChangeFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_MobilityChangeFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MobilityChangeFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_345(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_MobilityChangeFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_MobilityChangeFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MobilityChangeFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_345(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_349(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RLFIndication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RLFIndication_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RLFIndication_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_349(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RLFIndication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RLFIndication_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RLFIndication_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_349(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_353(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_CellActivationRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CellActivationRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellActivationRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_353(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_CellActivationRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CellActivationRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellActivationRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_353(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_357(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_CellActivationResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CellActivationResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellActivationResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_357(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_CellActivationResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CellActivationResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellActivationResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_357(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_361(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_CellActivationFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CellActivationFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellActivationFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_361(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_CellActivationFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_CellActivationFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellActivationFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_361(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_365(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_X2Release_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2Release_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2Release_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_365(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_X2Release_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2Release_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2Release_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_365(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_369(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_X2APMessageTransfer_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2APMessageTransfer_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2APMessageTransfer_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_369(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_X2APMessageTransfer_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2APMessageTransfer_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2APMessageTransfer_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_369(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_373(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SeNBAdditionRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBAdditionRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBAdditionRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_373(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SeNBAdditionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBAdditionRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBAdditionRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_373(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_377(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SeNBAdditionRequestAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBAdditionRequestAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBAdditionRequestAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_377(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SeNBAdditionRequestAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBAdditionRequestAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBAdditionRequestAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_377(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_381(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SeNBAdditionRequestReject_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBAdditionRequestReject_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBAdditionRequestReject_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_381(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SeNBAdditionRequestReject_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBAdditionRequestReject_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBAdditionRequestReject_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_381(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_385(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SeNBReconfigurationComplete_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBReconfigurationComplete_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReconfigurationComplete_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_385(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SeNBReconfigurationComplete_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBReconfigurationComplete_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReconfigurationComplete_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_385(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_389(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SeNBModificationRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_389(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SeNBModificationRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_389(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_393(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SeNBModificationRequestAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRequestAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequestAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_393(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SeNBModificationRequestAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRequestAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequestAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_393(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_397(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SeNBModificationRequestReject_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRequestReject_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequestReject_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_397(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SeNBModificationRequestReject_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRequestReject_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequestReject_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_397(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_401(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SeNBModificationRequired_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRequired_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequired_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_401(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SeNBModificationRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRequired_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequired_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_401(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_405(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SeNBModificationConfirm_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBModificationConfirm_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationConfirm_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_405(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SeNBModificationConfirm_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBModificationConfirm_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationConfirm_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_405(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_409(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SeNBModificationRefuse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRefuse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRefuse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_409(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SeNBModificationRefuse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRefuse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRefuse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_409(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_413(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SeNBReleaseRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBReleaseRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReleaseRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_413(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SeNBReleaseRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBReleaseRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReleaseRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_413(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_417(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SeNBReleaseRequired_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBReleaseRequired_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReleaseRequired_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_417(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SeNBReleaseRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBReleaseRequired_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReleaseRequired_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_417(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_421(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SeNBReleaseConfirm_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBReleaseConfirm_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReleaseConfirm_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_421(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SeNBReleaseConfirm_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBReleaseConfirm_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReleaseConfirm_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_421(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_425(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SeNBCounterCheckRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBCounterCheckRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBCounterCheckRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_425(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SeNBCounterCheckRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SeNBCounterCheckRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBCounterCheckRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_425(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_429(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_X2RemovalRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2RemovalRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2RemovalRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_429(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_X2RemovalRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2RemovalRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2RemovalRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_429(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_433(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_X2RemovalResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2RemovalResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2RemovalResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_433(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_X2RemovalResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2RemovalResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2RemovalResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_433(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_437(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_X2RemovalFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2RemovalFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2RemovalFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_437(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_X2RemovalFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2RemovalFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2RemovalFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_437(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_441(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RetrieveUEContextRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RetrieveUEContextRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RetrieveUEContextRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_441(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RetrieveUEContextRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RetrieveUEContextRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RetrieveUEContextRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_441(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_445(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RetrieveUEContextResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RetrieveUEContextResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RetrieveUEContextResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_445(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RetrieveUEContextResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RetrieveUEContextResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RetrieveUEContextResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_445(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_449(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RetrieveUEContextFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RetrieveUEContextFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RetrieveUEContextFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_449(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RetrieveUEContextFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RetrieveUEContextFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RetrieveUEContextFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_449(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_453(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBAdditionRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBAdditionRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBAdditionRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_453(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBAdditionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBAdditionRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBAdditionRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_453(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_457(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBAdditionRequestAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBAdditionRequestAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBAdditionRequestAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_457(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBAdditionRequestAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBAdditionRequestAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBAdditionRequestAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_457(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_461(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBAdditionRequestReject_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBAdditionRequestReject_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBAdditionRequestReject_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_461(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBAdditionRequestReject_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBAdditionRequestReject_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBAdditionRequestReject_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_461(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_465(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBReconfigurationComplete_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBReconfigurationComplete_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReconfigurationComplete_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_465(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBReconfigurationComplete_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBReconfigurationComplete_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReconfigurationComplete_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_465(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_469(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBModificationRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_469(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBModificationRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_469(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_473(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBModificationRequestAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRequestAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequestAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_473(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBModificationRequestAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRequestAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequestAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_473(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_477(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBModificationRequestReject_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRequestReject_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequestReject_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_477(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBModificationRequestReject_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRequestReject_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequestReject_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_477(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_481(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBModificationRequired_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRequired_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequired_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_481(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBModificationRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRequired_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequired_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_481(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_485(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBModificationConfirm_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBModificationConfirm_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationConfirm_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_485(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBModificationConfirm_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBModificationConfirm_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationConfirm_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_485(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_489(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBModificationRefuse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRefuse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRefuse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_489(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBModificationRefuse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRefuse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRefuse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_489(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_493(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBReleaseRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_493(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBReleaseRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_493(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_497(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBReleaseRequestAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseRequestAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseRequestAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_497(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBReleaseRequestAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseRequestAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseRequestAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_497(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_501(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBReleaseRequestReject_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseRequestReject_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseRequestReject_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_501(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBReleaseRequestReject_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseRequestReject_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseRequestReject_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_501(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_505(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBReleaseRequired_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseRequired_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseRequired_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_505(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBReleaseRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseRequired_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseRequired_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_505(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_509(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBReleaseConfirm_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseConfirm_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseConfirm_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_509(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBReleaseConfirm_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseConfirm_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseConfirm_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_509(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_513(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBCounterCheckRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBCounterCheckRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBCounterCheckRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_513(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBCounterCheckRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBCounterCheckRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBCounterCheckRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_513(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_517(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBChangeRequired_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBChangeRequired_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBChangeRequired_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_517(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBChangeRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBChangeRequired_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBChangeRequired_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_517(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_521(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBChangeConfirm_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBChangeConfirm_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBChangeConfirm_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_521(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBChangeConfirm_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBChangeConfirm_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBChangeConfirm_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_521(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_525(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_RRCTransfer_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RRCTransfer_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RRCTransfer_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_525(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_RRCTransfer_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_RRCTransfer_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RRCTransfer_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_525(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_529(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBChangeRefuse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBChangeRefuse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBChangeRefuse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_529(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBChangeRefuse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBChangeRefuse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBChangeRefuse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_529(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_533(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENDCX2SetupRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCX2SetupRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2SetupRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_533(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENDCX2SetupRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCX2SetupRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2SetupRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_533(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_537(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENB_ENDCX2SetupReqIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCX2SetupReqIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCX2SetupReqIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_537(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENB_ENDCX2SetupReqIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCX2SetupReqIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCX2SetupReqIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_537(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_541(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_En_gNB_ENDCX2SetupReqIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCX2SetupReqIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCX2SetupReqIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_541(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_En_gNB_ENDCX2SetupReqIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCX2SetupReqIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCX2SetupReqIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_541(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_545(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENDCX2SetupResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCX2SetupResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2SetupResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_545(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENDCX2SetupResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCX2SetupResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2SetupResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_545(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_549(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENB_ENDCX2SetupReqAckIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCX2SetupReqAckIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCX2SetupReqAckIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_549(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENB_ENDCX2SetupReqAckIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCX2SetupReqAckIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCX2SetupReqAckIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_549(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_553(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_En_gNB_ENDCX2SetupReqAckIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCX2SetupReqAckIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCX2SetupReqAckIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_553(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_En_gNB_ENDCX2SetupReqAckIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCX2SetupReqAckIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCX2SetupReqAckIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_553(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_557(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENDCX2SetupFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCX2SetupFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2SetupFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_557(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENDCX2SetupFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCX2SetupFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2SetupFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_557(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_561(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENDCConfigurationUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCConfigurationUpdate_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCConfigurationUpdate_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_561(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENDCConfigurationUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCConfigurationUpdate_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCConfigurationUpdate_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_561(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_565(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENB_ENDCConfigUpdateIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCConfigUpdateIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCConfigUpdateIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_565(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENB_ENDCConfigUpdateIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCConfigUpdateIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCConfigUpdateIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_565(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_569(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_En_gNB_ENDCConfigUpdateIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCConfigUpdateIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCConfigUpdateIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_569(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_En_gNB_ENDCConfigUpdateIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCConfigUpdateIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCConfigUpdateIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_569(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_573(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENDCConfigurationUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCConfigurationUpdateAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_573(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENDCConfigurationUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCConfigurationUpdateAcknowledge_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_573(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_577(const 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 >= 0 && value <= 65535)) {
+               /* 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_criticality_constraint_577(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_value_constraint_577(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_581(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_En_gNB_ENDCConfigUpdateAckIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCConfigUpdateAckIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCConfigUpdateAckIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_581(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_En_gNB_ENDCConfigUpdateAckIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCConfigUpdateAckIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCConfigUpdateAckIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_581(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_585(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENDCConfigurationUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCConfigurationUpdateFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCConfigurationUpdateFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_585(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENDCConfigurationUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCConfigurationUpdateFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCConfigurationUpdateFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_585(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_589(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENDCCellActivationRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCCellActivationRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCCellActivationRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_589(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENDCCellActivationRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCCellActivationRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCCellActivationRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_589(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_593(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENDCCellActivationResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCCellActivationResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCCellActivationResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_593(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENDCCellActivationResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCCellActivationResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCCellActivationResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_593(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_597(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENDCCellActivationFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCCellActivationFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCCellActivationFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_597(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENDCCellActivationFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCCellActivationFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCCellActivationFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_597(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_601(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SecondaryRATDataUsageReport_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SecondaryRATDataUsageReport_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SecondaryRATDataUsageReport_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_601(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SecondaryRATDataUsageReport_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SecondaryRATDataUsageReport_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SecondaryRATDataUsageReport_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_601(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_605(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_SgNBActivityNotification_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBActivityNotification_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBActivityNotification_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_605(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SgNBActivityNotification_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_SgNBActivityNotification_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBActivityNotification_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_605(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_609(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENDCPartialResetRequired_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCPartialResetRequired_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCPartialResetRequired_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_609(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENDCPartialResetRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCPartialResetRequired_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCPartialResetRequired_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_609(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_613(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENDCPartialResetConfirm_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCPartialResetConfirm_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCPartialResetConfirm_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_613(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENDCPartialResetConfirm_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCPartialResetConfirm_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCPartialResetConfirm_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_613(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_617(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_EUTRANRCellResourceCoordinationRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_EUTRANRCellResourceCoordinationRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_617(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_EUTRANRCellResourceCoordinationRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_EUTRANRCellResourceCoordinationRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_617(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_621(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENB_EUTRA_NRCellResourceCoordinationReqIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_621(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENB_EUTRA_NRCellResourceCoordinationReqIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_621(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_625(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_625(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_625(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_629(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_EUTRANRCellResourceCoordinationResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_EUTRANRCellResourceCoordinationResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_629(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_EUTRANRCellResourceCoordinationResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_EUTRANRCellResourceCoordinationResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_629(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_633(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_633(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_633(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_637(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_637(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_637(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_641(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENDCX2RemovalRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCX2RemovalRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2RemovalRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_641(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENDCX2RemovalRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCX2RemovalRequest_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2RemovalRequest_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_641(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_645(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENB_ENDCX2RemovalReqIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCX2RemovalReqIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCX2RemovalReqIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_645(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENB_ENDCX2RemovalReqIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCX2RemovalReqIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCX2RemovalReqIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_645(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_649(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_En_gNB_ENDCX2RemovalReqIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCX2RemovalReqIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCX2RemovalReqIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_649(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_En_gNB_ENDCX2RemovalReqIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCX2RemovalReqIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCX2RemovalReqIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_649(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_653(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENDCX2RemovalResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCX2RemovalResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2RemovalResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_653(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENDCX2RemovalResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCX2RemovalResponse_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2RemovalResponse_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_653(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_657(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENB_ENDCX2RemovalReqAckIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCX2RemovalReqAckIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCX2RemovalReqAckIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_657(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENB_ENDCX2RemovalReqAckIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCX2RemovalReqAckIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCX2RemovalReqAckIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_657(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_661(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_En_gNB_ENDCX2RemovalReqAckIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCX2RemovalReqAckIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_661(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_En_gNB_ENDCX2RemovalReqAckIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCX2RemovalReqAckIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_661(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_665(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_ENDCX2RemovalFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCX2RemovalFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2RemovalFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_665(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ENDCX2RemovalFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_ENDCX2RemovalFailure_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2RemovalFailure_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_665(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_669(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_DataForwardingAddressIndication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_DataForwardingAddressIndication_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DataForwardingAddressIndication_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_669(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_DataForwardingAddressIndication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_DataForwardingAddressIndication_IEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DataForwardingAddressIndication_IEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_669(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_673(const 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 >= 0 && value <= 65535)) {
+               /* 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_type_selector_result_t
+select_GNBStatusIndicationIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_GNBStatusIndicationIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 1; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBStatusIndicationIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_673(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_GNBStatusIndicationIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_GNBStatusIndicationIEs_1;
+       size_t constraining_column = 0; /* &id */
+       size_t for_column = 2; /* &Value */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBStatusIndicationIEs, id));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_673(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_oer_constraints_t asn_OER_memb_id_constr_2 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_6 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_6 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_7 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_7 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_8 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_8 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_10 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_10 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_11 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_11 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_12 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_12 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_14 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_14 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_15 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_15 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_16 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_16 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_18 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_18 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_19 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_19 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_20 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_20 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_22 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_22 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_23 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_23 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_24 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_24 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_26 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_26 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_27 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_27 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_28 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_28 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_30 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_30 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_31 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_31 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_32 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_32 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_34 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_34 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_35 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_35 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_36 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_36 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_38 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_38 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_39 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_39 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_40 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_40 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_42 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_42 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_43 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_43 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_44 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_44 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_46 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_46 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_47 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_47 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_48 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_48 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_50 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_50 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_51 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_51 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_52 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_52 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_54 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_54 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_55 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_55 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_56 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_56 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_58 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_58 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_59 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_59 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_60 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_60 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_62 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_62 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_63 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_63 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_64 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_64 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_66 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_66 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_67 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_67 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_68 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_68 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_70 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_70 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_71 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_71 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_72 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_72 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_74 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_74 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_75 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_75 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_76 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_76 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_78 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_78 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_79 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_79 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_80 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_80 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_82 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_82 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_83 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_83 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_84 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_84 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_86 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_86 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_87 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_87 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_88 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_88 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_90 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_90 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_91 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_91 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_92 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_92 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_94 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_94 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_95 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_95 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_96 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_96 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_98 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_98 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_99 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_99 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_100 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_100 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_102 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_102 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_103 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_103 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_104 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_104 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_106 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_106 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_107 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_107 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_108 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_108 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_110 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_110 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_111 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_111 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_112 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_112 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_114 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_114 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_115 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_115 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_116 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_116 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_118 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_118 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_119 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_119 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_120 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_120 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_122 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_122 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_123 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_123 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_124 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_124 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_126 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_126 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_127 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_127 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_128 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_128 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_130 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_130 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_131 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_131 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_132 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_132 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_134 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_134 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_135 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_135 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_136 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_136 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_138 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_138 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_139 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_139 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_140 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_140 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_142 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_142 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_143 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_143 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_144 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_144 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_146 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_146 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_147 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_147 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_148 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_148 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_150 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_150 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_151 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_151 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_152 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_152 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_154 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_154 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_155 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_155 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_156 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_156 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_158 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_158 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_159 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_159 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_160 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_160 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_162 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_162 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_163 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_163 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_164 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_164 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_166 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_166 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_167 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_167 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_168 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_168 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_170 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_170 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_171 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_171 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_172 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_172 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_174 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_174 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_175 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_175 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_176 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_176 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_178 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_178 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_179 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_179 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_180 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_180 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_182 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_182 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_183 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_183 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_184 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_184 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_186 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_186 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_187 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_187 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_188 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_188 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_190 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_190 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_191 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_191 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_192 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_192 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_194 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_194 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_195 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_195 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_196 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_196 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_198 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_198 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_199 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_199 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_200 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_200 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_202 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_202 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_203 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_203 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_204 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_204 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_206 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_206 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_207 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_207 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_208 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_208 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_210 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_210 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_211 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_211 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_212 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_212 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_214 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_214 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_215 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_215 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_216 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_216 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_218 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_218 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_219 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_219 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_220 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_220 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_222 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_222 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_223 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_223 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_224 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_224 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_226 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_226 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_227 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_227 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_228 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_228 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_230 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_230 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_231 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_231 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_232 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_232 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_234 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_234 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_235 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_235 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_236 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_236 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_238 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_238 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_239 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_239 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_240 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_240 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_242 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_242 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_243 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_243 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_244 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_244 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_246 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_246 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_247 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_247 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_248 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_248 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_250 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_250 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_251 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_251 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_252 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_252 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_254 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_254 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_255 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_255 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_256 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_256 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_258 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_258 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_259 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_259 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_260 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_260 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_262 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_262 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_263 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_263 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_264 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_264 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_266 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_266 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_267 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_267 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_268 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_268 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_270 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_270 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_271 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_271 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_272 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_272 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_274 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_274 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_275 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_275 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_276 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_276 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_278 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_278 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_279 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_279 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_280 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_280 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_282 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_282 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_283 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_283 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_284 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_284 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_286 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_286 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_287 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_287 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_288 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_288 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_290 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_290 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_291 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_291 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_292 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_292 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_294 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_294 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_295 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_295 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_296 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_296 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_298 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_298 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_299 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_299 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_300 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_300 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_302 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_302 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_303 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_303 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_304 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_304 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_306 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_306 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_307 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_307 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_308 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_308 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_310 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_310 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_311 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_311 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_312 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_312 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_314 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_314 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_315 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_315 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_316 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_316 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_318 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_318 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_319 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_319 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_320 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_320 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_322 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_322 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_323 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_323 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_324 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_324 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_326 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_326 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_327 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_327 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_328 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_328 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_330 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_330 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_331 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_331 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_332 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_332 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_334 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_334 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_335 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_335 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_336 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_336 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_338 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_338 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_339 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_339 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_340 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_340 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_342 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_342 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_343 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_343 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_344 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_344 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_346 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_346 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_347 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_347 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_348 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_348 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_350 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_350 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_351 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_351 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_352 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_352 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_354 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_354 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_355 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_355 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_356 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_356 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_358 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_358 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_359 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_359 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_360 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_360 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_362 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_362 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_363 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_363 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_364 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_364 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_366 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_366 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_367 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_367 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_368 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_368 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_370 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_370 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_371 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_371 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_372 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_372 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_374 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_374 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_375 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_375 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_376 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_376 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_378 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_378 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_379 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_379 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_380 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_380 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_382 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_382 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_383 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_383 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_384 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_384 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_386 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_386 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_387 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_387 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_388 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_388 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_390 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_390 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_391 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_391 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_392 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_392 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_394 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_394 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_395 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_395 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_396 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_396 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_398 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_398 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_399 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_399 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_400 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_400 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_402 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_402 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_403 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_403 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_404 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_404 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_406 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_406 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_407 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_407 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_408 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_408 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_410 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_410 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_411 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_411 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_412 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_412 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_414 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_414 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_415 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_415 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_416 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_416 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_418 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_418 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_419 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_419 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_420 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_420 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_422 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_422 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_423 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_423 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_424 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_424 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_426 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_426 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_427 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_427 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_428 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_428 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_430 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_430 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_431 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_431 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_432 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_432 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_434 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_434 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_435 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_435 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_436 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_436 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_438 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_438 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_439 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_439 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_440 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_440 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_442 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_442 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_443 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_443 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_444 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_444 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_446 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_446 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_447 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_447 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_448 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_448 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_450 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_450 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_451 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_451 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_452 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_452 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_454 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_454 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_455 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_455 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_456 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_456 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_458 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_458 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_459 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_459 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_460 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_460 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_462 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_462 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_463 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_463 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_464 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_464 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_466 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_466 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_467 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_467 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_468 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_468 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_470 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_470 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_471 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_471 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_472 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_472 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_474 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_474 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_475 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_475 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_476 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_476 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_478 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_478 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_479 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_479 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_480 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_480 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_482 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_482 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_483 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_483 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_484 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_484 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_486 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_486 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_487 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_487 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_488 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_488 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_490 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_490 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_491 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_491 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_492 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_492 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_494 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_494 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_495 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_495 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_496 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_496 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_498 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_498 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_499 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_499 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_500 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_500 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_502 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_502 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_503 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_503 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_504 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_504 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_506 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_506 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_507 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_507 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_508 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_508 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_510 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_510 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_511 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_511 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_512 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_512 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_514 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_514 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_515 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_515 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_516 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_516 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_518 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_518 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_519 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_519 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_520 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_520 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_522 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_522 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_523 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_523 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_524 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_524 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_526 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_526 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_527 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_527 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_528 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_528 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_530 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_530 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_531 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_531 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_532 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_532 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_534 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_534 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_535 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_535 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_536 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_536 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_538 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_538 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_539 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_539 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_540 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_540 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_542 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_542 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_543 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_543 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_544 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_544 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_546 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_546 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_547 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_547 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_548 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_548 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_550 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_550 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_551 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_551 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_552 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_552 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_554 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_554 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_555 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_555 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_556 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_556 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_558 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_558 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_559 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_559 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_560 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_560 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_562 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_562 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_563 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_563 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_564 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_564 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_566 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_566 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_567 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_567 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_568 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_568 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_570 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_570 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_571 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_571 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_572 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_572 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_574 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_574 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_575 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_575 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_576 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_576 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_578 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_578 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_579 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_579 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_580 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_580 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_582 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_582 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_583 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_583 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_584 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_584 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_586 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_586 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_587 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_587 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_588 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_588 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_590 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_590 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_591 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_591 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_592 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_592 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_594 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_594 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_595 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_595 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_596 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_596 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_598 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_598 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_599 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_599 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_600 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_600 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_602 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_602 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_603 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_603 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_604 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_604 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_606 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_606 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_607 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_607 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_608 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_608 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_610 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_610 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_611 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_611 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_612 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_612 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_614 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_614 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_615 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_615 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_616 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_616 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_618 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_618 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_619 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_619 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_620 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_620 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_622 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_622 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_623 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_623 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_624 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_624 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_626 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_626 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_627 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_627 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_628 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_628 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_630 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_630 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_631 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_631 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_632 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_632 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_634 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_634 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_635 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_635 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_636 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_636 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_638 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_638 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_639 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_639 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_640 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_640 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_642 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_642 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_643 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_643 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_644 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_644 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_646 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_646 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_647 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_647 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_648 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_648 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_650 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_650 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_651 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_651 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_652 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_652 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_654 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_654 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_655 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_655 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_656 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_656 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_658 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_658 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_659 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_659 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_660 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_660 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_662 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_662 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_663 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_663 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_664 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_664 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_666 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_666 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_667 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_667 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_668 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_668 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_670 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_670 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_671 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_671 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_672 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_672 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_674 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_id_constr_674 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_675 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_675 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_676 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_676 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_value_4[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs__value, choice.RICaction_ToBeSetup_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICaction_ToBeSetup_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICaction-ToBeSetup-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-ToBeSetup-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = {
+       sizeof(struct RICaction_ToBeSetup_ItemIEs__value),
+       offsetof(struct RICaction_ToBeSetup_ItemIEs__value, _asn_ctx),
+       offsetof(struct RICaction_ToBeSetup_ItemIEs__value, present),
+       sizeof(((struct RICaction_ToBeSetup_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_4,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_4 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_4,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_4  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_2, &asn_PER_memb_id_constr_2,  memb_id_constraint_1 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RICaction_ToBeSetup_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3,  memb_criticality_constraint_1 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_4,
+               select_RICaction_ToBeSetup_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4,  memb_value_constraint_1 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_ItemIEs_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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 = {
+       sizeof(struct RICaction_ToBeSetup_ItemIEs),
+       offsetof(struct RICaction_ToBeSetup_ItemIEs, _asn_ctx),
+       asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs = {
+       "RICaction-ToBeSetup-ItemIEs",
+       "RICaction-ToBeSetup-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1,
+       sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1)
+               /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */
+       asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1,     /* Same as above */
+       sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1)
+               /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICaction_ToBeSetup_ItemIEs_1,
+       3,      /* Elements count */
+       &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_8[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs__value, choice.RICaction_Admitted_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICaction_Admitted_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICaction-Admitted-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_8[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-Admitted-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_8 = {
+       sizeof(struct RICaction_Admitted_ItemIEs__value),
+       offsetof(struct RICaction_Admitted_ItemIEs__value, _asn_ctx),
+       offsetof(struct RICaction_Admitted_ItemIEs__value, present),
+       sizeof(((struct RICaction_Admitted_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_8,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_8 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_8,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_8  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_6, &asn_PER_memb_id_constr_6,  memb_id_constraint_5 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RICaction_Admitted_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_7, &asn_PER_memb_criticality_constr_7,  memb_criticality_constraint_5 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_8,
+               select_RICaction_Admitted_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_8, &asn_PER_memb_value_constr_8,  memb_value_constraint_5 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_ItemIEs_tags_5[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5 = {
+       sizeof(struct RICaction_Admitted_ItemIEs),
+       offsetof(struct RICaction_Admitted_ItemIEs, _asn_ctx),
+       asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs = {
+       "RICaction-Admitted-ItemIEs",
+       "RICaction-Admitted-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICaction_Admitted_ItemIEs_tags_5,
+       sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5)
+               /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */
+       asn_DEF_RICaction_Admitted_ItemIEs_tags_5,      /* Same as above */
+       sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5)
+               /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICaction_Admitted_ItemIEs_5,
+       3,      /* Elements count */
+       &asn_SPC_RICaction_Admitted_ItemIEs_specs_5     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_12[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs__value, choice.RICaction_NotAdmitted_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICaction_NotAdmitted_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICaction-NotAdmitted-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_12[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-NotAdmitted-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_12 = {
+       sizeof(struct RICaction_NotAdmitted_ItemIEs__value),
+       offsetof(struct RICaction_NotAdmitted_ItemIEs__value, _asn_ctx),
+       offsetof(struct RICaction_NotAdmitted_ItemIEs__value, present),
+       sizeof(((struct RICaction_NotAdmitted_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_12,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_12 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_12,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_12 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_10, &asn_PER_memb_id_constr_10,  memb_id_constraint_9 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RICaction_NotAdmitted_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_11, &asn_PER_memb_criticality_constr_11,  memb_criticality_constraint_9 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_12,
+               select_RICaction_NotAdmitted_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_12, &asn_PER_memb_value_constr_12,  memb_value_constraint_9 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 = {
+       sizeof(struct RICaction_NotAdmitted_ItemIEs),
+       offsetof(struct RICaction_NotAdmitted_ItemIEs, _asn_ctx),
+       asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs = {
+       "RICaction-NotAdmitted-ItemIEs",
+       "RICaction-NotAdmitted-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9,
+       sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9)
+               /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */
+       asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9,   /* Same as above */
+       sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9)
+               /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICaction_NotAdmitted_ItemIEs_9,
+       3,      /* Elements count */
+       &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_16[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs__value, choice.RANfunction_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RANfunction_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunction-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_16[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunction-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_16 = {
+       sizeof(struct RANfunction_ItemIEs__value),
+       offsetof(struct RANfunction_ItemIEs__value, _asn_ctx),
+       offsetof(struct RANfunction_ItemIEs__value, present),
+       sizeof(((struct RANfunction_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_16,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_16 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_16,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_16 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_13[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_14, &asn_PER_memb_id_constr_14,  memb_id_constraint_13 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RANfunction_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_15, &asn_PER_memb_criticality_constr_15,  memb_criticality_constraint_13 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_16,
+               select_RANfunction_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_16, &asn_PER_memb_value_constr_16,  memb_value_constraint_13 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RANfunction_ItemIEs_tags_13[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANfunction_ItemIEs_tag2el_13[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_13 = {
+       sizeof(struct RANfunction_ItemIEs),
+       offsetof(struct RANfunction_ItemIEs, _asn_ctx),
+       asn_MAP_RANfunction_ItemIEs_tag2el_13,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs = {
+       "RANfunction-ItemIEs",
+       "RANfunction-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RANfunction_ItemIEs_tags_13,
+       sizeof(asn_DEF_RANfunction_ItemIEs_tags_13)
+               /sizeof(asn_DEF_RANfunction_ItemIEs_tags_13[0]), /* 1 */
+       asn_DEF_RANfunction_ItemIEs_tags_13,    /* Same as above */
+       sizeof(asn_DEF_RANfunction_ItemIEs_tags_13)
+               /sizeof(asn_DEF_RANfunction_ItemIEs_tags_13[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RANfunction_ItemIEs_13,
+       3,      /* Elements count */
+       &asn_SPC_RANfunction_ItemIEs_specs_13   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_20[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs__value, choice.RANfunctionID_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RANfunctionID_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctionID-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_20[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionID-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_20 = {
+       sizeof(struct RANfunctionID_ItemIEs__value),
+       offsetof(struct RANfunctionID_ItemIEs__value, _asn_ctx),
+       offsetof(struct RANfunctionID_ItemIEs__value, present),
+       sizeof(((struct RANfunctionID_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_20,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_20 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_20,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_20 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_17[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_18, &asn_PER_memb_id_constr_18,  memb_id_constraint_17 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RANfunctionID_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_19, &asn_PER_memb_criticality_constr_19,  memb_criticality_constraint_17 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_20,
+               select_RANfunctionID_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_20, &asn_PER_memb_value_constr_20,  memb_value_constraint_17 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RANfunctionID_ItemIEs_tags_17[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_ItemIEs_tag2el_17[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_17 = {
+       sizeof(struct RANfunctionID_ItemIEs),
+       offsetof(struct RANfunctionID_ItemIEs, _asn_ctx),
+       asn_MAP_RANfunctionID_ItemIEs_tag2el_17,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs = {
+       "RANfunctionID-ItemIEs",
+       "RANfunctionID-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RANfunctionID_ItemIEs_tags_17,
+       sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17)
+               /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17[0]), /* 1 */
+       asn_DEF_RANfunctionID_ItemIEs_tags_17,  /* Same as above */
+       sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17)
+               /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RANfunctionID_ItemIEs_17,
+       3,      /* Elements count */
+       &asn_SPC_RANfunctionID_ItemIEs_specs_17 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_24[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs__value, choice.RANfunctionIDcause_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RANfunctionIDcause_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctionIDcause-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_24[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionIDcause-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_24 = {
+       sizeof(struct RANfunctionIDcause_ItemIEs__value),
+       offsetof(struct RANfunctionIDcause_ItemIEs__value, _asn_ctx),
+       offsetof(struct RANfunctionIDcause_ItemIEs__value, present),
+       sizeof(((struct RANfunctionIDcause_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_24,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_24 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_24,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_24 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_21[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_22, &asn_PER_memb_id_constr_22,  memb_id_constraint_21 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RANfunctionIDcause_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_23, &asn_PER_memb_criticality_constr_23,  memb_criticality_constraint_21 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_24,
+               select_RANfunctionIDcause_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_24, &asn_PER_memb_value_constr_24,  memb_value_constraint_21 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_21[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 = {
+       sizeof(struct RANfunctionIDcause_ItemIEs),
+       offsetof(struct RANfunctionIDcause_ItemIEs, _asn_ctx),
+       asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_21,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs = {
+       "RANfunctionIDcause-ItemIEs",
+       "RANfunctionIDcause-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RANfunctionIDcause_ItemIEs_tags_21,
+       sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21)
+               /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[0]), /* 1 */
+       asn_DEF_RANfunctionIDcause_ItemIEs_tags_21,     /* Same as above */
+       sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21)
+               /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RANfunctionIDcause_ItemIEs_21,
+       3,      /* Elements count */
+       &asn_SPC_RANfunctionIDcause_ItemIEs_specs_21    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_28[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_ItemIEs__value, choice.E_RABs_ToBeSetup_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeSetup_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeSetup-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_28[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeSetup-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_28 = {
+       sizeof(struct E_RABs_ToBeSetup_ItemIEs__value),
+       offsetof(struct E_RABs_ToBeSetup_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeSetup_ItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeSetup_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_28,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_28 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_28,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_28 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_ItemIEs_25[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_26, &asn_PER_memb_id_constr_26,  memb_id_constraint_25 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeSetup_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_27, &asn_PER_memb_criticality_constr_27,  memb_criticality_constraint_25 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_28,
+               select_E_RABs_ToBeSetup_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_28, &asn_PER_memb_value_constr_28,  memb_value_constraint_25 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeSetup_ItemIEs_tags_25[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeSetup_ItemIEs_tag2el_25[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetup_ItemIEs_specs_25 = {
+       sizeof(struct E_RABs_ToBeSetup_ItemIEs),
+       offsetof(struct E_RABs_ToBeSetup_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeSetup_ItemIEs_tag2el_25,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_ItemIEs = {
+       "E-RABs-ToBeSetup-ItemIEs",
+       "E-RABs-ToBeSetup-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeSetup_ItemIEs_tags_25,
+       sizeof(asn_DEF_E_RABs_ToBeSetup_ItemIEs_tags_25)
+               /sizeof(asn_DEF_E_RABs_ToBeSetup_ItemIEs_tags_25[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeSetup_ItemIEs_tags_25,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeSetup_ItemIEs_tags_25)
+               /sizeof(asn_DEF_E_RABs_ToBeSetup_ItemIEs_tags_25[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeSetup_ItemIEs_25,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeSetup_ItemIEs_specs_25      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_32[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ItemIEs__value, choice.E_RABs_Admitted_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_32[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-Admitted-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_32 = {
+       sizeof(struct E_RABs_Admitted_ItemIEs__value),
+       offsetof(struct E_RABs_Admitted_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ItemIEs__value, present),
+       sizeof(((struct E_RABs_Admitted_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_32,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_32 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_32,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_32 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ItemIEs_29[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_30, &asn_PER_memb_id_constr_30,  memb_id_constraint_29 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_Admitted_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_31, &asn_PER_memb_criticality_constr_31,  memb_criticality_constraint_29 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_32,
+               select_E_RABs_Admitted_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_32, &asn_PER_memb_value_constr_32,  memb_value_constraint_29 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ItemIEs_tags_29[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ItemIEs_tag2el_29[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ItemIEs_specs_29 = {
+       sizeof(struct E_RABs_Admitted_ItemIEs),
+       offsetof(struct E_RABs_Admitted_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ItemIEs_tag2el_29,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ItemIEs = {
+       "E-RABs-Admitted-ItemIEs",
+       "E-RABs-Admitted-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ItemIEs_tags_29,
+       sizeof(asn_DEF_E_RABs_Admitted_ItemIEs_tags_29)
+               /sizeof(asn_DEF_E_RABs_Admitted_ItemIEs_tags_29[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ItemIEs_tags_29,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ItemIEs_tags_29)
+               /sizeof(asn_DEF_E_RABs_Admitted_ItemIEs_tags_29[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ItemIEs_29,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ItemIEs_specs_29       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_36[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs__value, choice.E_RABs_SubjectToStatusTransfer_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_SubjectToStatusTransfer_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-SubjectToStatusTransfer-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_36[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-SubjectToStatusTransfer-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_36 = {
+       sizeof(struct E_RABs_SubjectToStatusTransfer_ItemIEs__value),
+       offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs__value, present),
+       sizeof(((struct E_RABs_SubjectToStatusTransfer_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_36,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_36 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_36,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_36 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_SubjectToStatusTransfer_ItemIEs_33[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_34, &asn_PER_memb_id_constr_34,  memb_id_constraint_33 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_SubjectToStatusTransfer_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_35, &asn_PER_memb_criticality_constr_35,  memb_criticality_constraint_33 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_36,
+               select_E_RABs_SubjectToStatusTransfer_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_36, &asn_PER_memb_value_constr_36,  memb_value_constraint_33 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs_tags_33[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToStatusTransfer_ItemIEs_tag2el_33[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToStatusTransfer_ItemIEs_specs_33 = {
+       sizeof(struct E_RABs_SubjectToStatusTransfer_ItemIEs),
+       offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_SubjectToStatusTransfer_ItemIEs_tag2el_33,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs = {
+       "E-RABs-SubjectToStatusTransfer-ItemIEs",
+       "E-RABs-SubjectToStatusTransfer-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs_tags_33,
+       sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs_tags_33)
+               /sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs_tags_33[0]), /* 1 */
+       asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs_tags_33, /* Same as above */
+       sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs_tags_33)
+               /sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs_tags_33[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_SubjectToStatusTransfer_ItemIEs_33,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_SubjectToStatusTransfer_ItemIEs_specs_33        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_40[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellInformation_ItemIEs__value, choice.CellInformation_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellInformation_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CellInformation-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_40[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CellInformation-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_40 = {
+       sizeof(struct CellInformation_ItemIEs__value),
+       offsetof(struct CellInformation_ItemIEs__value, _asn_ctx),
+       offsetof(struct CellInformation_ItemIEs__value, present),
+       sizeof(((struct CellInformation_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_40,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_40 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_40,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_40 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CellInformation_ItemIEs_37[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellInformation_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_38, &asn_PER_memb_id_constr_38,  memb_id_constraint_37 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellInformation_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_CellInformation_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_39, &asn_PER_memb_criticality_constr_39,  memb_criticality_constraint_37 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellInformation_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_40,
+               select_CellInformation_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_40, &asn_PER_memb_value_constr_40,  memb_value_constraint_37 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellInformation_ItemIEs_tags_37[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellInformation_ItemIEs_tag2el_37[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellInformation_ItemIEs_specs_37 = {
+       sizeof(struct CellInformation_ItemIEs),
+       offsetof(struct CellInformation_ItemIEs, _asn_ctx),
+       asn_MAP_CellInformation_ItemIEs_tag2el_37,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellInformation_ItemIEs = {
+       "CellInformation-ItemIEs",
+       "CellInformation-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellInformation_ItemIEs_tags_37,
+       sizeof(asn_DEF_CellInformation_ItemIEs_tags_37)
+               /sizeof(asn_DEF_CellInformation_ItemIEs_tags_37[0]), /* 1 */
+       asn_DEF_CellInformation_ItemIEs_tags_37,        /* Same as above */
+       sizeof(asn_DEF_CellInformation_ItemIEs_tags_37)
+               /sizeof(asn_DEF_CellInformation_ItemIEs_tags_37[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellInformation_ItemIEs_37,
+       3,      /* Elements count */
+       &asn_SPC_CellInformation_ItemIEs_specs_37       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_44[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellToReport_ItemIEs__value, choice.CellToReport_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellToReport_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CellToReport-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_44[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CellToReport-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_44 = {
+       sizeof(struct CellToReport_ItemIEs__value),
+       offsetof(struct CellToReport_ItemIEs__value, _asn_ctx),
+       offsetof(struct CellToReport_ItemIEs__value, present),
+       sizeof(((struct CellToReport_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_44,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_44 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_44,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_44 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CellToReport_ItemIEs_41[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellToReport_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_42, &asn_PER_memb_id_constr_42,  memb_id_constraint_41 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellToReport_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_CellToReport_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_43, &asn_PER_memb_criticality_constr_43,  memb_criticality_constraint_41 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellToReport_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_44,
+               select_CellToReport_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_44, &asn_PER_memb_value_constr_44,  memb_value_constraint_41 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellToReport_ItemIEs_tags_41[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellToReport_ItemIEs_tag2el_41[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellToReport_ItemIEs_specs_41 = {
+       sizeof(struct CellToReport_ItemIEs),
+       offsetof(struct CellToReport_ItemIEs, _asn_ctx),
+       asn_MAP_CellToReport_ItemIEs_tag2el_41,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellToReport_ItemIEs = {
+       "CellToReport-ItemIEs",
+       "CellToReport-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellToReport_ItemIEs_tags_41,
+       sizeof(asn_DEF_CellToReport_ItemIEs_tags_41)
+               /sizeof(asn_DEF_CellToReport_ItemIEs_tags_41[0]), /* 1 */
+       asn_DEF_CellToReport_ItemIEs_tags_41,   /* Same as above */
+       sizeof(asn_DEF_CellToReport_ItemIEs_tags_41)
+               /sizeof(asn_DEF_CellToReport_ItemIEs_tags_41[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellToReport_ItemIEs_41,
+       3,      /* Elements count */
+       &asn_SPC_CellToReport_ItemIEs_specs_41  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_48[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MeasurementInitiationResult_ItemIEs__value, choice.MeasurementInitiationResult_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MeasurementInitiationResult_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MeasurementInitiationResult-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_48[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MeasurementInitiationResult-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_48 = {
+       sizeof(struct MeasurementInitiationResult_ItemIEs__value),
+       offsetof(struct MeasurementInitiationResult_ItemIEs__value, _asn_ctx),
+       offsetof(struct MeasurementInitiationResult_ItemIEs__value, present),
+       sizeof(((struct MeasurementInitiationResult_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_48,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_48 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_48,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_48 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_MeasurementInitiationResult_ItemIEs_45[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MeasurementInitiationResult_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_46, &asn_PER_memb_id_constr_46,  memb_id_constraint_45 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MeasurementInitiationResult_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_MeasurementInitiationResult_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_47, &asn_PER_memb_criticality_constr_47,  memb_criticality_constraint_45 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MeasurementInitiationResult_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_48,
+               select_MeasurementInitiationResult_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_48, &asn_PER_memb_value_constr_48,  memb_value_constraint_45 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MeasurementInitiationResult_ItemIEs_tags_45[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MeasurementInitiationResult_ItemIEs_tag2el_45[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_MeasurementInitiationResult_ItemIEs_specs_45 = {
+       sizeof(struct MeasurementInitiationResult_ItemIEs),
+       offsetof(struct MeasurementInitiationResult_ItemIEs, _asn_ctx),
+       asn_MAP_MeasurementInitiationResult_ItemIEs_tag2el_45,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MeasurementInitiationResult_ItemIEs = {
+       "MeasurementInitiationResult-ItemIEs",
+       "MeasurementInitiationResult-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MeasurementInitiationResult_ItemIEs_tags_45,
+       sizeof(asn_DEF_MeasurementInitiationResult_ItemIEs_tags_45)
+               /sizeof(asn_DEF_MeasurementInitiationResult_ItemIEs_tags_45[0]), /* 1 */
+       asn_DEF_MeasurementInitiationResult_ItemIEs_tags_45,    /* Same as above */
+       sizeof(asn_DEF_MeasurementInitiationResult_ItemIEs_tags_45)
+               /sizeof(asn_DEF_MeasurementInitiationResult_ItemIEs_tags_45[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MeasurementInitiationResult_ItemIEs_45,
+       3,      /* Elements count */
+       &asn_SPC_MeasurementInitiationResult_ItemIEs_specs_45   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_52[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_ItemIEs__value, choice.MeasurementFailureCause_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MeasurementFailureCause_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MeasurementFailureCause-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_52[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MeasurementFailureCause-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_52 = {
+       sizeof(struct MeasurementFailureCause_ItemIEs__value),
+       offsetof(struct MeasurementFailureCause_ItemIEs__value, _asn_ctx),
+       offsetof(struct MeasurementFailureCause_ItemIEs__value, present),
+       sizeof(((struct MeasurementFailureCause_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_52,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_52 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_52,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_52 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_MeasurementFailureCause_ItemIEs_49[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_50, &asn_PER_memb_id_constr_50,  memb_id_constraint_49 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_MeasurementFailureCause_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_51, &asn_PER_memb_criticality_constr_51,  memb_criticality_constraint_49 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_52,
+               select_MeasurementFailureCause_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_52, &asn_PER_memb_value_constr_52,  memb_value_constraint_49 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MeasurementFailureCause_ItemIEs_tags_49[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MeasurementFailureCause_ItemIEs_tag2el_49[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_MeasurementFailureCause_ItemIEs_specs_49 = {
+       sizeof(struct MeasurementFailureCause_ItemIEs),
+       offsetof(struct MeasurementFailureCause_ItemIEs, _asn_ctx),
+       asn_MAP_MeasurementFailureCause_ItemIEs_tag2el_49,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MeasurementFailureCause_ItemIEs = {
+       "MeasurementFailureCause-ItemIEs",
+       "MeasurementFailureCause-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MeasurementFailureCause_ItemIEs_tags_49,
+       sizeof(asn_DEF_MeasurementFailureCause_ItemIEs_tags_49)
+               /sizeof(asn_DEF_MeasurementFailureCause_ItemIEs_tags_49[0]), /* 1 */
+       asn_DEF_MeasurementFailureCause_ItemIEs_tags_49,        /* Same as above */
+       sizeof(asn_DEF_MeasurementFailureCause_ItemIEs_tags_49)
+               /sizeof(asn_DEF_MeasurementFailureCause_ItemIEs_tags_49[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MeasurementFailureCause_ItemIEs_49,
+       3,      /* Elements count */
+       &asn_SPC_MeasurementFailureCause_ItemIEs_specs_49       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_56[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_ItemIEs__value, choice.CompleteFailureCauseInformation_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CompleteFailureCauseInformation_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CompleteFailureCauseInformation-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_56[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CompleteFailureCauseInformation-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_56 = {
+       sizeof(struct CompleteFailureCauseInformation_ItemIEs__value),
+       offsetof(struct CompleteFailureCauseInformation_ItemIEs__value, _asn_ctx),
+       offsetof(struct CompleteFailureCauseInformation_ItemIEs__value, present),
+       sizeof(((struct CompleteFailureCauseInformation_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_56,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_56 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_56,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_56 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CompleteFailureCauseInformation_ItemIEs_53[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_54, &asn_PER_memb_id_constr_54,  memb_id_constraint_53 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_CompleteFailureCauseInformation_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_55, &asn_PER_memb_criticality_constr_55,  memb_criticality_constraint_53 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_56,
+               select_CompleteFailureCauseInformation_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_56, &asn_PER_memb_value_constr_56,  memb_value_constraint_53 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CompleteFailureCauseInformation_ItemIEs_tags_53[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CompleteFailureCauseInformation_ItemIEs_tag2el_53[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CompleteFailureCauseInformation_ItemIEs_specs_53 = {
+       sizeof(struct CompleteFailureCauseInformation_ItemIEs),
+       offsetof(struct CompleteFailureCauseInformation_ItemIEs, _asn_ctx),
+       asn_MAP_CompleteFailureCauseInformation_ItemIEs_tag2el_53,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CompleteFailureCauseInformation_ItemIEs = {
+       "CompleteFailureCauseInformation-ItemIEs",
+       "CompleteFailureCauseInformation-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CompleteFailureCauseInformation_ItemIEs_tags_53,
+       sizeof(asn_DEF_CompleteFailureCauseInformation_ItemIEs_tags_53)
+               /sizeof(asn_DEF_CompleteFailureCauseInformation_ItemIEs_tags_53[0]), /* 1 */
+       asn_DEF_CompleteFailureCauseInformation_ItemIEs_tags_53,        /* Same as above */
+       sizeof(asn_DEF_CompleteFailureCauseInformation_ItemIEs_tags_53)
+               /sizeof(asn_DEF_CompleteFailureCauseInformation_ItemIEs_tags_53[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CompleteFailureCauseInformation_ItemIEs_53,
+       3,      /* Elements count */
+       &asn_SPC_CompleteFailureCauseInformation_ItemIEs_specs_53       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_60[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_ItemIEs__value, choice.CellMeasurementResult_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellMeasurementResult_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CellMeasurementResult-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_60[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CellMeasurementResult-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_60 = {
+       sizeof(struct CellMeasurementResult_ItemIEs__value),
+       offsetof(struct CellMeasurementResult_ItemIEs__value, _asn_ctx),
+       offsetof(struct CellMeasurementResult_ItemIEs__value, present),
+       sizeof(((struct CellMeasurementResult_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_60,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_60 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_60,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_60 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CellMeasurementResult_ItemIEs_57[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_58, &asn_PER_memb_id_constr_58,  memb_id_constraint_57 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_CellMeasurementResult_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_59, &asn_PER_memb_criticality_constr_59,  memb_criticality_constraint_57 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_60,
+               select_CellMeasurementResult_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_60, &asn_PER_memb_value_constr_60,  memb_value_constraint_57 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellMeasurementResult_ItemIEs_tags_57[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellMeasurementResult_ItemIEs_tag2el_57[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellMeasurementResult_ItemIEs_specs_57 = {
+       sizeof(struct CellMeasurementResult_ItemIEs),
+       offsetof(struct CellMeasurementResult_ItemIEs, _asn_ctx),
+       asn_MAP_CellMeasurementResult_ItemIEs_tag2el_57,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellMeasurementResult_ItemIEs = {
+       "CellMeasurementResult-ItemIEs",
+       "CellMeasurementResult-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellMeasurementResult_ItemIEs_tags_57,
+       sizeof(asn_DEF_CellMeasurementResult_ItemIEs_tags_57)
+               /sizeof(asn_DEF_CellMeasurementResult_ItemIEs_tags_57[0]), /* 1 */
+       asn_DEF_CellMeasurementResult_ItemIEs_tags_57,  /* Same as above */
+       sizeof(asn_DEF_CellMeasurementResult_ItemIEs_tags_57)
+               /sizeof(asn_DEF_CellMeasurementResult_ItemIEs_tags_57[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellMeasurementResult_ItemIEs_57,
+       3,      /* Elements count */
+       &asn_SPC_CellMeasurementResult_ItemIEs_specs_57 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_64[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ItemIEs__value, choice.E_RABs_ToBeAdded_Item),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeAdded-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_64[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_64 = {
+       sizeof(struct E_RABs_ToBeAdded_ItemIEs__value),
+       offsetof(struct E_RABs_ToBeAdded_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_ItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeAdded_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_64,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_64 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_64,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_64 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ItemIEs_61[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_62, &asn_PER_memb_id_constr_62,  memb_id_constraint_61 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeAdded_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_63, &asn_PER_memb_criticality_constr_63,  memb_criticality_constraint_61 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_64,
+               select_E_RABs_ToBeAdded_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_64, &asn_PER_memb_value_constr_64,  memb_value_constraint_61 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_ItemIEs_tags_61[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_ItemIEs_tag2el_61[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ItemIEs_specs_61 = {
+       sizeof(struct E_RABs_ToBeAdded_ItemIEs),
+       offsetof(struct E_RABs_ToBeAdded_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_ItemIEs_tag2el_61,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ItemIEs = {
+       "E-RABs-ToBeAdded-ItemIEs",
+       "E-RABs-ToBeAdded-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_ItemIEs_tags_61,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_ItemIEs_tags_61)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_ItemIEs_tags_61[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_ItemIEs_tags_61,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_ItemIEs_tags_61)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_ItemIEs_tags_61[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_ItemIEs_61,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_ItemIEs_specs_61      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_68[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs__value, choice.E_RABs_Admitted_ToBeAdded_Item),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToBeAdded-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_68[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_68 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_ItemIEs__value),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs__value, present),
+       sizeof(((struct E_RABs_Admitted_ToBeAdded_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_68,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_68 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_68,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_68 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ItemIEs_65[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_66, &asn_PER_memb_id_constr_66,  memb_id_constraint_65 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_Admitted_ToBeAdded_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_67, &asn_PER_memb_criticality_constr_67,  memb_criticality_constraint_65 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_68,
+               select_E_RABs_Admitted_ToBeAdded_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_68, &asn_PER_memb_value_constr_68,  memb_value_constraint_65 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs_tags_65[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_ItemIEs_tag2el_65[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ItemIEs_specs_65 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_ItemIEs),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_ItemIEs_tag2el_65,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs = {
+       "E-RABs-Admitted-ToBeAdded-ItemIEs",
+       "E-RABs-Admitted-ToBeAdded-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs_tags_65,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs_tags_65)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs_tags_65[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs_tags_65,      /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs_tags_65)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs_tags_65[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_ItemIEs_65,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_ItemIEs_specs_65     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_72[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs__value, choice.E_RABs_ToBeAdded_ModReqItem),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_ModReqItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeAdded-ModReqItem"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_72[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_72 = {
+       sizeof(struct E_RABs_ToBeAdded_ModReqItemIEs__value),
+       offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeAdded_ModReqItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_72,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_72 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_72,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_72 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItemIEs_69[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_70, &asn_PER_memb_id_constr_70,  memb_id_constraint_69 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeAdded_ModReqItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_71, &asn_PER_memb_criticality_constr_71,  memb_criticality_constraint_69 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_72,
+               select_E_RABs_ToBeAdded_ModReqItemIEs_value_type,
+               { &asn_OER_memb_value_constr_72, &asn_PER_memb_value_constr_72,  memb_value_constraint_69 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs_tags_69[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_ModReqItemIEs_tag2el_69[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItemIEs_specs_69 = {
+       sizeof(struct E_RABs_ToBeAdded_ModReqItemIEs),
+       offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_ModReqItemIEs_tag2el_69,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs = {
+       "E-RABs-ToBeAdded-ModReqItemIEs",
+       "E-RABs-ToBeAdded-ModReqItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs_tags_69,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs_tags_69)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs_tags_69[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs_tags_69, /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs_tags_69)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs_tags_69[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_ModReqItemIEs_69,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_ModReqItemIEs_specs_69        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_76[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItemIEs__value, choice.E_RABs_ToBeModified_ModReqItem),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_E_RABs_ToBeModified_ModReqItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeModified-ModReqItem"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_76[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_76 = {
+       sizeof(struct E_RABs_ToBeModified_ModReqItemIEs__value),
+       offsetof(struct E_RABs_ToBeModified_ModReqItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeModified_ModReqItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeModified_ModReqItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_76,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_76 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_76,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_76 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItemIEs_73[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_74, &asn_PER_memb_id_constr_74,  memb_id_constraint_73 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeModified_ModReqItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_75, &asn_PER_memb_criticality_constr_75,  memb_criticality_constraint_73 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_76,
+               select_E_RABs_ToBeModified_ModReqItemIEs_value_type,
+               { &asn_OER_memb_value_constr_76, &asn_PER_memb_value_constr_76,  memb_value_constraint_73 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_ModReqItemIEs_tags_73[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_ModReqItemIEs_tag2el_73[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItemIEs_specs_73 = {
+       sizeof(struct E_RABs_ToBeModified_ModReqItemIEs),
+       offsetof(struct E_RABs_ToBeModified_ModReqItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_ModReqItemIEs_tag2el_73,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItemIEs = {
+       "E-RABs-ToBeModified-ModReqItemIEs",
+       "E-RABs-ToBeModified-ModReqItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_ModReqItemIEs_tags_73,
+       sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItemIEs_tags_73)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItemIEs_tags_73[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_ModReqItemIEs_tags_73,      /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItemIEs_tags_73)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItemIEs_tags_73[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_ModReqItemIEs_73,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_ModReqItemIEs_specs_73     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_80[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs__value, choice.E_RABs_ToBeReleased_ModReqItem),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_ModReqItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-ModReqItem"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_80[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_80 = {
+       sizeof(struct E_RABs_ToBeReleased_ModReqItemIEs__value),
+       offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeReleased_ModReqItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_80,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_80 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_80,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_80 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItemIEs_77[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_78, &asn_PER_memb_id_constr_78,  memb_id_constraint_77 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeReleased_ModReqItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_79, &asn_PER_memb_criticality_constr_79,  memb_criticality_constraint_77 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_80,
+               select_E_RABs_ToBeReleased_ModReqItemIEs_value_type,
+               { &asn_OER_memb_value_constr_80, &asn_PER_memb_value_constr_80,  memb_value_constraint_77 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs_tags_77[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqItemIEs_tag2el_77[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItemIEs_specs_77 = {
+       sizeof(struct E_RABs_ToBeReleased_ModReqItemIEs),
+       offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_ModReqItemIEs_tag2el_77,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs = {
+       "E-RABs-ToBeReleased-ModReqItemIEs",
+       "E-RABs-ToBeReleased-ModReqItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs_tags_77,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs_tags_77)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs_tags_77[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs_tags_77,      /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs_tags_77)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs_tags_77[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_ModReqItemIEs_77,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_ModReqItemIEs_specs_77     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_84[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value, choice.E_RABs_Admitted_ToBeAdded_ModAckItem),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToBeAdded-ModAckItem"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_84[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_84 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value, present),
+       sizeof(((struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_84,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_84 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_84,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_84 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_81[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_82, &asn_PER_memb_id_constr_82,  memb_id_constraint_81 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_83, &asn_PER_memb_criticality_constr_83,  memb_criticality_constraint_81 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_84,
+               select_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_value_type,
+               { &asn_OER_memb_value_constr_84, &asn_PER_memb_value_constr_84,  memb_value_constraint_81 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tags_81[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tag2el_81[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_specs_81 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tag2el_81,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs = {
+       "E-RABs-Admitted-ToBeAdded-ModAckItemIEs",
+       "E-RABs-Admitted-ToBeAdded-ModAckItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tags_81,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tags_81)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tags_81[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tags_81,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tags_81)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tags_81[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_81,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_specs_81       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_88[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs__value, choice.E_RABs_Admitted_ToBeModified_ModAckItem),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToBeModified-ModAckItem"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_88[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_88 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs__value),
+       offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs__value, present),
+       sizeof(((struct E_RABs_Admitted_ToBeModified_ModAckItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_88,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_88 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_88,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_88 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItemIEs_85[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_86, &asn_PER_memb_id_constr_86,  memb_id_constraint_85 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_Admitted_ToBeModified_ModAckItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_87, &asn_PER_memb_criticality_constr_87,  memb_criticality_constraint_85 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_88,
+               select_E_RABs_Admitted_ToBeModified_ModAckItemIEs_value_type,
+               { &asn_OER_memb_value_constr_88, &asn_PER_memb_value_constr_88,  memb_value_constraint_85 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tags_85[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tag2el_85[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItemIEs_specs_85 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs),
+       offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tag2el_85,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs = {
+       "E-RABs-Admitted-ToBeModified-ModAckItemIEs",
+       "E-RABs-Admitted-ToBeModified-ModAckItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tags_85,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tags_85)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tags_85[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tags_85,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tags_85)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tags_85[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItemIEs_85,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItemIEs_specs_85    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_92[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value, choice.E_RABs_Admitted_ToReleased_ModAckItem),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_E_RABs_Admitted_ToReleased_ModAckItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToReleased-ModAckItem"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_92[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_92 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value, present),
+       sizeof(((struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_92,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_92 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_92,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_92 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_89[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_90, &asn_PER_memb_id_constr_90,  memb_id_constraint_89 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_91, &asn_PER_memb_criticality_constr_91,  memb_criticality_constraint_89 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_92,
+               select_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_value_type,
+               { &asn_OER_memb_value_constr_92, &asn_PER_memb_value_constr_92,  memb_value_constraint_89 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tags_89[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tag2el_89[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_specs_89 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tag2el_89,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs = {
+       "E-RABs-Admitted-ToBeReleased-ModAckItemIEs",
+       "E-RABs-Admitted-ToBeReleased-ModAckItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tags_89,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tags_89)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tags_89[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tags_89,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tags_89)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tags_89[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_89,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_specs_89    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_96[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs__value, choice.E_RABs_ToBeReleased_ModReqdItem),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_ModReqdItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-ModReqdItem"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_96[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeReleased-ModReqdItem */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_96 = {
+       sizeof(struct E_RABs_ToBeReleased_ModReqdItemIEs__value),
+       offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeReleased_ModReqdItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_96,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_96 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_96,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_96 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqdItemIEs_93[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_94, &asn_PER_memb_id_constr_94,  memb_id_constraint_93 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeReleased_ModReqdItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_95, &asn_PER_memb_criticality_constr_95,  memb_criticality_constraint_93 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_96,
+               select_E_RABs_ToBeReleased_ModReqdItemIEs_value_type,
+               { &asn_OER_memb_value_constr_96, &asn_PER_memb_value_constr_96,  memb_value_constraint_93 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs_tags_93[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqdItemIEs_tag2el_93[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqdItemIEs_specs_93 = {
+       sizeof(struct E_RABs_ToBeReleased_ModReqdItemIEs),
+       offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_ModReqdItemIEs_tag2el_93,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs = {
+       "E-RABs-ToBeReleased-ModReqdItemIEs",
+       "E-RABs-ToBeReleased-ModReqdItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs_tags_93,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs_tags_93)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs_tags_93[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs_tags_93,     /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs_tags_93)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs_tags_93[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_ModReqdItemIEs_93,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_ModReqdItemIEs_specs_93    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_100[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs__value, choice.E_RABs_ToBeReleased_RelReqItem),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_RelReqItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-RelReqItem"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_100[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_100 = {
+       sizeof(struct E_RABs_ToBeReleased_RelReqItemIEs__value),
+       offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeReleased_RelReqItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_100,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_100 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_100,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_100        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItemIEs_97[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_98, &asn_PER_memb_id_constr_98,  memb_id_constraint_97 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeReleased_RelReqItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_99, &asn_PER_memb_criticality_constr_99,  memb_criticality_constraint_97 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_100,
+               select_E_RABs_ToBeReleased_RelReqItemIEs_value_type,
+               { &asn_OER_memb_value_constr_100, &asn_PER_memb_value_constr_100,  memb_value_constraint_97 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs_tags_97[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelReqItemIEs_tag2el_97[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItemIEs_specs_97 = {
+       sizeof(struct E_RABs_ToBeReleased_RelReqItemIEs),
+       offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_RelReqItemIEs_tag2el_97,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs = {
+       "E-RABs-ToBeReleased-RelReqItemIEs",
+       "E-RABs-ToBeReleased-RelReqItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs_tags_97,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs_tags_97)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs_tags_97[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs_tags_97,      /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs_tags_97)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs_tags_97[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_RelReqItemIEs_97,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_RelReqItemIEs_specs_97     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_104[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs__value, choice.E_RABs_ToBeReleased_RelConfItem),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_RelConfItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-RelConfItem"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_104[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_104 = {
+       sizeof(struct E_RABs_ToBeReleased_RelConfItemIEs__value),
+       offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeReleased_RelConfItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_104,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_104 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_104,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_104        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItemIEs_101[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_102, &asn_PER_memb_id_constr_102,  memb_id_constraint_101 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeReleased_RelConfItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_103, &asn_PER_memb_criticality_constr_103,  memb_criticality_constraint_101 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_104,
+               select_E_RABs_ToBeReleased_RelConfItemIEs_value_type,
+               { &asn_OER_memb_value_constr_104, &asn_PER_memb_value_constr_104,  memb_value_constraint_101 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs_tags_101[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelConfItemIEs_tag2el_101[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItemIEs_specs_101 = {
+       sizeof(struct E_RABs_ToBeReleased_RelConfItemIEs),
+       offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_RelConfItemIEs_tag2el_101,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs = {
+       "E-RABs-ToBeReleased-RelConfItemIEs",
+       "E-RABs-ToBeReleased-RelConfItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs_tags_101,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs_tags_101)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs_tags_101[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs_tags_101,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs_tags_101)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs_tags_101[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_RelConfItemIEs_101,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_RelConfItemIEs_specs_101   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_108[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItemIEs__value, choice.E_RABs_SubjectToCounterCheckItem),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_SubjectToCounterCheckItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-SubjectToCounterCheckItem"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_108[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-SubjectToCounterCheckItem */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_108 = {
+       sizeof(struct E_RABs_SubjectToCounterCheckItemIEs__value),
+       offsetof(struct E_RABs_SubjectToCounterCheckItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_SubjectToCounterCheckItemIEs__value, present),
+       sizeof(((struct E_RABs_SubjectToCounterCheckItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_108,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_108 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_108,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_108        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_SubjectToCounterCheckItemIEs_105[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_106, &asn_PER_memb_id_constr_106,  memb_id_constraint_105 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_SubjectToCounterCheckItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_107, &asn_PER_memb_criticality_constr_107,  memb_criticality_constraint_105 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_108,
+               select_E_RABs_SubjectToCounterCheckItemIEs_value_type,
+               { &asn_OER_memb_value_constr_108, &asn_PER_memb_value_constr_108,  memb_value_constraint_105 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToCounterCheckItemIEs_tags_105[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToCounterCheckItemIEs_tag2el_105[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToCounterCheckItemIEs_specs_105 = {
+       sizeof(struct E_RABs_SubjectToCounterCheckItemIEs),
+       offsetof(struct E_RABs_SubjectToCounterCheckItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_SubjectToCounterCheckItemIEs_tag2el_105,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToCounterCheckItemIEs = {
+       "E-RABs-SubjectToCounterCheckItemIEs",
+       "E-RABs-SubjectToCounterCheckItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_SubjectToCounterCheckItemIEs_tags_105,
+       sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItemIEs_tags_105)
+               /sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItemIEs_tags_105[0]), /* 1 */
+       asn_DEF_E_RABs_SubjectToCounterCheckItemIEs_tags_105,   /* Same as above */
+       sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItemIEs_tags_105)
+               /sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItemIEs_tags_105[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_SubjectToCounterCheckItemIEs_105,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_SubjectToCounterCheckItemIEs_specs_105  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_112[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs__value, choice.E_RABs_ToBeSetupRetrieve_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeSetupRetrieve_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeSetupRetrieve-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_112[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeSetupRetrieve-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_112 = {
+       sizeof(struct E_RABs_ToBeSetupRetrieve_ItemIEs__value),
+       offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeSetupRetrieve_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_112,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_112 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_112,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_112        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetupRetrieve_ItemIEs_109[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_110, &asn_PER_memb_id_constr_110,  memb_id_constraint_109 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeSetupRetrieve_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_111, &asn_PER_memb_criticality_constr_111,  memb_criticality_constraint_109 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_112,
+               select_E_RABs_ToBeSetupRetrieve_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_112, &asn_PER_memb_value_constr_112,  memb_value_constraint_109 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs_tags_109[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeSetupRetrieve_ItemIEs_tag2el_109[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetupRetrieve_ItemIEs_specs_109 = {
+       sizeof(struct E_RABs_ToBeSetupRetrieve_ItemIEs),
+       offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeSetupRetrieve_ItemIEs_tag2el_109,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs = {
+       "E-RABs-ToBeSetupRetrieve-ItemIEs",
+       "E-RABs-ToBeSetupRetrieve-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs_tags_109,
+       sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs_tags_109)
+               /sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs_tags_109[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs_tags_109,      /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs_tags_109)
+               /sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs_tags_109[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeSetupRetrieve_ItemIEs_109,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeSetupRetrieve_ItemIEs_specs_109     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_116[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value, choice.E_RABs_ToBeAdded_SgNBAddReq_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeAdded-SgNBAddReq-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_116[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeAdded-SgNBAddReq-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_116 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_116,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_116 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_116,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_116        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_113[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_114, &asn_PER_memb_id_constr_114,  memb_id_constraint_113 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_115, &asn_PER_memb_criticality_constr_115,  memb_criticality_constraint_113 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_116,
+               select_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_116, &asn_PER_memb_value_constr_116,  memb_value_constraint_113 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tags_113[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tag2el_113[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_specs_113 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs),
+       offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tag2el_113,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs = {
+       "E-RABs-ToBeAdded-SgNBAddReq-ItemIEs",
+       "E-RABs-ToBeAdded-SgNBAddReq-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tags_113,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tags_113)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tags_113[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tags_113,   /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tags_113)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tags_113[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_113,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_specs_113  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_120[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value, choice.E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_120[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_120 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value, present),
+       sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_120,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_120 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_120,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_120        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_117[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_118, &asn_PER_memb_id_constr_118,  memb_id_constraint_117 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_119, &asn_PER_memb_criticality_constr_119,  memb_criticality_constraint_117 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_120,
+               select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_120, &asn_PER_memb_value_constr_120,  memb_value_constraint_117 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tags_117[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tag2el_117[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_specs_117 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tag2el_117,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs = {
+       "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs",
+       "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tags_117,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tags_117)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tags_117[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tags_117,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tags_117)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tags_117[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_117,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_specs_117      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_124[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value, choice.E_RABs_ToBeAdded_SgNBModReq_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeAdded-SgNBModReq-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_124[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeAdded-SgNBModReq-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_124 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_124,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_124 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_124,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_124        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_121[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_122, &asn_PER_memb_id_constr_122,  memb_id_constraint_121 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_123, &asn_PER_memb_criticality_constr_123,  memb_criticality_constraint_121 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_124,
+               select_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_124, &asn_PER_memb_value_constr_124,  memb_value_constraint_121 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tags_121[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tag2el_121[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_specs_121 = {
+       sizeof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs),
+       offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tag2el_121,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs = {
+       "E-RABs-ToBeAdded-SgNBModReq-ItemIEs",
+       "E-RABs-ToBeAdded-SgNBModReq-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tags_121,
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tags_121)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tags_121[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tags_121,   /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tags_121)
+               /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tags_121[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_121,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_specs_121  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_128[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs__value, choice.E_RABs_ToBeModified_SgNBModReq_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeModified-SgNBModReq-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_128[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeModified-SgNBModReq-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_128 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs__value),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeModified_SgNBModReq_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_128,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_128 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_128,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_128        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_ItemIEs_125[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_126, &asn_PER_memb_id_constr_126,  memb_id_constraint_125 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeModified_SgNBModReq_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_127, &asn_PER_memb_criticality_constr_127,  memb_criticality_constraint_125 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_128,
+               select_E_RABs_ToBeModified_SgNBModReq_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_128, &asn_PER_memb_value_constr_128,  memb_value_constraint_125 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tags_125[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tag2el_125[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_ItemIEs_specs_125 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tag2el_125,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs = {
+       "E-RABs-ToBeModified-SgNBModReq-ItemIEs",
+       "E-RABs-ToBeModified-SgNBModReq-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tags_125,
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tags_125)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tags_125[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tags_125,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tags_125)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tags_125[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReq_ItemIEs_125,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReq_ItemIEs_specs_125       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_132[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value, choice.E_RABs_ToBeReleased_SgNBModReq_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-SgNBModReq-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_132[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeReleased-SgNBModReq-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_132 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_132,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_132 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_132,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_132        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_129[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_130, &asn_PER_memb_id_constr_130,  memb_id_constraint_129 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_131, &asn_PER_memb_criticality_constr_131,  memb_criticality_constraint_129 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_132,
+               select_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_132, &asn_PER_memb_value_constr_132,  memb_value_constraint_129 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tags_129[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tag2el_129[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_specs_129 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tag2el_129,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs = {
+       "E-RABs-ToBeReleased-SgNBModReq-ItemIEs",
+       "E-RABs-ToBeReleased-SgNBModReq-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tags_129,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tags_129)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tags_129[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tags_129,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tags_129)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tags_129[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_129,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_specs_129       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_136[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value, choice.E_RABs_Admitted_ToBeAdded_SgNBModAck_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_136[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-Admitted-ToBeAdded-SgNBModAck-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_136 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value, present),
+       sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_136,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_136 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_136,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_136        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_133[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_134, &asn_PER_memb_id_constr_134,  memb_id_constraint_133 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_135, &asn_PER_memb_criticality_constr_135,  memb_criticality_constraint_133 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_136,
+               select_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_136, &asn_PER_memb_value_constr_136,  memb_value_constraint_133 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tags_133[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tag2el_133[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_specs_133 = {
+       sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs),
+       offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tag2el_133,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs = {
+       "E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs",
+       "E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tags_133,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tags_133)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tags_133[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tags_133,  /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tags_133)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tags_133[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_133,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_specs_133 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_140[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value, choice.E_RABs_Admitted_ToBeModified_SgNBModAck_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToBeModified-SgNBModAck-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_140[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-Admitted-ToBeModified-SgNBModAck-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_140 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value),
+       offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value, present),
+       sizeof(((struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_140,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_140 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_140,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_140        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_137[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_138, &asn_PER_memb_id_constr_138,  memb_id_constraint_137 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_139, &asn_PER_memb_criticality_constr_139,  memb_criticality_constraint_137 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_140,
+               select_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_140, &asn_PER_memb_value_constr_140,  memb_value_constraint_137 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tags_137[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tag2el_137[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_specs_137 = {
+       sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs),
+       offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tag2el_137,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs = {
+       "E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs",
+       "E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tags_137,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tags_137)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tags_137[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tags_137,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tags_137)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tags_137[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_137,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_specs_137      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_144[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value, choice.E_RABs_Admitted_ToReleased_SgNBModAck_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToReleased-SgNBModAck-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_144[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-Admitted-ToReleased-SgNBModAck-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_144 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value, present),
+       sizeof(((struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_144,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_144 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_144,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_144        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_141[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_142, &asn_PER_memb_id_constr_142,  memb_id_constraint_141 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_143, &asn_PER_memb_criticality_constr_143,  memb_criticality_constraint_141 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_144,
+               select_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_144, &asn_PER_memb_value_constr_144,  memb_value_constraint_141 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tags_141[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tag2el_141[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_specs_141 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tag2el_141,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs = {
+       "E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs",
+       "E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tags_141,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tags_141)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tags_141[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tags_141,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tags_141)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tags_141[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_141,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_specs_141      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_148[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value, choice.E_RABs_ToBeReleased_SgNBModReqd_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-SgNBModReqd-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_148[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeReleased-SgNBModReqd-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_148 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_148,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_148 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_148,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_148        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_145[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_146, &asn_PER_memb_id_constr_146,  memb_id_constraint_145 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_147, &asn_PER_memb_criticality_constr_147,  memb_criticality_constraint_145 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_148,
+               select_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_148, &asn_PER_memb_value_constr_148,  memb_value_constraint_145 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tags_145[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tag2el_145[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_specs_145 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tag2el_145,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs = {
+       "E-RABs-ToBeReleased-SgNBModReqd-ItemIEs",
+       "E-RABs-ToBeReleased-SgNBModReqd-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tags_145,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tags_145)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tags_145[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tags_145,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tags_145)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tags_145[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_145,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_specs_145      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_152[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value, choice.E_RABs_ToBeModified_SgNBModReqd_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeModified-SgNBModReqd-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_152[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeModified-SgNBModReqd-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_152 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_152,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_152 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_152,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_152        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_149[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_150, &asn_PER_memb_id_constr_150,  memb_id_constraint_149 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_151, &asn_PER_memb_criticality_constr_151,  memb_criticality_constraint_149 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_152,
+               select_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_152, &asn_PER_memb_value_constr_152,  memb_value_constraint_149 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tags_149[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tag2el_149[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_specs_149 = {
+       sizeof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs),
+       offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tag2el_149,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs = {
+       "E-RABs-ToBeModified-SgNBModReqd-ItemIEs",
+       "E-RABs-ToBeModified-SgNBModReqd-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tags_149,
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tags_149)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tags_149[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tags_149,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tags_149)
+               /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tags_149[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_149,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_specs_149      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_156[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value, choice.E_RABs_AdmittedToBeModified_SgNBModConf_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-AdmittedToBeModified-SgNBModConf-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_156[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-AdmittedToBeModified-SgNBModConf-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_156 = {
+       sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value, present),
+       sizeof(((struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_156,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_156 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_156,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_156        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_153[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_154, &asn_PER_memb_id_constr_154,  memb_id_constraint_153 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_155, &asn_PER_memb_criticality_constr_155,  memb_criticality_constraint_153 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_156,
+               select_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_156, &asn_PER_memb_value_constr_156,  memb_value_constraint_153 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tags_153[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tag2el_153[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_specs_153 = {
+       sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs),
+       offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tag2el_153,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs = {
+       "E-RABs-AdmittedToBeModified-SgNBModConf-ItemIEs",
+       "E-RABs-AdmittedToBeModified-SgNBModConf-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tags_153,
+       sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tags_153)
+               /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tags_153[0]), /* 1 */
+       asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tags_153,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tags_153)
+               /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tags_153[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_153,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_specs_153      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_160[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value, choice.E_RABs_ToBeReleased_SgNBRelReq_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-SgNBRelReq-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_160[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeReleased-SgNBRelReq-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_160 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_160,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_160 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_160,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_160        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_157[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_158, &asn_PER_memb_id_constr_158,  memb_id_constraint_157 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_159, &asn_PER_memb_criticality_constr_159,  memb_criticality_constraint_157 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_160,
+               select_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_160, &asn_PER_memb_value_constr_160,  memb_value_constraint_157 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tags_157[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tag2el_157[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_specs_157 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tag2el_157,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs = {
+       "E-RABs-ToBeReleased-SgNBRelReq-ItemIEs",
+       "E-RABs-ToBeReleased-SgNBRelReq-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tags_157,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tags_157)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tags_157[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tags_157,        /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tags_157)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tags_157[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_157,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_specs_157       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_164[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value, choice.E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_164[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_164 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value, present),
+       sizeof(((struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_164,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_164 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_164,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_164        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_161[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_162, &asn_PER_memb_id_constr_162,  memb_id_constraint_161 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_163, &asn_PER_memb_criticality_constr_163,  memb_criticality_constraint_161 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_164,
+               select_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_164, &asn_PER_memb_value_constr_164,  memb_value_constraint_161 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tags_161[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tag2el_161[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_specs_161 = {
+       sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs),
+       offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tag2el_161,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs = {
+       "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemIEs",
+       "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tags_161,
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tags_161)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tags_161[0]), /* 1 */
+       asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tags_161,    /* Same as above */
+       sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tags_161)
+               /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tags_161[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_161,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_specs_161   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_168[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value, choice.E_RABs_ToBeReleased_SgNBRelReqd_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-SgNBRelReqd-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_168[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeReleased-SgNBRelReqd-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_168 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_168,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_168 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_168,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_168        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_165[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_166, &asn_PER_memb_id_constr_166,  memb_id_constraint_165 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_167, &asn_PER_memb_criticality_constr_167,  memb_criticality_constraint_165 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_168,
+               select_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_168, &asn_PER_memb_value_constr_168,  memb_value_constraint_165 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tags_165[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tag2el_165[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_specs_165 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tag2el_165,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs = {
+       "E-RABs-ToBeReleased-SgNBRelReqd-ItemIEs",
+       "E-RABs-ToBeReleased-SgNBRelReqd-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tags_165,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tags_165)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tags_165[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tags_165,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tags_165)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tags_165[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_165,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_specs_165      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_172[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value, choice.E_RABs_ToBeReleased_SgNBRelConf_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-SgNBRelConf-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_172[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeReleased-SgNBRelConf-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_172 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_172,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_172 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_172,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_172        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_169[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_170, &asn_PER_memb_id_constr_170,  memb_id_constraint_169 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_171, &asn_PER_memb_criticality_constr_171,  memb_criticality_constraint_169 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_172,
+               select_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_172, &asn_PER_memb_value_constr_172,  memb_value_constraint_169 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tags_169[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tag2el_169[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_specs_169 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tag2el_169,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs = {
+       "E-RABs-ToBeReleased-SgNBRelConf-ItemIEs",
+       "E-RABs-ToBeReleased-SgNBRelConf-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tags_169,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tags_169)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tags_169[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tags_169,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tags_169)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tags_169[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_169,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_specs_169      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_176[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value, choice.E_RABs_SubjectToSgNBCounterCheck_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-SubjectToSgNBCounterCheck-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_176[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-SubjectToSgNBCounterCheck-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_176 = {
+       sizeof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value),
+       offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value, present),
+       sizeof(((struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_176,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_176 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_176,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_176        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_173[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_174, &asn_PER_memb_id_constr_174,  memb_id_constraint_173 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_175, &asn_PER_memb_criticality_constr_175,  memb_criticality_constraint_173 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_176,
+               select_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_176, &asn_PER_memb_value_constr_176,  memb_value_constraint_173 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tags_173[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tag2el_173[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_specs_173 = {
+       sizeof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs),
+       offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tag2el_173,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs = {
+       "E-RABs-SubjectToSgNBCounterCheck-ItemIEs",
+       "E-RABs-SubjectToSgNBCounterCheck-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tags_173,
+       sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tags_173)
+               /sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tags_173[0]), /* 1 */
+       asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tags_173,      /* Same as above */
+       sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tags_173)
+               /sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tags_173[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_173,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_specs_173     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_180[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value, choice.E_RABs_ToBeReleased_SgNBChaConf_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-SgNBChaConf-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_180[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeReleased-SgNBChaConf-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_180 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value, present),
+       sizeof(((struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_180,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_180 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_180,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_180        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_177[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_178, &asn_PER_memb_id_constr_178,  memb_id_constraint_177 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_179, &asn_PER_memb_criticality_constr_179,  memb_criticality_constraint_177 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_180,
+               select_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_180, &asn_PER_memb_value_constr_180,  memb_value_constraint_177 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tags_177[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tag2el_177[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_specs_177 = {
+       sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs),
+       offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tag2el_177,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs = {
+       "E-RABs-ToBeReleased-SgNBChaConf-ItemIEs",
+       "E-RABs-ToBeReleased-SgNBChaConf-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tags_177,
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tags_177)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tags_177[0]), /* 1 */
+       asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tags_177,       /* Same as above */
+       sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tags_177)
+               /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tags_177[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_177,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_specs_177      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_184[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_ItemIEs__value, choice.E_RABs_DataForwardingAddress_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_DataForwardingAddress_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-DataForwardingAddress-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_184[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-DataForwardingAddress-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_184 = {
+       sizeof(struct E_RABs_DataForwardingAddress_ItemIEs__value),
+       offsetof(struct E_RABs_DataForwardingAddress_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABs_DataForwardingAddress_ItemIEs__value, present),
+       sizeof(((struct E_RABs_DataForwardingAddress_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_184,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_184 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_184,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_184        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABs_DataForwardingAddress_ItemIEs_181[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_182, &asn_PER_memb_id_constr_182,  memb_id_constraint_181 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABs_DataForwardingAddress_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_183, &asn_PER_memb_criticality_constr_183,  memb_criticality_constraint_181 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_184,
+               select_E_RABs_DataForwardingAddress_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_184, &asn_PER_memb_value_constr_184,  memb_value_constraint_181 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABs_DataForwardingAddress_ItemIEs_tags_181[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABs_DataForwardingAddress_ItemIEs_tag2el_181[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABs_DataForwardingAddress_ItemIEs_specs_181 = {
+       sizeof(struct E_RABs_DataForwardingAddress_ItemIEs),
+       offsetof(struct E_RABs_DataForwardingAddress_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABs_DataForwardingAddress_ItemIEs_tag2el_181,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABs_DataForwardingAddress_ItemIEs = {
+       "E-RABs-DataForwardingAddress-ItemIEs",
+       "E-RABs-DataForwardingAddress-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABs_DataForwardingAddress_ItemIEs_tags_181,
+       sizeof(asn_DEF_E_RABs_DataForwardingAddress_ItemIEs_tags_181)
+               /sizeof(asn_DEF_E_RABs_DataForwardingAddress_ItemIEs_tags_181[0]), /* 1 */
+       asn_DEF_E_RABs_DataForwardingAddress_ItemIEs_tags_181,  /* Same as above */
+       sizeof(asn_DEF_E_RABs_DataForwardingAddress_ItemIEs_tags_181)
+               /sizeof(asn_DEF_E_RABs_DataForwardingAddress_ItemIEs_tags_181[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_DataForwardingAddress_ItemIEs_181,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_DataForwardingAddress_ItemIEs_specs_181 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_188[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RAB_ItemIEs__value, choice.E_RAB_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RAB_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RAB-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_188[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RAB-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_188 = {
+       sizeof(struct E_RAB_ItemIEs__value),
+       offsetof(struct E_RAB_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RAB_ItemIEs__value, present),
+       sizeof(((struct E_RAB_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_188,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_188 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_188,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_188        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RAB_ItemIEs_185[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RAB_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_186, &asn_PER_memb_id_constr_186,  memb_id_constraint_185 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RAB_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RAB_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_187, &asn_PER_memb_criticality_constr_187,  memb_criticality_constraint_185 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RAB_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_188,
+               select_E_RAB_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_188, &asn_PER_memb_value_constr_188,  memb_value_constraint_185 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RAB_ItemIEs_tags_185[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RAB_ItemIEs_tag2el_185[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RAB_ItemIEs_specs_185 = {
+       sizeof(struct E_RAB_ItemIEs),
+       offsetof(struct E_RAB_ItemIEs, _asn_ctx),
+       asn_MAP_E_RAB_ItemIEs_tag2el_185,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RAB_ItemIEs = {
+       "E-RAB-ItemIEs",
+       "E-RAB-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RAB_ItemIEs_tags_185,
+       sizeof(asn_DEF_E_RAB_ItemIEs_tags_185)
+               /sizeof(asn_DEF_E_RAB_ItemIEs_tags_185[0]), /* 1 */
+       asn_DEF_E_RAB_ItemIEs_tags_185, /* Same as above */
+       sizeof(asn_DEF_E_RAB_ItemIEs_tags_185)
+               /sizeof(asn_DEF_E_RAB_ItemIEs_tags_185[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RAB_ItemIEs_185,
+       3,      /* Elements count */
+       &asn_SPC_E_RAB_ItemIEs_specs_185        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_192[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_ItemIEs__value, choice.E_RABUsageReport_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABUsageReport_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABUsageReport-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_192[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABUsageReport-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_192 = {
+       sizeof(struct E_RABUsageReport_ItemIEs__value),
+       offsetof(struct E_RABUsageReport_ItemIEs__value, _asn_ctx),
+       offsetof(struct E_RABUsageReport_ItemIEs__value, present),
+       sizeof(((struct E_RABUsageReport_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_192,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_192 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_192,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_192        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E_RABUsageReport_ItemIEs_189[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_190, &asn_PER_memb_id_constr_190,  memb_id_constraint_189 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_E_RABUsageReport_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_191, &asn_PER_memb_criticality_constr_191,  memb_criticality_constraint_189 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_192,
+               select_E_RABUsageReport_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_192, &asn_PER_memb_value_constr_192,  memb_value_constraint_189 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_E_RABUsageReport_ItemIEs_tags_189[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E_RABUsageReport_ItemIEs_tag2el_189[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E_RABUsageReport_ItemIEs_specs_189 = {
+       sizeof(struct E_RABUsageReport_ItemIEs),
+       offsetof(struct E_RABUsageReport_ItemIEs, _asn_ctx),
+       asn_MAP_E_RABUsageReport_ItemIEs_tag2el_189,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E_RABUsageReport_ItemIEs = {
+       "E-RABUsageReport-ItemIEs",
+       "E-RABUsageReport-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_E_RABUsageReport_ItemIEs_tags_189,
+       sizeof(asn_DEF_E_RABUsageReport_ItemIEs_tags_189)
+               /sizeof(asn_DEF_E_RABUsageReport_ItemIEs_tags_189[0]), /* 1 */
+       asn_DEF_E_RABUsageReport_ItemIEs_tags_189,      /* Same as above */
+       sizeof(asn_DEF_E_RABUsageReport_ItemIEs_tags_189)
+               /sizeof(asn_DEF_E_RABUsageReport_ItemIEs_tags_189[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABUsageReport_ItemIEs_189,
+       3,      /* Elements count */
+       &asn_SPC_E_RABUsageReport_ItemIEs_specs_189     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_196[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_ItemIEs__value, choice.SecondaryRATUsageReport_Item),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SecondaryRATUsageReport_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SecondaryRATUsageReport-Item"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_196[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SecondaryRATUsageReport-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_196 = {
+       sizeof(struct SecondaryRATUsageReport_ItemIEs__value),
+       offsetof(struct SecondaryRATUsageReport_ItemIEs__value, _asn_ctx),
+       offsetof(struct SecondaryRATUsageReport_ItemIEs__value, present),
+       sizeof(((struct SecondaryRATUsageReport_ItemIEs__value *)0)->present),
+       asn_MAP_value_tag2el_196,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_196 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_196,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_196        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SecondaryRATUsageReport_ItemIEs_193[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_ItemIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_194, &asn_PER_memb_id_constr_194,  memb_id_constraint_193 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_ItemIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SecondaryRATUsageReport_ItemIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_195, &asn_PER_memb_criticality_constr_195,  memb_criticality_constraint_193 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_ItemIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_196,
+               select_SecondaryRATUsageReport_ItemIEs_value_type,
+               { &asn_OER_memb_value_constr_196, &asn_PER_memb_value_constr_196,  memb_value_constraint_193 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SecondaryRATUsageReport_ItemIEs_tags_193[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SecondaryRATUsageReport_ItemIEs_tag2el_193[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATUsageReport_ItemIEs_specs_193 = {
+       sizeof(struct SecondaryRATUsageReport_ItemIEs),
+       offsetof(struct SecondaryRATUsageReport_ItemIEs, _asn_ctx),
+       asn_MAP_SecondaryRATUsageReport_ItemIEs_tag2el_193,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SecondaryRATUsageReport_ItemIEs = {
+       "SecondaryRATUsageReport-ItemIEs",
+       "SecondaryRATUsageReport-ItemIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SecondaryRATUsageReport_ItemIEs_tags_193,
+       sizeof(asn_DEF_SecondaryRATUsageReport_ItemIEs_tags_193)
+               /sizeof(asn_DEF_SecondaryRATUsageReport_ItemIEs_tags_193[0]), /* 1 */
+       asn_DEF_SecondaryRATUsageReport_ItemIEs_tags_193,       /* Same as above */
+       sizeof(asn_DEF_SecondaryRATUsageReport_ItemIEs_tags_193)
+               /sizeof(asn_DEF_SecondaryRATUsageReport_ItemIEs_tags_193[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SecondaryRATUsageReport_ItemIEs_193,
+       3,      /* Elements count */
+       &asn_SPC_SecondaryRATUsageReport_ItemIEs_specs_193      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_200[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICrequestID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICrequestID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICrequestID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RANfunctionID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_RANfunctionID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctionID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICsubscription),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICsubscription,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICsubscription"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_200[] = { 1, 0, 2 };
+static const unsigned asn_MAP_value_from_canonical_200[] = { 1, 0, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_200[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* RICsubscription */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_200 = {
+       sizeof(struct RICsubscriptionRequest_IEs__value),
+       offsetof(struct RICsubscriptionRequest_IEs__value, _asn_ctx),
+       offsetof(struct RICsubscriptionRequest_IEs__value, present),
+       sizeof(((struct RICsubscriptionRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_200,
+       3,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_200,
+       asn_MAP_value_from_canonical_200,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_200 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_200,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_200        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_197[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_198, &asn_PER_memb_id_constr_198,  memb_id_constraint_197 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RICsubscriptionRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_199, &asn_PER_memb_criticality_constr_199,  memb_criticality_constraint_197 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_200,
+               select_RICsubscriptionRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_200, &asn_PER_memb_value_constr_200,  memb_value_constraint_197 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_IEs_tags_197[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_IEs_tag2el_197[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_197 = {
+       sizeof(struct RICsubscriptionRequest_IEs),
+       offsetof(struct RICsubscriptionRequest_IEs, _asn_ctx),
+       asn_MAP_RICsubscriptionRequest_IEs_tag2el_197,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs = {
+       "RICsubscriptionRequest-IEs",
+       "RICsubscriptionRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICsubscriptionRequest_IEs_tags_197,
+       sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_197)
+               /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_197[0]), /* 1 */
+       asn_DEF_RICsubscriptionRequest_IEs_tags_197,    /* Same as above */
+       sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_197)
+               /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_197[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICsubscriptionRequest_IEs_197,
+       3,      /* Elements count */
+       &asn_SPC_RICsubscriptionRequest_IEs_specs_197   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_204[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICrequestID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICrequestID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICrequestID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RANfunctionID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_RANfunctionID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctionID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICaction_Admitted_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICaction_Admitted_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICaction-Admitted-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICaction_NotAdmitted_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICaction_NotAdmitted_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICaction-NotAdmitted-List"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_204[] = { 1, 0, 2, 3 };
+static const unsigned asn_MAP_value_from_canonical_204[] = { 1, 0, 2, 3 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_204[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-Admitted-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* RICaction-NotAdmitted-List */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_204 = {
+       sizeof(struct RICsubscriptionResponse_IEs__value),
+       offsetof(struct RICsubscriptionResponse_IEs__value, _asn_ctx),
+       offsetof(struct RICsubscriptionResponse_IEs__value, present),
+       sizeof(((struct RICsubscriptionResponse_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_204,
+       4,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_204,
+       asn_MAP_value_from_canonical_204,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_204 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_204,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_204        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_201[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_202, &asn_PER_memb_id_constr_202,  memb_id_constraint_201 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RICsubscriptionResponse_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_203, &asn_PER_memb_criticality_constr_203,  memb_criticality_constraint_201 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_204,
+               select_RICsubscriptionResponse_IEs_value_type,
+               { &asn_OER_memb_value_constr_204, &asn_PER_memb_value_constr_204,  memb_value_constraint_201 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_IEs_tags_201[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_IEs_tag2el_201[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_201 = {
+       sizeof(struct RICsubscriptionResponse_IEs),
+       offsetof(struct RICsubscriptionResponse_IEs, _asn_ctx),
+       asn_MAP_RICsubscriptionResponse_IEs_tag2el_201,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs = {
+       "RICsubscriptionResponse-IEs",
+       "RICsubscriptionResponse-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICsubscriptionResponse_IEs_tags_201,
+       sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_201)
+               /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_201[0]), /* 1 */
+       asn_DEF_RICsubscriptionResponse_IEs_tags_201,   /* Same as above */
+       sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_201)
+               /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_201[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICsubscriptionResponse_IEs_201,
+       3,      /* Elements count */
+       &asn_SPC_RICsubscriptionResponse_IEs_specs_201  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_208[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICrequestID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICrequestID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICrequestID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RANfunctionID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_RANfunctionID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctionID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICaction_NotAdmitted_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICaction_NotAdmitted_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICaction-NotAdmitted-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_208[] = { 1, 0, 2, 3 };
+static const unsigned asn_MAP_value_from_canonical_208[] = { 1, 0, 2, 3 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_208[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-NotAdmitted-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* CriticalityDiagnostics */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_208 = {
+       sizeof(struct RICsubscriptionFailure_IEs__value),
+       offsetof(struct RICsubscriptionFailure_IEs__value, _asn_ctx),
+       offsetof(struct RICsubscriptionFailure_IEs__value, present),
+       sizeof(((struct RICsubscriptionFailure_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_208,
+       4,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_208,
+       asn_MAP_value_from_canonical_208,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_208 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_208,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_208        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_205[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_206, &asn_PER_memb_id_constr_206,  memb_id_constraint_205 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RICsubscriptionFailure_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_207, &asn_PER_memb_criticality_constr_207,  memb_criticality_constraint_205 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_208,
+               select_RICsubscriptionFailure_IEs_value_type,
+               { &asn_OER_memb_value_constr_208, &asn_PER_memb_value_constr_208,  memb_value_constraint_205 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_IEs_tags_205[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_IEs_tag2el_205[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_205 = {
+       sizeof(struct RICsubscriptionFailure_IEs),
+       offsetof(struct RICsubscriptionFailure_IEs, _asn_ctx),
+       asn_MAP_RICsubscriptionFailure_IEs_tag2el_205,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs = {
+       "RICsubscriptionFailure-IEs",
+       "RICsubscriptionFailure-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICsubscriptionFailure_IEs_tags_205,
+       sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_205)
+               /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_205[0]), /* 1 */
+       asn_DEF_RICsubscriptionFailure_IEs_tags_205,    /* Same as above */
+       sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_205)
+               /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_205[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICsubscriptionFailure_IEs_205,
+       3,      /* Elements count */
+       &asn_SPC_RICsubscriptionFailure_IEs_specs_205   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_212[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RICrequestID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICrequestID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICrequestID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RANfunctionID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_RANfunctionID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctionID"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_212[] = { 1, 0 };
+static const unsigned asn_MAP_value_from_canonical_212[] = { 1, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_212[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_212 = {
+       sizeof(struct RICsubscriptionDeleteRequest_IEs__value),
+       offsetof(struct RICsubscriptionDeleteRequest_IEs__value, _asn_ctx),
+       offsetof(struct RICsubscriptionDeleteRequest_IEs__value, present),
+       sizeof(((struct RICsubscriptionDeleteRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_212,
+       2,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_212,
+       asn_MAP_value_from_canonical_212,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_212 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_212,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_212        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_209[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_210, &asn_PER_memb_id_constr_210,  memb_id_constraint_209 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RICsubscriptionDeleteRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_211, &asn_PER_memb_criticality_constr_211,  memb_criticality_constraint_209 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_212,
+               select_RICsubscriptionDeleteRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_212, &asn_PER_memb_value_constr_212,  memb_value_constraint_209 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_209[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_209[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_209 = {
+       sizeof(struct RICsubscriptionDeleteRequest_IEs),
+       offsetof(struct RICsubscriptionDeleteRequest_IEs, _asn_ctx),
+       asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_209,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs = {
+       "RICsubscriptionDeleteRequest-IEs",
+       "RICsubscriptionDeleteRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_209,
+       sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_209)
+               /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_209[0]), /* 1 */
+       asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_209,      /* Same as above */
+       sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_209)
+               /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_209[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICsubscriptionDeleteRequest_IEs_209,
+       3,      /* Elements count */
+       &asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_209     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_216[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RICrequestID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICrequestID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICrequestID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RANfunctionID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_RANfunctionID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctionID"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_216[] = { 1, 0 };
+static const unsigned asn_MAP_value_from_canonical_216[] = { 1, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_216[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_216 = {
+       sizeof(struct RICsubscriptionDeleteResponse_IEs__value),
+       offsetof(struct RICsubscriptionDeleteResponse_IEs__value, _asn_ctx),
+       offsetof(struct RICsubscriptionDeleteResponse_IEs__value, present),
+       sizeof(((struct RICsubscriptionDeleteResponse_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_216,
+       2,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_216,
+       asn_MAP_value_from_canonical_216,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_216 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_216,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_216        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_213[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_214, &asn_PER_memb_id_constr_214,  memb_id_constraint_213 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RICsubscriptionDeleteResponse_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_215, &asn_PER_memb_criticality_constr_215,  memb_criticality_constraint_213 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_216,
+               select_RICsubscriptionDeleteResponse_IEs_value_type,
+               { &asn_OER_memb_value_constr_216, &asn_PER_memb_value_constr_216,  memb_value_constraint_213 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_213[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_213[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_213 = {
+       sizeof(struct RICsubscriptionDeleteResponse_IEs),
+       offsetof(struct RICsubscriptionDeleteResponse_IEs, _asn_ctx),
+       asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_213,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs = {
+       "RICsubscriptionDeleteResponse-IEs",
+       "RICsubscriptionDeleteResponse-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_213,
+       sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_213)
+               /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_213[0]), /* 1 */
+       asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_213,     /* Same as above */
+       sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_213)
+               /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_213[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICsubscriptionDeleteResponse_IEs_213,
+       3,      /* Elements count */
+       &asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_213    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_220[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RICrequestID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICrequestID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICrequestID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RANfunctionID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_RANfunctionID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctionID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RICcause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_RICcause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICcause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_220[] = { 1, 0, 3, 2 };
+static const unsigned asn_MAP_value_from_canonical_220[] = { 1, 0, 3, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_220[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* misc */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* ric */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_220 = {
+       sizeof(struct RICsubscriptionDeleteFailure_IEs__value),
+       offsetof(struct RICsubscriptionDeleteFailure_IEs__value, _asn_ctx),
+       offsetof(struct RICsubscriptionDeleteFailure_IEs__value, present),
+       sizeof(((struct RICsubscriptionDeleteFailure_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_220,
+       8,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_220,
+       asn_MAP_value_from_canonical_220,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_220 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_220,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_220        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_217[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_218, &asn_PER_memb_id_constr_218,  memb_id_constraint_217 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RICsubscriptionDeleteFailure_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_219, &asn_PER_memb_criticality_constr_219,  memb_criticality_constraint_217 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_220,
+               select_RICsubscriptionDeleteFailure_IEs_value_type,
+               { &asn_OER_memb_value_constr_220, &asn_PER_memb_value_constr_220,  memb_value_constraint_217 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_217[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_217[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_217 = {
+       sizeof(struct RICsubscriptionDeleteFailure_IEs),
+       offsetof(struct RICsubscriptionDeleteFailure_IEs, _asn_ctx),
+       asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_217,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs = {
+       "RICsubscriptionDeleteFailure-IEs",
+       "RICsubscriptionDeleteFailure-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_217,
+       sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_217)
+               /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_217[0]), /* 1 */
+       asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_217,      /* Same as above */
+       sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_217)
+               /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_217[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICsubscriptionDeleteFailure_IEs_217,
+       3,      /* Elements count */
+       &asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_217     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_224[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICrequestID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICrequestID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICrequestID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RANfunctionID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_RANfunctionID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctionID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICactionID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_RICactionID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICactionID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationSN),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_RICindicationSN,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICindicationSN"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationType),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_RICindicationType,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICindicationType"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationHeader),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_RICindicationHeader,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICindicationHeader"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationMessage),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_RICindicationMessage,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICindicationMessage"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICcallProcessID),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_RICcallProcessID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICcallProcessID"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_224[] = { 1, 2, 3, 5, 6, 7, 4, 0 };
+static const unsigned asn_MAP_value_from_canonical_224[] = { 7, 0, 1, 2, 6, 3, 4, 5 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_224[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 2 }, /* RANfunctionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 1 }, /* RICactionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* RICindicationSN */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 5, 0, 2 }, /* RICindicationHeader */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, -1, 1 }, /* RICindicationMessage */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 7, -2, 0 }, /* RICcallProcessID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 0 }, /* RICindicationType */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_224 = {
+       sizeof(struct RICindication_IEs__value),
+       offsetof(struct RICindication_IEs__value, _asn_ctx),
+       offsetof(struct RICindication_IEs__value, present),
+       sizeof(((struct RICindication_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_224,
+       8,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_224,
+       asn_MAP_value_from_canonical_224,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_224 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_224,
+       8,      /* Elements count */
+       &asn_SPC_value_specs_224        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICindication_IEs_221[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_222, &asn_PER_memb_id_constr_222,  memb_id_constraint_221 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RICindication_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_223, &asn_PER_memb_criticality_constr_223,  memb_criticality_constraint_221 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_224,
+               select_RICindication_IEs_value_type,
+               { &asn_OER_memb_value_constr_224, &asn_PER_memb_value_constr_224,  memb_value_constraint_221 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICindication_IEs_tags_221[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICindication_IEs_tag2el_221[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_221 = {
+       sizeof(struct RICindication_IEs),
+       offsetof(struct RICindication_IEs, _asn_ctx),
+       asn_MAP_RICindication_IEs_tag2el_221,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICindication_IEs = {
+       "RICindication-IEs",
+       "RICindication-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICindication_IEs_tags_221,
+       sizeof(asn_DEF_RICindication_IEs_tags_221)
+               /sizeof(asn_DEF_RICindication_IEs_tags_221[0]), /* 1 */
+       asn_DEF_RICindication_IEs_tags_221,     /* Same as above */
+       sizeof(asn_DEF_RICindication_IEs_tags_221)
+               /sizeof(asn_DEF_RICindication_IEs_tags_221[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICindication_IEs_221,
+       3,      /* Elements count */
+       &asn_SPC_RICindication_IEs_specs_221    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_228[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICrequestID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICrequestID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICrequestID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RANfunctionID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_RANfunctionID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctionID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcallProcessID),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_RICcallProcessID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICcallProcessID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolHeader),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_RICcontrolHeader,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICcontrolHeader"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolMessage),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_RICcontrolMessage,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICcontrolMessage"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolAckRequest),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_RICcontrolAckRequest,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICcontrolAckRequest"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_228[] = { 1, 2, 3, 4, 5, 0 };
+static const unsigned asn_MAP_value_from_canonical_228[] = { 5, 0, 1, 2, 3, 4 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_228[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 2 }, /* RICcallProcessID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 1 }, /* RICcontrolHeader */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -2, 0 }, /* RICcontrolMessage */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 0 }, /* RICcontrolAckRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_228 = {
+       sizeof(struct RICcontrolRequest_IEs__value),
+       offsetof(struct RICcontrolRequest_IEs__value, _asn_ctx),
+       offsetof(struct RICcontrolRequest_IEs__value, present),
+       sizeof(((struct RICcontrolRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_228,
+       6,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_228,
+       asn_MAP_value_from_canonical_228,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_228 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_228,
+       6,      /* Elements count */
+       &asn_SPC_value_specs_228        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_225[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_226, &asn_PER_memb_id_constr_226,  memb_id_constraint_225 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RICcontrolRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_227, &asn_PER_memb_criticality_constr_227,  memb_criticality_constraint_225 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_228,
+               select_RICcontrolRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_228, &asn_PER_memb_value_constr_228,  memb_value_constraint_225 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_IEs_tags_225[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_IEs_tag2el_225[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_225 = {
+       sizeof(struct RICcontrolRequest_IEs),
+       offsetof(struct RICcontrolRequest_IEs, _asn_ctx),
+       asn_MAP_RICcontrolRequest_IEs_tag2el_225,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs = {
+       "RICcontrolRequest-IEs",
+       "RICcontrolRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICcontrolRequest_IEs_tags_225,
+       sizeof(asn_DEF_RICcontrolRequest_IEs_tags_225)
+               /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_225[0]), /* 1 */
+       asn_DEF_RICcontrolRequest_IEs_tags_225, /* Same as above */
+       sizeof(asn_DEF_RICcontrolRequest_IEs_tags_225)
+               /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_225[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICcontrolRequest_IEs_225,
+       3,      /* Elements count */
+       &asn_SPC_RICcontrolRequest_IEs_specs_225        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_232[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICrequestID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICrequestID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICrequestID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RANfunctionID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_RANfunctionID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctionID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcallProcessID),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_RICcallProcessID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICcallProcessID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolStatus),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_RICcontrolStatus,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICcontrolStatus"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_232[] = { 1, 2, 3, 0 };
+static const unsigned asn_MAP_value_from_canonical_232[] = { 3, 0, 1, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_232[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* RICcallProcessID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 0 }, /* RICcontrolStatus */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_232 = {
+       sizeof(struct RICcontrolAcknowledge_IEs__value),
+       offsetof(struct RICcontrolAcknowledge_IEs__value, _asn_ctx),
+       offsetof(struct RICcontrolAcknowledge_IEs__value, present),
+       sizeof(((struct RICcontrolAcknowledge_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_232,
+       4,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_232,
+       asn_MAP_value_from_canonical_232,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_232 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_232,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_232        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_229[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_230, &asn_PER_memb_id_constr_230,  memb_id_constraint_229 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RICcontrolAcknowledge_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_231, &asn_PER_memb_criticality_constr_231,  memb_criticality_constraint_229 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_232,
+               select_RICcontrolAcknowledge_IEs_value_type,
+               { &asn_OER_memb_value_constr_232, &asn_PER_memb_value_constr_232,  memb_value_constraint_229 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_IEs_tags_229[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_IEs_tag2el_229[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_229 = {
+       sizeof(struct RICcontrolAcknowledge_IEs),
+       offsetof(struct RICcontrolAcknowledge_IEs, _asn_ctx),
+       asn_MAP_RICcontrolAcknowledge_IEs_tag2el_229,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs = {
+       "RICcontrolAcknowledge-IEs",
+       "RICcontrolAcknowledge-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICcontrolAcknowledge_IEs_tags_229,
+       sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_229)
+               /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_229[0]), /* 1 */
+       asn_DEF_RICcontrolAcknowledge_IEs_tags_229,     /* Same as above */
+       sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_229)
+               /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_229[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICcontrolAcknowledge_IEs_229,
+       3,      /* Elements count */
+       &asn_SPC_RICcontrolAcknowledge_IEs_specs_229    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_236[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICrequestID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICrequestID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICrequestID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RANfunctionID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_RANfunctionID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctionID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICcallProcessID),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_RICcallProcessID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICcallProcessID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICcause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_RICcause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICcause"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_236[] = { 1, 2, 0, 3 };
+static const unsigned asn_MAP_value_from_canonical_236[] = { 2, 0, 1, 3 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_236[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* RICcallProcessID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* RICrequestID */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* misc */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 } /* ric */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_236 = {
+       sizeof(struct RICcontrolFailure_IEs__value),
+       offsetof(struct RICcontrolFailure_IEs__value, _asn_ctx),
+       offsetof(struct RICcontrolFailure_IEs__value, present),
+       sizeof(((struct RICcontrolFailure_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_236,
+       8,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_236,
+       asn_MAP_value_from_canonical_236,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_236 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_236,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_236        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_233[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_234, &asn_PER_memb_id_constr_234,  memb_id_constraint_233 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RICcontrolFailure_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_235, &asn_PER_memb_criticality_constr_235,  memb_criticality_constraint_233 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_236,
+               select_RICcontrolFailure_IEs_value_type,
+               { &asn_OER_memb_value_constr_236, &asn_PER_memb_value_constr_236,  memb_value_constraint_233 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_IEs_tags_233[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_IEs_tag2el_233[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_233 = {
+       sizeof(struct RICcontrolFailure_IEs),
+       offsetof(struct RICcontrolFailure_IEs, _asn_ctx),
+       asn_MAP_RICcontrolFailure_IEs_tag2el_233,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs = {
+       "RICcontrolFailure-IEs",
+       "RICcontrolFailure-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICcontrolFailure_IEs_tags_233,
+       sizeof(asn_DEF_RICcontrolFailure_IEs_tags_233)
+               /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_233[0]), /* 1 */
+       asn_DEF_RICcontrolFailure_IEs_tags_233, /* Same as above */
+       sizeof(asn_DEF_RICcontrolFailure_IEs_tags_233)
+               /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_233[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICcontrolFailure_IEs_233,
+       3,      /* Elements count */
+       &asn_SPC_RICcontrolFailure_IEs_specs_233        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_240[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctions_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RANfunctions_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctions-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctionsID_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RANfunctionsID_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctionsID-List"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_240[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctions-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsID-List */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_240 = {
+       sizeof(struct RICserviceUpdate_IEs__value),
+       offsetof(struct RICserviceUpdate_IEs__value, _asn_ctx),
+       offsetof(struct RICserviceUpdate_IEs__value, present),
+       sizeof(((struct RICserviceUpdate_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_240,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_240 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_240,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_240        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_237[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_238, &asn_PER_memb_id_constr_238,  memb_id_constraint_237 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RICserviceUpdate_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_239, &asn_PER_memb_criticality_constr_239,  memb_criticality_constraint_237 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_240,
+               select_RICserviceUpdate_IEs_value_type,
+               { &asn_OER_memb_value_constr_240, &asn_PER_memb_value_constr_240,  memb_value_constraint_237 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_IEs_tags_237[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_IEs_tag2el_237[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_237 = {
+       sizeof(struct RICserviceUpdate_IEs),
+       offsetof(struct RICserviceUpdate_IEs, _asn_ctx),
+       asn_MAP_RICserviceUpdate_IEs_tag2el_237,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs = {
+       "RICserviceUpdate-IEs",
+       "RICserviceUpdate-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICserviceUpdate_IEs_tags_237,
+       sizeof(asn_DEF_RICserviceUpdate_IEs_tags_237)
+               /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_237[0]), /* 1 */
+       asn_DEF_RICserviceUpdate_IEs_tags_237,  /* Same as above */
+       sizeof(asn_DEF_RICserviceUpdate_IEs_tags_237)
+               /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_237[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICserviceUpdate_IEs_237,
+       3,      /* Elements count */
+       &asn_SPC_RICserviceUpdate_IEs_specs_237 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_244[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsID_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RANfunctionsID_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctionsID-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsIDcause_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RANfunctionsIDcause_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctionsIDcause-List"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_244[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsID-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsIDcause-List */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_244 = {
+       sizeof(struct RICserviceUpdateAcknowledge_IEs__value),
+       offsetof(struct RICserviceUpdateAcknowledge_IEs__value, _asn_ctx),
+       offsetof(struct RICserviceUpdateAcknowledge_IEs__value, present),
+       sizeof(((struct RICserviceUpdateAcknowledge_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_244,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_244 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_244,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_244        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_241[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_242, &asn_PER_memb_id_constr_242,  memb_id_constraint_241 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RICserviceUpdateAcknowledge_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_243, &asn_PER_memb_criticality_constr_243,  memb_criticality_constraint_241 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_244,
+               select_RICserviceUpdateAcknowledge_IEs_value_type,
+               { &asn_OER_memb_value_constr_244, &asn_PER_memb_value_constr_244,  memb_value_constraint_241 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_241[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_241[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_241 = {
+       sizeof(struct RICserviceUpdateAcknowledge_IEs),
+       offsetof(struct RICserviceUpdateAcknowledge_IEs, _asn_ctx),
+       asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_241,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs = {
+       "RICserviceUpdateAcknowledge-IEs",
+       "RICserviceUpdateAcknowledge-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_241,
+       sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_241)
+               /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_241[0]), /* 1 */
+       asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_241,       /* Same as above */
+       sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_241)
+               /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_241[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICserviceUpdateAcknowledge_IEs_241,
+       3,      /* Elements count */
+       &asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_241      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_248[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.RANfunctionsIDcause_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RANfunctionsIDcause_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctionsIDcause-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.TimeToWait),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_TimeToWait,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "TimeToWait"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_248[] = { 1, 0, 2 };
+static const unsigned asn_MAP_value_from_canonical_248[] = { 1, 0, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_248[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsIDcause-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_248 = {
+       sizeof(struct RICserviceUpdateFailure_IEs__value),
+       offsetof(struct RICserviceUpdateFailure_IEs__value, _asn_ctx),
+       offsetof(struct RICserviceUpdateFailure_IEs__value, present),
+       sizeof(((struct RICserviceUpdateFailure_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_248,
+       3,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_248,
+       asn_MAP_value_from_canonical_248,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_248 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_248,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_248        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_245[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_246, &asn_PER_memb_id_constr_246,  memb_id_constraint_245 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RICserviceUpdateFailure_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_247, &asn_PER_memb_criticality_constr_247,  memb_criticality_constraint_245 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_248,
+               select_RICserviceUpdateFailure_IEs_value_type,
+               { &asn_OER_memb_value_constr_248, &asn_PER_memb_value_constr_248,  memb_value_constraint_245 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_IEs_tags_245[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_IEs_tag2el_245[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_245 = {
+       sizeof(struct RICserviceUpdateFailure_IEs),
+       offsetof(struct RICserviceUpdateFailure_IEs, _asn_ctx),
+       asn_MAP_RICserviceUpdateFailure_IEs_tag2el_245,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs = {
+       "RICserviceUpdateFailure-IEs",
+       "RICserviceUpdateFailure-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICserviceUpdateFailure_IEs_tags_245,
+       sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_245)
+               /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_245[0]), /* 1 */
+       asn_DEF_RICserviceUpdateFailure_IEs_tags_245,   /* Same as above */
+       sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_245)
+               /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_245[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICserviceUpdateFailure_IEs_245,
+       3,      /* Elements count */
+       &asn_SPC_RICserviceUpdateFailure_IEs_specs_245  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_252[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs__value, choice.RANfunctionsID_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RANfunctionsID_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RANfunctionsID-List"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_252[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionsID-List */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_252 = {
+       sizeof(struct RICserviceQuery_IEs__value),
+       offsetof(struct RICserviceQuery_IEs__value, _asn_ctx),
+       offsetof(struct RICserviceQuery_IEs__value, present),
+       sizeof(((struct RICserviceQuery_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_252,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_252 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_252,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_252        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_249[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_250, &asn_PER_memb_id_constr_250,  memb_id_constraint_249 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RICserviceQuery_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_251, &asn_PER_memb_criticality_constr_251,  memb_criticality_constraint_249 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_252,
+               select_RICserviceQuery_IEs_value_type,
+               { &asn_OER_memb_value_constr_252, &asn_PER_memb_value_constr_252,  memb_value_constraint_249 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICserviceQuery_IEs_tags_249[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_IEs_tag2el_249[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_249 = {
+       sizeof(struct RICserviceQuery_IEs),
+       offsetof(struct RICserviceQuery_IEs, _asn_ctx),
+       asn_MAP_RICserviceQuery_IEs_tag2el_249,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs = {
+       "RICserviceQuery-IEs",
+       "RICserviceQuery-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICserviceQuery_IEs_tags_249,
+       sizeof(asn_DEF_RICserviceQuery_IEs_tags_249)
+               /sizeof(asn_DEF_RICserviceQuery_IEs_tags_249[0]), /* 1 */
+       asn_DEF_RICserviceQuery_IEs_tags_249,   /* Same as above */
+       sizeof(asn_DEF_RICserviceQuery_IEs_tags_249)
+               /sizeof(asn_DEF_RICserviceQuery_IEs_tags_249[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICserviceQuery_IEs_249,
+       3,      /* Elements count */
+       &asn_SPC_RICserviceQuery_IEs_specs_249  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_256[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.ECGI),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ECGI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.GUMMEI),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GUMMEI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GUMMEI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.UE_ContextInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UE_ContextInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-ContextInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.UE_HistoryInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UE_HistoryInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-HistoryInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.TraceActivation),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_TraceActivation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "TraceActivation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.SRVCCOperationPossible),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_SRVCCOperationPossible,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SRVCCOperationPossible"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.CSGMembershipStatus),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_CSGMembershipStatus,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CSGMembershipStatus"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.MobilityInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_MobilityInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MobilityInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.Masked_IMEISV),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_Masked_IMEISV,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Masked-IMEISV"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.UE_HistoryInformationFromTheUE),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_UE_HistoryInformationFromTheUE,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-HistoryInformationFromTheUE"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.ExpectedUEBehaviour),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ExpectedUEBehaviour,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ExpectedUEBehaviour"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.ProSeAuthorized),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProSeAuthorized,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ProSeAuthorized"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.UE_ContextReferenceAtSeNB),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UE_ContextReferenceAtSeNB,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-ContextReferenceAtSeNB"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.V2XServicesAuthorized),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_V2XServicesAuthorized,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "V2XServicesAuthorized"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.UE_ContextReferenceAtWT),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UE_ContextReferenceAtWT,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-ContextReferenceAtWT"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.NRUESecurityCapabilities),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_NRUESecurityCapabilities,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "NRUESecurityCapabilities"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.UE_ContextReferenceAtSgNB),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UE_ContextReferenceAtSgNB,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-ContextReferenceAtSgNB"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.AerialUEsubscriptionInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_AerialUEsubscriptionInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "AerialUEsubscriptionInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.Subscription_Based_UE_DifferentiationInfo),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Subscription_Based_UE_DifferentiationInfo,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Subscription-Based-UE-DifferentiationInfo"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_256[] = { 0, 15, 9, 10, 11, 7, 8, 20, 2, 3, 4, 5, 6, 12, 13, 14, 16, 17, 18, 19, 21, 1 };
+static const unsigned asn_MAP_value_from_canonical_256[] = { 0, 21, 8, 9, 10, 11, 12, 5, 6, 2, 3, 4, 13, 14, 15, 1, 16, 17, 18, 19, 7, 20 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_256[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 15, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 9, 0, 1 }, /* MobilityInformation */
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 10, -1, 0 }, /* Masked-IMEISV */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 11, 0, 0 }, /* UE-HistoryInformationFromTheUE */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 7, 0, 2 }, /* SRVCCOperationPossible */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 8, -1, 1 }, /* CSGMembershipStatus */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 20, -2, 0 }, /* AerialUEsubscriptionInformation */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 12 }, /* ECGI */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 11 }, /* GUMMEI */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 10 }, /* UE-ContextInformation */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -3, 9 }, /* UE-HistoryInformation */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -4, 8 }, /* TraceActivation */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -5, 7 }, /* ExpectedUEBehaviour */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 13, -6, 6 }, /* ProSeAuthorized */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 14, -7, 5 }, /* UE-ContextReferenceAtSeNB */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 16, -8, 4 }, /* V2XServicesAuthorized */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 17, -9, 3 }, /* UE-ContextReferenceAtWT */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 18, -10, 2 }, /* NRUESecurityCapabilities */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 19, -11, 1 }, /* UE-ContextReferenceAtSgNB */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 21, -12, 0 }, /* Subscription-Based-UE-DifferentiationInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_256 = {
+       sizeof(struct HandoverRequest_IEs__value),
+       offsetof(struct HandoverRequest_IEs__value, _asn_ctx),
+       offsetof(struct HandoverRequest_IEs__value, present),
+       sizeof(((struct HandoverRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_256,
+       25,     /* Count of tags in the map */
+       asn_MAP_value_to_canonical_256,
+       asn_MAP_value_from_canonical_256,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_256 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_256,
+       22,     /* Elements count */
+       &asn_SPC_value_specs_256        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_HandoverRequest_IEs_253[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_254, &asn_PER_memb_id_constr_254,  memb_id_constraint_253 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_HandoverRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_255, &asn_PER_memb_criticality_constr_255,  memb_criticality_constraint_253 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_256,
+               select_HandoverRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_256, &asn_PER_memb_value_constr_256,  memb_value_constraint_253 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_HandoverRequest_IEs_tags_253[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_HandoverRequest_IEs_tag2el_253[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_HandoverRequest_IEs_specs_253 = {
+       sizeof(struct HandoverRequest_IEs),
+       offsetof(struct HandoverRequest_IEs, _asn_ctx),
+       asn_MAP_HandoverRequest_IEs_tag2el_253,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_HandoverRequest_IEs = {
+       "HandoverRequest-IEs",
+       "HandoverRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_HandoverRequest_IEs_tags_253,
+       sizeof(asn_DEF_HandoverRequest_IEs_tags_253)
+               /sizeof(asn_DEF_HandoverRequest_IEs_tags_253[0]), /* 1 */
+       asn_DEF_HandoverRequest_IEs_tags_253,   /* Same as above */
+       sizeof(asn_DEF_HandoverRequest_IEs_tags_253)
+               /sizeof(asn_DEF_HandoverRequest_IEs_tags_253[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_HandoverRequest_IEs_253,
+       3,      /* Elements count */
+       &asn_SPC_HandoverRequest_IEs_specs_253  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_260[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs__value, choice.E_RAB_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RAB_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RAB-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs__value, choice.TargeteNBtoSource_eNBTransparentContainer),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_TargeteNBtoSource_eNBTransparentContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "TargeteNBtoSource-eNBTransparentContainer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs__value, choice.UE_ContextKeptIndicator),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_UE_ContextKeptIndicator,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-ContextKeptIndicator"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_260[] = { 0, 6, 3, 5, 1, 2, 4 };
+static const unsigned asn_MAP_value_from_canonical_260[] = { 0, 4, 5, 2, 6, 3, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_260[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 6, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 0 }, /* TargeteNBtoSource-eNBTransparentContainer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 0 }, /* UE-ContextKeptIndicator */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 2 }, /* E-RABs-Admitted-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* E-RAB-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 0 } /* CriticalityDiagnostics */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_260 = {
+       sizeof(struct HandoverRequestAcknowledge_IEs__value),
+       offsetof(struct HandoverRequestAcknowledge_IEs__value, _asn_ctx),
+       offsetof(struct HandoverRequestAcknowledge_IEs__value, present),
+       sizeof(((struct HandoverRequestAcknowledge_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_260,
+       7,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_260,
+       asn_MAP_value_from_canonical_260,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_260 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_260,
+       7,      /* Elements count */
+       &asn_SPC_value_specs_260        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_HandoverRequestAcknowledge_IEs_257[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_258, &asn_PER_memb_id_constr_258,  memb_id_constraint_257 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_HandoverRequestAcknowledge_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_259, &asn_PER_memb_criticality_constr_259,  memb_criticality_constraint_257 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_260,
+               select_HandoverRequestAcknowledge_IEs_value_type,
+               { &asn_OER_memb_value_constr_260, &asn_PER_memb_value_constr_260,  memb_value_constraint_257 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_HandoverRequestAcknowledge_IEs_tags_257[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_HandoverRequestAcknowledge_IEs_tag2el_257[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_HandoverRequestAcknowledge_IEs_specs_257 = {
+       sizeof(struct HandoverRequestAcknowledge_IEs),
+       offsetof(struct HandoverRequestAcknowledge_IEs, _asn_ctx),
+       asn_MAP_HandoverRequestAcknowledge_IEs_tag2el_257,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_HandoverRequestAcknowledge_IEs = {
+       "HandoverRequestAcknowledge-IEs",
+       "HandoverRequestAcknowledge-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_HandoverRequestAcknowledge_IEs_tags_257,
+       sizeof(asn_DEF_HandoverRequestAcknowledge_IEs_tags_257)
+               /sizeof(asn_DEF_HandoverRequestAcknowledge_IEs_tags_257[0]), /* 1 */
+       asn_DEF_HandoverRequestAcknowledge_IEs_tags_257,        /* Same as above */
+       sizeof(asn_DEF_HandoverRequestAcknowledge_IEs_tags_257)
+               /sizeof(asn_DEF_HandoverRequestAcknowledge_IEs_tags_257[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_HandoverRequestAcknowledge_IEs_257,
+       3,      /* Elements count */
+       &asn_SPC_HandoverRequestAcknowledge_IEs_specs_257       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_264[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationFailure_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationFailure_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationFailure_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationFailure_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_264[] = { 0, 3, 2, 1 };
+static const unsigned asn_MAP_value_from_canonical_264[] = { 0, 3, 2, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_264[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_264 = {
+       sizeof(struct HandoverPreparationFailure_IEs__value),
+       offsetof(struct HandoverPreparationFailure_IEs__value, _asn_ctx),
+       offsetof(struct HandoverPreparationFailure_IEs__value, present),
+       sizeof(((struct HandoverPreparationFailure_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_264,
+       7,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_264,
+       asn_MAP_value_from_canonical_264,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_264 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_264,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_264        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_HandoverPreparationFailure_IEs_261[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationFailure_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_262, &asn_PER_memb_id_constr_262,  memb_id_constraint_261 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationFailure_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_HandoverPreparationFailure_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_263, &asn_PER_memb_criticality_constr_263,  memb_criticality_constraint_261 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationFailure_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_264,
+               select_HandoverPreparationFailure_IEs_value_type,
+               { &asn_OER_memb_value_constr_264, &asn_PER_memb_value_constr_264,  memb_value_constraint_261 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_HandoverPreparationFailure_IEs_tags_261[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_HandoverPreparationFailure_IEs_tag2el_261[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_HandoverPreparationFailure_IEs_specs_261 = {
+       sizeof(struct HandoverPreparationFailure_IEs),
+       offsetof(struct HandoverPreparationFailure_IEs, _asn_ctx),
+       asn_MAP_HandoverPreparationFailure_IEs_tag2el_261,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_HandoverPreparationFailure_IEs = {
+       "HandoverPreparationFailure-IEs",
+       "HandoverPreparationFailure-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_HandoverPreparationFailure_IEs_tags_261,
+       sizeof(asn_DEF_HandoverPreparationFailure_IEs_tags_261)
+               /sizeof(asn_DEF_HandoverPreparationFailure_IEs_tags_261[0]), /* 1 */
+       asn_DEF_HandoverPreparationFailure_IEs_tags_261,        /* Same as above */
+       sizeof(asn_DEF_HandoverPreparationFailure_IEs_tags_261)
+               /sizeof(asn_DEF_HandoverPreparationFailure_IEs_tags_261[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_HandoverPreparationFailure_IEs_261,
+       3,      /* Elements count */
+       &asn_SPC_HandoverPreparationFailure_IEs_specs_261       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_268[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs__value, choice.HandoverReportType),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_HandoverReportType,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "HandoverReportType"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs__value, choice.ECGI),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ECGI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs__value, choice.TargetCellInUTRAN),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_TargetCellInUTRAN,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "TargetCellInUTRAN"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs__value, choice.CRNTI),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_CRNTI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CRNTI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs__value, choice.MobilityInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_MobilityInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MobilityInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs__value, choice.UE_RLF_Report_Container),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_UE_RLF_Report_Container,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-RLF-Report-Container"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs__value, choice.UE_RLF_Report_Container_for_extended_bands),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_UE_RLF_Report_Container_for_extended_bands,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-RLF-Report-Container-for-extended-bands"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_268[] = { 4, 5, 3, 6, 7, 0, 2, 1 };
+static const unsigned asn_MAP_value_from_canonical_268[] = { 5, 7, 6, 2, 0, 1, 3, 4 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_268[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 4, 0, 1 }, /* CRNTI */
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 5, -1, 0 }, /* MobilityInformation */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 2 }, /* TargetCellInUTRAN */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, -1, 1 }, /* UE-RLF-Report-Container */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 7, -2, 0 }, /* UE-RLF-Report-Container-for-extended-bands */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 }, /* HandoverReportType */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* ECGI */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_268 = {
+       sizeof(struct HandoverReport_IEs__value),
+       offsetof(struct HandoverReport_IEs__value, _asn_ctx),
+       offsetof(struct HandoverReport_IEs__value, present),
+       sizeof(((struct HandoverReport_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_268,
+       11,     /* Count of tags in the map */
+       asn_MAP_value_to_canonical_268,
+       asn_MAP_value_from_canonical_268,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_268 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_268,
+       8,      /* Elements count */
+       &asn_SPC_value_specs_268        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_HandoverReport_IEs_265[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_266, &asn_PER_memb_id_constr_266,  memb_id_constraint_265 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_HandoverReport_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_267, &asn_PER_memb_criticality_constr_267,  memb_criticality_constraint_265 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_268,
+               select_HandoverReport_IEs_value_type,
+               { &asn_OER_memb_value_constr_268, &asn_PER_memb_value_constr_268,  memb_value_constraint_265 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_HandoverReport_IEs_tags_265[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_HandoverReport_IEs_tag2el_265[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_HandoverReport_IEs_specs_265 = {
+       sizeof(struct HandoverReport_IEs),
+       offsetof(struct HandoverReport_IEs, _asn_ctx),
+       asn_MAP_HandoverReport_IEs_tag2el_265,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_HandoverReport_IEs = {
+       "HandoverReport-IEs",
+       "HandoverReport-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_HandoverReport_IEs_tags_265,
+       sizeof(asn_DEF_HandoverReport_IEs_tags_265)
+               /sizeof(asn_DEF_HandoverReport_IEs_tags_265[0]), /* 1 */
+       asn_DEF_HandoverReport_IEs_tags_265,    /* Same as above */
+       sizeof(asn_DEF_HandoverReport_IEs_tags_265)
+               /sizeof(asn_DEF_HandoverReport_IEs_tags_265[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_HandoverReport_IEs_265,
+       3,      /* Elements count */
+       &asn_SPC_HandoverReport_IEs_specs_265   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_272[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SNStatusTransfer_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SNStatusTransfer_IEs__value, choice.E_RABs_SubjectToStatusTransfer_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_SubjectToStatusTransfer_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-SubjectToStatusTransfer-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SNStatusTransfer_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SNStatusTransfer_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_272[] = { 0, 2, 3, 1 };
+static const unsigned asn_MAP_value_from_canonical_272[] = { 0, 3, 1, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_272[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 1 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* E-RABs-SubjectToStatusTransfer-List */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_272 = {
+       sizeof(struct SNStatusTransfer_IEs__value),
+       offsetof(struct SNStatusTransfer_IEs__value, _asn_ctx),
+       offsetof(struct SNStatusTransfer_IEs__value, present),
+       sizeof(((struct SNStatusTransfer_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_272,
+       4,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_272,
+       asn_MAP_value_from_canonical_272,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_272 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_272,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_272        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SNStatusTransfer_IEs_269[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SNStatusTransfer_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_270, &asn_PER_memb_id_constr_270,  memb_id_constraint_269 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SNStatusTransfer_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SNStatusTransfer_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_271, &asn_PER_memb_criticality_constr_271,  memb_criticality_constraint_269 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SNStatusTransfer_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_272,
+               select_SNStatusTransfer_IEs_value_type,
+               { &asn_OER_memb_value_constr_272, &asn_PER_memb_value_constr_272,  memb_value_constraint_269 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SNStatusTransfer_IEs_tags_269[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SNStatusTransfer_IEs_tag2el_269[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SNStatusTransfer_IEs_specs_269 = {
+       sizeof(struct SNStatusTransfer_IEs),
+       offsetof(struct SNStatusTransfer_IEs, _asn_ctx),
+       asn_MAP_SNStatusTransfer_IEs_tag2el_269,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SNStatusTransfer_IEs = {
+       "SNStatusTransfer-IEs",
+       "SNStatusTransfer-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SNStatusTransfer_IEs_tags_269,
+       sizeof(asn_DEF_SNStatusTransfer_IEs_tags_269)
+               /sizeof(asn_DEF_SNStatusTransfer_IEs_tags_269[0]), /* 1 */
+       asn_DEF_SNStatusTransfer_IEs_tags_269,  /* Same as above */
+       sizeof(asn_DEF_SNStatusTransfer_IEs_tags_269)
+               /sizeof(asn_DEF_SNStatusTransfer_IEs_tags_269[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SNStatusTransfer_IEs_269,
+       3,      /* Elements count */
+       &asn_SPC_SNStatusTransfer_IEs_specs_269 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_276[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UEContextRelease_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UEContextRelease_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UEContextRelease_IEs__value, choice.SIPTOBearerDeactivationIndication),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_SIPTOBearerDeactivationIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SIPTOBearerDeactivationIndication"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UEContextRelease_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_276[] = { 0, 1, 3, 2 };
+static const unsigned asn_MAP_value_from_canonical_276[] = { 0, 1, 3, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_276[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 } /* SIPTOBearerDeactivationIndication */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_276 = {
+       sizeof(struct UEContextRelease_IEs__value),
+       offsetof(struct UEContextRelease_IEs__value, _asn_ctx),
+       offsetof(struct UEContextRelease_IEs__value, present),
+       sizeof(((struct UEContextRelease_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_276,
+       4,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_276,
+       asn_MAP_value_from_canonical_276,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_276 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_276,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_276        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UEContextRelease_IEs_273[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UEContextRelease_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_274, &asn_PER_memb_id_constr_274,  memb_id_constraint_273 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UEContextRelease_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_UEContextRelease_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_275, &asn_PER_memb_criticality_constr_275,  memb_criticality_constraint_273 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEContextRelease_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_276,
+               select_UEContextRelease_IEs_value_type,
+               { &asn_OER_memb_value_constr_276, &asn_PER_memb_value_constr_276,  memb_value_constraint_273 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UEContextRelease_IEs_tags_273[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEContextRelease_IEs_tag2el_273[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UEContextRelease_IEs_specs_273 = {
+       sizeof(struct UEContextRelease_IEs),
+       offsetof(struct UEContextRelease_IEs, _asn_ctx),
+       asn_MAP_UEContextRelease_IEs_tag2el_273,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UEContextRelease_IEs = {
+       "UEContextRelease-IEs",
+       "UEContextRelease-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UEContextRelease_IEs_tags_273,
+       sizeof(asn_DEF_UEContextRelease_IEs_tags_273)
+               /sizeof(asn_DEF_UEContextRelease_IEs_tags_273[0]), /* 1 */
+       asn_DEF_UEContextRelease_IEs_tags_273,  /* Same as above */
+       sizeof(asn_DEF_UEContextRelease_IEs_tags_273)
+               /sizeof(asn_DEF_UEContextRelease_IEs_tags_273[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UEContextRelease_IEs_273,
+       3,      /* Elements count */
+       &asn_SPC_UEContextRelease_IEs_specs_273 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_280[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverCancel_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverCancel_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverCancel_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_280[] = { 0, 2, 1 };
+static const unsigned asn_MAP_value_from_canonical_280[] = { 0, 2, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_280[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_280 = {
+       sizeof(struct HandoverCancel_IEs__value),
+       offsetof(struct HandoverCancel_IEs__value, _asn_ctx),
+       offsetof(struct HandoverCancel_IEs__value, present),
+       sizeof(((struct HandoverCancel_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_280,
+       6,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_280,
+       asn_MAP_value_from_canonical_280,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_280 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_280,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_280        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_HandoverCancel_IEs_277[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverCancel_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_278, &asn_PER_memb_id_constr_278,  memb_id_constraint_277 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct HandoverCancel_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_HandoverCancel_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_279, &asn_PER_memb_criticality_constr_279,  memb_criticality_constraint_277 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct HandoverCancel_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_280,
+               select_HandoverCancel_IEs_value_type,
+               { &asn_OER_memb_value_constr_280, &asn_PER_memb_value_constr_280,  memb_value_constraint_277 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_HandoverCancel_IEs_tags_277[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_HandoverCancel_IEs_tag2el_277[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_HandoverCancel_IEs_specs_277 = {
+       sizeof(struct HandoverCancel_IEs),
+       offsetof(struct HandoverCancel_IEs, _asn_ctx),
+       asn_MAP_HandoverCancel_IEs_tag2el_277,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_HandoverCancel_IEs = {
+       "HandoverCancel-IEs",
+       "HandoverCancel-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_HandoverCancel_IEs_tags_277,
+       sizeof(asn_DEF_HandoverCancel_IEs_tags_277)
+               /sizeof(asn_DEF_HandoverCancel_IEs_tags_277[0]), /* 1 */
+       asn_DEF_HandoverCancel_IEs_tags_277,    /* Same as above */
+       sizeof(asn_DEF_HandoverCancel_IEs_tags_277)
+               /sizeof(asn_DEF_HandoverCancel_IEs_tags_277[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_HandoverCancel_IEs_277,
+       3,      /* Elements count */
+       &asn_SPC_HandoverCancel_IEs_specs_277   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_284[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_284[] = { 0, 3, 4, 2, 1 };
+static const unsigned asn_MAP_value_from_canonical_284[] = { 0, 4, 3, 1, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_284[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -1, 1 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_284 = {
+       sizeof(struct ErrorIndication_IEs__value),
+       offsetof(struct ErrorIndication_IEs__value, _asn_ctx),
+       offsetof(struct ErrorIndication_IEs__value, present),
+       sizeof(((struct ErrorIndication_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_284,
+       8,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_284,
+       asn_MAP_value_from_canonical_284,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_284 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_284,
+       5,      /* Elements count */
+       &asn_SPC_value_specs_284        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_281[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_282, &asn_PER_memb_id_constr_282,  memb_id_constraint_281 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ErrorIndication_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_283, &asn_PER_memb_criticality_constr_283,  memb_criticality_constraint_281 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_284,
+               select_ErrorIndication_IEs_value_type,
+               { &asn_OER_memb_value_constr_284, &asn_PER_memb_value_constr_284,  memb_value_constraint_281 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ErrorIndication_IEs_tags_281[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_IEs_tag2el_281[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_281 = {
+       sizeof(struct ErrorIndication_IEs),
+       offsetof(struct ErrorIndication_IEs, _asn_ctx),
+       asn_MAP_ErrorIndication_IEs_tag2el_281,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs = {
+       "ErrorIndication-IEs",
+       "ErrorIndication-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ErrorIndication_IEs_tags_281,
+       sizeof(asn_DEF_ErrorIndication_IEs_tags_281)
+               /sizeof(asn_DEF_ErrorIndication_IEs_tags_281[0]), /* 1 */
+       asn_DEF_ErrorIndication_IEs_tags_281,   /* Same as above */
+       sizeof(asn_DEF_ErrorIndication_IEs_tags_281)
+               /sizeof(asn_DEF_ErrorIndication_IEs_tags_281[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ErrorIndication_IEs_281,
+       3,      /* Elements count */
+       &asn_SPC_ErrorIndication_IEs_specs_281  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_288[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResetRequest_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_288[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_288 = {
+       sizeof(struct ResetRequest_IEs__value),
+       offsetof(struct ResetRequest_IEs__value, _asn_ctx),
+       offsetof(struct ResetRequest_IEs__value, present),
+       sizeof(((struct ResetRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_288,
+       4,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_288 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_288,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_288        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ResetRequest_IEs_285[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResetRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_286, &asn_PER_memb_id_constr_286,  memb_id_constraint_285 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResetRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ResetRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_287, &asn_PER_memb_criticality_constr_287,  memb_criticality_constraint_285 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_288,
+               select_ResetRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_288, &asn_PER_memb_value_constr_288,  memb_value_constraint_285 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ResetRequest_IEs_tags_285[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResetRequest_IEs_tag2el_285[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_IEs_specs_285 = {
+       sizeof(struct ResetRequest_IEs),
+       offsetof(struct ResetRequest_IEs, _asn_ctx),
+       asn_MAP_ResetRequest_IEs_tag2el_285,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResetRequest_IEs = {
+       "ResetRequest-IEs",
+       "ResetRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResetRequest_IEs_tags_285,
+       sizeof(asn_DEF_ResetRequest_IEs_tags_285)
+               /sizeof(asn_DEF_ResetRequest_IEs_tags_285[0]), /* 1 */
+       asn_DEF_ResetRequest_IEs_tags_285,      /* Same as above */
+       sizeof(asn_DEF_ResetRequest_IEs_tags_285)
+               /sizeof(asn_DEF_ResetRequest_IEs_tags_285[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResetRequest_IEs_285,
+       3,      /* Elements count */
+       &asn_SPC_ResetRequest_IEs_specs_285     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_292[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResetResponse_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_292[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CriticalityDiagnostics */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_292 = {
+       sizeof(struct ResetResponse_IEs__value),
+       offsetof(struct ResetResponse_IEs__value, _asn_ctx),
+       offsetof(struct ResetResponse_IEs__value, present),
+       sizeof(((struct ResetResponse_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_292,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_292 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_292,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_292        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ResetResponse_IEs_289[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResetResponse_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_290, &asn_PER_memb_id_constr_290,  memb_id_constraint_289 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResetResponse_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ResetResponse_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_291, &asn_PER_memb_criticality_constr_291,  memb_criticality_constraint_289 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetResponse_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_292,
+               select_ResetResponse_IEs_value_type,
+               { &asn_OER_memb_value_constr_292, &asn_PER_memb_value_constr_292,  memb_value_constraint_289 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ResetResponse_IEs_tags_289[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResetResponse_IEs_tag2el_289[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_IEs_specs_289 = {
+       sizeof(struct ResetResponse_IEs),
+       offsetof(struct ResetResponse_IEs, _asn_ctx),
+       asn_MAP_ResetResponse_IEs_tag2el_289,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResetResponse_IEs = {
+       "ResetResponse-IEs",
+       "ResetResponse-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResetResponse_IEs_tags_289,
+       sizeof(asn_DEF_ResetResponse_IEs_tags_289)
+               /sizeof(asn_DEF_ResetResponse_IEs_tags_289[0]), /* 1 */
+       asn_DEF_ResetResponse_IEs_tags_289,     /* Same as above */
+       sizeof(asn_DEF_ResetResponse_IEs_tags_289)
+               /sizeof(asn_DEF_ResetResponse_IEs_tags_289[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResetResponse_IEs_289,
+       3,      /* Elements count */
+       &asn_SPC_ResetResponse_IEs_specs_289    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_296[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupRequest_IEs__value, choice.GlobalENB_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GlobalENB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GlobalENB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupRequest_IEs__value, choice.ServedCells),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedCells,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServedCells"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupRequest_IEs__value, choice.GUGroupIDList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GUGroupIDList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GUGroupIDList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupRequest_IEs__value, choice.LHN_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_LHN_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "LHN-ID"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_296[] = { 3, 0, 1, 2 };
+static const unsigned asn_MAP_value_from_canonical_296[] = { 1, 2, 3, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_296[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 0 }, /* LHN-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* GlobalENB-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 1 }, /* ServedCells */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 0 } /* GUGroupIDList */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_296 = {
+       sizeof(struct X2SetupRequest_IEs__value),
+       offsetof(struct X2SetupRequest_IEs__value, _asn_ctx),
+       offsetof(struct X2SetupRequest_IEs__value, present),
+       sizeof(((struct X2SetupRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_296,
+       4,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_296,
+       asn_MAP_value_from_canonical_296,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_296 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_296,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_296        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_X2SetupRequest_IEs_293[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_294, &asn_PER_memb_id_constr_294,  memb_id_constraint_293 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_X2SetupRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_295, &asn_PER_memb_criticality_constr_295,  memb_criticality_constraint_293 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2SetupRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_296,
+               select_X2SetupRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_296, &asn_PER_memb_value_constr_296,  memb_value_constraint_293 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_X2SetupRequest_IEs_tags_293[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_X2SetupRequest_IEs_tag2el_293[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_X2SetupRequest_IEs_specs_293 = {
+       sizeof(struct X2SetupRequest_IEs),
+       offsetof(struct X2SetupRequest_IEs, _asn_ctx),
+       asn_MAP_X2SetupRequest_IEs_tag2el_293,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_X2SetupRequest_IEs = {
+       "X2SetupRequest-IEs",
+       "X2SetupRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_X2SetupRequest_IEs_tags_293,
+       sizeof(asn_DEF_X2SetupRequest_IEs_tags_293)
+               /sizeof(asn_DEF_X2SetupRequest_IEs_tags_293[0]), /* 1 */
+       asn_DEF_X2SetupRequest_IEs_tags_293,    /* Same as above */
+       sizeof(asn_DEF_X2SetupRequest_IEs_tags_293)
+               /sizeof(asn_DEF_X2SetupRequest_IEs_tags_293[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_X2SetupRequest_IEs_293,
+       3,      /* Elements count */
+       &asn_SPC_X2SetupRequest_IEs_specs_293   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_300[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse_IEs__value, choice.GlobalENB_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GlobalENB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GlobalENB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse_IEs__value, choice.ServedCells),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedCells,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServedCells"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse_IEs__value, choice.GUGroupIDList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GUGroupIDList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GUGroupIDList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse_IEs__value, choice.LHN_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_LHN_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "LHN-ID"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_300[] = { 4, 0, 1, 2, 3 };
+static const unsigned asn_MAP_value_from_canonical_300[] = { 1, 2, 3, 4, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_300[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 0 }, /* LHN-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 3 }, /* GlobalENB-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 2 }, /* ServedCells */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 1 }, /* GUGroupIDList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 0 } /* CriticalityDiagnostics */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_300 = {
+       sizeof(struct X2SetupResponse_IEs__value),
+       offsetof(struct X2SetupResponse_IEs__value, _asn_ctx),
+       offsetof(struct X2SetupResponse_IEs__value, present),
+       sizeof(((struct X2SetupResponse_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_300,
+       5,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_300,
+       asn_MAP_value_from_canonical_300,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_300 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_300,
+       5,      /* Elements count */
+       &asn_SPC_value_specs_300        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_X2SetupResponse_IEs_297[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_298, &asn_PER_memb_id_constr_298,  memb_id_constraint_297 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_X2SetupResponse_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_299, &asn_PER_memb_criticality_constr_299,  memb_criticality_constraint_297 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_300,
+               select_X2SetupResponse_IEs_value_type,
+               { &asn_OER_memb_value_constr_300, &asn_PER_memb_value_constr_300,  memb_value_constraint_297 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_X2SetupResponse_IEs_tags_297[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_X2SetupResponse_IEs_tag2el_297[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_X2SetupResponse_IEs_specs_297 = {
+       sizeof(struct X2SetupResponse_IEs),
+       offsetof(struct X2SetupResponse_IEs, _asn_ctx),
+       asn_MAP_X2SetupResponse_IEs_tag2el_297,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_X2SetupResponse_IEs = {
+       "X2SetupResponse-IEs",
+       "X2SetupResponse-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_X2SetupResponse_IEs_tags_297,
+       sizeof(asn_DEF_X2SetupResponse_IEs_tags_297)
+               /sizeof(asn_DEF_X2SetupResponse_IEs_tags_297[0]), /* 1 */
+       asn_DEF_X2SetupResponse_IEs_tags_297,   /* Same as above */
+       sizeof(asn_DEF_X2SetupResponse_IEs_tags_297)
+               /sizeof(asn_DEF_X2SetupResponse_IEs_tags_297[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_X2SetupResponse_IEs_297,
+       3,      /* Elements count */
+       &asn_SPC_X2SetupResponse_IEs_specs_297  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_304[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupFailure_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupFailure_IEs__value, choice.TimeToWait),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_TimeToWait,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "TimeToWait"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupFailure_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_304[] = { 1, 2, 0 };
+static const unsigned asn_MAP_value_from_canonical_304[] = { 2, 0, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_304[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_304 = {
+       sizeof(struct X2SetupFailure_IEs__value),
+       offsetof(struct X2SetupFailure_IEs__value, _asn_ctx),
+       offsetof(struct X2SetupFailure_IEs__value, present),
+       sizeof(((struct X2SetupFailure_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_304,
+       6,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_304,
+       asn_MAP_value_from_canonical_304,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_304 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_304,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_304        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_X2SetupFailure_IEs_301[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupFailure_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_302, &asn_PER_memb_id_constr_302,  memb_id_constraint_301 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupFailure_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_X2SetupFailure_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_303, &asn_PER_memb_criticality_constr_303,  memb_criticality_constraint_301 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2SetupFailure_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_304,
+               select_X2SetupFailure_IEs_value_type,
+               { &asn_OER_memb_value_constr_304, &asn_PER_memb_value_constr_304,  memb_value_constraint_301 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_X2SetupFailure_IEs_tags_301[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_X2SetupFailure_IEs_tag2el_301[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_X2SetupFailure_IEs_specs_301 = {
+       sizeof(struct X2SetupFailure_IEs),
+       offsetof(struct X2SetupFailure_IEs, _asn_ctx),
+       asn_MAP_X2SetupFailure_IEs_tag2el_301,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_X2SetupFailure_IEs = {
+       "X2SetupFailure-IEs",
+       "X2SetupFailure-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_X2SetupFailure_IEs_tags_301,
+       sizeof(asn_DEF_X2SetupFailure_IEs_tags_301)
+               /sizeof(asn_DEF_X2SetupFailure_IEs_tags_301[0]), /* 1 */
+       asn_DEF_X2SetupFailure_IEs_tags_301,    /* Same as above */
+       sizeof(asn_DEF_X2SetupFailure_IEs_tags_301)
+               /sizeof(asn_DEF_X2SetupFailure_IEs_tags_301[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_X2SetupFailure_IEs_301,
+       3,      /* Elements count */
+       &asn_SPC_X2SetupFailure_IEs_specs_301   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_308[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct LoadInformation_IEs__value, choice.CellInformation_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellInformation_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CellInformation-List"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_308[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CellInformation-List */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_308 = {
+       sizeof(struct LoadInformation_IEs__value),
+       offsetof(struct LoadInformation_IEs__value, _asn_ctx),
+       offsetof(struct LoadInformation_IEs__value, present),
+       sizeof(((struct LoadInformation_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_308,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_308 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_308,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_308        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_LoadInformation_IEs_305[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct LoadInformation_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_306, &asn_PER_memb_id_constr_306,  memb_id_constraint_305 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct LoadInformation_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_LoadInformation_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_307, &asn_PER_memb_criticality_constr_307,  memb_criticality_constraint_305 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct LoadInformation_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_308,
+               select_LoadInformation_IEs_value_type,
+               { &asn_OER_memb_value_constr_308, &asn_PER_memb_value_constr_308,  memb_value_constraint_305 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_LoadInformation_IEs_tags_305[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_LoadInformation_IEs_tag2el_305[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_LoadInformation_IEs_specs_305 = {
+       sizeof(struct LoadInformation_IEs),
+       offsetof(struct LoadInformation_IEs, _asn_ctx),
+       asn_MAP_LoadInformation_IEs_tag2el_305,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_LoadInformation_IEs = {
+       "LoadInformation-IEs",
+       "LoadInformation-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_LoadInformation_IEs_tags_305,
+       sizeof(asn_DEF_LoadInformation_IEs_tags_305)
+               /sizeof(asn_DEF_LoadInformation_IEs_tags_305[0]), /* 1 */
+       asn_DEF_LoadInformation_IEs_tags_305,   /* Same as above */
+       sizeof(asn_DEF_LoadInformation_IEs_tags_305)
+               /sizeof(asn_DEF_LoadInformation_IEs_tags_305[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_LoadInformation_IEs_305,
+       3,      /* Elements count */
+       &asn_SPC_LoadInformation_IEs_specs_305  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_312[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate_IEs__value, choice.ServedCells),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedCells,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServedCells"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate_IEs__value, choice.ServedCellsToModify),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedCellsToModify,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServedCellsToModify"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate_IEs__value, choice.Old_ECGIs),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Old_ECGIs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Old-ECGIs"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate_IEs__value, choice.GUGroupIDList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GUGroupIDList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GUGroupIDList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate_IEs__value, choice.CoverageModificationList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CoverageModificationList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CoverageModificationList"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_312[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 4 }, /* ServedCells */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 3 }, /* ServedCellsToModify */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 2 }, /* Old-ECGIs */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 1 }, /* GUGroupIDList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 0 } /* CoverageModificationList */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_312 = {
+       sizeof(struct ENBConfigurationUpdate_IEs__value),
+       offsetof(struct ENBConfigurationUpdate_IEs__value, _asn_ctx),
+       offsetof(struct ENBConfigurationUpdate_IEs__value, present),
+       sizeof(((struct ENBConfigurationUpdate_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_312,
+       5,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_312 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_312,
+       5,      /* Elements count */
+       &asn_SPC_value_specs_312        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENBConfigurationUpdate_IEs_309[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_310, &asn_PER_memb_id_constr_310,  memb_id_constraint_309 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENBConfigurationUpdate_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_311, &asn_PER_memb_criticality_constr_311,  memb_criticality_constraint_309 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_312,
+               select_ENBConfigurationUpdate_IEs_value_type,
+               { &asn_OER_memb_value_constr_312, &asn_PER_memb_value_constr_312,  memb_value_constraint_309 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENBConfigurationUpdate_IEs_tags_309[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENBConfigurationUpdate_IEs_tag2el_309[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdate_IEs_specs_309 = {
+       sizeof(struct ENBConfigurationUpdate_IEs),
+       offsetof(struct ENBConfigurationUpdate_IEs, _asn_ctx),
+       asn_MAP_ENBConfigurationUpdate_IEs_tag2el_309,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdate_IEs = {
+       "ENBConfigurationUpdate-IEs",
+       "ENBConfigurationUpdate-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENBConfigurationUpdate_IEs_tags_309,
+       sizeof(asn_DEF_ENBConfigurationUpdate_IEs_tags_309)
+               /sizeof(asn_DEF_ENBConfigurationUpdate_IEs_tags_309[0]), /* 1 */
+       asn_DEF_ENBConfigurationUpdate_IEs_tags_309,    /* Same as above */
+       sizeof(asn_DEF_ENBConfigurationUpdate_IEs_tags_309)
+               /sizeof(asn_DEF_ENBConfigurationUpdate_IEs_tags_309[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENBConfigurationUpdate_IEs_309,
+       3,      /* Elements count */
+       &asn_SPC_ENBConfigurationUpdate_IEs_specs_309   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_316[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateAcknowledge_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_316[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CriticalityDiagnostics */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_316 = {
+       sizeof(struct ENBConfigurationUpdateAcknowledge_IEs__value),
+       offsetof(struct ENBConfigurationUpdateAcknowledge_IEs__value, _asn_ctx),
+       offsetof(struct ENBConfigurationUpdateAcknowledge_IEs__value, present),
+       sizeof(((struct ENBConfigurationUpdateAcknowledge_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_316,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_316 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_316,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_316        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateAcknowledge_IEs_313[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateAcknowledge_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_314, &asn_PER_memb_id_constr_314,  memb_id_constraint_313 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateAcknowledge_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENBConfigurationUpdateAcknowledge_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_315, &asn_PER_memb_criticality_constr_315,  memb_criticality_constraint_313 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateAcknowledge_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_316,
+               select_ENBConfigurationUpdateAcknowledge_IEs_value_type,
+               { &asn_OER_memb_value_constr_316, &asn_PER_memb_value_constr_316,  memb_value_constraint_313 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENBConfigurationUpdateAcknowledge_IEs_tags_313[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENBConfigurationUpdateAcknowledge_IEs_tag2el_313[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateAcknowledge_IEs_specs_313 = {
+       sizeof(struct ENBConfigurationUpdateAcknowledge_IEs),
+       offsetof(struct ENBConfigurationUpdateAcknowledge_IEs, _asn_ctx),
+       asn_MAP_ENBConfigurationUpdateAcknowledge_IEs_tag2el_313,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateAcknowledge_IEs = {
+       "ENBConfigurationUpdateAcknowledge-IEs",
+       "ENBConfigurationUpdateAcknowledge-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENBConfigurationUpdateAcknowledge_IEs_tags_313,
+       sizeof(asn_DEF_ENBConfigurationUpdateAcknowledge_IEs_tags_313)
+               /sizeof(asn_DEF_ENBConfigurationUpdateAcknowledge_IEs_tags_313[0]), /* 1 */
+       asn_DEF_ENBConfigurationUpdateAcknowledge_IEs_tags_313, /* Same as above */
+       sizeof(asn_DEF_ENBConfigurationUpdateAcknowledge_IEs_tags_313)
+               /sizeof(asn_DEF_ENBConfigurationUpdateAcknowledge_IEs_tags_313[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENBConfigurationUpdateAcknowledge_IEs_313,
+       3,      /* Elements count */
+       &asn_SPC_ENBConfigurationUpdateAcknowledge_IEs_specs_313        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_320[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateFailure_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateFailure_IEs__value, choice.TimeToWait),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_TimeToWait,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "TimeToWait"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateFailure_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_320[] = { 1, 2, 0 };
+static const unsigned asn_MAP_value_from_canonical_320[] = { 2, 0, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_320[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_320 = {
+       sizeof(struct ENBConfigurationUpdateFailure_IEs__value),
+       offsetof(struct ENBConfigurationUpdateFailure_IEs__value, _asn_ctx),
+       offsetof(struct ENBConfigurationUpdateFailure_IEs__value, present),
+       sizeof(((struct ENBConfigurationUpdateFailure_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_320,
+       6,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_320,
+       asn_MAP_value_from_canonical_320,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_320 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_320,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_320        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateFailure_IEs_317[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateFailure_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_318, &asn_PER_memb_id_constr_318,  memb_id_constraint_317 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateFailure_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENBConfigurationUpdateFailure_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_319, &asn_PER_memb_criticality_constr_319,  memb_criticality_constraint_317 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateFailure_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_320,
+               select_ENBConfigurationUpdateFailure_IEs_value_type,
+               { &asn_OER_memb_value_constr_320, &asn_PER_memb_value_constr_320,  memb_value_constraint_317 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENBConfigurationUpdateFailure_IEs_tags_317[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENBConfigurationUpdateFailure_IEs_tag2el_317[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateFailure_IEs_specs_317 = {
+       sizeof(struct ENBConfigurationUpdateFailure_IEs),
+       offsetof(struct ENBConfigurationUpdateFailure_IEs, _asn_ctx),
+       asn_MAP_ENBConfigurationUpdateFailure_IEs_tag2el_317,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateFailure_IEs = {
+       "ENBConfigurationUpdateFailure-IEs",
+       "ENBConfigurationUpdateFailure-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENBConfigurationUpdateFailure_IEs_tags_317,
+       sizeof(asn_DEF_ENBConfigurationUpdateFailure_IEs_tags_317)
+               /sizeof(asn_DEF_ENBConfigurationUpdateFailure_IEs_tags_317[0]), /* 1 */
+       asn_DEF_ENBConfigurationUpdateFailure_IEs_tags_317,     /* Same as above */
+       sizeof(asn_DEF_ENBConfigurationUpdateFailure_IEs_tags_317)
+               /sizeof(asn_DEF_ENBConfigurationUpdateFailure_IEs_tags_317[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENBConfigurationUpdateFailure_IEs_317,
+       3,      /* Elements count */
+       &asn_SPC_ENBConfigurationUpdateFailure_IEs_specs_317    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_324[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs__value, choice.Measurement_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_Measurement_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Measurement-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs__value, choice.Registration_Request),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_Registration_Request,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Registration-Request"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs__value, choice.ReportCharacteristics),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_ReportCharacteristics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ReportCharacteristics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs__value, choice.CellToReport_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellToReport_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CellToReport-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs__value, choice.ReportingPeriodicity),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_ReportingPeriodicity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ReportingPeriodicity"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs__value, choice.PartialSuccessIndicator),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_PartialSuccessIndicator,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PartialSuccessIndicator"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs__value, choice.ReportingPeriodicityRSRPMR),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_ReportingPeriodicityRSRPMR,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ReportingPeriodicityRSRPMR"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs__value, choice.ReportingPeriodicityCSIR),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_ReportingPeriodicityCSIR,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ReportingPeriodicityCSIR"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_324[] = { 0, 2, 1, 4, 5, 6, 7, 3 };
+static const unsigned asn_MAP_value_from_canonical_324[] = { 0, 2, 1, 7, 3, 4, 5, 6 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_324[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* Measurement-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 2, 0, 0 }, /* ReportCharacteristics */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 4 }, /* Registration-Request */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, -1, 3 }, /* ReportingPeriodicity */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, -2, 2 }, /* PartialSuccessIndicator */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 6, -3, 1 }, /* ReportingPeriodicityRSRPMR */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 7, -4, 0 }, /* ReportingPeriodicityCSIR */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 } /* CellToReport-List */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_324 = {
+       sizeof(struct ResourceStatusRequest_IEs__value),
+       offsetof(struct ResourceStatusRequest_IEs__value, _asn_ctx),
+       offsetof(struct ResourceStatusRequest_IEs__value, present),
+       sizeof(((struct ResourceStatusRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_324,
+       8,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_324,
+       asn_MAP_value_from_canonical_324,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_324 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_324,
+       8,      /* Elements count */
+       &asn_SPC_value_specs_324        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ResourceStatusRequest_IEs_321[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_322, &asn_PER_memb_id_constr_322,  memb_id_constraint_321 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ResourceStatusRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_323, &asn_PER_memb_criticality_constr_323,  memb_criticality_constraint_321 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_324,
+               select_ResourceStatusRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_324, &asn_PER_memb_value_constr_324,  memb_value_constraint_321 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ResourceStatusRequest_IEs_tags_321[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResourceStatusRequest_IEs_tag2el_321[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusRequest_IEs_specs_321 = {
+       sizeof(struct ResourceStatusRequest_IEs),
+       offsetof(struct ResourceStatusRequest_IEs, _asn_ctx),
+       asn_MAP_ResourceStatusRequest_IEs_tag2el_321,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResourceStatusRequest_IEs = {
+       "ResourceStatusRequest-IEs",
+       "ResourceStatusRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResourceStatusRequest_IEs_tags_321,
+       sizeof(asn_DEF_ResourceStatusRequest_IEs_tags_321)
+               /sizeof(asn_DEF_ResourceStatusRequest_IEs_tags_321[0]), /* 1 */
+       asn_DEF_ResourceStatusRequest_IEs_tags_321,     /* Same as above */
+       sizeof(asn_DEF_ResourceStatusRequest_IEs_tags_321)
+               /sizeof(asn_DEF_ResourceStatusRequest_IEs_tags_321[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResourceStatusRequest_IEs_321,
+       3,      /* Elements count */
+       &asn_SPC_ResourceStatusRequest_IEs_specs_321    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_328[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusResponse_IEs__value, choice.Measurement_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_Measurement_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Measurement-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusResponse_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusResponse_IEs__value, choice.MeasurementInitiationResult_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MeasurementInitiationResult_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MeasurementInitiationResult-List"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_328[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* Measurement-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* MeasurementInitiationResult-List */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_328 = {
+       sizeof(struct ResourceStatusResponse_IEs__value),
+       offsetof(struct ResourceStatusResponse_IEs__value, _asn_ctx),
+       offsetof(struct ResourceStatusResponse_IEs__value, present),
+       sizeof(((struct ResourceStatusResponse_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_328,
+       3,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_328 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_328,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_328        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ResourceStatusResponse_IEs_325[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusResponse_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_326, &asn_PER_memb_id_constr_326,  memb_id_constraint_325 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusResponse_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ResourceStatusResponse_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_327, &asn_PER_memb_criticality_constr_327,  memb_criticality_constraint_325 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResourceStatusResponse_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_328,
+               select_ResourceStatusResponse_IEs_value_type,
+               { &asn_OER_memb_value_constr_328, &asn_PER_memb_value_constr_328,  memb_value_constraint_325 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ResourceStatusResponse_IEs_tags_325[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResourceStatusResponse_IEs_tag2el_325[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusResponse_IEs_specs_325 = {
+       sizeof(struct ResourceStatusResponse_IEs),
+       offsetof(struct ResourceStatusResponse_IEs, _asn_ctx),
+       asn_MAP_ResourceStatusResponse_IEs_tag2el_325,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResourceStatusResponse_IEs = {
+       "ResourceStatusResponse-IEs",
+       "ResourceStatusResponse-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResourceStatusResponse_IEs_tags_325,
+       sizeof(asn_DEF_ResourceStatusResponse_IEs_tags_325)
+               /sizeof(asn_DEF_ResourceStatusResponse_IEs_tags_325[0]), /* 1 */
+       asn_DEF_ResourceStatusResponse_IEs_tags_325,    /* Same as above */
+       sizeof(asn_DEF_ResourceStatusResponse_IEs_tags_325)
+               /sizeof(asn_DEF_ResourceStatusResponse_IEs_tags_325[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResourceStatusResponse_IEs_325,
+       3,      /* Elements count */
+       &asn_SPC_ResourceStatusResponse_IEs_specs_325   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_332[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusFailure_IEs__value, choice.Measurement_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_Measurement_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Measurement-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusFailure_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusFailure_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusFailure_IEs__value, choice.CompleteFailureCauseInformation_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CompleteFailureCauseInformation_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CompleteFailureCauseInformation-List"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_332[] = { 0, 2, 3, 1 };
+static const unsigned asn_MAP_value_from_canonical_332[] = { 0, 3, 1, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_332[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* Measurement-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CompleteFailureCauseInformation-List */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_332 = {
+       sizeof(struct ResourceStatusFailure_IEs__value),
+       offsetof(struct ResourceStatusFailure_IEs__value, _asn_ctx),
+       offsetof(struct ResourceStatusFailure_IEs__value, present),
+       sizeof(((struct ResourceStatusFailure_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_332,
+       7,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_332,
+       asn_MAP_value_from_canonical_332,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_332 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_332,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_332        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ResourceStatusFailure_IEs_329[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusFailure_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_330, &asn_PER_memb_id_constr_330,  memb_id_constraint_329 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusFailure_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ResourceStatusFailure_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_331, &asn_PER_memb_criticality_constr_331,  memb_criticality_constraint_329 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResourceStatusFailure_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_332,
+               select_ResourceStatusFailure_IEs_value_type,
+               { &asn_OER_memb_value_constr_332, &asn_PER_memb_value_constr_332,  memb_value_constraint_329 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ResourceStatusFailure_IEs_tags_329[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResourceStatusFailure_IEs_tag2el_329[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusFailure_IEs_specs_329 = {
+       sizeof(struct ResourceStatusFailure_IEs),
+       offsetof(struct ResourceStatusFailure_IEs, _asn_ctx),
+       asn_MAP_ResourceStatusFailure_IEs_tag2el_329,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResourceStatusFailure_IEs = {
+       "ResourceStatusFailure-IEs",
+       "ResourceStatusFailure-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResourceStatusFailure_IEs_tags_329,
+       sizeof(asn_DEF_ResourceStatusFailure_IEs_tags_329)
+               /sizeof(asn_DEF_ResourceStatusFailure_IEs_tags_329[0]), /* 1 */
+       asn_DEF_ResourceStatusFailure_IEs_tags_329,     /* Same as above */
+       sizeof(asn_DEF_ResourceStatusFailure_IEs_tags_329)
+               /sizeof(asn_DEF_ResourceStatusFailure_IEs_tags_329[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResourceStatusFailure_IEs_329,
+       3,      /* Elements count */
+       &asn_SPC_ResourceStatusFailure_IEs_specs_329    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_336[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusUpdate_IEs__value, choice.Measurement_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_Measurement_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Measurement-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusUpdate_IEs__value, choice.CellMeasurementResult_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellMeasurementResult_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CellMeasurementResult-List"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_336[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* Measurement-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* CellMeasurementResult-List */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_336 = {
+       sizeof(struct ResourceStatusUpdate_IEs__value),
+       offsetof(struct ResourceStatusUpdate_IEs__value, _asn_ctx),
+       offsetof(struct ResourceStatusUpdate_IEs__value, present),
+       sizeof(((struct ResourceStatusUpdate_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_336,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_336 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_336,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_336        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ResourceStatusUpdate_IEs_333[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusUpdate_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_334, &asn_PER_memb_id_constr_334,  memb_id_constraint_333 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusUpdate_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ResourceStatusUpdate_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_335, &asn_PER_memb_criticality_constr_335,  memb_criticality_constraint_333 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResourceStatusUpdate_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_336,
+               select_ResourceStatusUpdate_IEs_value_type,
+               { &asn_OER_memb_value_constr_336, &asn_PER_memb_value_constr_336,  memb_value_constraint_333 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ResourceStatusUpdate_IEs_tags_333[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResourceStatusUpdate_IEs_tag2el_333[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusUpdate_IEs_specs_333 = {
+       sizeof(struct ResourceStatusUpdate_IEs),
+       offsetof(struct ResourceStatusUpdate_IEs, _asn_ctx),
+       asn_MAP_ResourceStatusUpdate_IEs_tag2el_333,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResourceStatusUpdate_IEs = {
+       "ResourceStatusUpdate-IEs",
+       "ResourceStatusUpdate-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResourceStatusUpdate_IEs_tags_333,
+       sizeof(asn_DEF_ResourceStatusUpdate_IEs_tags_333)
+               /sizeof(asn_DEF_ResourceStatusUpdate_IEs_tags_333[0]), /* 1 */
+       asn_DEF_ResourceStatusUpdate_IEs_tags_333,      /* Same as above */
+       sizeof(asn_DEF_ResourceStatusUpdate_IEs_tags_333)
+               /sizeof(asn_DEF_ResourceStatusUpdate_IEs_tags_333[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResourceStatusUpdate_IEs_333,
+       3,      /* Elements count */
+       &asn_SPC_ResourceStatusUpdate_IEs_specs_333     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_340[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeRequest_IEs__value, choice.ECGI),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ECGI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeRequest_IEs__value, choice.MobilityParametersInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MobilityParametersInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MobilityParametersInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeRequest_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_340[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* ECGI */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 }, /* MobilityParametersInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_340 = {
+       sizeof(struct MobilityChangeRequest_IEs__value),
+       offsetof(struct MobilityChangeRequest_IEs__value, _asn_ctx),
+       offsetof(struct MobilityChangeRequest_IEs__value, present),
+       sizeof(((struct MobilityChangeRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_340,
+       6,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_340 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_340,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_340        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_MobilityChangeRequest_IEs_337[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_338, &asn_PER_memb_id_constr_338,  memb_id_constraint_337 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_MobilityChangeRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_339, &asn_PER_memb_criticality_constr_339,  memb_criticality_constraint_337 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MobilityChangeRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_340,
+               select_MobilityChangeRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_340, &asn_PER_memb_value_constr_340,  memb_value_constraint_337 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MobilityChangeRequest_IEs_tags_337[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MobilityChangeRequest_IEs_tag2el_337[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeRequest_IEs_specs_337 = {
+       sizeof(struct MobilityChangeRequest_IEs),
+       offsetof(struct MobilityChangeRequest_IEs, _asn_ctx),
+       asn_MAP_MobilityChangeRequest_IEs_tag2el_337,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MobilityChangeRequest_IEs = {
+       "MobilityChangeRequest-IEs",
+       "MobilityChangeRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MobilityChangeRequest_IEs_tags_337,
+       sizeof(asn_DEF_MobilityChangeRequest_IEs_tags_337)
+               /sizeof(asn_DEF_MobilityChangeRequest_IEs_tags_337[0]), /* 1 */
+       asn_DEF_MobilityChangeRequest_IEs_tags_337,     /* Same as above */
+       sizeof(asn_DEF_MobilityChangeRequest_IEs_tags_337)
+               /sizeof(asn_DEF_MobilityChangeRequest_IEs_tags_337[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MobilityChangeRequest_IEs_337,
+       3,      /* Elements count */
+       &asn_SPC_MobilityChangeRequest_IEs_specs_337    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_344[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeAcknowledge_IEs__value, choice.ECGI),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ECGI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeAcknowledge_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_344[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* ECGI */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* CriticalityDiagnostics */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_344 = {
+       sizeof(struct MobilityChangeAcknowledge_IEs__value),
+       offsetof(struct MobilityChangeAcknowledge_IEs__value, _asn_ctx),
+       offsetof(struct MobilityChangeAcknowledge_IEs__value, present),
+       sizeof(((struct MobilityChangeAcknowledge_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_344,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_344 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_344,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_344        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_MobilityChangeAcknowledge_IEs_341[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeAcknowledge_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_342, &asn_PER_memb_id_constr_342,  memb_id_constraint_341 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeAcknowledge_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_MobilityChangeAcknowledge_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_343, &asn_PER_memb_criticality_constr_343,  memb_criticality_constraint_341 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MobilityChangeAcknowledge_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_344,
+               select_MobilityChangeAcknowledge_IEs_value_type,
+               { &asn_OER_memb_value_constr_344, &asn_PER_memb_value_constr_344,  memb_value_constraint_341 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MobilityChangeAcknowledge_IEs_tags_341[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MobilityChangeAcknowledge_IEs_tag2el_341[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeAcknowledge_IEs_specs_341 = {
+       sizeof(struct MobilityChangeAcknowledge_IEs),
+       offsetof(struct MobilityChangeAcknowledge_IEs, _asn_ctx),
+       asn_MAP_MobilityChangeAcknowledge_IEs_tag2el_341,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MobilityChangeAcknowledge_IEs = {
+       "MobilityChangeAcknowledge-IEs",
+       "MobilityChangeAcknowledge-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MobilityChangeAcknowledge_IEs_tags_341,
+       sizeof(asn_DEF_MobilityChangeAcknowledge_IEs_tags_341)
+               /sizeof(asn_DEF_MobilityChangeAcknowledge_IEs_tags_341[0]), /* 1 */
+       asn_DEF_MobilityChangeAcknowledge_IEs_tags_341, /* Same as above */
+       sizeof(asn_DEF_MobilityChangeAcknowledge_IEs_tags_341)
+               /sizeof(asn_DEF_MobilityChangeAcknowledge_IEs_tags_341[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MobilityChangeAcknowledge_IEs_341,
+       3,      /* Elements count */
+       &asn_SPC_MobilityChangeAcknowledge_IEs_specs_341        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_348[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeFailure_IEs__value, choice.ECGI),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ECGI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeFailure_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeFailure_IEs__value, choice.MobilityParametersModificationRange),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MobilityParametersModificationRange,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MobilityParametersModificationRange"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeFailure_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_348[] = { 0, 2, 3, 1 };
+static const unsigned asn_MAP_value_from_canonical_348[] = { 0, 3, 1, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_348[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* ECGI */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* MobilityParametersModificationRange */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_348 = {
+       sizeof(struct MobilityChangeFailure_IEs__value),
+       offsetof(struct MobilityChangeFailure_IEs__value, _asn_ctx),
+       offsetof(struct MobilityChangeFailure_IEs__value, present),
+       sizeof(((struct MobilityChangeFailure_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_348,
+       7,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_348,
+       asn_MAP_value_from_canonical_348,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_348 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_348,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_348        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_MobilityChangeFailure_IEs_345[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeFailure_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_346, &asn_PER_memb_id_constr_346,  memb_id_constraint_345 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeFailure_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_MobilityChangeFailure_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_347, &asn_PER_memb_criticality_constr_347,  memb_criticality_constraint_345 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MobilityChangeFailure_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_348,
+               select_MobilityChangeFailure_IEs_value_type,
+               { &asn_OER_memb_value_constr_348, &asn_PER_memb_value_constr_348,  memb_value_constraint_345 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_MobilityChangeFailure_IEs_tags_345[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MobilityChangeFailure_IEs_tag2el_345[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeFailure_IEs_specs_345 = {
+       sizeof(struct MobilityChangeFailure_IEs),
+       offsetof(struct MobilityChangeFailure_IEs, _asn_ctx),
+       asn_MAP_MobilityChangeFailure_IEs_tag2el_345,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MobilityChangeFailure_IEs = {
+       "MobilityChangeFailure-IEs",
+       "MobilityChangeFailure-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_MobilityChangeFailure_IEs_tags_345,
+       sizeof(asn_DEF_MobilityChangeFailure_IEs_tags_345)
+               /sizeof(asn_DEF_MobilityChangeFailure_IEs_tags_345[0]), /* 1 */
+       asn_DEF_MobilityChangeFailure_IEs_tags_345,     /* Same as above */
+       sizeof(asn_DEF_MobilityChangeFailure_IEs_tags_345)
+               /sizeof(asn_DEF_MobilityChangeFailure_IEs_tags_345[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MobilityChangeFailure_IEs_345,
+       3,      /* Elements count */
+       &asn_SPC_MobilityChangeFailure_IEs_specs_345    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_352[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs__value, choice.PCI),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_PCI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PCI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs__value, choice.ECGI),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ECGI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs__value, choice.CRNTI),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_CRNTI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CRNTI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs__value, choice.ShortMAC_I),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_ShortMAC_I,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ShortMAC-I"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs__value, choice.UE_RLF_Report_Container),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_UE_RLF_Report_Container,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-RLF-Report-Container"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs__value, choice.RRCConnSetupIndicator),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_RRCConnSetupIndicator,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RRCConnSetupIndicator"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs__value, choice.RRCConnReestabIndicator),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_RRCConnReestabIndicator,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RRCConnReestabIndicator"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs__value, choice.UE_RLF_Report_Container_for_extended_bands),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_UE_RLF_Report_Container_for_extended_bands,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-RLF-Report-Container-for-extended-bands"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_352[] = { 0, 2, 3, 4, 7, 5, 6, 1 };
+static const unsigned asn_MAP_value_from_canonical_352[] = { 0, 7, 1, 2, 3, 5, 6, 4 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_352[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* PCI */
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 2, 0, 1 }, /* CRNTI */
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 3, -1, 0 }, /* ShortMAC-I */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 1 }, /* UE-RLF-Report-Container */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 7, -1, 0 }, /* UE-RLF-Report-Container-for-extended-bands */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 1 }, /* RRCConnSetupIndicator */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 6, -1, 0 }, /* RRCConnReestabIndicator */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* ECGI */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_352 = {
+       sizeof(struct RLFIndication_IEs__value),
+       offsetof(struct RLFIndication_IEs__value, _asn_ctx),
+       offsetof(struct RLFIndication_IEs__value, present),
+       sizeof(((struct RLFIndication_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_352,
+       8,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_352,
+       asn_MAP_value_from_canonical_352,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_352 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_352,
+       8,      /* Elements count */
+       &asn_SPC_value_specs_352        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RLFIndication_IEs_349[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_350, &asn_PER_memb_id_constr_350,  memb_id_constraint_349 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RLFIndication_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_351, &asn_PER_memb_criticality_constr_351,  memb_criticality_constraint_349 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_352,
+               select_RLFIndication_IEs_value_type,
+               { &asn_OER_memb_value_constr_352, &asn_PER_memb_value_constr_352,  memb_value_constraint_349 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RLFIndication_IEs_tags_349[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RLFIndication_IEs_tag2el_349[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RLFIndication_IEs_specs_349 = {
+       sizeof(struct RLFIndication_IEs),
+       offsetof(struct RLFIndication_IEs, _asn_ctx),
+       asn_MAP_RLFIndication_IEs_tag2el_349,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RLFIndication_IEs = {
+       "RLFIndication-IEs",
+       "RLFIndication-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RLFIndication_IEs_tags_349,
+       sizeof(asn_DEF_RLFIndication_IEs_tags_349)
+               /sizeof(asn_DEF_RLFIndication_IEs_tags_349[0]), /* 1 */
+       asn_DEF_RLFIndication_IEs_tags_349,     /* Same as above */
+       sizeof(asn_DEF_RLFIndication_IEs_tags_349)
+               /sizeof(asn_DEF_RLFIndication_IEs_tags_349[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RLFIndication_IEs_349,
+       3,      /* Elements count */
+       &asn_SPC_RLFIndication_IEs_specs_349    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_356[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellActivationRequest_IEs__value, choice.ServedCellsToActivate),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedCellsToActivate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServedCellsToActivate"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_356[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ServedCellsToActivate */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_356 = {
+       sizeof(struct CellActivationRequest_IEs__value),
+       offsetof(struct CellActivationRequest_IEs__value, _asn_ctx),
+       offsetof(struct CellActivationRequest_IEs__value, present),
+       sizeof(((struct CellActivationRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_356,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_356 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_356,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_356        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CellActivationRequest_IEs_353[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellActivationRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_354, &asn_PER_memb_id_constr_354,  memb_id_constraint_353 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellActivationRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_CellActivationRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_355, &asn_PER_memb_criticality_constr_355,  memb_criticality_constraint_353 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellActivationRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_356,
+               select_CellActivationRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_356, &asn_PER_memb_value_constr_356,  memb_value_constraint_353 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellActivationRequest_IEs_tags_353[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellActivationRequest_IEs_tag2el_353[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellActivationRequest_IEs_specs_353 = {
+       sizeof(struct CellActivationRequest_IEs),
+       offsetof(struct CellActivationRequest_IEs, _asn_ctx),
+       asn_MAP_CellActivationRequest_IEs_tag2el_353,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellActivationRequest_IEs = {
+       "CellActivationRequest-IEs",
+       "CellActivationRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellActivationRequest_IEs_tags_353,
+       sizeof(asn_DEF_CellActivationRequest_IEs_tags_353)
+               /sizeof(asn_DEF_CellActivationRequest_IEs_tags_353[0]), /* 1 */
+       asn_DEF_CellActivationRequest_IEs_tags_353,     /* Same as above */
+       sizeof(asn_DEF_CellActivationRequest_IEs_tags_353)
+               /sizeof(asn_DEF_CellActivationRequest_IEs_tags_353[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellActivationRequest_IEs_353,
+       3,      /* Elements count */
+       &asn_SPC_CellActivationRequest_IEs_specs_353    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_360[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellActivationResponse_IEs__value, choice.ActivatedCellList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ActivatedCellList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ActivatedCellList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellActivationResponse_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_360[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* ActivatedCellList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* CriticalityDiagnostics */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_360 = {
+       sizeof(struct CellActivationResponse_IEs__value),
+       offsetof(struct CellActivationResponse_IEs__value, _asn_ctx),
+       offsetof(struct CellActivationResponse_IEs__value, present),
+       sizeof(((struct CellActivationResponse_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_360,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_360 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_360,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_360        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CellActivationResponse_IEs_357[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellActivationResponse_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_358, &asn_PER_memb_id_constr_358,  memb_id_constraint_357 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellActivationResponse_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_CellActivationResponse_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_359, &asn_PER_memb_criticality_constr_359,  memb_criticality_constraint_357 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellActivationResponse_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_360,
+               select_CellActivationResponse_IEs_value_type,
+               { &asn_OER_memb_value_constr_360, &asn_PER_memb_value_constr_360,  memb_value_constraint_357 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellActivationResponse_IEs_tags_357[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellActivationResponse_IEs_tag2el_357[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellActivationResponse_IEs_specs_357 = {
+       sizeof(struct CellActivationResponse_IEs),
+       offsetof(struct CellActivationResponse_IEs, _asn_ctx),
+       asn_MAP_CellActivationResponse_IEs_tag2el_357,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellActivationResponse_IEs = {
+       "CellActivationResponse-IEs",
+       "CellActivationResponse-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellActivationResponse_IEs_tags_357,
+       sizeof(asn_DEF_CellActivationResponse_IEs_tags_357)
+               /sizeof(asn_DEF_CellActivationResponse_IEs_tags_357[0]), /* 1 */
+       asn_DEF_CellActivationResponse_IEs_tags_357,    /* Same as above */
+       sizeof(asn_DEF_CellActivationResponse_IEs_tags_357)
+               /sizeof(asn_DEF_CellActivationResponse_IEs_tags_357[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellActivationResponse_IEs_357,
+       3,      /* Elements count */
+       &asn_SPC_CellActivationResponse_IEs_specs_357   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_364[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellActivationFailure_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellActivationFailure_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_364[] = { 1, 0 };
+static const unsigned asn_MAP_value_from_canonical_364[] = { 1, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_364[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_364 = {
+       sizeof(struct CellActivationFailure_IEs__value),
+       offsetof(struct CellActivationFailure_IEs__value, _asn_ctx),
+       offsetof(struct CellActivationFailure_IEs__value, present),
+       sizeof(((struct CellActivationFailure_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_364,
+       5,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_364,
+       asn_MAP_value_from_canonical_364,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_364 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_364,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_364        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_CellActivationFailure_IEs_361[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct CellActivationFailure_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_362, &asn_PER_memb_id_constr_362,  memb_id_constraint_361 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct CellActivationFailure_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_CellActivationFailure_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_363, &asn_PER_memb_criticality_constr_363,  memb_criticality_constraint_361 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellActivationFailure_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_364,
+               select_CellActivationFailure_IEs_value_type,
+               { &asn_OER_memb_value_constr_364, &asn_PER_memb_value_constr_364,  memb_value_constraint_361 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_CellActivationFailure_IEs_tags_361[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellActivationFailure_IEs_tag2el_361[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellActivationFailure_IEs_specs_361 = {
+       sizeof(struct CellActivationFailure_IEs),
+       offsetof(struct CellActivationFailure_IEs, _asn_ctx),
+       asn_MAP_CellActivationFailure_IEs_tag2el_361,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellActivationFailure_IEs = {
+       "CellActivationFailure-IEs",
+       "CellActivationFailure-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_CellActivationFailure_IEs_tags_361,
+       sizeof(asn_DEF_CellActivationFailure_IEs_tags_361)
+               /sizeof(asn_DEF_CellActivationFailure_IEs_tags_361[0]), /* 1 */
+       asn_DEF_CellActivationFailure_IEs_tags_361,     /* Same as above */
+       sizeof(asn_DEF_CellActivationFailure_IEs_tags_361)
+               /sizeof(asn_DEF_CellActivationFailure_IEs_tags_361[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellActivationFailure_IEs_361,
+       3,      /* Elements count */
+       &asn_SPC_CellActivationFailure_IEs_specs_361    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_368[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2Release_IEs__value, choice.GlobalENB_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GlobalENB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GlobalENB-ID"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_368[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GlobalENB-ID */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_368 = {
+       sizeof(struct X2Release_IEs__value),
+       offsetof(struct X2Release_IEs__value, _asn_ctx),
+       offsetof(struct X2Release_IEs__value, present),
+       sizeof(((struct X2Release_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_368,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_368 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_368,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_368        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_X2Release_IEs_365[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2Release_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_366, &asn_PER_memb_id_constr_366,  memb_id_constraint_365 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2Release_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_X2Release_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_367, &asn_PER_memb_criticality_constr_367,  memb_criticality_constraint_365 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2Release_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_368,
+               select_X2Release_IEs_value_type,
+               { &asn_OER_memb_value_constr_368, &asn_PER_memb_value_constr_368,  memb_value_constraint_365 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_X2Release_IEs_tags_365[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_X2Release_IEs_tag2el_365[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_X2Release_IEs_specs_365 = {
+       sizeof(struct X2Release_IEs),
+       offsetof(struct X2Release_IEs, _asn_ctx),
+       asn_MAP_X2Release_IEs_tag2el_365,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_X2Release_IEs = {
+       "X2Release-IEs",
+       "X2Release-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_X2Release_IEs_tags_365,
+       sizeof(asn_DEF_X2Release_IEs_tags_365)
+               /sizeof(asn_DEF_X2Release_IEs_tags_365[0]), /* 1 */
+       asn_DEF_X2Release_IEs_tags_365, /* Same as above */
+       sizeof(asn_DEF_X2Release_IEs_tags_365)
+               /sizeof(asn_DEF_X2Release_IEs_tags_365[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_X2Release_IEs_365,
+       3,      /* Elements count */
+       &asn_SPC_X2Release_IEs_specs_365        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_372[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2APMessageTransfer_IEs__value, choice.RNL_Header),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RNL_Header,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RNL-Header"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2APMessageTransfer_IEs__value, choice.X2AP_Message),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_X2AP_Message,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "X2AP-Message"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_372[] = { 1, 0 };
+static const unsigned asn_MAP_value_from_canonical_372[] = { 1, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_372[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 0 }, /* X2AP-Message */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RNL-Header */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_372 = {
+       sizeof(struct X2APMessageTransfer_IEs__value),
+       offsetof(struct X2APMessageTransfer_IEs__value, _asn_ctx),
+       offsetof(struct X2APMessageTransfer_IEs__value, present),
+       sizeof(((struct X2APMessageTransfer_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_372,
+       2,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_372,
+       asn_MAP_value_from_canonical_372,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_372 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_372,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_372        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_X2APMessageTransfer_IEs_369[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2APMessageTransfer_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_370, &asn_PER_memb_id_constr_370,  memb_id_constraint_369 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2APMessageTransfer_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_X2APMessageTransfer_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_371, &asn_PER_memb_criticality_constr_371,  memb_criticality_constraint_369 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2APMessageTransfer_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_372,
+               select_X2APMessageTransfer_IEs_value_type,
+               { &asn_OER_memb_value_constr_372, &asn_PER_memb_value_constr_372,  memb_value_constraint_369 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_X2APMessageTransfer_IEs_tags_369[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_X2APMessageTransfer_IEs_tag2el_369[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_X2APMessageTransfer_IEs_specs_369 = {
+       sizeof(struct X2APMessageTransfer_IEs),
+       offsetof(struct X2APMessageTransfer_IEs, _asn_ctx),
+       asn_MAP_X2APMessageTransfer_IEs_tag2el_369,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_X2APMessageTransfer_IEs = {
+       "X2APMessageTransfer-IEs",
+       "X2APMessageTransfer-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_X2APMessageTransfer_IEs_tags_369,
+       sizeof(asn_DEF_X2APMessageTransfer_IEs_tags_369)
+               /sizeof(asn_DEF_X2APMessageTransfer_IEs_tags_369[0]), /* 1 */
+       asn_DEF_X2APMessageTransfer_IEs_tags_369,       /* Same as above */
+       sizeof(asn_DEF_X2APMessageTransfer_IEs_tags_369)
+               /sizeof(asn_DEF_X2APMessageTransfer_IEs_tags_369[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_X2APMessageTransfer_IEs_369,
+       3,      /* Elements count */
+       &asn_SPC_X2APMessageTransfer_IEs_specs_369      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_376[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.UESecurityCapabilities),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UESecurityCapabilities,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UESecurityCapabilities"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.SeNBSecurityKey),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_SeNBSecurityKey,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBSecurityKey"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.UEAggregateMaximumBitRate),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UEAggregateMaximumBitRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UEAggregateMaximumBitRate"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.PLMN_Identity),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PLMN-Identity"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.E_RABs_ToBeAdded_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeAdded-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.MeNBtoSeNBContainer),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_MeNBtoSeNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MeNBtoSeNBContainer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.CSGMembershipStatus),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_CSGMembershipStatus,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CSGMembershipStatus"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.ExpectedUEBehaviour),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ExpectedUEBehaviour,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ExpectedUEBehaviour"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_376[] = { 0, 8, 2, 4, 6, 7, 1, 3, 5, 9 };
+static const unsigned asn_MAP_value_from_canonical_376[] = { 0, 6, 2, 7, 3, 8, 4, 5, 1, 9 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_376[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 8, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 2, 0, 0 }, /* SeNBSecurityKey */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 1 }, /* PLMN-Identity */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, -1, 0 }, /* MeNBtoSeNBContainer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 7, 0, 0 }, /* CSGMembershipStatus */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 3 }, /* UESecurityCapabilities */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 2 }, /* UEAggregateMaximumBitRate */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -2, 1 }, /* E-RABs-ToBeAdded-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -3, 0 } /* ExpectedUEBehaviour */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_376 = {
+       sizeof(struct SeNBAdditionRequest_IEs__value),
+       offsetof(struct SeNBAdditionRequest_IEs__value, _asn_ctx),
+       offsetof(struct SeNBAdditionRequest_IEs__value, present),
+       sizeof(((struct SeNBAdditionRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_376,
+       10,     /* Count of tags in the map */
+       asn_MAP_value_to_canonical_376,
+       asn_MAP_value_from_canonical_376,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_376 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_376,
+       10,     /* Elements count */
+       &asn_SPC_value_specs_376        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SeNBAdditionRequest_IEs_373[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_374, &asn_PER_memb_id_constr_374,  memb_id_constraint_373 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SeNBAdditionRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_375, &asn_PER_memb_criticality_constr_375,  memb_criticality_constraint_373 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_376,
+               select_SeNBAdditionRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_376, &asn_PER_memb_value_constr_376,  memb_value_constraint_373 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBAdditionRequest_IEs_tags_373[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBAdditionRequest_IEs_tag2el_373[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequest_IEs_specs_373 = {
+       sizeof(struct SeNBAdditionRequest_IEs),
+       offsetof(struct SeNBAdditionRequest_IEs, _asn_ctx),
+       asn_MAP_SeNBAdditionRequest_IEs_tag2el_373,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequest_IEs = {
+       "SeNBAdditionRequest-IEs",
+       "SeNBAdditionRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBAdditionRequest_IEs_tags_373,
+       sizeof(asn_DEF_SeNBAdditionRequest_IEs_tags_373)
+               /sizeof(asn_DEF_SeNBAdditionRequest_IEs_tags_373[0]), /* 1 */
+       asn_DEF_SeNBAdditionRequest_IEs_tags_373,       /* Same as above */
+       sizeof(asn_DEF_SeNBAdditionRequest_IEs_tags_373)
+               /sizeof(asn_DEF_SeNBAdditionRequest_IEs_tags_373[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBAdditionRequest_IEs_373,
+       3,      /* Elements count */
+       &asn_SPC_SeNBAdditionRequest_IEs_specs_373      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_380[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeAdded_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToBeAdded-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, choice.E_RAB_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RAB_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RAB-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, choice.SeNBtoMeNBContainer),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_SeNBtoMeNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBtoMeNBContainer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, choice.TransportLayerAddress),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_TransportLayerAddress,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "TransportLayerAddress"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, choice.TunnelInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_TunnelInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "TunnelInformation"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_380[] = { 0, 6, 5, 3, 1, 2, 4, 7 };
+static const unsigned asn_MAP_value_from_canonical_380[] = { 0, 4, 5, 3, 6, 2, 1, 7 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_380[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 6, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 5, 0, 0 }, /* TransportLayerAddress */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 0 }, /* SeNBtoMeNBContainer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 3 }, /* E-RABs-Admitted-ToBeAdded-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 2 }, /* E-RAB-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 1 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -3, 0 } /* TunnelInformation */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_380 = {
+       sizeof(struct SeNBAdditionRequestAcknowledge_IEs__value),
+       offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, _asn_ctx),
+       offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, present),
+       sizeof(((struct SeNBAdditionRequestAcknowledge_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_380,
+       8,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_380,
+       asn_MAP_value_from_canonical_380,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_380 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_380,
+       8,      /* Elements count */
+       &asn_SPC_value_specs_380        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SeNBAdditionRequestAcknowledge_IEs_377[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_378, &asn_PER_memb_id_constr_378,  memb_id_constraint_377 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SeNBAdditionRequestAcknowledge_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_379, &asn_PER_memb_criticality_constr_379,  memb_criticality_constraint_377 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_380,
+               select_SeNBAdditionRequestAcknowledge_IEs_value_type,
+               { &asn_OER_memb_value_constr_380, &asn_PER_memb_value_constr_380,  memb_value_constraint_377 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBAdditionRequestAcknowledge_IEs_tags_377[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBAdditionRequestAcknowledge_IEs_tag2el_377[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequestAcknowledge_IEs_specs_377 = {
+       sizeof(struct SeNBAdditionRequestAcknowledge_IEs),
+       offsetof(struct SeNBAdditionRequestAcknowledge_IEs, _asn_ctx),
+       asn_MAP_SeNBAdditionRequestAcknowledge_IEs_tag2el_377,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestAcknowledge_IEs = {
+       "SeNBAdditionRequestAcknowledge-IEs",
+       "SeNBAdditionRequestAcknowledge-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBAdditionRequestAcknowledge_IEs_tags_377,
+       sizeof(asn_DEF_SeNBAdditionRequestAcknowledge_IEs_tags_377)
+               /sizeof(asn_DEF_SeNBAdditionRequestAcknowledge_IEs_tags_377[0]), /* 1 */
+       asn_DEF_SeNBAdditionRequestAcknowledge_IEs_tags_377,    /* Same as above */
+       sizeof(asn_DEF_SeNBAdditionRequestAcknowledge_IEs_tags_377)
+               /sizeof(asn_DEF_SeNBAdditionRequestAcknowledge_IEs_tags_377[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBAdditionRequestAcknowledge_IEs_377,
+       3,      /* Elements count */
+       &asn_SPC_SeNBAdditionRequestAcknowledge_IEs_specs_377   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_384[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestReject_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestReject_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestReject_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestReject_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_384[] = { 0, 3, 2, 1 };
+static const unsigned asn_MAP_value_from_canonical_384[] = { 0, 3, 2, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_384[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_384 = {
+       sizeof(struct SeNBAdditionRequestReject_IEs__value),
+       offsetof(struct SeNBAdditionRequestReject_IEs__value, _asn_ctx),
+       offsetof(struct SeNBAdditionRequestReject_IEs__value, present),
+       sizeof(((struct SeNBAdditionRequestReject_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_384,
+       7,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_384,
+       asn_MAP_value_from_canonical_384,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_384 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_384,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_384        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SeNBAdditionRequestReject_IEs_381[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestReject_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_382, &asn_PER_memb_id_constr_382,  memb_id_constraint_381 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestReject_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SeNBAdditionRequestReject_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_383, &asn_PER_memb_criticality_constr_383,  memb_criticality_constraint_381 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestReject_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_384,
+               select_SeNBAdditionRequestReject_IEs_value_type,
+               { &asn_OER_memb_value_constr_384, &asn_PER_memb_value_constr_384,  memb_value_constraint_381 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBAdditionRequestReject_IEs_tags_381[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBAdditionRequestReject_IEs_tag2el_381[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequestReject_IEs_specs_381 = {
+       sizeof(struct SeNBAdditionRequestReject_IEs),
+       offsetof(struct SeNBAdditionRequestReject_IEs, _asn_ctx),
+       asn_MAP_SeNBAdditionRequestReject_IEs_tag2el_381,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestReject_IEs = {
+       "SeNBAdditionRequestReject-IEs",
+       "SeNBAdditionRequestReject-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBAdditionRequestReject_IEs_tags_381,
+       sizeof(asn_DEF_SeNBAdditionRequestReject_IEs_tags_381)
+               /sizeof(asn_DEF_SeNBAdditionRequestReject_IEs_tags_381[0]), /* 1 */
+       asn_DEF_SeNBAdditionRequestReject_IEs_tags_381, /* Same as above */
+       sizeof(asn_DEF_SeNBAdditionRequestReject_IEs_tags_381)
+               /sizeof(asn_DEF_SeNBAdditionRequestReject_IEs_tags_381[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBAdditionRequestReject_IEs_381,
+       3,      /* Elements count */
+       &asn_SPC_SeNBAdditionRequestReject_IEs_specs_381        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_388[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReconfigurationComplete_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReconfigurationComplete_IEs__value, choice.ResponseInformationSeNBReconfComp),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_ResponseInformationSeNBReconfComp,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ResponseInformationSeNBReconfComp"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReconfigurationComplete_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_388[] = { 0, 2, 1 };
+static const unsigned asn_MAP_value_from_canonical_388[] = { 0, 2, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_388[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* success */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reject-by-MeNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_388 = {
+       sizeof(struct SeNBReconfigurationComplete_IEs__value),
+       offsetof(struct SeNBReconfigurationComplete_IEs__value, _asn_ctx),
+       offsetof(struct SeNBReconfigurationComplete_IEs__value, present),
+       sizeof(((struct SeNBReconfigurationComplete_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_388,
+       4,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_388,
+       asn_MAP_value_from_canonical_388,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_388 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_388,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_388        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SeNBReconfigurationComplete_IEs_385[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReconfigurationComplete_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_386, &asn_PER_memb_id_constr_386,  memb_id_constraint_385 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReconfigurationComplete_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SeNBReconfigurationComplete_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_387, &asn_PER_memb_criticality_constr_387,  memb_criticality_constraint_385 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBReconfigurationComplete_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_388,
+               select_SeNBReconfigurationComplete_IEs_value_type,
+               { &asn_OER_memb_value_constr_388, &asn_PER_memb_value_constr_388,  memb_value_constraint_385 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBReconfigurationComplete_IEs_tags_385[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBReconfigurationComplete_IEs_tag2el_385[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBReconfigurationComplete_IEs_specs_385 = {
+       sizeof(struct SeNBReconfigurationComplete_IEs),
+       offsetof(struct SeNBReconfigurationComplete_IEs, _asn_ctx),
+       asn_MAP_SeNBReconfigurationComplete_IEs_tag2el_385,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBReconfigurationComplete_IEs = {
+       "SeNBReconfigurationComplete-IEs",
+       "SeNBReconfigurationComplete-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBReconfigurationComplete_IEs_tags_385,
+       sizeof(asn_DEF_SeNBReconfigurationComplete_IEs_tags_385)
+               /sizeof(asn_DEF_SeNBReconfigurationComplete_IEs_tags_385[0]), /* 1 */
+       asn_DEF_SeNBReconfigurationComplete_IEs_tags_385,       /* Same as above */
+       sizeof(asn_DEF_SeNBReconfigurationComplete_IEs_tags_385)
+               /sizeof(asn_DEF_SeNBReconfigurationComplete_IEs_tags_385[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBReconfigurationComplete_IEs_385,
+       3,      /* Elements count */
+       &asn_SPC_SeNBReconfigurationComplete_IEs_specs_385      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_392[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs__value, choice.SCGChangeIndication),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_SCGChangeIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SCGChangeIndication"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs__value, choice.PLMN_Identity),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PLMN-Identity"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs__value, choice.UE_ContextInformationSeNBModReq),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UE_ContextInformationSeNBModReq,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-ContextInformationSeNBModReq"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs__value, choice.MeNBtoSeNBContainer),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_MeNBtoSeNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MeNBtoSeNBContainer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs__value, choice.CSGMembershipStatus),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_CSGMembershipStatus,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CSGMembershipStatus"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_392[] = { 0, 7, 3, 5, 2, 6, 4, 1 };
+static const unsigned asn_MAP_value_from_canonical_392[] = { 0, 7, 4, 2, 6, 3, 5, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_392[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 7, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 1 }, /* PLMN-Identity */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 5, -1, 0 }, /* MeNBtoSeNBContainer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 1 }, /* SCGChangeIndication */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 6, -1, 0 }, /* CSGMembershipStatus */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 0 }, /* UE-ContextInformationSeNBModReq */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_392 = {
+       sizeof(struct SeNBModificationRequest_IEs__value),
+       offsetof(struct SeNBModificationRequest_IEs__value, _asn_ctx),
+       offsetof(struct SeNBModificationRequest_IEs__value, present),
+       sizeof(((struct SeNBModificationRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_392,
+       11,     /* Count of tags in the map */
+       asn_MAP_value_to_canonical_392,
+       asn_MAP_value_from_canonical_392,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_392 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_392,
+       8,      /* Elements count */
+       &asn_SPC_value_specs_392        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SeNBModificationRequest_IEs_389[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_390, &asn_PER_memb_id_constr_390,  memb_id_constraint_389 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SeNBModificationRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_391, &asn_PER_memb_criticality_constr_391,  memb_criticality_constraint_389 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_392,
+               select_SeNBModificationRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_392, &asn_PER_memb_value_constr_392,  memb_value_constraint_389 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBModificationRequest_IEs_tags_389[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRequest_IEs_tag2el_389[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequest_IEs_specs_389 = {
+       sizeof(struct SeNBModificationRequest_IEs),
+       offsetof(struct SeNBModificationRequest_IEs, _asn_ctx),
+       asn_MAP_SeNBModificationRequest_IEs_tag2el_389,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequest_IEs = {
+       "SeNBModificationRequest-IEs",
+       "SeNBModificationRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBModificationRequest_IEs_tags_389,
+       sizeof(asn_DEF_SeNBModificationRequest_IEs_tags_389)
+               /sizeof(asn_DEF_SeNBModificationRequest_IEs_tags_389[0]), /* 1 */
+       asn_DEF_SeNBModificationRequest_IEs_tags_389,   /* Same as above */
+       sizeof(asn_DEF_SeNBModificationRequest_IEs_tags_389)
+               /sizeof(asn_DEF_SeNBModificationRequest_IEs_tags_389[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBModificationRequest_IEs_389,
+       3,      /* Elements count */
+       &asn_SPC_SeNBModificationRequest_IEs_specs_389  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_396[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeAdded_ModAckList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToBeAdded-ModAckList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeModified_ModAckList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToBeModified-ModAckList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeReleased_ModAckList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToBeReleased-ModAckList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, choice.E_RAB_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RAB_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RAB-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, choice.SeNBtoMeNBContainer),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_SeNBtoMeNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBtoMeNBContainer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_396[] = { 0, 7, 5, 1, 2, 3, 4, 6 };
+static const unsigned asn_MAP_value_from_canonical_396[] = { 0, 3, 4, 5, 6, 2, 7, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_396[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 7, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 5, 0, 0 }, /* SeNBtoMeNBContainer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 4 }, /* E-RABs-Admitted-ToBeAdded-ModAckList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 3 }, /* E-RABs-Admitted-ToBeModified-ModAckList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 2 }, /* E-RABs-Admitted-ToBeReleased-ModAckList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -3, 1 }, /* E-RAB-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -4, 0 } /* CriticalityDiagnostics */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_396 = {
+       sizeof(struct SeNBModificationRequestAcknowledge_IEs__value),
+       offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, _asn_ctx),
+       offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, present),
+       sizeof(((struct SeNBModificationRequestAcknowledge_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_396,
+       8,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_396,
+       asn_MAP_value_from_canonical_396,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_396 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_396,
+       8,      /* Elements count */
+       &asn_SPC_value_specs_396        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SeNBModificationRequestAcknowledge_IEs_393[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_394, &asn_PER_memb_id_constr_394,  memb_id_constraint_393 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SeNBModificationRequestAcknowledge_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_395, &asn_PER_memb_criticality_constr_395,  memb_criticality_constraint_393 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_396,
+               select_SeNBModificationRequestAcknowledge_IEs_value_type,
+               { &asn_OER_memb_value_constr_396, &asn_PER_memb_value_constr_396,  memb_value_constraint_393 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBModificationRequestAcknowledge_IEs_tags_393[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRequestAcknowledge_IEs_tag2el_393[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequestAcknowledge_IEs_specs_393 = {
+       sizeof(struct SeNBModificationRequestAcknowledge_IEs),
+       offsetof(struct SeNBModificationRequestAcknowledge_IEs, _asn_ctx),
+       asn_MAP_SeNBModificationRequestAcknowledge_IEs_tag2el_393,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestAcknowledge_IEs = {
+       "SeNBModificationRequestAcknowledge-IEs",
+       "SeNBModificationRequestAcknowledge-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBModificationRequestAcknowledge_IEs_tags_393,
+       sizeof(asn_DEF_SeNBModificationRequestAcknowledge_IEs_tags_393)
+               /sizeof(asn_DEF_SeNBModificationRequestAcknowledge_IEs_tags_393[0]), /* 1 */
+       asn_DEF_SeNBModificationRequestAcknowledge_IEs_tags_393,        /* Same as above */
+       sizeof(asn_DEF_SeNBModificationRequestAcknowledge_IEs_tags_393)
+               /sizeof(asn_DEF_SeNBModificationRequestAcknowledge_IEs_tags_393[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBModificationRequestAcknowledge_IEs_393,
+       3,      /* Elements count */
+       &asn_SPC_SeNBModificationRequestAcknowledge_IEs_specs_393       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_400[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestReject_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestReject_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestReject_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestReject_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_400[] = { 0, 3, 2, 1 };
+static const unsigned asn_MAP_value_from_canonical_400[] = { 0, 3, 2, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_400[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_400 = {
+       sizeof(struct SeNBModificationRequestReject_IEs__value),
+       offsetof(struct SeNBModificationRequestReject_IEs__value, _asn_ctx),
+       offsetof(struct SeNBModificationRequestReject_IEs__value, present),
+       sizeof(((struct SeNBModificationRequestReject_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_400,
+       7,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_400,
+       asn_MAP_value_from_canonical_400,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_400 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_400,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_400        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SeNBModificationRequestReject_IEs_397[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestReject_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_398, &asn_PER_memb_id_constr_398,  memb_id_constraint_397 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestReject_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SeNBModificationRequestReject_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_399, &asn_PER_memb_criticality_constr_399,  memb_criticality_constraint_397 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestReject_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_400,
+               select_SeNBModificationRequestReject_IEs_value_type,
+               { &asn_OER_memb_value_constr_400, &asn_PER_memb_value_constr_400,  memb_value_constraint_397 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBModificationRequestReject_IEs_tags_397[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRequestReject_IEs_tag2el_397[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequestReject_IEs_specs_397 = {
+       sizeof(struct SeNBModificationRequestReject_IEs),
+       offsetof(struct SeNBModificationRequestReject_IEs, _asn_ctx),
+       asn_MAP_SeNBModificationRequestReject_IEs_tag2el_397,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestReject_IEs = {
+       "SeNBModificationRequestReject-IEs",
+       "SeNBModificationRequestReject-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBModificationRequestReject_IEs_tags_397,
+       sizeof(asn_DEF_SeNBModificationRequestReject_IEs_tags_397)
+               /sizeof(asn_DEF_SeNBModificationRequestReject_IEs_tags_397[0]), /* 1 */
+       asn_DEF_SeNBModificationRequestReject_IEs_tags_397,     /* Same as above */
+       sizeof(asn_DEF_SeNBModificationRequestReject_IEs_tags_397)
+               /sizeof(asn_DEF_SeNBModificationRequestReject_IEs_tags_397[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBModificationRequestReject_IEs_397,
+       3,      /* Elements count */
+       &asn_SPC_SeNBModificationRequestReject_IEs_specs_397    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_404[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs__value, choice.SCGChangeIndication),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_SCGChangeIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SCGChangeIndication"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs__value, choice.E_RABs_ToBeReleased_ModReqd),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_ModReqd,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-ModReqd"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs__value, choice.SeNBtoMeNBContainer),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_SeNBtoMeNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBtoMeNBContainer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_404[] = { 0, 5, 4, 2, 3, 1 };
+static const unsigned asn_MAP_value_from_canonical_404[] = { 0, 5, 3, 4, 2, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_404[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 5, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 0 }, /* SeNBtoMeNBContainer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* SCGChangeIndication */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* E-RABs-ToBeReleased-ModReqd */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_404 = {
+       sizeof(struct SeNBModificationRequired_IEs__value),
+       offsetof(struct SeNBModificationRequired_IEs__value, _asn_ctx),
+       offsetof(struct SeNBModificationRequired_IEs__value, present),
+       sizeof(((struct SeNBModificationRequired_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_404,
+       9,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_404,
+       asn_MAP_value_from_canonical_404,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_404 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_404,
+       6,      /* Elements count */
+       &asn_SPC_value_specs_404        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SeNBModificationRequired_IEs_401[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_402, &asn_PER_memb_id_constr_402,  memb_id_constraint_401 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SeNBModificationRequired_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_403, &asn_PER_memb_criticality_constr_403,  memb_criticality_constraint_401 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_404,
+               select_SeNBModificationRequired_IEs_value_type,
+               { &asn_OER_memb_value_constr_404, &asn_PER_memb_value_constr_404,  memb_value_constraint_401 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBModificationRequired_IEs_tags_401[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRequired_IEs_tag2el_401[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequired_IEs_specs_401 = {
+       sizeof(struct SeNBModificationRequired_IEs),
+       offsetof(struct SeNBModificationRequired_IEs, _asn_ctx),
+       asn_MAP_SeNBModificationRequired_IEs_tag2el_401,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequired_IEs = {
+       "SeNBModificationRequired-IEs",
+       "SeNBModificationRequired-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBModificationRequired_IEs_tags_401,
+       sizeof(asn_DEF_SeNBModificationRequired_IEs_tags_401)
+               /sizeof(asn_DEF_SeNBModificationRequired_IEs_tags_401[0]), /* 1 */
+       asn_DEF_SeNBModificationRequired_IEs_tags_401,  /* Same as above */
+       sizeof(asn_DEF_SeNBModificationRequired_IEs_tags_401)
+               /sizeof(asn_DEF_SeNBModificationRequired_IEs_tags_401[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBModificationRequired_IEs_401,
+       3,      /* Elements count */
+       &asn_SPC_SeNBModificationRequired_IEs_specs_401 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_408[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationConfirm_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationConfirm_IEs__value, choice.MeNBtoSeNBContainer),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_MeNBtoSeNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MeNBtoSeNBContainer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationConfirm_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationConfirm_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_408[] = { 0, 3, 1, 2 };
+static const unsigned asn_MAP_value_from_canonical_408[] = { 0, 2, 3, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_408[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 0 }, /* MeNBtoSeNBContainer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* CriticalityDiagnostics */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_408 = {
+       sizeof(struct SeNBModificationConfirm_IEs__value),
+       offsetof(struct SeNBModificationConfirm_IEs__value, _asn_ctx),
+       offsetof(struct SeNBModificationConfirm_IEs__value, present),
+       sizeof(((struct SeNBModificationConfirm_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_408,
+       4,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_408,
+       asn_MAP_value_from_canonical_408,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_408 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_408,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_408        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SeNBModificationConfirm_IEs_405[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationConfirm_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_406, &asn_PER_memb_id_constr_406,  memb_id_constraint_405 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationConfirm_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SeNBModificationConfirm_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_407, &asn_PER_memb_criticality_constr_407,  memb_criticality_constraint_405 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBModificationConfirm_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_408,
+               select_SeNBModificationConfirm_IEs_value_type,
+               { &asn_OER_memb_value_constr_408, &asn_PER_memb_value_constr_408,  memb_value_constraint_405 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBModificationConfirm_IEs_tags_405[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationConfirm_IEs_tag2el_405[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationConfirm_IEs_specs_405 = {
+       sizeof(struct SeNBModificationConfirm_IEs),
+       offsetof(struct SeNBModificationConfirm_IEs, _asn_ctx),
+       asn_MAP_SeNBModificationConfirm_IEs_tag2el_405,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBModificationConfirm_IEs = {
+       "SeNBModificationConfirm-IEs",
+       "SeNBModificationConfirm-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBModificationConfirm_IEs_tags_405,
+       sizeof(asn_DEF_SeNBModificationConfirm_IEs_tags_405)
+               /sizeof(asn_DEF_SeNBModificationConfirm_IEs_tags_405[0]), /* 1 */
+       asn_DEF_SeNBModificationConfirm_IEs_tags_405,   /* Same as above */
+       sizeof(asn_DEF_SeNBModificationConfirm_IEs_tags_405)
+               /sizeof(asn_DEF_SeNBModificationConfirm_IEs_tags_405[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBModificationConfirm_IEs_405,
+       3,      /* Elements count */
+       &asn_SPC_SeNBModificationConfirm_IEs_specs_405  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_412[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse_IEs__value, choice.MeNBtoSeNBContainer),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_MeNBtoSeNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MeNBtoSeNBContainer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_412[] = { 0, 4, 2, 3, 1 };
+static const unsigned asn_MAP_value_from_canonical_412[] = { 0, 4, 2, 3, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_412[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* MeNBtoSeNBContainer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_412 = {
+       sizeof(struct SeNBModificationRefuse_IEs__value),
+       offsetof(struct SeNBModificationRefuse_IEs__value, _asn_ctx),
+       offsetof(struct SeNBModificationRefuse_IEs__value, present),
+       sizeof(((struct SeNBModificationRefuse_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_412,
+       8,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_412,
+       asn_MAP_value_from_canonical_412,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_412 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_412,
+       5,      /* Elements count */
+       &asn_SPC_value_specs_412        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SeNBModificationRefuse_IEs_409[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_410, &asn_PER_memb_id_constr_410,  memb_id_constraint_409 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SeNBModificationRefuse_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_411, &asn_PER_memb_criticality_constr_411,  memb_criticality_constraint_409 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_412,
+               select_SeNBModificationRefuse_IEs_value_type,
+               { &asn_OER_memb_value_constr_412, &asn_PER_memb_value_constr_412,  memb_value_constraint_409 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBModificationRefuse_IEs_tags_409[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRefuse_IEs_tag2el_409[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRefuse_IEs_specs_409 = {
+       sizeof(struct SeNBModificationRefuse_IEs),
+       offsetof(struct SeNBModificationRefuse_IEs, _asn_ctx),
+       asn_MAP_SeNBModificationRefuse_IEs_tag2el_409,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBModificationRefuse_IEs = {
+       "SeNBModificationRefuse-IEs",
+       "SeNBModificationRefuse-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBModificationRefuse_IEs_tags_409,
+       sizeof(asn_DEF_SeNBModificationRefuse_IEs_tags_409)
+               /sizeof(asn_DEF_SeNBModificationRefuse_IEs_tags_409[0]), /* 1 */
+       asn_DEF_SeNBModificationRefuse_IEs_tags_409,    /* Same as above */
+       sizeof(asn_DEF_SeNBModificationRefuse_IEs_tags_409)
+               /sizeof(asn_DEF_SeNBModificationRefuse_IEs_tags_409[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBModificationRefuse_IEs_409,
+       3,      /* Elements count */
+       &asn_SPC_SeNBModificationRefuse_IEs_specs_409   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_416[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs__value, choice.E_RABs_ToBeReleased_List_RelReq),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_List_RelReq,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-List-RelReq"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs__value, choice.UE_ContextKeptIndicator),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_UE_ContextKeptIndicator,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-ContextKeptIndicator"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs__value, choice.MakeBeforeBreakIndicator),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_MakeBeforeBreakIndicator,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MakeBeforeBreakIndicator"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_416[] = { 0, 4, 3, 5, 2, 1 };
+static const unsigned asn_MAP_value_from_canonical_416[] = { 0, 5, 4, 2, 1, 3 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_416[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 1 }, /* UE-ContextKeptIndicator */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, -1, 0 }, /* MakeBeforeBreakIndicator */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* E-RABs-ToBeReleased-List-RelReq */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_416 = {
+       sizeof(struct SeNBReleaseRequest_IEs__value),
+       offsetof(struct SeNBReleaseRequest_IEs__value, _asn_ctx),
+       offsetof(struct SeNBReleaseRequest_IEs__value, present),
+       sizeof(((struct SeNBReleaseRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_416,
+       9,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_416,
+       asn_MAP_value_from_canonical_416,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_416 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_416,
+       6,      /* Elements count */
+       &asn_SPC_value_specs_416        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SeNBReleaseRequest_IEs_413[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_414, &asn_PER_memb_id_constr_414,  memb_id_constraint_413 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SeNBReleaseRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_415, &asn_PER_memb_criticality_constr_415,  memb_criticality_constraint_413 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_416,
+               select_SeNBReleaseRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_416, &asn_PER_memb_value_constr_416,  memb_value_constraint_413 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBReleaseRequest_IEs_tags_413[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBReleaseRequest_IEs_tag2el_413[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseRequest_IEs_specs_413 = {
+       sizeof(struct SeNBReleaseRequest_IEs),
+       offsetof(struct SeNBReleaseRequest_IEs, _asn_ctx),
+       asn_MAP_SeNBReleaseRequest_IEs_tag2el_413,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequest_IEs = {
+       "SeNBReleaseRequest-IEs",
+       "SeNBReleaseRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBReleaseRequest_IEs_tags_413,
+       sizeof(asn_DEF_SeNBReleaseRequest_IEs_tags_413)
+               /sizeof(asn_DEF_SeNBReleaseRequest_IEs_tags_413[0]), /* 1 */
+       asn_DEF_SeNBReleaseRequest_IEs_tags_413,        /* Same as above */
+       sizeof(asn_DEF_SeNBReleaseRequest_IEs_tags_413)
+               /sizeof(asn_DEF_SeNBReleaseRequest_IEs_tags_413[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBReleaseRequest_IEs_413,
+       3,      /* Elements count */
+       &asn_SPC_SeNBReleaseRequest_IEs_specs_413       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_420[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequired_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequired_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequired_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_420[] = { 0, 2, 1 };
+static const unsigned asn_MAP_value_from_canonical_420[] = { 0, 2, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_420[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_420 = {
+       sizeof(struct SeNBReleaseRequired_IEs__value),
+       offsetof(struct SeNBReleaseRequired_IEs__value, _asn_ctx),
+       offsetof(struct SeNBReleaseRequired_IEs__value, present),
+       sizeof(((struct SeNBReleaseRequired_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_420,
+       6,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_420,
+       asn_MAP_value_from_canonical_420,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_420 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_420,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_420        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SeNBReleaseRequired_IEs_417[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequired_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_418, &asn_PER_memb_id_constr_418,  memb_id_constraint_417 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequired_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SeNBReleaseRequired_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_419, &asn_PER_memb_criticality_constr_419,  memb_criticality_constraint_417 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequired_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_420,
+               select_SeNBReleaseRequired_IEs_value_type,
+               { &asn_OER_memb_value_constr_420, &asn_PER_memb_value_constr_420,  memb_value_constraint_417 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBReleaseRequired_IEs_tags_417[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBReleaseRequired_IEs_tag2el_417[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseRequired_IEs_specs_417 = {
+       sizeof(struct SeNBReleaseRequired_IEs),
+       offsetof(struct SeNBReleaseRequired_IEs, _asn_ctx),
+       asn_MAP_SeNBReleaseRequired_IEs_tag2el_417,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequired_IEs = {
+       "SeNBReleaseRequired-IEs",
+       "SeNBReleaseRequired-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBReleaseRequired_IEs_tags_417,
+       sizeof(asn_DEF_SeNBReleaseRequired_IEs_tags_417)
+               /sizeof(asn_DEF_SeNBReleaseRequired_IEs_tags_417[0]), /* 1 */
+       asn_DEF_SeNBReleaseRequired_IEs_tags_417,       /* Same as above */
+       sizeof(asn_DEF_SeNBReleaseRequired_IEs_tags_417)
+               /sizeof(asn_DEF_SeNBReleaseRequired_IEs_tags_417[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBReleaseRequired_IEs_417,
+       3,      /* Elements count */
+       &asn_SPC_SeNBReleaseRequired_IEs_specs_417      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_424[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseConfirm_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseConfirm_IEs__value, choice.E_RABs_ToBeReleased_List_RelConf),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_List_RelConf,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-List-RelConf"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseConfirm_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseConfirm_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_424[] = { 0, 3, 1, 2 };
+static const unsigned asn_MAP_value_from_canonical_424[] = { 0, 2, 3, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_424[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* E-RABs-ToBeReleased-List-RelConf */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_424 = {
+       sizeof(struct SeNBReleaseConfirm_IEs__value),
+       offsetof(struct SeNBReleaseConfirm_IEs__value, _asn_ctx),
+       offsetof(struct SeNBReleaseConfirm_IEs__value, present),
+       sizeof(((struct SeNBReleaseConfirm_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_424,
+       4,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_424,
+       asn_MAP_value_from_canonical_424,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_424 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_424,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_424        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SeNBReleaseConfirm_IEs_421[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseConfirm_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_422, &asn_PER_memb_id_constr_422,  memb_id_constraint_421 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseConfirm_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SeNBReleaseConfirm_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_423, &asn_PER_memb_criticality_constr_423,  memb_criticality_constraint_421 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseConfirm_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_424,
+               select_SeNBReleaseConfirm_IEs_value_type,
+               { &asn_OER_memb_value_constr_424, &asn_PER_memb_value_constr_424,  memb_value_constraint_421 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBReleaseConfirm_IEs_tags_421[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBReleaseConfirm_IEs_tag2el_421[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseConfirm_IEs_specs_421 = {
+       sizeof(struct SeNBReleaseConfirm_IEs),
+       offsetof(struct SeNBReleaseConfirm_IEs, _asn_ctx),
+       asn_MAP_SeNBReleaseConfirm_IEs_tag2el_421,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBReleaseConfirm_IEs = {
+       "SeNBReleaseConfirm-IEs",
+       "SeNBReleaseConfirm-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBReleaseConfirm_IEs_tags_421,
+       sizeof(asn_DEF_SeNBReleaseConfirm_IEs_tags_421)
+               /sizeof(asn_DEF_SeNBReleaseConfirm_IEs_tags_421[0]), /* 1 */
+       asn_DEF_SeNBReleaseConfirm_IEs_tags_421,        /* Same as above */
+       sizeof(asn_DEF_SeNBReleaseConfirm_IEs_tags_421)
+               /sizeof(asn_DEF_SeNBReleaseConfirm_IEs_tags_421[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBReleaseConfirm_IEs_421,
+       3,      /* Elements count */
+       &asn_SPC_SeNBReleaseConfirm_IEs_specs_421       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_428[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBCounterCheckRequest_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBCounterCheckRequest_IEs__value, choice.E_RABs_SubjectToCounterCheck_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_SubjectToCounterCheck_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-SubjectToCounterCheck-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBCounterCheckRequest_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_428[] = { 0, 2, 1 };
+static const unsigned asn_MAP_value_from_canonical_428[] = { 0, 2, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_428[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* E-RABs-SubjectToCounterCheck-List */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_428 = {
+       sizeof(struct SeNBCounterCheckRequest_IEs__value),
+       offsetof(struct SeNBCounterCheckRequest_IEs__value, _asn_ctx),
+       offsetof(struct SeNBCounterCheckRequest_IEs__value, present),
+       sizeof(((struct SeNBCounterCheckRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_428,
+       3,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_428,
+       asn_MAP_value_from_canonical_428,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_428 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_428,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_428        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SeNBCounterCheckRequest_IEs_425[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBCounterCheckRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_426, &asn_PER_memb_id_constr_426,  memb_id_constraint_425 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBCounterCheckRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SeNBCounterCheckRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_427, &asn_PER_memb_criticality_constr_427,  memb_criticality_constraint_425 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBCounterCheckRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_428,
+               select_SeNBCounterCheckRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_428, &asn_PER_memb_value_constr_428,  memb_value_constraint_425 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBCounterCheckRequest_IEs_tags_425[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBCounterCheckRequest_IEs_tag2el_425[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBCounterCheckRequest_IEs_specs_425 = {
+       sizeof(struct SeNBCounterCheckRequest_IEs),
+       offsetof(struct SeNBCounterCheckRequest_IEs, _asn_ctx),
+       asn_MAP_SeNBCounterCheckRequest_IEs_tag2el_425,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBCounterCheckRequest_IEs = {
+       "SeNBCounterCheckRequest-IEs",
+       "SeNBCounterCheckRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBCounterCheckRequest_IEs_tags_425,
+       sizeof(asn_DEF_SeNBCounterCheckRequest_IEs_tags_425)
+               /sizeof(asn_DEF_SeNBCounterCheckRequest_IEs_tags_425[0]), /* 1 */
+       asn_DEF_SeNBCounterCheckRequest_IEs_tags_425,   /* Same as above */
+       sizeof(asn_DEF_SeNBCounterCheckRequest_IEs_tags_425)
+               /sizeof(asn_DEF_SeNBCounterCheckRequest_IEs_tags_425[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBCounterCheckRequest_IEs_425,
+       3,      /* Elements count */
+       &asn_SPC_SeNBCounterCheckRequest_IEs_specs_425  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_432[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2RemovalRequest_IEs__value, choice.GlobalENB_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GlobalENB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GlobalENB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2RemovalRequest_IEs__value, choice.X2BenefitValue),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_X2BenefitValue,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "X2BenefitValue"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_432[] = { 1, 0 };
+static const unsigned asn_MAP_value_from_canonical_432[] = { 1, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_432[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* X2BenefitValue */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GlobalENB-ID */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_432 = {
+       sizeof(struct X2RemovalRequest_IEs__value),
+       offsetof(struct X2RemovalRequest_IEs__value, _asn_ctx),
+       offsetof(struct X2RemovalRequest_IEs__value, present),
+       sizeof(((struct X2RemovalRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_432,
+       2,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_432,
+       asn_MAP_value_from_canonical_432,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_432 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_432,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_432        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_X2RemovalRequest_IEs_429[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2RemovalRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_430, &asn_PER_memb_id_constr_430,  memb_id_constraint_429 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2RemovalRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_X2RemovalRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_431, &asn_PER_memb_criticality_constr_431,  memb_criticality_constraint_429 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2RemovalRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_432,
+               select_X2RemovalRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_432, &asn_PER_memb_value_constr_432,  memb_value_constraint_429 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_X2RemovalRequest_IEs_tags_429[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_X2RemovalRequest_IEs_tag2el_429[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_X2RemovalRequest_IEs_specs_429 = {
+       sizeof(struct X2RemovalRequest_IEs),
+       offsetof(struct X2RemovalRequest_IEs, _asn_ctx),
+       asn_MAP_X2RemovalRequest_IEs_tag2el_429,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_X2RemovalRequest_IEs = {
+       "X2RemovalRequest-IEs",
+       "X2RemovalRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_X2RemovalRequest_IEs_tags_429,
+       sizeof(asn_DEF_X2RemovalRequest_IEs_tags_429)
+               /sizeof(asn_DEF_X2RemovalRequest_IEs_tags_429[0]), /* 1 */
+       asn_DEF_X2RemovalRequest_IEs_tags_429,  /* Same as above */
+       sizeof(asn_DEF_X2RemovalRequest_IEs_tags_429)
+               /sizeof(asn_DEF_X2RemovalRequest_IEs_tags_429[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_X2RemovalRequest_IEs_429,
+       3,      /* Elements count */
+       &asn_SPC_X2RemovalRequest_IEs_specs_429 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_436[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2RemovalResponse_IEs__value, choice.GlobalENB_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GlobalENB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GlobalENB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2RemovalResponse_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_436[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* GlobalENB-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* CriticalityDiagnostics */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_436 = {
+       sizeof(struct X2RemovalResponse_IEs__value),
+       offsetof(struct X2RemovalResponse_IEs__value, _asn_ctx),
+       offsetof(struct X2RemovalResponse_IEs__value, present),
+       sizeof(((struct X2RemovalResponse_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_436,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_436 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_436,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_436        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_X2RemovalResponse_IEs_433[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2RemovalResponse_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_434, &asn_PER_memb_id_constr_434,  memb_id_constraint_433 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2RemovalResponse_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_X2RemovalResponse_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_435, &asn_PER_memb_criticality_constr_435,  memb_criticality_constraint_433 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2RemovalResponse_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_436,
+               select_X2RemovalResponse_IEs_value_type,
+               { &asn_OER_memb_value_constr_436, &asn_PER_memb_value_constr_436,  memb_value_constraint_433 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_X2RemovalResponse_IEs_tags_433[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_X2RemovalResponse_IEs_tag2el_433[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_X2RemovalResponse_IEs_specs_433 = {
+       sizeof(struct X2RemovalResponse_IEs),
+       offsetof(struct X2RemovalResponse_IEs, _asn_ctx),
+       asn_MAP_X2RemovalResponse_IEs_tag2el_433,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_X2RemovalResponse_IEs = {
+       "X2RemovalResponse-IEs",
+       "X2RemovalResponse-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_X2RemovalResponse_IEs_tags_433,
+       sizeof(asn_DEF_X2RemovalResponse_IEs_tags_433)
+               /sizeof(asn_DEF_X2RemovalResponse_IEs_tags_433[0]), /* 1 */
+       asn_DEF_X2RemovalResponse_IEs_tags_433, /* Same as above */
+       sizeof(asn_DEF_X2RemovalResponse_IEs_tags_433)
+               /sizeof(asn_DEF_X2RemovalResponse_IEs_tags_433[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_X2RemovalResponse_IEs_433,
+       3,      /* Elements count */
+       &asn_SPC_X2RemovalResponse_IEs_specs_433        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_440[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2RemovalFailure_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2RemovalFailure_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_440[] = { 1, 0 };
+static const unsigned asn_MAP_value_from_canonical_440[] = { 1, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_440[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_440 = {
+       sizeof(struct X2RemovalFailure_IEs__value),
+       offsetof(struct X2RemovalFailure_IEs__value, _asn_ctx),
+       offsetof(struct X2RemovalFailure_IEs__value, present),
+       sizeof(((struct X2RemovalFailure_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_440,
+       5,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_440,
+       asn_MAP_value_from_canonical_440,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_440 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_440,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_440        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_X2RemovalFailure_IEs_437[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2RemovalFailure_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_438, &asn_PER_memb_id_constr_438,  memb_id_constraint_437 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct X2RemovalFailure_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_X2RemovalFailure_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_439, &asn_PER_memb_criticality_constr_439,  memb_criticality_constraint_437 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2RemovalFailure_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_440,
+               select_X2RemovalFailure_IEs_value_type,
+               { &asn_OER_memb_value_constr_440, &asn_PER_memb_value_constr_440,  memb_value_constraint_437 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_X2RemovalFailure_IEs_tags_437[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_X2RemovalFailure_IEs_tag2el_437[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_X2RemovalFailure_IEs_specs_437 = {
+       sizeof(struct X2RemovalFailure_IEs),
+       offsetof(struct X2RemovalFailure_IEs, _asn_ctx),
+       asn_MAP_X2RemovalFailure_IEs_tag2el_437,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_X2RemovalFailure_IEs = {
+       "X2RemovalFailure-IEs",
+       "X2RemovalFailure-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_X2RemovalFailure_IEs_tags_437,
+       sizeof(asn_DEF_X2RemovalFailure_IEs_tags_437)
+               /sizeof(asn_DEF_X2RemovalFailure_IEs_tags_437[0]), /* 1 */
+       asn_DEF_X2RemovalFailure_IEs_tags_437,  /* Same as above */
+       sizeof(asn_DEF_X2RemovalFailure_IEs_tags_437)
+               /sizeof(asn_DEF_X2RemovalFailure_IEs_tags_437[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_X2RemovalFailure_IEs_437,
+       3,      /* Elements count */
+       &asn_SPC_X2RemovalFailure_IEs_specs_437 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_444[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs__value, choice.ResumeID),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_ResumeID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ResumeID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs__value, choice.ShortMAC_I),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_ShortMAC_I,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ShortMAC-I"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs__value, choice.EUTRANCellIdentifier),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_EUTRANCellIdentifier,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "EUTRANCellIdentifier"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs__value, choice.CRNTI),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_CRNTI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CRNTI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs__value, choice.PCI),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_PCI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PCI"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_444[] = { 0, 1, 6, 3, 4, 5, 2 };
+static const unsigned asn_MAP_value_from_canonical_444[] = { 0, 1, 6, 3, 4, 5, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_444[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 6, -2, 0 }, /* PCI */
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 3, 0, 2 }, /* ShortMAC-I */
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 4, -1, 1 }, /* EUTRANCellIdentifier */
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 5, -2, 0 }, /* CRNTI */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* non-truncated */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 } /* truncated */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_444 = {
+       sizeof(struct RetrieveUEContextRequest_IEs__value),
+       offsetof(struct RetrieveUEContextRequest_IEs__value, _asn_ctx),
+       offsetof(struct RetrieveUEContextRequest_IEs__value, present),
+       sizeof(((struct RetrieveUEContextRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_444,
+       8,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_444,
+       asn_MAP_value_from_canonical_444,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_444 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_444,
+       7,      /* Elements count */
+       &asn_SPC_value_specs_444        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RetrieveUEContextRequest_IEs_441[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_442, &asn_PER_memb_id_constr_442,  memb_id_constraint_441 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RetrieveUEContextRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_443, &asn_PER_memb_criticality_constr_443,  memb_criticality_constraint_441 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_444,
+               select_RetrieveUEContextRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_444, &asn_PER_memb_value_constr_444,  memb_value_constraint_441 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RetrieveUEContextRequest_IEs_tags_441[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RetrieveUEContextRequest_IEs_tag2el_441[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextRequest_IEs_specs_441 = {
+       sizeof(struct RetrieveUEContextRequest_IEs),
+       offsetof(struct RetrieveUEContextRequest_IEs, _asn_ctx),
+       asn_MAP_RetrieveUEContextRequest_IEs_tag2el_441,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextRequest_IEs = {
+       "RetrieveUEContextRequest-IEs",
+       "RetrieveUEContextRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RetrieveUEContextRequest_IEs_tags_441,
+       sizeof(asn_DEF_RetrieveUEContextRequest_IEs_tags_441)
+               /sizeof(asn_DEF_RetrieveUEContextRequest_IEs_tags_441[0]), /* 1 */
+       asn_DEF_RetrieveUEContextRequest_IEs_tags_441,  /* Same as above */
+       sizeof(asn_DEF_RetrieveUEContextRequest_IEs_tags_441)
+               /sizeof(asn_DEF_RetrieveUEContextRequest_IEs_tags_441[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RetrieveUEContextRequest_IEs_441,
+       3,      /* Elements count */
+       &asn_SPC_RetrieveUEContextRequest_IEs_specs_441 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_448[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.GUMMEI),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GUMMEI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GUMMEI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.UE_ContextInformationRetrieve),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UE_ContextInformationRetrieve,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-ContextInformationRetrieve"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.TraceActivation),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_TraceActivation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "TraceActivation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.SRVCCOperationPossible),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_SRVCCOperationPossible,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SRVCCOperationPossible"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.Masked_IMEISV),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_Masked_IMEISV,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Masked-IMEISV"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.ExpectedUEBehaviour),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ExpectedUEBehaviour,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ExpectedUEBehaviour"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.ProSeAuthorized),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProSeAuthorized,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ProSeAuthorized"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.V2XServicesAuthorized),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_V2XServicesAuthorized,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "V2XServicesAuthorized"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.AerialUEsubscriptionInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_AerialUEsubscriptionInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "AerialUEsubscriptionInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.Subscription_Based_UE_DifferentiationInfo),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Subscription_Based_UE_DifferentiationInfo,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Subscription-Based-UE-DifferentiationInfo"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_448[] = { 0, 1, 6, 5, 11, 2, 3, 4, 7, 8, 9, 10, 12 };
+static const unsigned asn_MAP_value_from_canonical_448[] = { 0, 1, 5, 6, 7, 3, 2, 8, 9, 10, 11, 4, 12 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_448[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 6, 0, 0 }, /* Masked-IMEISV */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 1 }, /* SRVCCOperationPossible */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 11, -1, 0 }, /* AerialUEsubscriptionInformation */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 7 }, /* GUMMEI */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 6 }, /* UE-ContextInformationRetrieve */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 5 }, /* TraceActivation */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -3, 4 }, /* ExpectedUEBehaviour */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -4, 3 }, /* ProSeAuthorized */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -5, 2 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -6, 1 }, /* V2XServicesAuthorized */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -7, 0 } /* Subscription-Based-UE-DifferentiationInfo */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_448 = {
+       sizeof(struct RetrieveUEContextResponse_IEs__value),
+       offsetof(struct RetrieveUEContextResponse_IEs__value, _asn_ctx),
+       offsetof(struct RetrieveUEContextResponse_IEs__value, present),
+       sizeof(((struct RetrieveUEContextResponse_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_448,
+       13,     /* Count of tags in the map */
+       asn_MAP_value_to_canonical_448,
+       asn_MAP_value_from_canonical_448,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_448 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_448,
+       13,     /* Elements count */
+       &asn_SPC_value_specs_448        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RetrieveUEContextResponse_IEs_445[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_446, &asn_PER_memb_id_constr_446,  memb_id_constraint_445 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RetrieveUEContextResponse_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_447, &asn_PER_memb_criticality_constr_447,  memb_criticality_constraint_445 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_448,
+               select_RetrieveUEContextResponse_IEs_value_type,
+               { &asn_OER_memb_value_constr_448, &asn_PER_memb_value_constr_448,  memb_value_constraint_445 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RetrieveUEContextResponse_IEs_tags_445[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RetrieveUEContextResponse_IEs_tag2el_445[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextResponse_IEs_specs_445 = {
+       sizeof(struct RetrieveUEContextResponse_IEs),
+       offsetof(struct RetrieveUEContextResponse_IEs, _asn_ctx),
+       asn_MAP_RetrieveUEContextResponse_IEs_tag2el_445,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextResponse_IEs = {
+       "RetrieveUEContextResponse-IEs",
+       "RetrieveUEContextResponse-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RetrieveUEContextResponse_IEs_tags_445,
+       sizeof(asn_DEF_RetrieveUEContextResponse_IEs_tags_445)
+               /sizeof(asn_DEF_RetrieveUEContextResponse_IEs_tags_445[0]), /* 1 */
+       asn_DEF_RetrieveUEContextResponse_IEs_tags_445, /* Same as above */
+       sizeof(asn_DEF_RetrieveUEContextResponse_IEs_tags_445)
+               /sizeof(asn_DEF_RetrieveUEContextResponse_IEs_tags_445[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RetrieveUEContextResponse_IEs_445,
+       3,      /* Elements count */
+       &asn_SPC_RetrieveUEContextResponse_IEs_specs_445        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_452[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextFailure_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextFailure_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextFailure_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextFailure_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_452[] = { 0, 1, 3, 2 };
+static const unsigned asn_MAP_value_from_canonical_452[] = { 0, 1, 3, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_452[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_452 = {
+       sizeof(struct RetrieveUEContextFailure_IEs__value),
+       offsetof(struct RetrieveUEContextFailure_IEs__value, _asn_ctx),
+       offsetof(struct RetrieveUEContextFailure_IEs__value, present),
+       sizeof(((struct RetrieveUEContextFailure_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_452,
+       7,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_452,
+       asn_MAP_value_from_canonical_452,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_452 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_452,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_452        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RetrieveUEContextFailure_IEs_449[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextFailure_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_450, &asn_PER_memb_id_constr_450,  memb_id_constraint_449 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextFailure_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RetrieveUEContextFailure_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_451, &asn_PER_memb_criticality_constr_451,  memb_criticality_constraint_449 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextFailure_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_452,
+               select_RetrieveUEContextFailure_IEs_value_type,
+               { &asn_OER_memb_value_constr_452, &asn_PER_memb_value_constr_452,  memb_value_constraint_449 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RetrieveUEContextFailure_IEs_tags_449[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RetrieveUEContextFailure_IEs_tag2el_449[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextFailure_IEs_specs_449 = {
+       sizeof(struct RetrieveUEContextFailure_IEs),
+       offsetof(struct RetrieveUEContextFailure_IEs, _asn_ctx),
+       asn_MAP_RetrieveUEContextFailure_IEs_tag2el_449,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextFailure_IEs = {
+       "RetrieveUEContextFailure-IEs",
+       "RetrieveUEContextFailure-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RetrieveUEContextFailure_IEs_tags_449,
+       sizeof(asn_DEF_RetrieveUEContextFailure_IEs_tags_449)
+               /sizeof(asn_DEF_RetrieveUEContextFailure_IEs_tags_449[0]), /* 1 */
+       asn_DEF_RetrieveUEContextFailure_IEs_tags_449,  /* Same as above */
+       sizeof(asn_DEF_RetrieveUEContextFailure_IEs_tags_449)
+               /sizeof(asn_DEF_RetrieveUEContextFailure_IEs_tags_449[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RetrieveUEContextFailure_IEs_449,
+       3,      /* Elements count */
+       &asn_SPC_RetrieveUEContextFailure_IEs_specs_449 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_456[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.NRUESecurityCapabilities),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_NRUESecurityCapabilities,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "NRUESecurityCapabilities"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.SgNBSecurityKey),
+               (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
+               0,
+               &asn_DEF_SgNBSecurityKey,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBSecurityKey"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.UEAggregateMaximumBitRate),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UEAggregateMaximumBitRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UEAggregateMaximumBitRate"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.PLMN_Identity),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PLMN-Identity"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.HandoverRestrictionList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_HandoverRestrictionList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "HandoverRestrictionList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.E_RABs_ToBeAdded_SgNBAddReqList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeAdded-SgNBAddReqList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.MeNBtoSgNBContainer),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_MeNBtoSgNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MeNBtoSgNBContainer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.ExpectedUEBehaviour),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ExpectedUEBehaviour,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ExpectedUEBehaviour"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.SplitSRBs),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_SplitSRBs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SplitSRBs"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.MeNBResourceCoordinationInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MeNBResourceCoordinationInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MeNBResourceCoordinationInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.SGNB_Addition_Trigger_Ind),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_SGNB_Addition_Trigger_Ind,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SGNB-Addition-Trigger-Ind"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.SubscriberProfileIDforRFP),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SubscriberProfileIDforRFP,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SubscriberProfileIDforRFP"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.ECGI),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ECGI"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_456[] = { 0, 8, 10, 14, 2, 4, 7, 11, 13, 1, 3, 5, 6, 9, 12, 15 };
+static const unsigned asn_MAP_value_from_canonical_456[] = { 0, 9, 4, 10, 5, 11, 12, 6, 1, 13, 2, 7, 14, 8, 3, 15 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_456[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 3 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 8, -1, 2 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 10, -2, 1 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 14, -3, 0 }, /* SubscriberProfileIDforRFP */
+    { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 2, 0, 0 }, /* SgNBSecurityKey */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 1 }, /* PLMN-Identity */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 7, -1, 0 }, /* MeNBtoSgNBContainer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 11, 0, 1 }, /* SplitSRBs */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 13, -1, 0 }, /* SGNB-Addition-Trigger-Ind */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 6 }, /* NRUESecurityCapabilities */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 5 }, /* UEAggregateMaximumBitRate */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -2, 4 }, /* HandoverRestrictionList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -3, 3 }, /* E-RABs-ToBeAdded-SgNBAddReqList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -4, 2 }, /* ExpectedUEBehaviour */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -5, 1 }, /* MeNBResourceCoordinationInformation */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 15, -6, 0 } /* ECGI */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_456 = {
+       sizeof(struct SgNBAdditionRequest_IEs__value),
+       offsetof(struct SgNBAdditionRequest_IEs__value, _asn_ctx),
+       offsetof(struct SgNBAdditionRequest_IEs__value, present),
+       sizeof(((struct SgNBAdditionRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_456,
+       16,     /* Count of tags in the map */
+       asn_MAP_value_to_canonical_456,
+       asn_MAP_value_from_canonical_456,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_456 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_456,
+       16,     /* Elements count */
+       &asn_SPC_value_specs_456        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBAdditionRequest_IEs_453[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_454, &asn_PER_memb_id_constr_454,  memb_id_constraint_453 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBAdditionRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_455, &asn_PER_memb_criticality_constr_455,  memb_criticality_constraint_453 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_456,
+               select_SgNBAdditionRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_456, &asn_PER_memb_value_constr_456,  memb_value_constraint_453 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBAdditionRequest_IEs_tags_453[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBAdditionRequest_IEs_tag2el_453[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequest_IEs_specs_453 = {
+       sizeof(struct SgNBAdditionRequest_IEs),
+       offsetof(struct SgNBAdditionRequest_IEs, _asn_ctx),
+       asn_MAP_SgNBAdditionRequest_IEs_tag2el_453,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequest_IEs = {
+       "SgNBAdditionRequest-IEs",
+       "SgNBAdditionRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBAdditionRequest_IEs_tags_453,
+       sizeof(asn_DEF_SgNBAdditionRequest_IEs_tags_453)
+               /sizeof(asn_DEF_SgNBAdditionRequest_IEs_tags_453[0]), /* 1 */
+       asn_DEF_SgNBAdditionRequest_IEs_tags_453,       /* Same as above */
+       sizeof(asn_DEF_SgNBAdditionRequest_IEs_tags_453)
+               /sizeof(asn_DEF_SgNBAdditionRequest_IEs_tags_453[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBAdditionRequest_IEs_453,
+       3,      /* Elements count */
+       &asn_SPC_SgNBAdditionRequest_IEs_specs_453      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_460[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.E_RAB_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RAB_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RAB-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.SgNBtoMeNBContainer),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_SgNBtoMeNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBtoMeNBContainer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.SplitSRBs),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_SplitSRBs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SplitSRBs"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.SgNBResourceCoordinationInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBResourceCoordinationInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBResourceCoordinationInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.RRC_Config_Ind),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_RRC_Config_Ind,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RRC-Config-Ind"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_460[] = { 0, 1, 6, 4, 7, 9, 2, 3, 5, 8 };
+static const unsigned asn_MAP_value_from_canonical_460[] = { 0, 1, 6, 7, 3, 8, 2, 4, 9, 5 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_460[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 6, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 0 }, /* SgNBtoMeNBContainer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 7, 0, 1 }, /* SplitSRBs */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 9, -1, 0 }, /* RRC-Config-Ind */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 3 }, /* E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 2 }, /* E-RAB-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -2, 1 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -3, 0 } /* SgNBResourceCoordinationInformation */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_460 = {
+       sizeof(struct SgNBAdditionRequestAcknowledge_IEs__value),
+       offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, _asn_ctx),
+       offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, present),
+       sizeof(((struct SgNBAdditionRequestAcknowledge_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_460,
+       10,     /* Count of tags in the map */
+       asn_MAP_value_to_canonical_460,
+       asn_MAP_value_from_canonical_460,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_460 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_460,
+       10,     /* Elements count */
+       &asn_SPC_value_specs_460        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBAdditionRequestAcknowledge_IEs_457[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_458, &asn_PER_memb_id_constr_458,  memb_id_constraint_457 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBAdditionRequestAcknowledge_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_459, &asn_PER_memb_criticality_constr_459,  memb_criticality_constraint_457 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_460,
+               select_SgNBAdditionRequestAcknowledge_IEs_value_type,
+               { &asn_OER_memb_value_constr_460, &asn_PER_memb_value_constr_460,  memb_value_constraint_457 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBAdditionRequestAcknowledge_IEs_tags_457[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBAdditionRequestAcknowledge_IEs_tag2el_457[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequestAcknowledge_IEs_specs_457 = {
+       sizeof(struct SgNBAdditionRequestAcknowledge_IEs),
+       offsetof(struct SgNBAdditionRequestAcknowledge_IEs, _asn_ctx),
+       asn_MAP_SgNBAdditionRequestAcknowledge_IEs_tag2el_457,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestAcknowledge_IEs = {
+       "SgNBAdditionRequestAcknowledge-IEs",
+       "SgNBAdditionRequestAcknowledge-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBAdditionRequestAcknowledge_IEs_tags_457,
+       sizeof(asn_DEF_SgNBAdditionRequestAcknowledge_IEs_tags_457)
+               /sizeof(asn_DEF_SgNBAdditionRequestAcknowledge_IEs_tags_457[0]), /* 1 */
+       asn_DEF_SgNBAdditionRequestAcknowledge_IEs_tags_457,    /* Same as above */
+       sizeof(asn_DEF_SgNBAdditionRequestAcknowledge_IEs_tags_457)
+               /sizeof(asn_DEF_SgNBAdditionRequestAcknowledge_IEs_tags_457[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBAdditionRequestAcknowledge_IEs_457,
+       3,      /* Elements count */
+       &asn_SPC_SgNBAdditionRequestAcknowledge_IEs_specs_457   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_464[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_464[] = { 0, 1, 4, 3, 2 };
+static const unsigned asn_MAP_value_from_canonical_464[] = { 0, 1, 4, 3, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_464[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_464 = {
+       sizeof(struct SgNBAdditionRequestReject_IEs__value),
+       offsetof(struct SgNBAdditionRequestReject_IEs__value, _asn_ctx),
+       offsetof(struct SgNBAdditionRequestReject_IEs__value, present),
+       sizeof(((struct SgNBAdditionRequestReject_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_464,
+       8,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_464,
+       asn_MAP_value_from_canonical_464,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_464 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_464,
+       5,      /* Elements count */
+       &asn_SPC_value_specs_464        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBAdditionRequestReject_IEs_461[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_462, &asn_PER_memb_id_constr_462,  memb_id_constraint_461 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBAdditionRequestReject_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_463, &asn_PER_memb_criticality_constr_463,  memb_criticality_constraint_461 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_464,
+               select_SgNBAdditionRequestReject_IEs_value_type,
+               { &asn_OER_memb_value_constr_464, &asn_PER_memb_value_constr_464,  memb_value_constraint_461 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBAdditionRequestReject_IEs_tags_461[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBAdditionRequestReject_IEs_tag2el_461[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequestReject_IEs_specs_461 = {
+       sizeof(struct SgNBAdditionRequestReject_IEs),
+       offsetof(struct SgNBAdditionRequestReject_IEs, _asn_ctx),
+       asn_MAP_SgNBAdditionRequestReject_IEs_tag2el_461,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestReject_IEs = {
+       "SgNBAdditionRequestReject-IEs",
+       "SgNBAdditionRequestReject-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBAdditionRequestReject_IEs_tags_461,
+       sizeof(asn_DEF_SgNBAdditionRequestReject_IEs_tags_461)
+               /sizeof(asn_DEF_SgNBAdditionRequestReject_IEs_tags_461[0]), /* 1 */
+       asn_DEF_SgNBAdditionRequestReject_IEs_tags_461, /* Same as above */
+       sizeof(asn_DEF_SgNBAdditionRequestReject_IEs_tags_461)
+               /sizeof(asn_DEF_SgNBAdditionRequestReject_IEs_tags_461[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBAdditionRequestReject_IEs_461,
+       3,      /* Elements count */
+       &asn_SPC_SgNBAdditionRequestReject_IEs_specs_461        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_468[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReconfigurationComplete_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReconfigurationComplete_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReconfigurationComplete_IEs__value, choice.ResponseInformationSgNBReconfComp),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_ResponseInformationSgNBReconfComp,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ResponseInformationSgNBReconfComp"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReconfigurationComplete_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_468[] = { 0, 1, 3, 2 };
+static const unsigned asn_MAP_value_from_canonical_468[] = { 0, 1, 3, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_468[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* success-SgNBReconfComp */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 } /* reject-by-MeNB-SgNBReconfComp */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_468 = {
+       sizeof(struct SgNBReconfigurationComplete_IEs__value),
+       offsetof(struct SgNBReconfigurationComplete_IEs__value, _asn_ctx),
+       offsetof(struct SgNBReconfigurationComplete_IEs__value, present),
+       sizeof(((struct SgNBReconfigurationComplete_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_468,
+       5,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_468,
+       asn_MAP_value_from_canonical_468,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_468 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_468,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_468        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBReconfigurationComplete_IEs_465[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReconfigurationComplete_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_466, &asn_PER_memb_id_constr_466,  memb_id_constraint_465 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReconfigurationComplete_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBReconfigurationComplete_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_467, &asn_PER_memb_criticality_constr_467,  memb_criticality_constraint_465 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBReconfigurationComplete_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_468,
+               select_SgNBReconfigurationComplete_IEs_value_type,
+               { &asn_OER_memb_value_constr_468, &asn_PER_memb_value_constr_468,  memb_value_constraint_465 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBReconfigurationComplete_IEs_tags_465[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBReconfigurationComplete_IEs_tag2el_465[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBReconfigurationComplete_IEs_specs_465 = {
+       sizeof(struct SgNBReconfigurationComplete_IEs),
+       offsetof(struct SgNBReconfigurationComplete_IEs, _asn_ctx),
+       asn_MAP_SgNBReconfigurationComplete_IEs_tag2el_465,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBReconfigurationComplete_IEs = {
+       "SgNBReconfigurationComplete-IEs",
+       "SgNBReconfigurationComplete-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBReconfigurationComplete_IEs_tags_465,
+       sizeof(asn_DEF_SgNBReconfigurationComplete_IEs_tags_465)
+               /sizeof(asn_DEF_SgNBReconfigurationComplete_IEs_tags_465[0]), /* 1 */
+       asn_DEF_SgNBReconfigurationComplete_IEs_tags_465,       /* Same as above */
+       sizeof(asn_DEF_SgNBReconfigurationComplete_IEs_tags_465)
+               /sizeof(asn_DEF_SgNBReconfigurationComplete_IEs_tags_465[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBReconfigurationComplete_IEs_465,
+       3,      /* Elements count */
+       &asn_SPC_SgNBReconfigurationComplete_IEs_specs_465      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_472[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.PLMN_Identity),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PLMN-Identity"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.HandoverRestrictionList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_HandoverRestrictionList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "HandoverRestrictionList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.SCGConfigurationQuery),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_SCGConfigurationQuery,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SCGConfigurationQuery"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.UE_ContextInformation_SgNBModReq),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UE_ContextInformation_SgNBModReq,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-ContextInformation-SgNBModReq"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.MeNBtoSgNBContainer),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_MeNBtoSgNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MeNBtoSgNBContainer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.MeNBResourceCoordinationInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MeNBResourceCoordinationInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MeNBResourceCoordinationInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.SplitSRBs),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_SplitSRBs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SplitSRBs"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_472[] = { 0, 1, 8, 3, 7, 5, 10, 4, 6, 9, 2 };
+static const unsigned asn_MAP_value_from_canonical_472[] = { 0, 1, 10, 3, 7, 5, 8, 4, 2, 9, 6 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_472[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 8, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 1 }, /* PLMN-Identity */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 7, -1, 0 }, /* MeNBtoSgNBContainer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 1 }, /* SCGConfigurationQuery */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 10, -1, 0 }, /* SplitSRBs */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 2 }, /* HandoverRestrictionList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -1, 1 }, /* UE-ContextInformation-SgNBModReq */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -2, 0 }, /* MeNBResourceCoordinationInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_472 = {
+       sizeof(struct SgNBModificationRequest_IEs__value),
+       offsetof(struct SgNBModificationRequest_IEs__value, _asn_ctx),
+       offsetof(struct SgNBModificationRequest_IEs__value, present),
+       sizeof(((struct SgNBModificationRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_472,
+       14,     /* Count of tags in the map */
+       asn_MAP_value_to_canonical_472,
+       asn_MAP_value_from_canonical_472,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_472 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_472,
+       11,     /* Elements count */
+       &asn_SPC_value_specs_472        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBModificationRequest_IEs_469[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_470, &asn_PER_memb_id_constr_470,  memb_id_constraint_469 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBModificationRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_471, &asn_PER_memb_criticality_constr_471,  memb_criticality_constraint_469 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_472,
+               select_SgNBModificationRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_472, &asn_PER_memb_value_constr_472,  memb_value_constraint_469 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBModificationRequest_IEs_tags_469[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRequest_IEs_tag2el_469[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequest_IEs_specs_469 = {
+       sizeof(struct SgNBModificationRequest_IEs),
+       offsetof(struct SgNBModificationRequest_IEs, _asn_ctx),
+       asn_MAP_SgNBModificationRequest_IEs_tag2el_469,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequest_IEs = {
+       "SgNBModificationRequest-IEs",
+       "SgNBModificationRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBModificationRequest_IEs_tags_469,
+       sizeof(asn_DEF_SgNBModificationRequest_IEs_tags_469)
+               /sizeof(asn_DEF_SgNBModificationRequest_IEs_tags_469[0]), /* 1 */
+       asn_DEF_SgNBModificationRequest_IEs_tags_469,   /* Same as above */
+       sizeof(asn_DEF_SgNBModificationRequest_IEs_tags_469)
+               /sizeof(asn_DEF_SgNBModificationRequest_IEs_tags_469[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBModificationRequest_IEs_469,
+       3,      /* Elements count */
+       &asn_SPC_SgNBModificationRequest_IEs_specs_469  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_476[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeAdded_SgNBModAckList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToBeAdded-SgNBModAckList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeModified_SgNBModAckList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToBeModified-SgNBModAckList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeReleased_SgNBModAckList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToBeReleased-SgNBModAckList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.E_RAB_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RAB_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RAB-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.SgNBtoMeNBContainer),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_SgNBtoMeNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBtoMeNBContainer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.SgNBResourceCoordinationInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBResourceCoordinationInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBResourceCoordinationInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.SplitSRBs),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_SplitSRBs,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SplitSRBs"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.RRC_Config_Ind),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_RRC_Config_Ind,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RRC-Config-Ind"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_476[] = { 0, 1, 8, 6, 10, 11, 2, 3, 4, 5, 7, 9 };
+static const unsigned asn_MAP_value_from_canonical_476[] = { 0, 1, 6, 7, 8, 9, 3, 10, 2, 11, 4, 5 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_476[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 8, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, 0, 0 }, /* SgNBtoMeNBContainer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 10, 0, 1 }, /* SplitSRBs */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 11, -1, 0 }, /* RRC-Config-Ind */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 5 }, /* E-RABs-Admitted-ToBeAdded-SgNBModAckList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 4 }, /* E-RABs-Admitted-ToBeModified-SgNBModAckList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 3 }, /* E-RABs-Admitted-ToBeReleased-SgNBModAckList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -3, 2 }, /* E-RAB-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -4, 1 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -5, 0 } /* SgNBResourceCoordinationInformation */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_476 = {
+       sizeof(struct SgNBModificationRequestAcknowledge_IEs__value),
+       offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, _asn_ctx),
+       offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, present),
+       sizeof(((struct SgNBModificationRequestAcknowledge_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_476,
+       12,     /* Count of tags in the map */
+       asn_MAP_value_to_canonical_476,
+       asn_MAP_value_from_canonical_476,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_476 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_476,
+       12,     /* Elements count */
+       &asn_SPC_value_specs_476        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBModificationRequestAcknowledge_IEs_473[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_474, &asn_PER_memb_id_constr_474,  memb_id_constraint_473 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBModificationRequestAcknowledge_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_475, &asn_PER_memb_criticality_constr_475,  memb_criticality_constraint_473 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_476,
+               select_SgNBModificationRequestAcknowledge_IEs_value_type,
+               { &asn_OER_memb_value_constr_476, &asn_PER_memb_value_constr_476,  memb_value_constraint_473 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBModificationRequestAcknowledge_IEs_tags_473[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRequestAcknowledge_IEs_tag2el_473[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequestAcknowledge_IEs_specs_473 = {
+       sizeof(struct SgNBModificationRequestAcknowledge_IEs),
+       offsetof(struct SgNBModificationRequestAcknowledge_IEs, _asn_ctx),
+       asn_MAP_SgNBModificationRequestAcknowledge_IEs_tag2el_473,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestAcknowledge_IEs = {
+       "SgNBModificationRequestAcknowledge-IEs",
+       "SgNBModificationRequestAcknowledge-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBModificationRequestAcknowledge_IEs_tags_473,
+       sizeof(asn_DEF_SgNBModificationRequestAcknowledge_IEs_tags_473)
+               /sizeof(asn_DEF_SgNBModificationRequestAcknowledge_IEs_tags_473[0]), /* 1 */
+       asn_DEF_SgNBModificationRequestAcknowledge_IEs_tags_473,        /* Same as above */
+       sizeof(asn_DEF_SgNBModificationRequestAcknowledge_IEs_tags_473)
+               /sizeof(asn_DEF_SgNBModificationRequestAcknowledge_IEs_tags_473[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBModificationRequestAcknowledge_IEs_473,
+       3,      /* Elements count */
+       &asn_SPC_SgNBModificationRequestAcknowledge_IEs_specs_473       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_480[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_480[] = { 0, 1, 4, 3, 2 };
+static const unsigned asn_MAP_value_from_canonical_480[] = { 0, 1, 4, 3, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_480[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_480 = {
+       sizeof(struct SgNBModificationRequestReject_IEs__value),
+       offsetof(struct SgNBModificationRequestReject_IEs__value, _asn_ctx),
+       offsetof(struct SgNBModificationRequestReject_IEs__value, present),
+       sizeof(((struct SgNBModificationRequestReject_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_480,
+       8,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_480,
+       asn_MAP_value_from_canonical_480,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_480 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_480,
+       5,      /* Elements count */
+       &asn_SPC_value_specs_480        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBModificationRequestReject_IEs_477[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_478, &asn_PER_memb_id_constr_478,  memb_id_constraint_477 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBModificationRequestReject_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_479, &asn_PER_memb_criticality_constr_479,  memb_criticality_constraint_477 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_480,
+               select_SgNBModificationRequestReject_IEs_value_type,
+               { &asn_OER_memb_value_constr_480, &asn_PER_memb_value_constr_480,  memb_value_constraint_477 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBModificationRequestReject_IEs_tags_477[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRequestReject_IEs_tag2el_477[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequestReject_IEs_specs_477 = {
+       sizeof(struct SgNBModificationRequestReject_IEs),
+       offsetof(struct SgNBModificationRequestReject_IEs, _asn_ctx),
+       asn_MAP_SgNBModificationRequestReject_IEs_tag2el_477,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestReject_IEs = {
+       "SgNBModificationRequestReject-IEs",
+       "SgNBModificationRequestReject-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBModificationRequestReject_IEs_tags_477,
+       sizeof(asn_DEF_SgNBModificationRequestReject_IEs_tags_477)
+               /sizeof(asn_DEF_SgNBModificationRequestReject_IEs_tags_477[0]), /* 1 */
+       asn_DEF_SgNBModificationRequestReject_IEs_tags_477,     /* Same as above */
+       sizeof(asn_DEF_SgNBModificationRequestReject_IEs_tags_477)
+               /sizeof(asn_DEF_SgNBModificationRequestReject_IEs_tags_477[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBModificationRequestReject_IEs_477,
+       3,      /* Elements count */
+       &asn_SPC_SgNBModificationRequestReject_IEs_specs_477    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_484[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.PDCPChangeIndication),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_PDCPChangeIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "PDCPChangeIndication"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.E_RABs_ToBeReleased_SgNBModReqdList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-SgNBModReqdList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.SgNBtoMeNBContainer),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_SgNBtoMeNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBtoMeNBContainer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.E_RABs_ToBeModified_SgNBModReqdList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeModified_SgNBModReqdList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeModified-SgNBModReqdList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.SgNBResourceCoordinationInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBResourceCoordinationInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBResourceCoordinationInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.RRC_Config_Ind),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_RRC_Config_Ind,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RRC-Config-Ind"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_484[] = { 0, 1, 6, 5, 3, 9, 4, 7, 8, 2 };
+static const unsigned asn_MAP_value_from_canonical_484[] = { 0, 1, 9, 4, 6, 3, 2, 7, 8, 5 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_484[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 6, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 5, 0, 0 }, /* SgNBtoMeNBContainer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 1 }, /* PDCPChangeIndication */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 9, -1, 0 }, /* RRC-Config-Ind */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 2 }, /* E-RABs-ToBeReleased-SgNBModReqdList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -1, 1 }, /* E-RABs-ToBeModified-SgNBModReqdList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -2, 0 }, /* SgNBResourceCoordinationInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_484 = {
+       sizeof(struct SgNBModificationRequired_IEs__value),
+       offsetof(struct SgNBModificationRequired_IEs__value, _asn_ctx),
+       offsetof(struct SgNBModificationRequired_IEs__value, present),
+       sizeof(((struct SgNBModificationRequired_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_484,
+       13,     /* Count of tags in the map */
+       asn_MAP_value_to_canonical_484,
+       asn_MAP_value_from_canonical_484,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_484 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_484,
+       10,     /* Elements count */
+       &asn_SPC_value_specs_484        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBModificationRequired_IEs_481[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_482, &asn_PER_memb_id_constr_482,  memb_id_constraint_481 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBModificationRequired_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_483, &asn_PER_memb_criticality_constr_483,  memb_criticality_constraint_481 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_484,
+               select_SgNBModificationRequired_IEs_value_type,
+               { &asn_OER_memb_value_constr_484, &asn_PER_memb_value_constr_484,  memb_value_constraint_481 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBModificationRequired_IEs_tags_481[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRequired_IEs_tag2el_481[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequired_IEs_specs_481 = {
+       sizeof(struct SgNBModificationRequired_IEs),
+       offsetof(struct SgNBModificationRequired_IEs, _asn_ctx),
+       asn_MAP_SgNBModificationRequired_IEs_tag2el_481,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequired_IEs = {
+       "SgNBModificationRequired-IEs",
+       "SgNBModificationRequired-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBModificationRequired_IEs_tags_481,
+       sizeof(asn_DEF_SgNBModificationRequired_IEs_tags_481)
+               /sizeof(asn_DEF_SgNBModificationRequired_IEs_tags_481[0]), /* 1 */
+       asn_DEF_SgNBModificationRequired_IEs_tags_481,  /* Same as above */
+       sizeof(asn_DEF_SgNBModificationRequired_IEs_tags_481)
+               /sizeof(asn_DEF_SgNBModificationRequired_IEs_tags_481[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBModificationRequired_IEs_481,
+       3,      /* Elements count */
+       &asn_SPC_SgNBModificationRequired_IEs_specs_481 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_488[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs__value, choice.E_RABs_AdmittedToBeModified_SgNBModConfList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-AdmittedToBeModified-SgNBModConfList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs__value, choice.MeNBtoSgNBContainer),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_MeNBtoSgNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MeNBtoSgNBContainer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs__value, choice.MeNBResourceCoordinationInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MeNBResourceCoordinationInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MeNBResourceCoordinationInformation"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_488[] = { 0, 1, 5, 3, 2, 4, 6 };
+static const unsigned asn_MAP_value_from_canonical_488[] = { 0, 1, 4, 3, 5, 2, 6 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_488[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 5, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 0 }, /* MeNBtoSgNBContainer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 2 }, /* E-RABs-AdmittedToBeModified-SgNBModConfList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 1 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -2, 0 } /* MeNBResourceCoordinationInformation */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_488 = {
+       sizeof(struct SgNBModificationConfirm_IEs__value),
+       offsetof(struct SgNBModificationConfirm_IEs__value, _asn_ctx),
+       offsetof(struct SgNBModificationConfirm_IEs__value, present),
+       sizeof(((struct SgNBModificationConfirm_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_488,
+       7,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_488,
+       asn_MAP_value_from_canonical_488,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_488 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_488,
+       7,      /* Elements count */
+       &asn_SPC_value_specs_488        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBModificationConfirm_IEs_485[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_486, &asn_PER_memb_id_constr_486,  memb_id_constraint_485 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBModificationConfirm_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_487, &asn_PER_memb_criticality_constr_487,  memb_criticality_constraint_485 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_488,
+               select_SgNBModificationConfirm_IEs_value_type,
+               { &asn_OER_memb_value_constr_488, &asn_PER_memb_value_constr_488,  memb_value_constraint_485 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBModificationConfirm_IEs_tags_485[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationConfirm_IEs_tag2el_485[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationConfirm_IEs_specs_485 = {
+       sizeof(struct SgNBModificationConfirm_IEs),
+       offsetof(struct SgNBModificationConfirm_IEs, _asn_ctx),
+       asn_MAP_SgNBModificationConfirm_IEs_tag2el_485,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBModificationConfirm_IEs = {
+       "SgNBModificationConfirm-IEs",
+       "SgNBModificationConfirm-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBModificationConfirm_IEs_tags_485,
+       sizeof(asn_DEF_SgNBModificationConfirm_IEs_tags_485)
+               /sizeof(asn_DEF_SgNBModificationConfirm_IEs_tags_485[0]), /* 1 */
+       asn_DEF_SgNBModificationConfirm_IEs_tags_485,   /* Same as above */
+       sizeof(asn_DEF_SgNBModificationConfirm_IEs_tags_485)
+               /sizeof(asn_DEF_SgNBModificationConfirm_IEs_tags_485[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBModificationConfirm_IEs_485,
+       3,      /* Elements count */
+       &asn_SPC_SgNBModificationConfirm_IEs_specs_485  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_492[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs__value, choice.MeNBtoSgNBContainer),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_MeNBtoSgNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MeNBtoSgNBContainer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_492[] = { 0, 1, 5, 3, 4, 2 };
+static const unsigned asn_MAP_value_from_canonical_492[] = { 0, 1, 5, 3, 4, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_492[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 5, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 0 }, /* MeNBtoSgNBContainer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_492 = {
+       sizeof(struct SgNBModificationRefuse_IEs__value),
+       offsetof(struct SgNBModificationRefuse_IEs__value, _asn_ctx),
+       offsetof(struct SgNBModificationRefuse_IEs__value, present),
+       sizeof(((struct SgNBModificationRefuse_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_492,
+       9,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_492,
+       asn_MAP_value_from_canonical_492,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_492 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_492,
+       6,      /* Elements count */
+       &asn_SPC_value_specs_492        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBModificationRefuse_IEs_489[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_490, &asn_PER_memb_id_constr_490,  memb_id_constraint_489 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBModificationRefuse_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_491, &asn_PER_memb_criticality_constr_491,  memb_criticality_constraint_489 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_492,
+               select_SgNBModificationRefuse_IEs_value_type,
+               { &asn_OER_memb_value_constr_492, &asn_PER_memb_value_constr_492,  memb_value_constraint_489 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBModificationRefuse_IEs_tags_489[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRefuse_IEs_tag2el_489[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRefuse_IEs_specs_489 = {
+       sizeof(struct SgNBModificationRefuse_IEs),
+       offsetof(struct SgNBModificationRefuse_IEs, _asn_ctx),
+       asn_MAP_SgNBModificationRefuse_IEs_tag2el_489,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBModificationRefuse_IEs = {
+       "SgNBModificationRefuse-IEs",
+       "SgNBModificationRefuse-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBModificationRefuse_IEs_tags_489,
+       sizeof(asn_DEF_SgNBModificationRefuse_IEs_tags_489)
+               /sizeof(asn_DEF_SgNBModificationRefuse_IEs_tags_489[0]), /* 1 */
+       asn_DEF_SgNBModificationRefuse_IEs_tags_489,    /* Same as above */
+       sizeof(asn_DEF_SgNBModificationRefuse_IEs_tags_489)
+               /sizeof(asn_DEF_SgNBModificationRefuse_IEs_tags_489[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBModificationRefuse_IEs_489,
+       3,      /* Elements count */
+       &asn_SPC_SgNBModificationRefuse_IEs_specs_489   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_496[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs__value, choice.E_RABs_ToBeReleased_SgNBRelReqList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-SgNBRelReqList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs__value, choice.UE_ContextKeptIndicator),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_UE_ContextKeptIndicator,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-ContextKeptIndicator"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs__value, choice.MeNBtoSgNBContainer),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_MeNBtoSgNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MeNBtoSgNBContainer"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_496[] = { 0, 1, 5, 6, 4, 3, 2 };
+static const unsigned asn_MAP_value_from_canonical_496[] = { 0, 1, 6, 5, 4, 2, 3 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_496[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 5, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, 0, 0 }, /* MeNBtoSgNBContainer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 0 }, /* UE-ContextKeptIndicator */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* E-RABs-ToBeReleased-SgNBRelReqList */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_496 = {
+       sizeof(struct SgNBReleaseRequest_IEs__value),
+       offsetof(struct SgNBReleaseRequest_IEs__value, _asn_ctx),
+       offsetof(struct SgNBReleaseRequest_IEs__value, present),
+       sizeof(((struct SgNBReleaseRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_496,
+       10,     /* Count of tags in the map */
+       asn_MAP_value_to_canonical_496,
+       asn_MAP_value_from_canonical_496,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_496 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_496,
+       7,      /* Elements count */
+       &asn_SPC_value_specs_496        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBReleaseRequest_IEs_493[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_494, &asn_PER_memb_id_constr_494,  memb_id_constraint_493 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBReleaseRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_495, &asn_PER_memb_criticality_constr_495,  memb_criticality_constraint_493 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_496,
+               select_SgNBReleaseRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_496, &asn_PER_memb_value_constr_496,  memb_value_constraint_493 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBReleaseRequest_IEs_tags_493[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseRequest_IEs_tag2el_493[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequest_IEs_specs_493 = {
+       sizeof(struct SgNBReleaseRequest_IEs),
+       offsetof(struct SgNBReleaseRequest_IEs, _asn_ctx),
+       asn_MAP_SgNBReleaseRequest_IEs_tag2el_493,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequest_IEs = {
+       "SgNBReleaseRequest-IEs",
+       "SgNBReleaseRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBReleaseRequest_IEs_tags_493,
+       sizeof(asn_DEF_SgNBReleaseRequest_IEs_tags_493)
+               /sizeof(asn_DEF_SgNBReleaseRequest_IEs_tags_493[0]), /* 1 */
+       asn_DEF_SgNBReleaseRequest_IEs_tags_493,        /* Same as above */
+       sizeof(asn_DEF_SgNBReleaseRequest_IEs_tags_493)
+               /sizeof(asn_DEF_SgNBReleaseRequest_IEs_tags_493[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBReleaseRequest_IEs_493,
+       3,      /* Elements count */
+       &asn_SPC_SgNBReleaseRequest_IEs_specs_493       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_500[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_500[] = { 0, 1, 3, 2, 4 };
+static const unsigned asn_MAP_value_from_canonical_500[] = { 0, 1, 3, 2, 4 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_500[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 } /* E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_500 = {
+       sizeof(struct SgNBReleaseRequestAcknowledge_IEs__value),
+       offsetof(struct SgNBReleaseRequestAcknowledge_IEs__value, _asn_ctx),
+       offsetof(struct SgNBReleaseRequestAcknowledge_IEs__value, present),
+       sizeof(((struct SgNBReleaseRequestAcknowledge_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_500,
+       5,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_500,
+       asn_MAP_value_from_canonical_500,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_500 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_500,
+       5,      /* Elements count */
+       &asn_SPC_value_specs_500        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBReleaseRequestAcknowledge_IEs_497[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_498, &asn_PER_memb_id_constr_498,  memb_id_constraint_497 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBReleaseRequestAcknowledge_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_499, &asn_PER_memb_criticality_constr_499,  memb_criticality_constraint_497 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_500,
+               select_SgNBReleaseRequestAcknowledge_IEs_value_type,
+               { &asn_OER_memb_value_constr_500, &asn_PER_memb_value_constr_500,  memb_value_constraint_497 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBReleaseRequestAcknowledge_IEs_tags_497[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseRequestAcknowledge_IEs_tag2el_497[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequestAcknowledge_IEs_specs_497 = {
+       sizeof(struct SgNBReleaseRequestAcknowledge_IEs),
+       offsetof(struct SgNBReleaseRequestAcknowledge_IEs, _asn_ctx),
+       asn_MAP_SgNBReleaseRequestAcknowledge_IEs_tag2el_497,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestAcknowledge_IEs = {
+       "SgNBReleaseRequestAcknowledge-IEs",
+       "SgNBReleaseRequestAcknowledge-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBReleaseRequestAcknowledge_IEs_tags_497,
+       sizeof(asn_DEF_SgNBReleaseRequestAcknowledge_IEs_tags_497)
+               /sizeof(asn_DEF_SgNBReleaseRequestAcknowledge_IEs_tags_497[0]), /* 1 */
+       asn_DEF_SgNBReleaseRequestAcknowledge_IEs_tags_497,     /* Same as above */
+       sizeof(asn_DEF_SgNBReleaseRequestAcknowledge_IEs_tags_497)
+               /sizeof(asn_DEF_SgNBReleaseRequestAcknowledge_IEs_tags_497[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBReleaseRequestAcknowledge_IEs_497,
+       3,      /* Elements count */
+       &asn_SPC_SgNBReleaseRequestAcknowledge_IEs_specs_497    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_504[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_504[] = { 0, 1, 4, 3, 2 };
+static const unsigned asn_MAP_value_from_canonical_504[] = { 0, 1, 4, 3, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_504[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_504 = {
+       sizeof(struct SgNBReleaseRequestReject_IEs__value),
+       offsetof(struct SgNBReleaseRequestReject_IEs__value, _asn_ctx),
+       offsetof(struct SgNBReleaseRequestReject_IEs__value, present),
+       sizeof(((struct SgNBReleaseRequestReject_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_504,
+       8,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_504,
+       asn_MAP_value_from_canonical_504,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_504 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_504,
+       5,      /* Elements count */
+       &asn_SPC_value_specs_504        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBReleaseRequestReject_IEs_501[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_502, &asn_PER_memb_id_constr_502,  memb_id_constraint_501 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBReleaseRequestReject_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_503, &asn_PER_memb_criticality_constr_503,  memb_criticality_constraint_501 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_504,
+               select_SgNBReleaseRequestReject_IEs_value_type,
+               { &asn_OER_memb_value_constr_504, &asn_PER_memb_value_constr_504,  memb_value_constraint_501 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBReleaseRequestReject_IEs_tags_501[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseRequestReject_IEs_tag2el_501[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequestReject_IEs_specs_501 = {
+       sizeof(struct SgNBReleaseRequestReject_IEs),
+       offsetof(struct SgNBReleaseRequestReject_IEs, _asn_ctx),
+       asn_MAP_SgNBReleaseRequestReject_IEs_tag2el_501,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestReject_IEs = {
+       "SgNBReleaseRequestReject-IEs",
+       "SgNBReleaseRequestReject-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBReleaseRequestReject_IEs_tags_501,
+       sizeof(asn_DEF_SgNBReleaseRequestReject_IEs_tags_501)
+               /sizeof(asn_DEF_SgNBReleaseRequestReject_IEs_tags_501[0]), /* 1 */
+       asn_DEF_SgNBReleaseRequestReject_IEs_tags_501,  /* Same as above */
+       sizeof(asn_DEF_SgNBReleaseRequestReject_IEs_tags_501)
+               /sizeof(asn_DEF_SgNBReleaseRequestReject_IEs_tags_501[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBReleaseRequestReject_IEs_501,
+       3,      /* Elements count */
+       &asn_SPC_SgNBReleaseRequestReject_IEs_specs_501 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_508[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired_IEs__value, choice.E_RABs_ToBeReleased_SgNBRelReqdList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-SgNBRelReqdList"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_508[] = { 0, 1, 3, 4, 2 };
+static const unsigned asn_MAP_value_from_canonical_508[] = { 0, 1, 4, 2, 3 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_508[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 0 }, /* E-RABs-ToBeReleased-SgNBRelReqdList */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_508 = {
+       sizeof(struct SgNBReleaseRequired_IEs__value),
+       offsetof(struct SgNBReleaseRequired_IEs__value, _asn_ctx),
+       offsetof(struct SgNBReleaseRequired_IEs__value, present),
+       sizeof(((struct SgNBReleaseRequired_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_508,
+       8,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_508,
+       asn_MAP_value_from_canonical_508,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_508 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_508,
+       5,      /* Elements count */
+       &asn_SPC_value_specs_508        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBReleaseRequired_IEs_505[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_506, &asn_PER_memb_id_constr_506,  memb_id_constraint_505 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBReleaseRequired_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_507, &asn_PER_memb_criticality_constr_507,  memb_criticality_constraint_505 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_508,
+               select_SgNBReleaseRequired_IEs_value_type,
+               { &asn_OER_memb_value_constr_508, &asn_PER_memb_value_constr_508,  memb_value_constraint_505 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBReleaseRequired_IEs_tags_505[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseRequired_IEs_tag2el_505[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequired_IEs_specs_505 = {
+       sizeof(struct SgNBReleaseRequired_IEs),
+       offsetof(struct SgNBReleaseRequired_IEs, _asn_ctx),
+       asn_MAP_SgNBReleaseRequired_IEs_tag2el_505,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequired_IEs = {
+       "SgNBReleaseRequired-IEs",
+       "SgNBReleaseRequired-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBReleaseRequired_IEs_tags_505,
+       sizeof(asn_DEF_SgNBReleaseRequired_IEs_tags_505)
+               /sizeof(asn_DEF_SgNBReleaseRequired_IEs_tags_505[0]), /* 1 */
+       asn_DEF_SgNBReleaseRequired_IEs_tags_505,       /* Same as above */
+       sizeof(asn_DEF_SgNBReleaseRequired_IEs_tags_505)
+               /sizeof(asn_DEF_SgNBReleaseRequired_IEs_tags_505[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBReleaseRequired_IEs_505,
+       3,      /* Elements count */
+       &asn_SPC_SgNBReleaseRequired_IEs_specs_505      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_512[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm_IEs__value, choice.E_RABs_ToBeReleased_SgNBRelConfList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-SgNBRelConfList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_512[] = { 0, 1, 4, 2, 3 };
+static const unsigned asn_MAP_value_from_canonical_512[] = { 0, 1, 3, 4, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_512[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* E-RABs-ToBeReleased-SgNBRelConfList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 } /* CriticalityDiagnostics */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_512 = {
+       sizeof(struct SgNBReleaseConfirm_IEs__value),
+       offsetof(struct SgNBReleaseConfirm_IEs__value, _asn_ctx),
+       offsetof(struct SgNBReleaseConfirm_IEs__value, present),
+       sizeof(((struct SgNBReleaseConfirm_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_512,
+       5,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_512,
+       asn_MAP_value_from_canonical_512,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_512 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_512,
+       5,      /* Elements count */
+       &asn_SPC_value_specs_512        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBReleaseConfirm_IEs_509[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_510, &asn_PER_memb_id_constr_510,  memb_id_constraint_509 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBReleaseConfirm_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_511, &asn_PER_memb_criticality_constr_511,  memb_criticality_constraint_509 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_512,
+               select_SgNBReleaseConfirm_IEs_value_type,
+               { &asn_OER_memb_value_constr_512, &asn_PER_memb_value_constr_512,  memb_value_constraint_509 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBReleaseConfirm_IEs_tags_509[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseConfirm_IEs_tag2el_509[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseConfirm_IEs_specs_509 = {
+       sizeof(struct SgNBReleaseConfirm_IEs),
+       offsetof(struct SgNBReleaseConfirm_IEs, _asn_ctx),
+       asn_MAP_SgNBReleaseConfirm_IEs_tag2el_509,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBReleaseConfirm_IEs = {
+       "SgNBReleaseConfirm-IEs",
+       "SgNBReleaseConfirm-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBReleaseConfirm_IEs_tags_509,
+       sizeof(asn_DEF_SgNBReleaseConfirm_IEs_tags_509)
+               /sizeof(asn_DEF_SgNBReleaseConfirm_IEs_tags_509[0]), /* 1 */
+       asn_DEF_SgNBReleaseConfirm_IEs_tags_509,        /* Same as above */
+       sizeof(asn_DEF_SgNBReleaseConfirm_IEs_tags_509)
+               /sizeof(asn_DEF_SgNBReleaseConfirm_IEs_tags_509[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBReleaseConfirm_IEs_509,
+       3,      /* Elements count */
+       &asn_SPC_SgNBReleaseConfirm_IEs_specs_509       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_516[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBCounterCheckRequest_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBCounterCheckRequest_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBCounterCheckRequest_IEs__value, choice.E_RABs_SubjectToSgNBCounterCheck_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-SubjectToSgNBCounterCheck-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBCounterCheckRequest_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_516[] = { 0, 1, 3, 2 };
+static const unsigned asn_MAP_value_from_canonical_516[] = { 0, 1, 3, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_516[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* E-RABs-SubjectToSgNBCounterCheck-List */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_516 = {
+       sizeof(struct SgNBCounterCheckRequest_IEs__value),
+       offsetof(struct SgNBCounterCheckRequest_IEs__value, _asn_ctx),
+       offsetof(struct SgNBCounterCheckRequest_IEs__value, present),
+       sizeof(((struct SgNBCounterCheckRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_516,
+       4,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_516,
+       asn_MAP_value_from_canonical_516,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_516 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_516,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_516        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBCounterCheckRequest_IEs_513[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBCounterCheckRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_514, &asn_PER_memb_id_constr_514,  memb_id_constraint_513 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBCounterCheckRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBCounterCheckRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_515, &asn_PER_memb_criticality_constr_515,  memb_criticality_constraint_513 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBCounterCheckRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_516,
+               select_SgNBCounterCheckRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_516, &asn_PER_memb_value_constr_516,  memb_value_constraint_513 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBCounterCheckRequest_IEs_tags_513[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBCounterCheckRequest_IEs_tag2el_513[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBCounterCheckRequest_IEs_specs_513 = {
+       sizeof(struct SgNBCounterCheckRequest_IEs),
+       offsetof(struct SgNBCounterCheckRequest_IEs, _asn_ctx),
+       asn_MAP_SgNBCounterCheckRequest_IEs_tag2el_513,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBCounterCheckRequest_IEs = {
+       "SgNBCounterCheckRequest-IEs",
+       "SgNBCounterCheckRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBCounterCheckRequest_IEs_tags_513,
+       sizeof(asn_DEF_SgNBCounterCheckRequest_IEs_tags_513)
+               /sizeof(asn_DEF_SgNBCounterCheckRequest_IEs_tags_513[0]), /* 1 */
+       asn_DEF_SgNBCounterCheckRequest_IEs_tags_513,   /* Same as above */
+       sizeof(asn_DEF_SgNBCounterCheckRequest_IEs_tags_513)
+               /sizeof(asn_DEF_SgNBCounterCheckRequest_IEs_tags_513[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBCounterCheckRequest_IEs_513,
+       3,      /* Elements count */
+       &asn_SPC_SgNBCounterCheckRequest_IEs_specs_513  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_520[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs__value, choice.GlobalGNB_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GlobalGNB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GlobalGNB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs__value, choice.SgNBtoMeNBContainer),
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_SgNBtoMeNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBtoMeNBContainer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_520[] = { 0, 1, 5, 4, 2, 3 };
+static const unsigned asn_MAP_value_from_canonical_520[] = { 0, 1, 4, 5, 3, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_520[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 5, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 0 }, /* SgNBtoMeNBContainer */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* GlobalGNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_520 = {
+       sizeof(struct SgNBChangeRequired_IEs__value),
+       offsetof(struct SgNBChangeRequired_IEs__value, _asn_ctx),
+       offsetof(struct SgNBChangeRequired_IEs__value, present),
+       sizeof(((struct SgNBChangeRequired_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_520,
+       9,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_520,
+       asn_MAP_value_from_canonical_520,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_520 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_520,
+       6,      /* Elements count */
+       &asn_SPC_value_specs_520        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBChangeRequired_IEs_517[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_518, &asn_PER_memb_id_constr_518,  memb_id_constraint_517 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBChangeRequired_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_519, &asn_PER_memb_criticality_constr_519,  memb_criticality_constraint_517 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_520,
+               select_SgNBChangeRequired_IEs_value_type,
+               { &asn_OER_memb_value_constr_520, &asn_PER_memb_value_constr_520,  memb_value_constraint_517 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBChangeRequired_IEs_tags_517[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBChangeRequired_IEs_tag2el_517[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeRequired_IEs_specs_517 = {
+       sizeof(struct SgNBChangeRequired_IEs),
+       offsetof(struct SgNBChangeRequired_IEs, _asn_ctx),
+       asn_MAP_SgNBChangeRequired_IEs_tag2el_517,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBChangeRequired_IEs = {
+       "SgNBChangeRequired-IEs",
+       "SgNBChangeRequired-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBChangeRequired_IEs_tags_517,
+       sizeof(asn_DEF_SgNBChangeRequired_IEs_tags_517)
+               /sizeof(asn_DEF_SgNBChangeRequired_IEs_tags_517[0]), /* 1 */
+       asn_DEF_SgNBChangeRequired_IEs_tags_517,        /* Same as above */
+       sizeof(asn_DEF_SgNBChangeRequired_IEs_tags_517)
+               /sizeof(asn_DEF_SgNBChangeRequired_IEs_tags_517[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBChangeRequired_IEs_517,
+       3,      /* Elements count */
+       &asn_SPC_SgNBChangeRequired_IEs_specs_517       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_524[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm_IEs__value, choice.E_RABs_ToBeReleased_SgNBChaConfList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-ToBeReleased-SgNBChaConfList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_524[] = { 0, 1, 4, 2, 3 };
+static const unsigned asn_MAP_value_from_canonical_524[] = { 0, 1, 3, 4, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_524[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* E-RABs-ToBeReleased-SgNBChaConfList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 } /* CriticalityDiagnostics */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_524 = {
+       sizeof(struct SgNBChangeConfirm_IEs__value),
+       offsetof(struct SgNBChangeConfirm_IEs__value, _asn_ctx),
+       offsetof(struct SgNBChangeConfirm_IEs__value, present),
+       sizeof(((struct SgNBChangeConfirm_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_524,
+       5,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_524,
+       asn_MAP_value_from_canonical_524,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_524 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_524,
+       5,      /* Elements count */
+       &asn_SPC_value_specs_524        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBChangeConfirm_IEs_521[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_522, &asn_PER_memb_id_constr_522,  memb_id_constraint_521 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBChangeConfirm_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_523, &asn_PER_memb_criticality_constr_523,  memb_criticality_constraint_521 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_524,
+               select_SgNBChangeConfirm_IEs_value_type,
+               { &asn_OER_memb_value_constr_524, &asn_PER_memb_value_constr_524,  memb_value_constraint_521 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBChangeConfirm_IEs_tags_521[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBChangeConfirm_IEs_tag2el_521[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeConfirm_IEs_specs_521 = {
+       sizeof(struct SgNBChangeConfirm_IEs),
+       offsetof(struct SgNBChangeConfirm_IEs, _asn_ctx),
+       asn_MAP_SgNBChangeConfirm_IEs_tag2el_521,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBChangeConfirm_IEs = {
+       "SgNBChangeConfirm-IEs",
+       "SgNBChangeConfirm-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBChangeConfirm_IEs_tags_521,
+       sizeof(asn_DEF_SgNBChangeConfirm_IEs_tags_521)
+               /sizeof(asn_DEF_SgNBChangeConfirm_IEs_tags_521[0]), /* 1 */
+       asn_DEF_SgNBChangeConfirm_IEs_tags_521, /* Same as above */
+       sizeof(asn_DEF_SgNBChangeConfirm_IEs_tags_521)
+               /sizeof(asn_DEF_SgNBChangeConfirm_IEs_tags_521[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBChangeConfirm_IEs_521,
+       3,      /* Elements count */
+       &asn_SPC_SgNBChangeConfirm_IEs_specs_521        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_528[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RRCTransfer_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RRCTransfer_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RRCTransfer_IEs__value, choice.SplitSRB),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SplitSRB,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SplitSRB"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RRCTransfer_IEs__value, choice.UENRMeasurement),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UENRMeasurement,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UENRMeasurement"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RRCTransfer_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_528[] = { 0, 1, 4, 2, 3 };
+static const unsigned asn_MAP_value_from_canonical_528[] = { 0, 1, 3, 4, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_528[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* SplitSRB */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 } /* UENRMeasurement */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_528 = {
+       sizeof(struct RRCTransfer_IEs__value),
+       offsetof(struct RRCTransfer_IEs__value, _asn_ctx),
+       offsetof(struct RRCTransfer_IEs__value, present),
+       sizeof(((struct RRCTransfer_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_528,
+       5,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_528,
+       asn_MAP_value_from_canonical_528,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_528 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_528,
+       5,      /* Elements count */
+       &asn_SPC_value_specs_528        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RRCTransfer_IEs_525[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RRCTransfer_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_526, &asn_PER_memb_id_constr_526,  memb_id_constraint_525 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RRCTransfer_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_RRCTransfer_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_527, &asn_PER_memb_criticality_constr_527,  memb_criticality_constraint_525 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RRCTransfer_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_528,
+               select_RRCTransfer_IEs_value_type,
+               { &asn_OER_memb_value_constr_528, &asn_PER_memb_value_constr_528,  memb_value_constraint_525 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RRCTransfer_IEs_tags_525[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RRCTransfer_IEs_tag2el_525[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RRCTransfer_IEs_specs_525 = {
+       sizeof(struct RRCTransfer_IEs),
+       offsetof(struct RRCTransfer_IEs, _asn_ctx),
+       asn_MAP_RRCTransfer_IEs_tag2el_525,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RRCTransfer_IEs = {
+       "RRCTransfer-IEs",
+       "RRCTransfer-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RRCTransfer_IEs_tags_525,
+       sizeof(asn_DEF_RRCTransfer_IEs_tags_525)
+               /sizeof(asn_DEF_RRCTransfer_IEs_tags_525[0]), /* 1 */
+       asn_DEF_RRCTransfer_IEs_tags_525,       /* Same as above */
+       sizeof(asn_DEF_RRCTransfer_IEs_tags_525)
+               /sizeof(asn_DEF_RRCTransfer_IEs_tags_525[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RRCTransfer_IEs_525,
+       3,      /* Elements count */
+       &asn_SPC_RRCTransfer_IEs_specs_525      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_532[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_532[] = { 0, 1, 4, 3, 2 };
+static const unsigned asn_MAP_value_from_canonical_532[] = { 0, 1, 4, 3, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_532[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_532 = {
+       sizeof(struct SgNBChangeRefuse_IEs__value),
+       offsetof(struct SgNBChangeRefuse_IEs__value, _asn_ctx),
+       offsetof(struct SgNBChangeRefuse_IEs__value, present),
+       sizeof(((struct SgNBChangeRefuse_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_532,
+       8,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_532,
+       asn_MAP_value_from_canonical_532,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_532 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_532,
+       5,      /* Elements count */
+       &asn_SPC_value_specs_532        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBChangeRefuse_IEs_529[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_530, &asn_PER_memb_id_constr_530,  memb_id_constraint_529 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBChangeRefuse_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_531, &asn_PER_memb_criticality_constr_531,  memb_criticality_constraint_529 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_532,
+               select_SgNBChangeRefuse_IEs_value_type,
+               { &asn_OER_memb_value_constr_532, &asn_PER_memb_value_constr_532,  memb_value_constraint_529 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBChangeRefuse_IEs_tags_529[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBChangeRefuse_IEs_tag2el_529[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeRefuse_IEs_specs_529 = {
+       sizeof(struct SgNBChangeRefuse_IEs),
+       offsetof(struct SgNBChangeRefuse_IEs, _asn_ctx),
+       asn_MAP_SgNBChangeRefuse_IEs_tag2el_529,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBChangeRefuse_IEs = {
+       "SgNBChangeRefuse-IEs",
+       "SgNBChangeRefuse-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBChangeRefuse_IEs_tags_529,
+       sizeof(asn_DEF_SgNBChangeRefuse_IEs_tags_529)
+               /sizeof(asn_DEF_SgNBChangeRefuse_IEs_tags_529[0]), /* 1 */
+       asn_DEF_SgNBChangeRefuse_IEs_tags_529,  /* Same as above */
+       sizeof(asn_DEF_SgNBChangeRefuse_IEs_tags_529)
+               /sizeof(asn_DEF_SgNBChangeRefuse_IEs_tags_529[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBChangeRefuse_IEs_529,
+       3,      /* Elements count */
+       &asn_SPC_SgNBChangeRefuse_IEs_specs_529 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_536[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupRequest_IEs__value, choice.InitiatingNodeType_EndcX2Setup),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_InitiatingNodeType_EndcX2Setup,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "InitiatingNodeType-EndcX2Setup"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_536[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* init-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* init-en-gNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_536 = {
+       sizeof(struct ENDCX2SetupRequest_IEs__value),
+       offsetof(struct ENDCX2SetupRequest_IEs__value, _asn_ctx),
+       offsetof(struct ENDCX2SetupRequest_IEs__value, present),
+       sizeof(((struct ENDCX2SetupRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_536,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_536 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_536,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_536        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENDCX2SetupRequest_IEs_533[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_534, &asn_PER_memb_id_constr_534,  memb_id_constraint_533 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENDCX2SetupRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_535, &asn_PER_memb_criticality_constr_535,  memb_criticality_constraint_533 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_536,
+               select_ENDCX2SetupRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_536, &asn_PER_memb_value_constr_536,  memb_value_constraint_533 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCX2SetupRequest_IEs_tags_533[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCX2SetupRequest_IEs_tag2el_533[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupRequest_IEs_specs_533 = {
+       sizeof(struct ENDCX2SetupRequest_IEs),
+       offsetof(struct ENDCX2SetupRequest_IEs, _asn_ctx),
+       asn_MAP_ENDCX2SetupRequest_IEs_tag2el_533,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupRequest_IEs = {
+       "ENDCX2SetupRequest-IEs",
+       "ENDCX2SetupRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCX2SetupRequest_IEs_tags_533,
+       sizeof(asn_DEF_ENDCX2SetupRequest_IEs_tags_533)
+               /sizeof(asn_DEF_ENDCX2SetupRequest_IEs_tags_533[0]), /* 1 */
+       asn_DEF_ENDCX2SetupRequest_IEs_tags_533,        /* Same as above */
+       sizeof(asn_DEF_ENDCX2SetupRequest_IEs_tags_533)
+               /sizeof(asn_DEF_ENDCX2SetupRequest_IEs_tags_533[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCX2SetupRequest_IEs_533,
+       3,      /* Elements count */
+       &asn_SPC_ENDCX2SetupRequest_IEs_specs_533       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_540[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqIEs__value, choice.GlobalENB_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GlobalENB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GlobalENB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqIEs__value, choice.ServedEUTRAcellsENDCX2ManagementList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedEUTRAcellsENDCX2ManagementList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServedEUTRAcellsENDCX2ManagementList"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_540[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* GlobalENB-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* ServedEUTRAcellsENDCX2ManagementList */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_540 = {
+       sizeof(struct ENB_ENDCX2SetupReqIEs__value),
+       offsetof(struct ENB_ENDCX2SetupReqIEs__value, _asn_ctx),
+       offsetof(struct ENB_ENDCX2SetupReqIEs__value, present),
+       sizeof(((struct ENB_ENDCX2SetupReqIEs__value *)0)->present),
+       asn_MAP_value_tag2el_540,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_540 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_540,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_540        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENB_ENDCX2SetupReqIEs_537[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_538, &asn_PER_memb_id_constr_538,  memb_id_constraint_537 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENB_ENDCX2SetupReqIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_539, &asn_PER_memb_criticality_constr_539,  memb_criticality_constraint_537 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_540,
+               select_ENB_ENDCX2SetupReqIEs_value_type,
+               { &asn_OER_memb_value_constr_540, &asn_PER_memb_value_constr_540,  memb_value_constraint_537 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENB_ENDCX2SetupReqIEs_tags_537[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENB_ENDCX2SetupReqIEs_tag2el_537[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2SetupReqIEs_specs_537 = {
+       sizeof(struct ENB_ENDCX2SetupReqIEs),
+       offsetof(struct ENB_ENDCX2SetupReqIEs, _asn_ctx),
+       asn_MAP_ENB_ENDCX2SetupReqIEs_tag2el_537,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2SetupReqIEs = {
+       "ENB-ENDCX2SetupReqIEs",
+       "ENB-ENDCX2SetupReqIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENB_ENDCX2SetupReqIEs_tags_537,
+       sizeof(asn_DEF_ENB_ENDCX2SetupReqIEs_tags_537)
+               /sizeof(asn_DEF_ENB_ENDCX2SetupReqIEs_tags_537[0]), /* 1 */
+       asn_DEF_ENB_ENDCX2SetupReqIEs_tags_537, /* Same as above */
+       sizeof(asn_DEF_ENB_ENDCX2SetupReqIEs_tags_537)
+               /sizeof(asn_DEF_ENB_ENDCX2SetupReqIEs_tags_537[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENB_ENDCX2SetupReqIEs_537,
+       3,      /* Elements count */
+       &asn_SPC_ENB_ENDCX2SetupReqIEs_specs_537        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_544[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqIEs__value, choice.GlobalGNB_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GlobalGNB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GlobalGNB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqIEs__value, choice.ServedNRcellsENDCX2ManagementList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedNRcellsENDCX2ManagementList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServedNRcellsENDCX2ManagementList"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_544[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* GlobalGNB-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* ServedNRcellsENDCX2ManagementList */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_544 = {
+       sizeof(struct En_gNB_ENDCX2SetupReqIEs__value),
+       offsetof(struct En_gNB_ENDCX2SetupReqIEs__value, _asn_ctx),
+       offsetof(struct En_gNB_ENDCX2SetupReqIEs__value, present),
+       sizeof(((struct En_gNB_ENDCX2SetupReqIEs__value *)0)->present),
+       asn_MAP_value_tag2el_544,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_544 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_544,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_544        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2SetupReqIEs_541[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_542, &asn_PER_memb_id_constr_542,  memb_id_constraint_541 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_En_gNB_ENDCX2SetupReqIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_543, &asn_PER_memb_criticality_constr_543,  memb_criticality_constraint_541 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_544,
+               select_En_gNB_ENDCX2SetupReqIEs_value_type,
+               { &asn_OER_memb_value_constr_544, &asn_PER_memb_value_constr_544,  memb_value_constraint_541 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_En_gNB_ENDCX2SetupReqIEs_tags_541[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_En_gNB_ENDCX2SetupReqIEs_tag2el_541[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2SetupReqIEs_specs_541 = {
+       sizeof(struct En_gNB_ENDCX2SetupReqIEs),
+       offsetof(struct En_gNB_ENDCX2SetupReqIEs, _asn_ctx),
+       asn_MAP_En_gNB_ENDCX2SetupReqIEs_tag2el_541,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2SetupReqIEs = {
+       "En-gNB-ENDCX2SetupReqIEs",
+       "En-gNB-ENDCX2SetupReqIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_En_gNB_ENDCX2SetupReqIEs_tags_541,
+       sizeof(asn_DEF_En_gNB_ENDCX2SetupReqIEs_tags_541)
+               /sizeof(asn_DEF_En_gNB_ENDCX2SetupReqIEs_tags_541[0]), /* 1 */
+       asn_DEF_En_gNB_ENDCX2SetupReqIEs_tags_541,      /* Same as above */
+       sizeof(asn_DEF_En_gNB_ENDCX2SetupReqIEs_tags_541)
+               /sizeof(asn_DEF_En_gNB_ENDCX2SetupReqIEs_tags_541[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_En_gNB_ENDCX2SetupReqIEs_541,
+       3,      /* Elements count */
+       &asn_SPC_En_gNB_ENDCX2SetupReqIEs_specs_541     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_548[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupResponse_IEs__value, choice.RespondingNodeType_EndcX2Setup),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_RespondingNodeType_EndcX2Setup,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RespondingNodeType-EndcX2Setup"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_548[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* respond-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* respond-en-gNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_548 = {
+       sizeof(struct ENDCX2SetupResponse_IEs__value),
+       offsetof(struct ENDCX2SetupResponse_IEs__value, _asn_ctx),
+       offsetof(struct ENDCX2SetupResponse_IEs__value, present),
+       sizeof(((struct ENDCX2SetupResponse_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_548,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_548 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_548,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_548        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENDCX2SetupResponse_IEs_545[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupResponse_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_546, &asn_PER_memb_id_constr_546,  memb_id_constraint_545 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupResponse_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENDCX2SetupResponse_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_547, &asn_PER_memb_criticality_constr_547,  memb_criticality_constraint_545 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupResponse_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_548,
+               select_ENDCX2SetupResponse_IEs_value_type,
+               { &asn_OER_memb_value_constr_548, &asn_PER_memb_value_constr_548,  memb_value_constraint_545 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCX2SetupResponse_IEs_tags_545[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCX2SetupResponse_IEs_tag2el_545[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupResponse_IEs_specs_545 = {
+       sizeof(struct ENDCX2SetupResponse_IEs),
+       offsetof(struct ENDCX2SetupResponse_IEs, _asn_ctx),
+       asn_MAP_ENDCX2SetupResponse_IEs_tag2el_545,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupResponse_IEs = {
+       "ENDCX2SetupResponse-IEs",
+       "ENDCX2SetupResponse-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCX2SetupResponse_IEs_tags_545,
+       sizeof(asn_DEF_ENDCX2SetupResponse_IEs_tags_545)
+               /sizeof(asn_DEF_ENDCX2SetupResponse_IEs_tags_545[0]), /* 1 */
+       asn_DEF_ENDCX2SetupResponse_IEs_tags_545,       /* Same as above */
+       sizeof(asn_DEF_ENDCX2SetupResponse_IEs_tags_545)
+               /sizeof(asn_DEF_ENDCX2SetupResponse_IEs_tags_545[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCX2SetupResponse_IEs_545,
+       3,      /* Elements count */
+       &asn_SPC_ENDCX2SetupResponse_IEs_specs_545      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_552[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqAckIEs__value, choice.GlobalENB_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GlobalENB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GlobalENB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqAckIEs__value, choice.ServedEUTRAcellsENDCX2ManagementList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedEUTRAcellsENDCX2ManagementList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServedEUTRAcellsENDCX2ManagementList"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_552[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* GlobalENB-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* ServedEUTRAcellsENDCX2ManagementList */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_552 = {
+       sizeof(struct ENB_ENDCX2SetupReqAckIEs__value),
+       offsetof(struct ENB_ENDCX2SetupReqAckIEs__value, _asn_ctx),
+       offsetof(struct ENB_ENDCX2SetupReqAckIEs__value, present),
+       sizeof(((struct ENB_ENDCX2SetupReqAckIEs__value *)0)->present),
+       asn_MAP_value_tag2el_552,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_552 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_552,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_552        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENB_ENDCX2SetupReqAckIEs_549[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqAckIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_550, &asn_PER_memb_id_constr_550,  memb_id_constraint_549 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqAckIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENB_ENDCX2SetupReqAckIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_551, &asn_PER_memb_criticality_constr_551,  memb_criticality_constraint_549 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqAckIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_552,
+               select_ENB_ENDCX2SetupReqAckIEs_value_type,
+               { &asn_OER_memb_value_constr_552, &asn_PER_memb_value_constr_552,  memb_value_constraint_549 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENB_ENDCX2SetupReqAckIEs_tags_549[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENB_ENDCX2SetupReqAckIEs_tag2el_549[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2SetupReqAckIEs_specs_549 = {
+       sizeof(struct ENB_ENDCX2SetupReqAckIEs),
+       offsetof(struct ENB_ENDCX2SetupReqAckIEs, _asn_ctx),
+       asn_MAP_ENB_ENDCX2SetupReqAckIEs_tag2el_549,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2SetupReqAckIEs = {
+       "ENB-ENDCX2SetupReqAckIEs",
+       "ENB-ENDCX2SetupReqAckIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENB_ENDCX2SetupReqAckIEs_tags_549,
+       sizeof(asn_DEF_ENB_ENDCX2SetupReqAckIEs_tags_549)
+               /sizeof(asn_DEF_ENB_ENDCX2SetupReqAckIEs_tags_549[0]), /* 1 */
+       asn_DEF_ENB_ENDCX2SetupReqAckIEs_tags_549,      /* Same as above */
+       sizeof(asn_DEF_ENB_ENDCX2SetupReqAckIEs_tags_549)
+               /sizeof(asn_DEF_ENB_ENDCX2SetupReqAckIEs_tags_549[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENB_ENDCX2SetupReqAckIEs_549,
+       3,      /* Elements count */
+       &asn_SPC_ENB_ENDCX2SetupReqAckIEs_specs_549     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_556[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqAckIEs__value, choice.GlobalGNB_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GlobalGNB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GlobalGNB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqAckIEs__value, choice.ServedNRcellsENDCX2ManagementList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedNRcellsENDCX2ManagementList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServedNRcellsENDCX2ManagementList"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_556[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* GlobalGNB-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* ServedNRcellsENDCX2ManagementList */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_556 = {
+       sizeof(struct En_gNB_ENDCX2SetupReqAckIEs__value),
+       offsetof(struct En_gNB_ENDCX2SetupReqAckIEs__value, _asn_ctx),
+       offsetof(struct En_gNB_ENDCX2SetupReqAckIEs__value, present),
+       sizeof(((struct En_gNB_ENDCX2SetupReqAckIEs__value *)0)->present),
+       asn_MAP_value_tag2el_556,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_556 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_556,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_556        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2SetupReqAckIEs_553[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqAckIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_554, &asn_PER_memb_id_constr_554,  memb_id_constraint_553 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqAckIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_En_gNB_ENDCX2SetupReqAckIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_555, &asn_PER_memb_criticality_constr_555,  memb_criticality_constraint_553 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqAckIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_556,
+               select_En_gNB_ENDCX2SetupReqAckIEs_value_type,
+               { &asn_OER_memb_value_constr_556, &asn_PER_memb_value_constr_556,  memb_value_constraint_553 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_En_gNB_ENDCX2SetupReqAckIEs_tags_553[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_En_gNB_ENDCX2SetupReqAckIEs_tag2el_553[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2SetupReqAckIEs_specs_553 = {
+       sizeof(struct En_gNB_ENDCX2SetupReqAckIEs),
+       offsetof(struct En_gNB_ENDCX2SetupReqAckIEs, _asn_ctx),
+       asn_MAP_En_gNB_ENDCX2SetupReqAckIEs_tag2el_553,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2SetupReqAckIEs = {
+       "En-gNB-ENDCX2SetupReqAckIEs",
+       "En-gNB-ENDCX2SetupReqAckIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_En_gNB_ENDCX2SetupReqAckIEs_tags_553,
+       sizeof(asn_DEF_En_gNB_ENDCX2SetupReqAckIEs_tags_553)
+               /sizeof(asn_DEF_En_gNB_ENDCX2SetupReqAckIEs_tags_553[0]), /* 1 */
+       asn_DEF_En_gNB_ENDCX2SetupReqAckIEs_tags_553,   /* Same as above */
+       sizeof(asn_DEF_En_gNB_ENDCX2SetupReqAckIEs_tags_553)
+               /sizeof(asn_DEF_En_gNB_ENDCX2SetupReqAckIEs_tags_553[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_En_gNB_ENDCX2SetupReqAckIEs_553,
+       3,      /* Elements count */
+       &asn_SPC_En_gNB_ENDCX2SetupReqAckIEs_specs_553  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_560[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupFailure_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupFailure_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupFailure_IEs__value, choice.TimeToWait),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_TimeToWait,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "TimeToWait"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_560[] = { 2, 1, 0 };
+static const unsigned asn_MAP_value_from_canonical_560[] = { 2, 1, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_560[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_560 = {
+       sizeof(struct ENDCX2SetupFailure_IEs__value),
+       offsetof(struct ENDCX2SetupFailure_IEs__value, _asn_ctx),
+       offsetof(struct ENDCX2SetupFailure_IEs__value, present),
+       sizeof(((struct ENDCX2SetupFailure_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_560,
+       6,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_560,
+       asn_MAP_value_from_canonical_560,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_560 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_560,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_560        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENDCX2SetupFailure_IEs_557[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupFailure_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_558, &asn_PER_memb_id_constr_558,  memb_id_constraint_557 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupFailure_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENDCX2SetupFailure_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_559, &asn_PER_memb_criticality_constr_559,  memb_criticality_constraint_557 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupFailure_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_560,
+               select_ENDCX2SetupFailure_IEs_value_type,
+               { &asn_OER_memb_value_constr_560, &asn_PER_memb_value_constr_560,  memb_value_constraint_557 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCX2SetupFailure_IEs_tags_557[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCX2SetupFailure_IEs_tag2el_557[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupFailure_IEs_specs_557 = {
+       sizeof(struct ENDCX2SetupFailure_IEs),
+       offsetof(struct ENDCX2SetupFailure_IEs, _asn_ctx),
+       asn_MAP_ENDCX2SetupFailure_IEs_tag2el_557,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupFailure_IEs = {
+       "ENDCX2SetupFailure-IEs",
+       "ENDCX2SetupFailure-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCX2SetupFailure_IEs_tags_557,
+       sizeof(asn_DEF_ENDCX2SetupFailure_IEs_tags_557)
+               /sizeof(asn_DEF_ENDCX2SetupFailure_IEs_tags_557[0]), /* 1 */
+       asn_DEF_ENDCX2SetupFailure_IEs_tags_557,        /* Same as above */
+       sizeof(asn_DEF_ENDCX2SetupFailure_IEs_tags_557)
+               /sizeof(asn_DEF_ENDCX2SetupFailure_IEs_tags_557[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCX2SetupFailure_IEs_557,
+       3,      /* Elements count */
+       &asn_SPC_ENDCX2SetupFailure_IEs_specs_557       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_564[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdate_IEs__value, choice.InitiatingNodeType_EndcConfigUpdate),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_InitiatingNodeType_EndcConfigUpdate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "InitiatingNodeType-EndcConfigUpdate"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_564[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* init-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* init-en-gNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_564 = {
+       sizeof(struct ENDCConfigurationUpdate_IEs__value),
+       offsetof(struct ENDCConfigurationUpdate_IEs__value, _asn_ctx),
+       offsetof(struct ENDCConfigurationUpdate_IEs__value, present),
+       sizeof(((struct ENDCConfigurationUpdate_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_564,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_564 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_564,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_564        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdate_IEs_561[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdate_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_562, &asn_PER_memb_id_constr_562,  memb_id_constraint_561 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdate_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENDCConfigurationUpdate_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_563, &asn_PER_memb_criticality_constr_563,  memb_criticality_constraint_561 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdate_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_564,
+               select_ENDCConfigurationUpdate_IEs_value_type,
+               { &asn_OER_memb_value_constr_564, &asn_PER_memb_value_constr_564,  memb_value_constraint_561 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCConfigurationUpdate_IEs_tags_561[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCConfigurationUpdate_IEs_tag2el_561[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdate_IEs_specs_561 = {
+       sizeof(struct ENDCConfigurationUpdate_IEs),
+       offsetof(struct ENDCConfigurationUpdate_IEs, _asn_ctx),
+       asn_MAP_ENDCConfigurationUpdate_IEs_tag2el_561,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdate_IEs = {
+       "ENDCConfigurationUpdate-IEs",
+       "ENDCConfigurationUpdate-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCConfigurationUpdate_IEs_tags_561,
+       sizeof(asn_DEF_ENDCConfigurationUpdate_IEs_tags_561)
+               /sizeof(asn_DEF_ENDCConfigurationUpdate_IEs_tags_561[0]), /* 1 */
+       asn_DEF_ENDCConfigurationUpdate_IEs_tags_561,   /* Same as above */
+       sizeof(asn_DEF_ENDCConfigurationUpdate_IEs_tags_561)
+               /sizeof(asn_DEF_ENDCConfigurationUpdate_IEs_tags_561[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCConfigurationUpdate_IEs_561,
+       3,      /* Elements count */
+       &asn_SPC_ENDCConfigurationUpdate_IEs_specs_561  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_568[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateIEs__value, choice.CellAssistanceInformation),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_CellAssistanceInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CellAssistanceInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateIEs__value, choice.ServedEUTRAcellsENDCX2ManagementList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedEUTRAcellsENDCX2ManagementList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServedEUTRAcellsENDCX2ManagementList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateIEs__value, choice.ServedEUTRAcellsToModifyListENDCConfUpd),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServedEUTRAcellsToModifyListENDCConfUpd"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateIEs__value, choice.ServedEUTRAcellsToDeleteListENDCConfUpd),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServedEUTRAcellsToDeleteListENDCConfUpd"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_568[] = { 1, 2, 3, 0 };
+static const unsigned asn_MAP_value_from_canonical_568[] = { 3, 0, 1, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_568[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 2 }, /* ServedEUTRAcellsENDCX2ManagementList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* ServedEUTRAcellsToModifyListENDCConfUpd */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 }, /* ServedEUTRAcellsToDeleteListENDCConfUpd */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* limited-list */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* full-list */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_568 = {
+       sizeof(struct ENB_ENDCConfigUpdateIEs__value),
+       offsetof(struct ENB_ENDCConfigUpdateIEs__value, _asn_ctx),
+       offsetof(struct ENB_ENDCConfigUpdateIEs__value, present),
+       sizeof(((struct ENB_ENDCConfigUpdateIEs__value *)0)->present),
+       asn_MAP_value_tag2el_568,
+       5,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_568,
+       asn_MAP_value_from_canonical_568,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_568 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_568,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_568        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENB_ENDCConfigUpdateIEs_565[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_566, &asn_PER_memb_id_constr_566,  memb_id_constraint_565 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENB_ENDCConfigUpdateIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_567, &asn_PER_memb_criticality_constr_567,  memb_criticality_constraint_565 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_568,
+               select_ENB_ENDCConfigUpdateIEs_value_type,
+               { &asn_OER_memb_value_constr_568, &asn_PER_memb_value_constr_568,  memb_value_constraint_565 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENB_ENDCConfigUpdateIEs_tags_565[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENB_ENDCConfigUpdateIEs_tag2el_565[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCConfigUpdateIEs_specs_565 = {
+       sizeof(struct ENB_ENDCConfigUpdateIEs),
+       offsetof(struct ENB_ENDCConfigUpdateIEs, _asn_ctx),
+       asn_MAP_ENB_ENDCConfigUpdateIEs_tag2el_565,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENB_ENDCConfigUpdateIEs = {
+       "ENB-ENDCConfigUpdateIEs",
+       "ENB-ENDCConfigUpdateIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENB_ENDCConfigUpdateIEs_tags_565,
+       sizeof(asn_DEF_ENB_ENDCConfigUpdateIEs_tags_565)
+               /sizeof(asn_DEF_ENB_ENDCConfigUpdateIEs_tags_565[0]), /* 1 */
+       asn_DEF_ENB_ENDCConfigUpdateIEs_tags_565,       /* Same as above */
+       sizeof(asn_DEF_ENB_ENDCConfigUpdateIEs_tags_565)
+               /sizeof(asn_DEF_ENB_ENDCConfigUpdateIEs_tags_565[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENB_ENDCConfigUpdateIEs_565,
+       3,      /* Elements count */
+       &asn_SPC_ENB_ENDCConfigUpdateIEs_specs_565      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_572[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateIEs__value, choice.ServedNRcellsENDCX2ManagementList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedNRcellsENDCX2ManagementList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServedNRcellsENDCX2ManagementList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateIEs__value, choice.ServedNRcellsToModifyENDCConfUpdList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedNRcellsToModifyENDCConfUpdList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServedNRcellsToModifyENDCConfUpdList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateIEs__value, choice.ServedNRcellsToDeleteENDCConfUpdList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedNRcellsToDeleteENDCConfUpdList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServedNRcellsToDeleteENDCConfUpdList"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_572[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* ServedNRcellsENDCX2ManagementList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 1 }, /* ServedNRcellsToModifyENDCConfUpdList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 0 } /* ServedNRcellsToDeleteENDCConfUpdList */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_572 = {
+       sizeof(struct En_gNB_ENDCConfigUpdateIEs__value),
+       offsetof(struct En_gNB_ENDCConfigUpdateIEs__value, _asn_ctx),
+       offsetof(struct En_gNB_ENDCConfigUpdateIEs__value, present),
+       sizeof(((struct En_gNB_ENDCConfigUpdateIEs__value *)0)->present),
+       asn_MAP_value_tag2el_572,
+       3,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_572 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_572,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_572        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_En_gNB_ENDCConfigUpdateIEs_569[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_570, &asn_PER_memb_id_constr_570,  memb_id_constraint_569 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_En_gNB_ENDCConfigUpdateIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_571, &asn_PER_memb_criticality_constr_571,  memb_criticality_constraint_569 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_572,
+               select_En_gNB_ENDCConfigUpdateIEs_value_type,
+               { &asn_OER_memb_value_constr_572, &asn_PER_memb_value_constr_572,  memb_value_constraint_569 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_En_gNB_ENDCConfigUpdateIEs_tags_569[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_En_gNB_ENDCConfigUpdateIEs_tag2el_569[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCConfigUpdateIEs_specs_569 = {
+       sizeof(struct En_gNB_ENDCConfigUpdateIEs),
+       offsetof(struct En_gNB_ENDCConfigUpdateIEs, _asn_ctx),
+       asn_MAP_En_gNB_ENDCConfigUpdateIEs_tag2el_569,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCConfigUpdateIEs = {
+       "En-gNB-ENDCConfigUpdateIEs",
+       "En-gNB-ENDCConfigUpdateIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_En_gNB_ENDCConfigUpdateIEs_tags_569,
+       sizeof(asn_DEF_En_gNB_ENDCConfigUpdateIEs_tags_569)
+               /sizeof(asn_DEF_En_gNB_ENDCConfigUpdateIEs_tags_569[0]), /* 1 */
+       asn_DEF_En_gNB_ENDCConfigUpdateIEs_tags_569,    /* Same as above */
+       sizeof(asn_DEF_En_gNB_ENDCConfigUpdateIEs_tags_569)
+               /sizeof(asn_DEF_En_gNB_ENDCConfigUpdateIEs_tags_569[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_En_gNB_ENDCConfigUpdateIEs_569,
+       3,      /* Elements count */
+       &asn_SPC_En_gNB_ENDCConfigUpdateIEs_specs_569   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_576[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs__value, choice.RespondingNodeType_EndcConfigUpdate),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_RespondingNodeType_EndcConfigUpdate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RespondingNodeType-EndcConfigUpdate"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_576[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* respond-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* respond-en-gNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_576 = {
+       sizeof(struct ENDCConfigurationUpdateAcknowledge_IEs__value),
+       offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs__value, _asn_ctx),
+       offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs__value, present),
+       sizeof(((struct ENDCConfigurationUpdateAcknowledge_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_576,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_576 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_576,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_576        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateAcknowledge_IEs_573[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_574, &asn_PER_memb_id_constr_574,  memb_id_constraint_573 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENDCConfigurationUpdateAcknowledge_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_575, &asn_PER_memb_criticality_constr_575,  memb_criticality_constraint_573 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_576,
+               select_ENDCConfigurationUpdateAcknowledge_IEs_value_type,
+               { &asn_OER_memb_value_constr_576, &asn_PER_memb_value_constr_576,  memb_value_constraint_573 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs_tags_573[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCConfigurationUpdateAcknowledge_IEs_tag2el_573[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateAcknowledge_IEs_specs_573 = {
+       sizeof(struct ENDCConfigurationUpdateAcknowledge_IEs),
+       offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs, _asn_ctx),
+       asn_MAP_ENDCConfigurationUpdateAcknowledge_IEs_tag2el_573,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs = {
+       "ENDCConfigurationUpdateAcknowledge-IEs",
+       "ENDCConfigurationUpdateAcknowledge-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs_tags_573,
+       sizeof(asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs_tags_573)
+               /sizeof(asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs_tags_573[0]), /* 1 */
+       asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs_tags_573,        /* Same as above */
+       sizeof(asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs_tags_573)
+               /sizeof(asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs_tags_573[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCConfigurationUpdateAcknowledge_IEs_573,
+       3,      /* Elements count */
+       &asn_SPC_ENDCConfigurationUpdateAcknowledge_IEs_specs_573       /* Additional specs */
+};
+
+static asn_CHOICE_specifics_t asn_SPC_value_specs_580 = {
+       sizeof(struct ENB_ENDCConfigUpdateAckIEs__value),
+       offsetof(struct ENB_ENDCConfigUpdateAckIEs__value, _asn_ctx),
+       offsetof(struct ENB_ENDCConfigUpdateAckIEs__value, present),
+       sizeof(((struct ENB_ENDCConfigUpdateAckIEs__value *)0)->present),
+       0,      /* No top level tags */
+       0,      /* No tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_580 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_value_specs_580        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENB_ENDCConfigUpdateAckIEs_577[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateAckIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_578, &asn_PER_memb_id_constr_578,  memb_id_constraint_577 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateAckIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               0,
+               { &asn_OER_memb_criticality_constr_579, &asn_PER_memb_criticality_constr_579,  memb_criticality_constraint_577 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateAckIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_580,
+               0,
+               { &asn_OER_memb_value_constr_580, &asn_PER_memb_value_constr_580,  memb_value_constraint_577 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENB_ENDCConfigUpdateAckIEs_tags_577[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENB_ENDCConfigUpdateAckIEs_tag2el_577[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCConfigUpdateAckIEs_specs_577 = {
+       sizeof(struct ENB_ENDCConfigUpdateAckIEs),
+       offsetof(struct ENB_ENDCConfigUpdateAckIEs, _asn_ctx),
+       asn_MAP_ENB_ENDCConfigUpdateAckIEs_tag2el_577,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENB_ENDCConfigUpdateAckIEs = {
+       "ENB-ENDCConfigUpdateAckIEs",
+       "ENB-ENDCConfigUpdateAckIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENB_ENDCConfigUpdateAckIEs_tags_577,
+       sizeof(asn_DEF_ENB_ENDCConfigUpdateAckIEs_tags_577)
+               /sizeof(asn_DEF_ENB_ENDCConfigUpdateAckIEs_tags_577[0]), /* 1 */
+       asn_DEF_ENB_ENDCConfigUpdateAckIEs_tags_577,    /* Same as above */
+       sizeof(asn_DEF_ENB_ENDCConfigUpdateAckIEs_tags_577)
+               /sizeof(asn_DEF_ENB_ENDCConfigUpdateAckIEs_tags_577[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENB_ENDCConfigUpdateAckIEs_577,
+       3,      /* Elements count */
+       &asn_SPC_ENB_ENDCConfigUpdateAckIEs_specs_577   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_584[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateAckIEs__value, choice.ServedNRcellsENDCX2ManagementList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedNRcellsENDCX2ManagementList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServedNRcellsENDCX2ManagementList"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_584[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ServedNRcellsENDCX2ManagementList */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_584 = {
+       sizeof(struct En_gNB_ENDCConfigUpdateAckIEs__value),
+       offsetof(struct En_gNB_ENDCConfigUpdateAckIEs__value, _asn_ctx),
+       offsetof(struct En_gNB_ENDCConfigUpdateAckIEs__value, present),
+       sizeof(((struct En_gNB_ENDCConfigUpdateAckIEs__value *)0)->present),
+       asn_MAP_value_tag2el_584,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_584 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_584,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_584        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_En_gNB_ENDCConfigUpdateAckIEs_581[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateAckIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_582, &asn_PER_memb_id_constr_582,  memb_id_constraint_581 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateAckIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_En_gNB_ENDCConfigUpdateAckIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_583, &asn_PER_memb_criticality_constr_583,  memb_criticality_constraint_581 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateAckIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_584,
+               select_En_gNB_ENDCConfigUpdateAckIEs_value_type,
+               { &asn_OER_memb_value_constr_584, &asn_PER_memb_value_constr_584,  memb_value_constraint_581 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_En_gNB_ENDCConfigUpdateAckIEs_tags_581[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_En_gNB_ENDCConfigUpdateAckIEs_tag2el_581[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCConfigUpdateAckIEs_specs_581 = {
+       sizeof(struct En_gNB_ENDCConfigUpdateAckIEs),
+       offsetof(struct En_gNB_ENDCConfigUpdateAckIEs, _asn_ctx),
+       asn_MAP_En_gNB_ENDCConfigUpdateAckIEs_tag2el_581,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCConfigUpdateAckIEs = {
+       "En-gNB-ENDCConfigUpdateAckIEs",
+       "En-gNB-ENDCConfigUpdateAckIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_En_gNB_ENDCConfigUpdateAckIEs_tags_581,
+       sizeof(asn_DEF_En_gNB_ENDCConfigUpdateAckIEs_tags_581)
+               /sizeof(asn_DEF_En_gNB_ENDCConfigUpdateAckIEs_tags_581[0]), /* 1 */
+       asn_DEF_En_gNB_ENDCConfigUpdateAckIEs_tags_581, /* Same as above */
+       sizeof(asn_DEF_En_gNB_ENDCConfigUpdateAckIEs_tags_581)
+               /sizeof(asn_DEF_En_gNB_ENDCConfigUpdateAckIEs_tags_581[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_En_gNB_ENDCConfigUpdateAckIEs_581,
+       3,      /* Elements count */
+       &asn_SPC_En_gNB_ENDCConfigUpdateAckIEs_specs_581        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_588[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateFailure_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateFailure_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateFailure_IEs__value, choice.TimeToWait),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_TimeToWait,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "TimeToWait"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_588[] = { 2, 1, 0 };
+static const unsigned asn_MAP_value_from_canonical_588[] = { 2, 1, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_588[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_588 = {
+       sizeof(struct ENDCConfigurationUpdateFailure_IEs__value),
+       offsetof(struct ENDCConfigurationUpdateFailure_IEs__value, _asn_ctx),
+       offsetof(struct ENDCConfigurationUpdateFailure_IEs__value, present),
+       sizeof(((struct ENDCConfigurationUpdateFailure_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_588,
+       6,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_588,
+       asn_MAP_value_from_canonical_588,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_588 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_588,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_588        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateFailure_IEs_585[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateFailure_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_586, &asn_PER_memb_id_constr_586,  memb_id_constraint_585 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateFailure_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENDCConfigurationUpdateFailure_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_587, &asn_PER_memb_criticality_constr_587,  memb_criticality_constraint_585 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateFailure_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_588,
+               select_ENDCConfigurationUpdateFailure_IEs_value_type,
+               { &asn_OER_memb_value_constr_588, &asn_PER_memb_value_constr_588,  memb_value_constraint_585 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCConfigurationUpdateFailure_IEs_tags_585[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCConfigurationUpdateFailure_IEs_tag2el_585[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateFailure_IEs_specs_585 = {
+       sizeof(struct ENDCConfigurationUpdateFailure_IEs),
+       offsetof(struct ENDCConfigurationUpdateFailure_IEs, _asn_ctx),
+       asn_MAP_ENDCConfigurationUpdateFailure_IEs_tag2el_585,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateFailure_IEs = {
+       "ENDCConfigurationUpdateFailure-IEs",
+       "ENDCConfigurationUpdateFailure-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCConfigurationUpdateFailure_IEs_tags_585,
+       sizeof(asn_DEF_ENDCConfigurationUpdateFailure_IEs_tags_585)
+               /sizeof(asn_DEF_ENDCConfigurationUpdateFailure_IEs_tags_585[0]), /* 1 */
+       asn_DEF_ENDCConfigurationUpdateFailure_IEs_tags_585,    /* Same as above */
+       sizeof(asn_DEF_ENDCConfigurationUpdateFailure_IEs_tags_585)
+               /sizeof(asn_DEF_ENDCConfigurationUpdateFailure_IEs_tags_585[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCConfigurationUpdateFailure_IEs_585,
+       3,      /* Elements count */
+       &asn_SPC_ENDCConfigurationUpdateFailure_IEs_specs_585   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_592[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationRequest_IEs__value, choice.ServedNRCellsToActivate),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedNRCellsToActivate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ServedNRCellsToActivate"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationRequest_IEs__value, choice.ActivationID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_ActivationID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ActivationID"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_592[] = { 1, 0 };
+static const unsigned asn_MAP_value_from_canonical_592[] = { 1, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_592[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* ActivationID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ServedNRCellsToActivate */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_592 = {
+       sizeof(struct ENDCCellActivationRequest_IEs__value),
+       offsetof(struct ENDCCellActivationRequest_IEs__value, _asn_ctx),
+       offsetof(struct ENDCCellActivationRequest_IEs__value, present),
+       sizeof(((struct ENDCCellActivationRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_592,
+       2,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_592,
+       asn_MAP_value_from_canonical_592,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_592 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_592,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_592        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENDCCellActivationRequest_IEs_589[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_590, &asn_PER_memb_id_constr_590,  memb_id_constraint_589 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENDCCellActivationRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_591, &asn_PER_memb_criticality_constr_591,  memb_criticality_constraint_589 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_592,
+               select_ENDCCellActivationRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_592, &asn_PER_memb_value_constr_592,  memb_value_constraint_589 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCCellActivationRequest_IEs_tags_589[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCCellActivationRequest_IEs_tag2el_589[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationRequest_IEs_specs_589 = {
+       sizeof(struct ENDCCellActivationRequest_IEs),
+       offsetof(struct ENDCCellActivationRequest_IEs, _asn_ctx),
+       asn_MAP_ENDCCellActivationRequest_IEs_tag2el_589,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationRequest_IEs = {
+       "ENDCCellActivationRequest-IEs",
+       "ENDCCellActivationRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCCellActivationRequest_IEs_tags_589,
+       sizeof(asn_DEF_ENDCCellActivationRequest_IEs_tags_589)
+               /sizeof(asn_DEF_ENDCCellActivationRequest_IEs_tags_589[0]), /* 1 */
+       asn_DEF_ENDCCellActivationRequest_IEs_tags_589, /* Same as above */
+       sizeof(asn_DEF_ENDCCellActivationRequest_IEs_tags_589)
+               /sizeof(asn_DEF_ENDCCellActivationRequest_IEs_tags_589[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCCellActivationRequest_IEs_589,
+       3,      /* Elements count */
+       &asn_SPC_ENDCCellActivationRequest_IEs_specs_589        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_596[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationResponse_IEs__value, choice.ActivatedNRCellList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ActivatedNRCellList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ActivatedNRCellList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationResponse_IEs__value, choice.ActivationID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_ActivationID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ActivationID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationResponse_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_596[] = { 1, 0, 2 };
+static const unsigned asn_MAP_value_from_canonical_596[] = { 1, 0, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_596[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* ActivationID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* ActivatedNRCellList */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_596 = {
+       sizeof(struct ENDCCellActivationResponse_IEs__value),
+       offsetof(struct ENDCCellActivationResponse_IEs__value, _asn_ctx),
+       offsetof(struct ENDCCellActivationResponse_IEs__value, present),
+       sizeof(((struct ENDCCellActivationResponse_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_596,
+       3,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_596,
+       asn_MAP_value_from_canonical_596,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_596 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_596,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_596        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENDCCellActivationResponse_IEs_593[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationResponse_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_594, &asn_PER_memb_id_constr_594,  memb_id_constraint_593 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationResponse_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENDCCellActivationResponse_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_595, &asn_PER_memb_criticality_constr_595,  memb_criticality_constraint_593 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationResponse_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_596,
+               select_ENDCCellActivationResponse_IEs_value_type,
+               { &asn_OER_memb_value_constr_596, &asn_PER_memb_value_constr_596,  memb_value_constraint_593 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCCellActivationResponse_IEs_tags_593[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCCellActivationResponse_IEs_tag2el_593[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationResponse_IEs_specs_593 = {
+       sizeof(struct ENDCCellActivationResponse_IEs),
+       offsetof(struct ENDCCellActivationResponse_IEs, _asn_ctx),
+       asn_MAP_ENDCCellActivationResponse_IEs_tag2el_593,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationResponse_IEs = {
+       "ENDCCellActivationResponse-IEs",
+       "ENDCCellActivationResponse-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCCellActivationResponse_IEs_tags_593,
+       sizeof(asn_DEF_ENDCCellActivationResponse_IEs_tags_593)
+               /sizeof(asn_DEF_ENDCCellActivationResponse_IEs_tags_593[0]), /* 1 */
+       asn_DEF_ENDCCellActivationResponse_IEs_tags_593,        /* Same as above */
+       sizeof(asn_DEF_ENDCCellActivationResponse_IEs_tags_593)
+               /sizeof(asn_DEF_ENDCCellActivationResponse_IEs_tags_593[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCCellActivationResponse_IEs_593,
+       3,      /* Elements count */
+       &asn_SPC_ENDCCellActivationResponse_IEs_specs_593       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_600[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationFailure_IEs__value, choice.ActivationID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_ActivationID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ActivationID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationFailure_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationFailure_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_600[] = { 0, 2, 1 };
+static const unsigned asn_MAP_value_from_canonical_600[] = { 0, 2, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_600[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* ActivationID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_600 = {
+       sizeof(struct ENDCCellActivationFailure_IEs__value),
+       offsetof(struct ENDCCellActivationFailure_IEs__value, _asn_ctx),
+       offsetof(struct ENDCCellActivationFailure_IEs__value, present),
+       sizeof(((struct ENDCCellActivationFailure_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_600,
+       6,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_600,
+       asn_MAP_value_from_canonical_600,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_600 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_600,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_600        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENDCCellActivationFailure_IEs_597[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationFailure_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_598, &asn_PER_memb_id_constr_598,  memb_id_constraint_597 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationFailure_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENDCCellActivationFailure_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_599, &asn_PER_memb_criticality_constr_599,  memb_criticality_constraint_597 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationFailure_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_600,
+               select_ENDCCellActivationFailure_IEs_value_type,
+               { &asn_OER_memb_value_constr_600, &asn_PER_memb_value_constr_600,  memb_value_constraint_597 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCCellActivationFailure_IEs_tags_597[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCCellActivationFailure_IEs_tag2el_597[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationFailure_IEs_specs_597 = {
+       sizeof(struct ENDCCellActivationFailure_IEs),
+       offsetof(struct ENDCCellActivationFailure_IEs, _asn_ctx),
+       asn_MAP_ENDCCellActivationFailure_IEs_tag2el_597,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationFailure_IEs = {
+       "ENDCCellActivationFailure-IEs",
+       "ENDCCellActivationFailure-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCCellActivationFailure_IEs_tags_597,
+       sizeof(asn_DEF_ENDCCellActivationFailure_IEs_tags_597)
+               /sizeof(asn_DEF_ENDCCellActivationFailure_IEs_tags_597[0]), /* 1 */
+       asn_DEF_ENDCCellActivationFailure_IEs_tags_597, /* Same as above */
+       sizeof(asn_DEF_ENDCCellActivationFailure_IEs_tags_597)
+               /sizeof(asn_DEF_ENDCCellActivationFailure_IEs_tags_597[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCCellActivationFailure_IEs_597,
+       3,      /* Elements count */
+       &asn_SPC_ENDCCellActivationFailure_IEs_specs_597        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_604[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATDataUsageReport_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATDataUsageReport_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATDataUsageReport_IEs__value, choice.SecondaryRATUsageReportList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SecondaryRATUsageReportList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SecondaryRATUsageReportList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATDataUsageReport_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_604[] = { 0, 1, 3, 2 };
+static const unsigned asn_MAP_value_from_canonical_604[] = { 0, 1, 3, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_604[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* SecondaryRATUsageReportList */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_604 = {
+       sizeof(struct SecondaryRATDataUsageReport_IEs__value),
+       offsetof(struct SecondaryRATDataUsageReport_IEs__value, _asn_ctx),
+       offsetof(struct SecondaryRATDataUsageReport_IEs__value, present),
+       sizeof(((struct SecondaryRATDataUsageReport_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_604,
+       4,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_604,
+       asn_MAP_value_from_canonical_604,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_604 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_604,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_604        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SecondaryRATDataUsageReport_IEs_601[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATDataUsageReport_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_602, &asn_PER_memb_id_constr_602,  memb_id_constraint_601 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATDataUsageReport_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SecondaryRATDataUsageReport_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_603, &asn_PER_memb_criticality_constr_603,  memb_criticality_constraint_601 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SecondaryRATDataUsageReport_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_604,
+               select_SecondaryRATDataUsageReport_IEs_value_type,
+               { &asn_OER_memb_value_constr_604, &asn_PER_memb_value_constr_604,  memb_value_constraint_601 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SecondaryRATDataUsageReport_IEs_tags_601[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SecondaryRATDataUsageReport_IEs_tag2el_601[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATDataUsageReport_IEs_specs_601 = {
+       sizeof(struct SecondaryRATDataUsageReport_IEs),
+       offsetof(struct SecondaryRATDataUsageReport_IEs, _asn_ctx),
+       asn_MAP_SecondaryRATDataUsageReport_IEs_tag2el_601,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SecondaryRATDataUsageReport_IEs = {
+       "SecondaryRATDataUsageReport-IEs",
+       "SecondaryRATDataUsageReport-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SecondaryRATDataUsageReport_IEs_tags_601,
+       sizeof(asn_DEF_SecondaryRATDataUsageReport_IEs_tags_601)
+               /sizeof(asn_DEF_SecondaryRATDataUsageReport_IEs_tags_601[0]), /* 1 */
+       asn_DEF_SecondaryRATDataUsageReport_IEs_tags_601,       /* Same as above */
+       sizeof(asn_DEF_SecondaryRATDataUsageReport_IEs_tags_601)
+               /sizeof(asn_DEF_SecondaryRATDataUsageReport_IEs_tags_601[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SecondaryRATDataUsageReport_IEs_601,
+       3,      /* Elements count */
+       &asn_SPC_SecondaryRATDataUsageReport_IEs_specs_601      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_608[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification_IEs__value, choice.SgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification_IEs__value, choice.UserPlaneTrafficActivityReport),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_UserPlaneTrafficActivityReport,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UserPlaneTrafficActivityReport"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification_IEs__value, choice.ERABActivityNotifyItemList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ERABActivityNotifyItemList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ERABActivityNotifyItemList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_608[] = { 0, 1, 4, 2, 3 };
+static const unsigned asn_MAP_value_from_canonical_608[] = { 0, 1, 3, 4, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_608[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* UserPlaneTrafficActivityReport */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 } /* ERABActivityNotifyItemList */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_608 = {
+       sizeof(struct SgNBActivityNotification_IEs__value),
+       offsetof(struct SgNBActivityNotification_IEs__value, _asn_ctx),
+       offsetof(struct SgNBActivityNotification_IEs__value, present),
+       sizeof(((struct SgNBActivityNotification_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_608,
+       5,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_608,
+       asn_MAP_value_from_canonical_608,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_608 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_608,
+       5,      /* Elements count */
+       &asn_SPC_value_specs_608        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SgNBActivityNotification_IEs_605[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_606, &asn_PER_memb_id_constr_606,  memb_id_constraint_605 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SgNBActivityNotification_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_607, &asn_PER_memb_criticality_constr_607,  memb_criticality_constraint_605 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_608,
+               select_SgNBActivityNotification_IEs_value_type,
+               { &asn_OER_memb_value_constr_608, &asn_PER_memb_value_constr_608,  memb_value_constraint_605 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBActivityNotification_IEs_tags_605[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBActivityNotification_IEs_tag2el_605[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBActivityNotification_IEs_specs_605 = {
+       sizeof(struct SgNBActivityNotification_IEs),
+       offsetof(struct SgNBActivityNotification_IEs, _asn_ctx),
+       asn_MAP_SgNBActivityNotification_IEs_tag2el_605,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBActivityNotification_IEs = {
+       "SgNBActivityNotification-IEs",
+       "SgNBActivityNotification-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBActivityNotification_IEs_tags_605,
+       sizeof(asn_DEF_SgNBActivityNotification_IEs_tags_605)
+               /sizeof(asn_DEF_SgNBActivityNotification_IEs_tags_605[0]), /* 1 */
+       asn_DEF_SgNBActivityNotification_IEs_tags_605,  /* Same as above */
+       sizeof(asn_DEF_SgNBActivityNotification_IEs_tags_605)
+               /sizeof(asn_DEF_SgNBActivityNotification_IEs_tags_605[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBActivityNotification_IEs_605,
+       3,      /* Elements count */
+       &asn_SPC_SgNBActivityNotification_IEs_specs_605 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_612[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetRequired_IEs__value, choice.UEsToBeResetList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UEsToBeResetList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UEsToBeResetList"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetRequired_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_612[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* UEsToBeResetList */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_612 = {
+       sizeof(struct ENDCPartialResetRequired_IEs__value),
+       offsetof(struct ENDCPartialResetRequired_IEs__value, _asn_ctx),
+       offsetof(struct ENDCPartialResetRequired_IEs__value, present),
+       sizeof(((struct ENDCPartialResetRequired_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_612,
+       5,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_612 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_612,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_612        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENDCPartialResetRequired_IEs_609[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetRequired_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_610, &asn_PER_memb_id_constr_610,  memb_id_constraint_609 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetRequired_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENDCPartialResetRequired_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_611, &asn_PER_memb_criticality_constr_611,  memb_criticality_constraint_609 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetRequired_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_612,
+               select_ENDCPartialResetRequired_IEs_value_type,
+               { &asn_OER_memb_value_constr_612, &asn_PER_memb_value_constr_612,  memb_value_constraint_609 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCPartialResetRequired_IEs_tags_609[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCPartialResetRequired_IEs_tag2el_609[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCPartialResetRequired_IEs_specs_609 = {
+       sizeof(struct ENDCPartialResetRequired_IEs),
+       offsetof(struct ENDCPartialResetRequired_IEs, _asn_ctx),
+       asn_MAP_ENDCPartialResetRequired_IEs_tag2el_609,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetRequired_IEs = {
+       "ENDCPartialResetRequired-IEs",
+       "ENDCPartialResetRequired-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCPartialResetRequired_IEs_tags_609,
+       sizeof(asn_DEF_ENDCPartialResetRequired_IEs_tags_609)
+               /sizeof(asn_DEF_ENDCPartialResetRequired_IEs_tags_609[0]), /* 1 */
+       asn_DEF_ENDCPartialResetRequired_IEs_tags_609,  /* Same as above */
+       sizeof(asn_DEF_ENDCPartialResetRequired_IEs_tags_609)
+               /sizeof(asn_DEF_ENDCPartialResetRequired_IEs_tags_609[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCPartialResetRequired_IEs_609,
+       3,      /* Elements count */
+       &asn_SPC_ENDCPartialResetRequired_IEs_specs_609 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_616[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetConfirm_IEs__value, choice.UEsToBeResetList),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UEsToBeResetList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UEsToBeResetList"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_616[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* UEsToBeResetList */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_616 = {
+       sizeof(struct ENDCPartialResetConfirm_IEs__value),
+       offsetof(struct ENDCPartialResetConfirm_IEs__value, _asn_ctx),
+       offsetof(struct ENDCPartialResetConfirm_IEs__value, present),
+       sizeof(((struct ENDCPartialResetConfirm_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_616,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_616 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_616,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_616        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENDCPartialResetConfirm_IEs_613[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetConfirm_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_614, &asn_PER_memb_id_constr_614,  memb_id_constraint_613 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetConfirm_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENDCPartialResetConfirm_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_615, &asn_PER_memb_criticality_constr_615,  memb_criticality_constraint_613 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetConfirm_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_616,
+               select_ENDCPartialResetConfirm_IEs_value_type,
+               { &asn_OER_memb_value_constr_616, &asn_PER_memb_value_constr_616,  memb_value_constraint_613 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCPartialResetConfirm_IEs_tags_613[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCPartialResetConfirm_IEs_tag2el_613[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCPartialResetConfirm_IEs_specs_613 = {
+       sizeof(struct ENDCPartialResetConfirm_IEs),
+       offsetof(struct ENDCPartialResetConfirm_IEs, _asn_ctx),
+       asn_MAP_ENDCPartialResetConfirm_IEs_tag2el_613,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetConfirm_IEs = {
+       "ENDCPartialResetConfirm-IEs",
+       "ENDCPartialResetConfirm-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCPartialResetConfirm_IEs_tags_613,
+       sizeof(asn_DEF_ENDCPartialResetConfirm_IEs_tags_613)
+               /sizeof(asn_DEF_ENDCPartialResetConfirm_IEs_tags_613[0]), /* 1 */
+       asn_DEF_ENDCPartialResetConfirm_IEs_tags_613,   /* Same as above */
+       sizeof(asn_DEF_ENDCPartialResetConfirm_IEs_tags_613)
+               /sizeof(asn_DEF_ENDCPartialResetConfirm_IEs_tags_613[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCPartialResetConfirm_IEs_613,
+       3,      /* Elements count */
+       &asn_SPC_ENDCPartialResetConfirm_IEs_specs_613  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_620[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs__value, choice.InitiatingNodeType_EutranrCellResourceCoordination),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_InitiatingNodeType_EutranrCellResourceCoordination,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "InitiatingNodeType-EutranrCellResourceCoordination"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_620[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initiate-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* initiate-en-gNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_620 = {
+       sizeof(struct EUTRANRCellResourceCoordinationRequest_IEs__value),
+       offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs__value, _asn_ctx),
+       offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs__value, present),
+       sizeof(((struct EUTRANRCellResourceCoordinationRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_620,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_620 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_620,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_620        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_EUTRANRCellResourceCoordinationRequest_IEs_617[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_618, &asn_PER_memb_id_constr_618,  memb_id_constraint_617 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_EUTRANRCellResourceCoordinationRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_619, &asn_PER_memb_criticality_constr_619,  memb_criticality_constraint_617 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_620,
+               select_EUTRANRCellResourceCoordinationRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_620, &asn_PER_memb_value_constr_620,  memb_value_constraint_617 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs_tags_617[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EUTRANRCellResourceCoordinationRequest_IEs_tag2el_617[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EUTRANRCellResourceCoordinationRequest_IEs_specs_617 = {
+       sizeof(struct EUTRANRCellResourceCoordinationRequest_IEs),
+       offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs, _asn_ctx),
+       asn_MAP_EUTRANRCellResourceCoordinationRequest_IEs_tag2el_617,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs = {
+       "EUTRANRCellResourceCoordinationRequest-IEs",
+       "EUTRANRCellResourceCoordinationRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs_tags_617,
+       sizeof(asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs_tags_617)
+               /sizeof(asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs_tags_617[0]), /* 1 */
+       asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs_tags_617,    /* Same as above */
+       sizeof(asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs_tags_617)
+               /sizeof(asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs_tags_617[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_EUTRANRCellResourceCoordinationRequest_IEs_617,
+       3,      /* Elements count */
+       &asn_SPC_EUTRANRCellResourceCoordinationRequest_IEs_specs_617   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_624[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs__value, choice.DataTrafficResourceIndication),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_DataTrafficResourceIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "DataTrafficResourceIndication"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs__value, choice.SpectrumSharingGroupID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SpectrumSharingGroupID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SpectrumSharingGroupID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs__value, choice.ListofEUTRACellsinEUTRACoordinationReq),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ListofEUTRACellsinEUTRACoordinationReq,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ListofEUTRACellsinEUTRACoordinationReq"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_624[] = { 1, 0, 2 };
+static const unsigned asn_MAP_value_from_canonical_624[] = { 1, 0, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_624[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* SpectrumSharingGroupID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* DataTrafficResourceIndication */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* ListofEUTRACellsinEUTRACoordinationReq */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_624 = {
+       sizeof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs__value),
+       offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs__value, _asn_ctx),
+       offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs__value, present),
+       sizeof(((struct ENB_EUTRA_NRCellResourceCoordinationReqIEs__value *)0)->present),
+       asn_MAP_value_tag2el_624,
+       3,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_624,
+       asn_MAP_value_from_canonical_624,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_624 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_624,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_624        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENB_EUTRA_NRCellResourceCoordinationReqIEs_621[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_622, &asn_PER_memb_id_constr_622,  memb_id_constraint_621 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENB_EUTRA_NRCellResourceCoordinationReqIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_623, &asn_PER_memb_criticality_constr_623,  memb_criticality_constraint_621 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_624,
+               select_ENB_EUTRA_NRCellResourceCoordinationReqIEs_value_type,
+               { &asn_OER_memb_value_constr_624, &asn_PER_memb_value_constr_624,  memb_value_constraint_621 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tags_621[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tag2el_621[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENB_EUTRA_NRCellResourceCoordinationReqIEs_specs_621 = {
+       sizeof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs),
+       offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs, _asn_ctx),
+       asn_MAP_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tag2el_621,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs = {
+       "ENB-EUTRA-NRCellResourceCoordinationReqIEs",
+       "ENB-EUTRA-NRCellResourceCoordinationReqIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tags_621,
+       sizeof(asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tags_621)
+               /sizeof(asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tags_621[0]), /* 1 */
+       asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tags_621,    /* Same as above */
+       sizeof(asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tags_621)
+               /sizeof(asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tags_621[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENB_EUTRA_NRCellResourceCoordinationReqIEs_621,
+       3,      /* Elements count */
+       &asn_SPC_ENB_EUTRA_NRCellResourceCoordinationReqIEs_specs_621   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_628[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value, choice.DataTrafficResourceIndication),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_DataTrafficResourceIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "DataTrafficResourceIndication"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value, choice.ListofEUTRACellsinNRCoordinationReq),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ListofEUTRACellsinNRCoordinationReq,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ListofEUTRACellsinNRCoordinationReq"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value, choice.SpectrumSharingGroupID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SpectrumSharingGroupID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SpectrumSharingGroupID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value, choice.ListofNRCellsinNRCoordinationReq),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ListofNRCellsinNRCoordinationReq,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ListofNRCellsinNRCoordinationReq"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_628[] = { 2, 0, 1, 3 };
+static const unsigned asn_MAP_value_from_canonical_628[] = { 1, 2, 0, 3 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_628[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, 0, 0 }, /* SpectrumSharingGroupID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* DataTrafficResourceIndication */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 1 }, /* ListofEUTRACellsinNRCoordinationReq */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* ListofNRCellsinNRCoordinationReq */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_628 = {
+       sizeof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value),
+       offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value, _asn_ctx),
+       offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value, present),
+       sizeof(((struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value *)0)->present),
+       asn_MAP_value_tag2el_628,
+       4,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_628,
+       asn_MAP_value_from_canonical_628,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_628 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_628,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_628        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_625[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_626, &asn_PER_memb_id_constr_626,  memb_id_constraint_625 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_627, &asn_PER_memb_criticality_constr_627,  memb_criticality_constraint_625 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_628,
+               select_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_value_type,
+               { &asn_OER_memb_value_constr_628, &asn_PER_memb_value_constr_628,  memb_value_constraint_625 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tags_625[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tag2el_625[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_specs_625 = {
+       sizeof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs),
+       offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs, _asn_ctx),
+       asn_MAP_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tag2el_625,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs = {
+       "En-gNB-EUTRA-NRCellResourceCoordinationReqIEs",
+       "En-gNB-EUTRA-NRCellResourceCoordinationReqIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tags_625,
+       sizeof(asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tags_625)
+               /sizeof(asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tags_625[0]), /* 1 */
+       asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tags_625, /* Same as above */
+       sizeof(asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tags_625)
+               /sizeof(asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tags_625[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_625,
+       3,      /* Elements count */
+       &asn_SPC_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_specs_625        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_632[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs__value, choice.RespondingNodeType_EutranrCellResourceCoordination),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_RespondingNodeType_EutranrCellResourceCoordination,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RespondingNodeType-EutranrCellResourceCoordination"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_632[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* respond-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* respond-en-gNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_632 = {
+       sizeof(struct EUTRANRCellResourceCoordinationResponse_IEs__value),
+       offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs__value, _asn_ctx),
+       offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs__value, present),
+       sizeof(((struct EUTRANRCellResourceCoordinationResponse_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_632,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_632 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_632,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_632        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_EUTRANRCellResourceCoordinationResponse_IEs_629[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_630, &asn_PER_memb_id_constr_630,  memb_id_constraint_629 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_EUTRANRCellResourceCoordinationResponse_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_631, &asn_PER_memb_criticality_constr_631,  memb_criticality_constraint_629 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_632,
+               select_EUTRANRCellResourceCoordinationResponse_IEs_value_type,
+               { &asn_OER_memb_value_constr_632, &asn_PER_memb_value_constr_632,  memb_value_constraint_629 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs_tags_629[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EUTRANRCellResourceCoordinationResponse_IEs_tag2el_629[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EUTRANRCellResourceCoordinationResponse_IEs_specs_629 = {
+       sizeof(struct EUTRANRCellResourceCoordinationResponse_IEs),
+       offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs, _asn_ctx),
+       asn_MAP_EUTRANRCellResourceCoordinationResponse_IEs_tag2el_629,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs = {
+       "EUTRANRCellResourceCoordinationResponse-IEs",
+       "EUTRANRCellResourceCoordinationResponse-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs_tags_629,
+       sizeof(asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs_tags_629)
+               /sizeof(asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs_tags_629[0]), /* 1 */
+       asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs_tags_629,   /* Same as above */
+       sizeof(asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs_tags_629)
+               /sizeof(asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs_tags_629[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_EUTRANRCellResourceCoordinationResponse_IEs_629,
+       3,      /* Elements count */
+       &asn_SPC_EUTRANRCellResourceCoordinationResponse_IEs_specs_629  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_636[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, choice.DataTrafficResourceIndication),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_DataTrafficResourceIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "DataTrafficResourceIndication"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, choice.SpectrumSharingGroupID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SpectrumSharingGroupID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SpectrumSharingGroupID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, choice.ListofEUTRACellsinEUTRACoordinationResp),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ListofEUTRACellsinEUTRACoordinationResp,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ListofEUTRACellsinEUTRACoordinationResp"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_636[] = { 1, 0, 2 };
+static const unsigned asn_MAP_value_from_canonical_636[] = { 1, 0, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_636[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* SpectrumSharingGroupID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* DataTrafficResourceIndication */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* ListofEUTRACellsinEUTRACoordinationResp */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_636 = {
+       sizeof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value),
+       offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, _asn_ctx),
+       offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, present),
+       sizeof(((struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value *)0)->present),
+       asn_MAP_value_tag2el_636,
+       3,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_636,
+       asn_MAP_value_from_canonical_636,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_636 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_636,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_636        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_633[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_634, &asn_PER_memb_id_constr_634,  memb_id_constraint_633 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_635, &asn_PER_memb_criticality_constr_635,  memb_criticality_constraint_633 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_636,
+               select_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_value_type,
+               { &asn_OER_memb_value_constr_636, &asn_PER_memb_value_constr_636,  memb_value_constraint_633 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_633[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tag2el_633[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_specs_633 = {
+       sizeof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs),
+       offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs, _asn_ctx),
+       asn_MAP_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tag2el_633,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs = {
+       "ENB-EUTRA-NRCellResourceCoordinationReqAckIEs",
+       "ENB-EUTRA-NRCellResourceCoordinationReqAckIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_633,
+       sizeof(asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_633)
+               /sizeof(asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_633[0]), /* 1 */
+       asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_633, /* Same as above */
+       sizeof(asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_633)
+               /sizeof(asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_633[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_633,
+       3,      /* Elements count */
+       &asn_SPC_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_specs_633        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_640[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, choice.DataTrafficResourceIndication),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_DataTrafficResourceIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "DataTrafficResourceIndication"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, choice.SpectrumSharingGroupID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_SpectrumSharingGroupID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SpectrumSharingGroupID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, choice.ListofNRCellsinNRCoordinationResp),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ListofNRCellsinNRCoordinationResp,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ListofNRCellsinNRCoordinationResp"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_640[] = { 1, 0, 2 };
+static const unsigned asn_MAP_value_from_canonical_640[] = { 1, 0, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_640[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* SpectrumSharingGroupID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* DataTrafficResourceIndication */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* ListofNRCellsinNRCoordinationResp */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_640 = {
+       sizeof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value),
+       offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, _asn_ctx),
+       offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, present),
+       sizeof(((struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value *)0)->present),
+       asn_MAP_value_tag2el_640,
+       3,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_640,
+       asn_MAP_value_from_canonical_640,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_640 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_640,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_640        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_637[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_638, &asn_PER_memb_id_constr_638,  memb_id_constraint_637 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_639, &asn_PER_memb_criticality_constr_639,  memb_criticality_constraint_637 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_640,
+               select_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_value_type,
+               { &asn_OER_memb_value_constr_640, &asn_PER_memb_value_constr_640,  memb_value_constraint_637 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_637[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tag2el_637[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_specs_637 = {
+       sizeof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs),
+       offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs, _asn_ctx),
+       asn_MAP_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tag2el_637,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs = {
+       "En-gNB-EUTRA-NRCellResourceCoordinationReqAckIEs",
+       "En-gNB-EUTRA-NRCellResourceCoordinationReqAckIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_637,
+       sizeof(asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_637)
+               /sizeof(asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_637[0]), /* 1 */
+       asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_637,      /* Same as above */
+       sizeof(asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_637)
+               /sizeof(asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_637[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_637,
+       3,      /* Elements count */
+       &asn_SPC_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_specs_637     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_644[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalRequest_IEs__value, choice.InitiatingNodeType_EndcX2Removal),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_InitiatingNodeType_EndcX2Removal,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "InitiatingNodeType-EndcX2Removal"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_644[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* init-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* init-en-gNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_644 = {
+       sizeof(struct ENDCX2RemovalRequest_IEs__value),
+       offsetof(struct ENDCX2RemovalRequest_IEs__value, _asn_ctx),
+       offsetof(struct ENDCX2RemovalRequest_IEs__value, present),
+       sizeof(((struct ENDCX2RemovalRequest_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_644,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_644 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_644,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_644        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENDCX2RemovalRequest_IEs_641[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalRequest_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_642, &asn_PER_memb_id_constr_642,  memb_id_constraint_641 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalRequest_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENDCX2RemovalRequest_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_643, &asn_PER_memb_criticality_constr_643,  memb_criticality_constraint_641 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalRequest_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_644,
+               select_ENDCX2RemovalRequest_IEs_value_type,
+               { &asn_OER_memb_value_constr_644, &asn_PER_memb_value_constr_644,  memb_value_constraint_641 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCX2RemovalRequest_IEs_tags_641[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCX2RemovalRequest_IEs_tag2el_641[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalRequest_IEs_specs_641 = {
+       sizeof(struct ENDCX2RemovalRequest_IEs),
+       offsetof(struct ENDCX2RemovalRequest_IEs, _asn_ctx),
+       asn_MAP_ENDCX2RemovalRequest_IEs_tag2el_641,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalRequest_IEs = {
+       "ENDCX2RemovalRequest-IEs",
+       "ENDCX2RemovalRequest-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCX2RemovalRequest_IEs_tags_641,
+       sizeof(asn_DEF_ENDCX2RemovalRequest_IEs_tags_641)
+               /sizeof(asn_DEF_ENDCX2RemovalRequest_IEs_tags_641[0]), /* 1 */
+       asn_DEF_ENDCX2RemovalRequest_IEs_tags_641,      /* Same as above */
+       sizeof(asn_DEF_ENDCX2RemovalRequest_IEs_tags_641)
+               /sizeof(asn_DEF_ENDCX2RemovalRequest_IEs_tags_641[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCX2RemovalRequest_IEs_641,
+       3,      /* Elements count */
+       &asn_SPC_ENDCX2RemovalRequest_IEs_specs_641     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_648[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2RemovalReqIEs__value, choice.GlobalENB_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GlobalENB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GlobalENB-ID"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_648[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GlobalENB-ID */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_648 = {
+       sizeof(struct ENB_ENDCX2RemovalReqIEs__value),
+       offsetof(struct ENB_ENDCX2RemovalReqIEs__value, _asn_ctx),
+       offsetof(struct ENB_ENDCX2RemovalReqIEs__value, present),
+       sizeof(((struct ENB_ENDCX2RemovalReqIEs__value *)0)->present),
+       asn_MAP_value_tag2el_648,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_648 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_648,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_648        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENB_ENDCX2RemovalReqIEs_645[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2RemovalReqIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_646, &asn_PER_memb_id_constr_646,  memb_id_constraint_645 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2RemovalReqIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENB_ENDCX2RemovalReqIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_647, &asn_PER_memb_criticality_constr_647,  memb_criticality_constraint_645 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2RemovalReqIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_648,
+               select_ENB_ENDCX2RemovalReqIEs_value_type,
+               { &asn_OER_memb_value_constr_648, &asn_PER_memb_value_constr_648,  memb_value_constraint_645 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENB_ENDCX2RemovalReqIEs_tags_645[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENB_ENDCX2RemovalReqIEs_tag2el_645[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2RemovalReqIEs_specs_645 = {
+       sizeof(struct ENB_ENDCX2RemovalReqIEs),
+       offsetof(struct ENB_ENDCX2RemovalReqIEs, _asn_ctx),
+       asn_MAP_ENB_ENDCX2RemovalReqIEs_tag2el_645,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2RemovalReqIEs = {
+       "ENB-ENDCX2RemovalReqIEs",
+       "ENB-ENDCX2RemovalReqIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENB_ENDCX2RemovalReqIEs_tags_645,
+       sizeof(asn_DEF_ENB_ENDCX2RemovalReqIEs_tags_645)
+               /sizeof(asn_DEF_ENB_ENDCX2RemovalReqIEs_tags_645[0]), /* 1 */
+       asn_DEF_ENB_ENDCX2RemovalReqIEs_tags_645,       /* Same as above */
+       sizeof(asn_DEF_ENB_ENDCX2RemovalReqIEs_tags_645)
+               /sizeof(asn_DEF_ENB_ENDCX2RemovalReqIEs_tags_645[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENB_ENDCX2RemovalReqIEs_645,
+       3,      /* Elements count */
+       &asn_SPC_ENB_ENDCX2RemovalReqIEs_specs_645      /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_652[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2RemovalReqIEs__value, choice.GlobalGNB_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GlobalGNB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GlobalGNB-ID"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_652[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GlobalGNB-ID */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_652 = {
+       sizeof(struct En_gNB_ENDCX2RemovalReqIEs__value),
+       offsetof(struct En_gNB_ENDCX2RemovalReqIEs__value, _asn_ctx),
+       offsetof(struct En_gNB_ENDCX2RemovalReqIEs__value, present),
+       sizeof(((struct En_gNB_ENDCX2RemovalReqIEs__value *)0)->present),
+       asn_MAP_value_tag2el_652,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_652 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_652,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_652        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2RemovalReqIEs_649[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2RemovalReqIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_650, &asn_PER_memb_id_constr_650,  memb_id_constraint_649 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2RemovalReqIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_En_gNB_ENDCX2RemovalReqIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_651, &asn_PER_memb_criticality_constr_651,  memb_criticality_constraint_649 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2RemovalReqIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_652,
+               select_En_gNB_ENDCX2RemovalReqIEs_value_type,
+               { &asn_OER_memb_value_constr_652, &asn_PER_memb_value_constr_652,  memb_value_constraint_649 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_En_gNB_ENDCX2RemovalReqIEs_tags_649[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_En_gNB_ENDCX2RemovalReqIEs_tag2el_649[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2RemovalReqIEs_specs_649 = {
+       sizeof(struct En_gNB_ENDCX2RemovalReqIEs),
+       offsetof(struct En_gNB_ENDCX2RemovalReqIEs, _asn_ctx),
+       asn_MAP_En_gNB_ENDCX2RemovalReqIEs_tag2el_649,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2RemovalReqIEs = {
+       "En-gNB-ENDCX2RemovalReqIEs",
+       "En-gNB-ENDCX2RemovalReqIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_En_gNB_ENDCX2RemovalReqIEs_tags_649,
+       sizeof(asn_DEF_En_gNB_ENDCX2RemovalReqIEs_tags_649)
+               /sizeof(asn_DEF_En_gNB_ENDCX2RemovalReqIEs_tags_649[0]), /* 1 */
+       asn_DEF_En_gNB_ENDCX2RemovalReqIEs_tags_649,    /* Same as above */
+       sizeof(asn_DEF_En_gNB_ENDCX2RemovalReqIEs_tags_649)
+               /sizeof(asn_DEF_En_gNB_ENDCX2RemovalReqIEs_tags_649[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_En_gNB_ENDCX2RemovalReqIEs_649,
+       3,      /* Elements count */
+       &asn_SPC_En_gNB_ENDCX2RemovalReqIEs_specs_649   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_656[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalResponse_IEs__value, choice.RespondingNodeType_EndcX2Removal),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_RespondingNodeType_EndcX2Removal,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RespondingNodeType-EndcX2Removal"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_656[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* respond-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* respond-en-gNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_656 = {
+       sizeof(struct ENDCX2RemovalResponse_IEs__value),
+       offsetof(struct ENDCX2RemovalResponse_IEs__value, _asn_ctx),
+       offsetof(struct ENDCX2RemovalResponse_IEs__value, present),
+       sizeof(((struct ENDCX2RemovalResponse_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_656,
+       2,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_656 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_656,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_656        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENDCX2RemovalResponse_IEs_653[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalResponse_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_654, &asn_PER_memb_id_constr_654,  memb_id_constraint_653 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalResponse_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENDCX2RemovalResponse_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_655, &asn_PER_memb_criticality_constr_655,  memb_criticality_constraint_653 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalResponse_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_656,
+               select_ENDCX2RemovalResponse_IEs_value_type,
+               { &asn_OER_memb_value_constr_656, &asn_PER_memb_value_constr_656,  memb_value_constraint_653 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCX2RemovalResponse_IEs_tags_653[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCX2RemovalResponse_IEs_tag2el_653[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalResponse_IEs_specs_653 = {
+       sizeof(struct ENDCX2RemovalResponse_IEs),
+       offsetof(struct ENDCX2RemovalResponse_IEs, _asn_ctx),
+       asn_MAP_ENDCX2RemovalResponse_IEs_tag2el_653,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalResponse_IEs = {
+       "ENDCX2RemovalResponse-IEs",
+       "ENDCX2RemovalResponse-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCX2RemovalResponse_IEs_tags_653,
+       sizeof(asn_DEF_ENDCX2RemovalResponse_IEs_tags_653)
+               /sizeof(asn_DEF_ENDCX2RemovalResponse_IEs_tags_653[0]), /* 1 */
+       asn_DEF_ENDCX2RemovalResponse_IEs_tags_653,     /* Same as above */
+       sizeof(asn_DEF_ENDCX2RemovalResponse_IEs_tags_653)
+               /sizeof(asn_DEF_ENDCX2RemovalResponse_IEs_tags_653[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCX2RemovalResponse_IEs_653,
+       3,      /* Elements count */
+       &asn_SPC_ENDCX2RemovalResponse_IEs_specs_653    /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_660[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2RemovalReqAckIEs__value, choice.GlobalENB_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GlobalENB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GlobalENB-ID"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_660[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GlobalENB-ID */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_660 = {
+       sizeof(struct ENB_ENDCX2RemovalReqAckIEs__value),
+       offsetof(struct ENB_ENDCX2RemovalReqAckIEs__value, _asn_ctx),
+       offsetof(struct ENB_ENDCX2RemovalReqAckIEs__value, present),
+       sizeof(((struct ENB_ENDCX2RemovalReqAckIEs__value *)0)->present),
+       asn_MAP_value_tag2el_660,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_660 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_660,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_660        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENB_ENDCX2RemovalReqAckIEs_657[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2RemovalReqAckIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_658, &asn_PER_memb_id_constr_658,  memb_id_constraint_657 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2RemovalReqAckIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENB_ENDCX2RemovalReqAckIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_659, &asn_PER_memb_criticality_constr_659,  memb_criticality_constraint_657 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2RemovalReqAckIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_660,
+               select_ENB_ENDCX2RemovalReqAckIEs_value_type,
+               { &asn_OER_memb_value_constr_660, &asn_PER_memb_value_constr_660,  memb_value_constraint_657 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENB_ENDCX2RemovalReqAckIEs_tags_657[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENB_ENDCX2RemovalReqAckIEs_tag2el_657[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2RemovalReqAckIEs_specs_657 = {
+       sizeof(struct ENB_ENDCX2RemovalReqAckIEs),
+       offsetof(struct ENB_ENDCX2RemovalReqAckIEs, _asn_ctx),
+       asn_MAP_ENB_ENDCX2RemovalReqAckIEs_tag2el_657,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2RemovalReqAckIEs = {
+       "ENB-ENDCX2RemovalReqAckIEs",
+       "ENB-ENDCX2RemovalReqAckIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENB_ENDCX2RemovalReqAckIEs_tags_657,
+       sizeof(asn_DEF_ENB_ENDCX2RemovalReqAckIEs_tags_657)
+               /sizeof(asn_DEF_ENB_ENDCX2RemovalReqAckIEs_tags_657[0]), /* 1 */
+       asn_DEF_ENB_ENDCX2RemovalReqAckIEs_tags_657,    /* Same as above */
+       sizeof(asn_DEF_ENB_ENDCX2RemovalReqAckIEs_tags_657)
+               /sizeof(asn_DEF_ENB_ENDCX2RemovalReqAckIEs_tags_657[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENB_ENDCX2RemovalReqAckIEs_657,
+       3,      /* Elements count */
+       &asn_SPC_ENB_ENDCX2RemovalReqAckIEs_specs_657   /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_664[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs__value, choice.GlobalGNB_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_GlobalGNB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GlobalGNB-ID"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_664[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GlobalGNB-ID */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_664 = {
+       sizeof(struct En_gNB_ENDCX2RemovalReqAckIEs__value),
+       offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs__value, _asn_ctx),
+       offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs__value, present),
+       sizeof(((struct En_gNB_ENDCX2RemovalReqAckIEs__value *)0)->present),
+       asn_MAP_value_tag2el_664,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_664 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_664,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_664        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2RemovalReqAckIEs_661[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_662, &asn_PER_memb_id_constr_662,  memb_id_constraint_661 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_En_gNB_ENDCX2RemovalReqAckIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_663, &asn_PER_memb_criticality_constr_663,  memb_criticality_constraint_661 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_664,
+               select_En_gNB_ENDCX2RemovalReqAckIEs_value_type,
+               { &asn_OER_memb_value_constr_664, &asn_PER_memb_value_constr_664,  memb_value_constraint_661 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs_tags_661[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_En_gNB_ENDCX2RemovalReqAckIEs_tag2el_661[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2RemovalReqAckIEs_specs_661 = {
+       sizeof(struct En_gNB_ENDCX2RemovalReqAckIEs),
+       offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs, _asn_ctx),
+       asn_MAP_En_gNB_ENDCX2RemovalReqAckIEs_tag2el_661,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs = {
+       "En-gNB-ENDCX2RemovalReqAckIEs",
+       "En-gNB-ENDCX2RemovalReqAckIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs_tags_661,
+       sizeof(asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs_tags_661)
+               /sizeof(asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs_tags_661[0]), /* 1 */
+       asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs_tags_661, /* Same as above */
+       sizeof(asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs_tags_661)
+               /sizeof(asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs_tags_661[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_En_gNB_ENDCX2RemovalReqAckIEs_661,
+       3,      /* Elements count */
+       &asn_SPC_En_gNB_ENDCX2RemovalReqAckIEs_specs_661        /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_668[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalFailure_IEs__value, choice.Cause),
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "Cause"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalFailure_IEs__value, choice.CriticalityDiagnostics),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CriticalityDiagnostics,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CriticalityDiagnostics"
+               },
+};
+static const unsigned asn_MAP_value_to_canonical_668[] = { 1, 0 };
+static const unsigned asn_MAP_value_from_canonical_668[] = { 1, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_668[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_668 = {
+       sizeof(struct ENDCX2RemovalFailure_IEs__value),
+       offsetof(struct ENDCX2RemovalFailure_IEs__value, _asn_ctx),
+       offsetof(struct ENDCX2RemovalFailure_IEs__value, present),
+       sizeof(((struct ENDCX2RemovalFailure_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_668,
+       5,      /* Count of tags in the map */
+       asn_MAP_value_to_canonical_668,
+       asn_MAP_value_from_canonical_668,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_668 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_668,
+       2,      /* Elements count */
+       &asn_SPC_value_specs_668        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ENDCX2RemovalFailure_IEs_665[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalFailure_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_666, &asn_PER_memb_id_constr_666,  memb_id_constraint_665 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalFailure_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_ENDCX2RemovalFailure_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_667, &asn_PER_memb_criticality_constr_667,  memb_criticality_constraint_665 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalFailure_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_668,
+               select_ENDCX2RemovalFailure_IEs_value_type,
+               { &asn_OER_memb_value_constr_668, &asn_PER_memb_value_constr_668,  memb_value_constraint_665 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ENDCX2RemovalFailure_IEs_tags_665[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ENDCX2RemovalFailure_IEs_tag2el_665[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalFailure_IEs_specs_665 = {
+       sizeof(struct ENDCX2RemovalFailure_IEs),
+       offsetof(struct ENDCX2RemovalFailure_IEs, _asn_ctx),
+       asn_MAP_ENDCX2RemovalFailure_IEs_tag2el_665,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalFailure_IEs = {
+       "ENDCX2RemovalFailure-IEs",
+       "ENDCX2RemovalFailure-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ENDCX2RemovalFailure_IEs_tags_665,
+       sizeof(asn_DEF_ENDCX2RemovalFailure_IEs_tags_665)
+               /sizeof(asn_DEF_ENDCX2RemovalFailure_IEs_tags_665[0]), /* 1 */
+       asn_DEF_ENDCX2RemovalFailure_IEs_tags_665,      /* Same as above */
+       sizeof(asn_DEF_ENDCX2RemovalFailure_IEs_tags_665)
+               /sizeof(asn_DEF_ENDCX2RemovalFailure_IEs_tags_665[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ENDCX2RemovalFailure_IEs_665,
+       3,      /* Elements count */
+       &asn_SPC_ENDCX2RemovalFailure_IEs_specs_665     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_672[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct DataForwardingAddressIndication_IEs__value, choice.UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID-Extension"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct DataForwardingAddressIndication_IEs__value, choice.UE_X2AP_ID),
+               (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+               0,
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct DataForwardingAddressIndication_IEs__value, choice.E_RABs_DataForwardingAddress_List),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_E_RABs_DataForwardingAddress_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "E-RABs-DataForwardingAddress-List"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_672[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* UE-X2AP-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* E-RABs-DataForwardingAddress-List */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_672 = {
+       sizeof(struct DataForwardingAddressIndication_IEs__value),
+       offsetof(struct DataForwardingAddressIndication_IEs__value, _asn_ctx),
+       offsetof(struct DataForwardingAddressIndication_IEs__value, present),
+       sizeof(((struct DataForwardingAddressIndication_IEs__value *)0)->present),
+       asn_MAP_value_tag2el_672,
+       3,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_672 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_672,
+       3,      /* Elements count */
+       &asn_SPC_value_specs_672        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_DataForwardingAddressIndication_IEs_669[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct DataForwardingAddressIndication_IEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_670, &asn_PER_memb_id_constr_670,  memb_id_constraint_669 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct DataForwardingAddressIndication_IEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_DataForwardingAddressIndication_IEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_671, &asn_PER_memb_criticality_constr_671,  memb_criticality_constraint_669 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DataForwardingAddressIndication_IEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_672,
+               select_DataForwardingAddressIndication_IEs_value_type,
+               { &asn_OER_memb_value_constr_672, &asn_PER_memb_value_constr_672,  memb_value_constraint_669 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_DataForwardingAddressIndication_IEs_tags_669[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_DataForwardingAddressIndication_IEs_tag2el_669[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_DataForwardingAddressIndication_IEs_specs_669 = {
+       sizeof(struct DataForwardingAddressIndication_IEs),
+       offsetof(struct DataForwardingAddressIndication_IEs, _asn_ctx),
+       asn_MAP_DataForwardingAddressIndication_IEs_tag2el_669,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_DataForwardingAddressIndication_IEs = {
+       "DataForwardingAddressIndication-IEs",
+       "DataForwardingAddressIndication-IEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_DataForwardingAddressIndication_IEs_tags_669,
+       sizeof(asn_DEF_DataForwardingAddressIndication_IEs_tags_669)
+               /sizeof(asn_DEF_DataForwardingAddressIndication_IEs_tags_669[0]), /* 1 */
+       asn_DEF_DataForwardingAddressIndication_IEs_tags_669,   /* Same as above */
+       sizeof(asn_DEF_DataForwardingAddressIndication_IEs_tags_669)
+               /sizeof(asn_DEF_DataForwardingAddressIndication_IEs_tags_669[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_DataForwardingAddressIndication_IEs_669,
+       3,      /* Elements count */
+       &asn_SPC_DataForwardingAddressIndication_IEs_specs_669  /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_676[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct GNBStatusIndicationIEs__value, choice.GNBOverloadInformation),
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_GNBOverloadInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "GNBOverloadInformation"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_676[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* GNBOverloadInformation */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_676 = {
+       sizeof(struct GNBStatusIndicationIEs__value),
+       offsetof(struct GNBStatusIndicationIEs__value, _asn_ctx),
+       offsetof(struct GNBStatusIndicationIEs__value, present),
+       sizeof(((struct GNBStatusIndicationIEs__value *)0)->present),
+       asn_MAP_value_tag2el_676,
+       1,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_676 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_676,
+       1,      /* Elements count */
+       &asn_SPC_value_specs_676        /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_GNBStatusIndicationIEs_673[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct GNBStatusIndicationIEs, id),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_ID,
+               0,
+               { &asn_OER_memb_id_constr_674, &asn_PER_memb_id_constr_674,  memb_id_constraint_673 },
+               0, 0, /* No default value */
+               "id"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct GNBStatusIndicationIEs, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_GNBStatusIndicationIEs_criticality_type,
+               { &asn_OER_memb_criticality_constr_675, &asn_PER_memb_criticality_constr_675,  memb_criticality_constraint_673 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNBStatusIndicationIEs, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_676,
+               select_GNBStatusIndicationIEs_value_type,
+               { &asn_OER_memb_value_constr_676, &asn_PER_memb_value_constr_676,  memb_value_constraint_673 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_GNBStatusIndicationIEs_tags_673[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GNBStatusIndicationIEs_tag2el_673[] = {
+    { (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_GNBStatusIndicationIEs_specs_673 = {
+       sizeof(struct GNBStatusIndicationIEs),
+       offsetof(struct GNBStatusIndicationIEs, _asn_ctx),
+       asn_MAP_GNBStatusIndicationIEs_tag2el_673,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_GNBStatusIndicationIEs = {
+       "GNBStatusIndicationIEs",
+       "GNBStatusIndicationIEs",
+       &asn_OP_SEQUENCE,
+       asn_DEF_GNBStatusIndicationIEs_tags_673,
+       sizeof(asn_DEF_GNBStatusIndicationIEs_tags_673)
+               /sizeof(asn_DEF_GNBStatusIndicationIEs_tags_673[0]), /* 1 */
+       asn_DEF_GNBStatusIndicationIEs_tags_673,        /* Same as above */
+       sizeof(asn_DEF_GNBStatusIndicationIEs_tags_673)
+               /sizeof(asn_DEF_GNBStatusIndicationIEs_tags_673[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_GNBStatusIndicationIEs_673,
+       3,      /* Elements count */
+       &asn_SPC_GNBStatusIndicationIEs_specs_673       /* Additional specs */
+};
+
diff --git a/e2ap/lib/ProtocolIE-FieldPair.c b/e2ap/lib/ProtocolIE-FieldPair.c
new file mode 100644 (file)
index 0000000..5ae4ed2
--- /dev/null
@@ -0,0 +1,9 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProtocolIE-FieldPair.h"
+
diff --git a/e2ap/lib/ProtocolIE-ID.c b/e2ap/lib/ProtocolIE-ID.c
new file mode 100644 (file)
index 0000000..2c2f511
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-CommonDataTypes"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProtocolIE-ID.h"
+
+int
+ProtocolIE_ID_constraint(const 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 >= 0 && value <= 65535)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_ProtocolIE_ID_constr_1 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID = {
+       "ProtocolIE-ID",
+       "ProtocolIE-ID",
+       &asn_OP_NativeInteger,
+       asn_DEF_ProtocolIE_ID_tags_1,
+       sizeof(asn_DEF_ProtocolIE_ID_tags_1)
+               /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */
+       asn_DEF_ProtocolIE_ID_tags_1,   /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_ID_tags_1)
+               /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */
+       { &asn_OER_type_ProtocolIE_ID_constr_1, &asn_PER_type_ProtocolIE_ID_constr_1, ProtocolIE_ID_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/ProtocolIE-Single-Container.c b/e2ap/lib/ProtocolIE-Single-Container.c
new file mode 100644 (file)
index 0000000..5b961c9
--- /dev/null
@@ -0,0 +1,1136 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-Containers"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ProtocolIE-Single-Container.h"
+
+/*
+ * This type is implemented using RICaction_ToBeSetup_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using RICaction_Admitted_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using RICaction_NotAdmitted_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using RANfunction_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using RANfunctionID_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using RANfunctionIDcause_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeSetup_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_Admitted_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_SubjectToStatusTransfer_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using CellInformation_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using CellToReport_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using MeasurementInitiationResult_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using MeasurementFailureCause_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using CompleteFailureCauseInformation_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using CellMeasurementResult_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeAdded_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_Admitted_ToBeAdded_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeAdded_ModReqItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeModified_ModReqItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeReleased_ModReqItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_Admitted_ToBeAdded_ModAckItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_Admitted_ToBeModified_ModAckItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_Admitted_ToBeReleased_ModAckItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeReleased_ModReqdItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeReleased_RelReqItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeReleased_RelConfItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_SubjectToCounterCheckItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeSetupRetrieve_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeAdded_SgNBAddReq_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeAdded_SgNBModReq_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeModified_SgNBModReq_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeReleased_SgNBModReq_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeReleased_SgNBModReqd_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeModified_SgNBModReqd_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeReleased_SgNBRelReq_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeReleased_SgNBRelConf_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_SubjectToSgNBCounterCheck_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_ToBeReleased_SgNBChaConf_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABs_DataForwardingAddress_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RAB_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E_RABUsageReport_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using SecondaryRATUsageReport_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P0_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P0 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P0_tags_1,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P0_tags_1)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P0_tags_1[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P0_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P0_tags_1)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P0_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICaction_ToBeSetup_ItemIEs_1,
+       3,      /* Elements count */
+       &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1    /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P1_tags_2[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P1 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P1_tags_2,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P1_tags_2)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P1_tags_2[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P1_tags_2,      /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P1_tags_2)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P1_tags_2[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICaction_Admitted_ItemIEs_5,
+       3,      /* Elements count */
+       &asn_SPC_RICaction_Admitted_ItemIEs_specs_5     /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P2_tags_3[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P2 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P2_tags_3,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P2_tags_3)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P2_tags_3[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P2_tags_3,      /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P2_tags_3)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P2_tags_3[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICaction_NotAdmitted_ItemIEs_9,
+       3,      /* Elements count */
+       &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9  /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P3_tags_4[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P3 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P3_tags_4,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P3_tags_4)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P3_tags_4[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P3_tags_4,      /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P3_tags_4)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P3_tags_4[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RANfunction_ItemIEs_13,
+       3,      /* Elements count */
+       &asn_SPC_RANfunction_ItemIEs_specs_13   /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P4_tags_5[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P4 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P4_tags_5,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P4_tags_5)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P4_tags_5[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P4_tags_5,      /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P4_tags_5)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P4_tags_5[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RANfunctionID_ItemIEs_17,
+       3,      /* Elements count */
+       &asn_SPC_RANfunctionID_ItemIEs_specs_17 /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P5_tags_6[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P5 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P5_tags_6,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P5_tags_6)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P5_tags_6[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P5_tags_6,      /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P5_tags_6)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P5_tags_6[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RANfunctionIDcause_ItemIEs_21,
+       3,      /* Elements count */
+       &asn_SPC_RANfunctionIDcause_ItemIEs_specs_21    /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P6_tags_7[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P6 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P6_tags_7,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P6_tags_7)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P6_tags_7[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P6_tags_7,      /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P6_tags_7)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P6_tags_7[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeSetup_ItemIEs_25,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeSetup_ItemIEs_specs_25      /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P7_tags_8[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P7 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P7_tags_8,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P7_tags_8)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P7_tags_8[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P7_tags_8,      /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P7_tags_8)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P7_tags_8[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ItemIEs_29,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ItemIEs_specs_29       /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P8_tags_9[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P8 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P8_tags_9,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P8_tags_9)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P8_tags_9[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P8_tags_9,      /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P8_tags_9)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P8_tags_9[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_SubjectToStatusTransfer_ItemIEs_33,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_SubjectToStatusTransfer_ItemIEs_specs_33        /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P9_tags_10[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P9 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P9_tags_10,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P9_tags_10)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P9_tags_10[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P9_tags_10,     /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P9_tags_10)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P9_tags_10[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellInformation_ItemIEs_37,
+       3,      /* Elements count */
+       &asn_SPC_CellInformation_ItemIEs_specs_37       /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P10_tags_11[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P10 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P10_tags_11,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P10_tags_11)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P10_tags_11[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P10_tags_11,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P10_tags_11)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P10_tags_11[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellToReport_ItemIEs_41,
+       3,      /* Elements count */
+       &asn_SPC_CellToReport_ItemIEs_specs_41  /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P11_tags_12[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P11 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P11_tags_12,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P11_tags_12)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P11_tags_12[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P11_tags_12,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P11_tags_12)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P11_tags_12[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MeasurementInitiationResult_ItemIEs_45,
+       3,      /* Elements count */
+       &asn_SPC_MeasurementInitiationResult_ItemIEs_specs_45   /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P12_tags_13[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P12 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P12_tags_13,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P12_tags_13)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P12_tags_13[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P12_tags_13,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P12_tags_13)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P12_tags_13[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_MeasurementFailureCause_ItemIEs_49,
+       3,      /* Elements count */
+       &asn_SPC_MeasurementFailureCause_ItemIEs_specs_49       /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P13_tags_14[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P13 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P13_tags_14,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P13_tags_14)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P13_tags_14[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P13_tags_14,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P13_tags_14)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P13_tags_14[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CompleteFailureCauseInformation_ItemIEs_53,
+       3,      /* Elements count */
+       &asn_SPC_CompleteFailureCauseInformation_ItemIEs_specs_53       /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P14_tags_15[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P14 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P14_tags_15,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P14_tags_15)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P14_tags_15[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P14_tags_15,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P14_tags_15)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P14_tags_15[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_CellMeasurementResult_ItemIEs_57,
+       3,      /* Elements count */
+       &asn_SPC_CellMeasurementResult_ItemIEs_specs_57 /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P15_tags_16[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P15 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P15_tags_16,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P15_tags_16)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P15_tags_16[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P15_tags_16,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P15_tags_16)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P15_tags_16[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_ItemIEs_61,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_ItemIEs_specs_61      /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P16_tags_17[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P16 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P16_tags_17,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P16_tags_17)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P16_tags_17[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P16_tags_17,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P16_tags_17)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P16_tags_17[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_ItemIEs_65,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_ItemIEs_specs_65     /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P17_tags_18[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P17 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P17_tags_18,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P17_tags_18)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P17_tags_18[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P17_tags_18,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P17_tags_18)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P17_tags_18[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_ModReqItemIEs_69,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_ModReqItemIEs_specs_69        /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P18_tags_19[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P18 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P18_tags_19,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P18_tags_19)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P18_tags_19[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P18_tags_19,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P18_tags_19)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P18_tags_19[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_ModReqItemIEs_73,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_ModReqItemIEs_specs_73     /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P19_tags_20[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P19 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P19_tags_20,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P19_tags_20)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P19_tags_20[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P19_tags_20,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P19_tags_20)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P19_tags_20[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_ModReqItemIEs_77,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_ModReqItemIEs_specs_77     /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P20_tags_21[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P20 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P20_tags_21,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P20_tags_21)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P20_tags_21[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P20_tags_21,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P20_tags_21)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P20_tags_21[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_81,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_specs_81       /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P21_tags_22[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P21 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P21_tags_22,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P21_tags_22)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P21_tags_22[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P21_tags_22,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P21_tags_22)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P21_tags_22[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItemIEs_85,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItemIEs_specs_85    /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P22_tags_23[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P22 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P22_tags_23,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P22_tags_23)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P22_tags_23[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P22_tags_23,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P22_tags_23)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P22_tags_23[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_89,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_specs_89    /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P23_tags_24[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P23 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P23_tags_24,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P23_tags_24)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P23_tags_24[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P23_tags_24,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P23_tags_24)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P23_tags_24[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_ModReqdItemIEs_93,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_ModReqdItemIEs_specs_93    /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P24_tags_25[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P24 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P24_tags_25,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P24_tags_25)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P24_tags_25[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P24_tags_25,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P24_tags_25)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P24_tags_25[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_RelReqItemIEs_97,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_RelReqItemIEs_specs_97     /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P25_tags_26[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P25 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P25_tags_26,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P25_tags_26)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P25_tags_26[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P25_tags_26,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P25_tags_26)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P25_tags_26[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_RelConfItemIEs_101,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_RelConfItemIEs_specs_101   /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P26_tags_27[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P26 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P26_tags_27,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P26_tags_27)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P26_tags_27[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P26_tags_27,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P26_tags_27)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P26_tags_27[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_SubjectToCounterCheckItemIEs_105,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_SubjectToCounterCheckItemIEs_specs_105  /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P27_tags_28[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P27 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P27_tags_28,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P27_tags_28)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P27_tags_28[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P27_tags_28,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P27_tags_28)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P27_tags_28[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeSetupRetrieve_ItemIEs_109,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeSetupRetrieve_ItemIEs_specs_109     /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P28_tags_29[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P28 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P28_tags_29,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P28_tags_29)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P28_tags_29[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P28_tags_29,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P28_tags_29)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P28_tags_29[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_113,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_specs_113  /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P29_tags_30[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P29 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P29_tags_30,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P29_tags_30)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P29_tags_30[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P29_tags_30,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P29_tags_30)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P29_tags_30[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_117,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_specs_117      /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P30_tags_31[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P30 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P30_tags_31,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P30_tags_31)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P30_tags_31[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P30_tags_31,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P30_tags_31)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P30_tags_31[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_121,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_specs_121  /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P31_tags_32[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P31 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P31_tags_32,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P31_tags_32)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P31_tags_32[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P31_tags_32,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P31_tags_32)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P31_tags_32[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReq_ItemIEs_125,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReq_ItemIEs_specs_125       /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P32_tags_33[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P32 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P32_tags_33,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P32_tags_33)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P32_tags_33[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P32_tags_33,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P32_tags_33)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P32_tags_33[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_129,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_specs_129       /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P33_tags_34[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P33 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P33_tags_34,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P33_tags_34)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P33_tags_34[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P33_tags_34,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P33_tags_34)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P33_tags_34[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_133,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_specs_133 /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P34_tags_35[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P34 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P34_tags_35,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P34_tags_35)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P34_tags_35[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P34_tags_35,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P34_tags_35)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P34_tags_35[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_137,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_specs_137      /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P35_tags_36[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P35 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P35_tags_36,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P35_tags_36)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P35_tags_36[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P35_tags_36,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P35_tags_36)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P35_tags_36[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_141,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_specs_141      /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P36_tags_37[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P36 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P36_tags_37,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P36_tags_37)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P36_tags_37[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P36_tags_37,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P36_tags_37)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P36_tags_37[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_145,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_specs_145      /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P37_tags_38[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P37 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P37_tags_38,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P37_tags_38)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P37_tags_38[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P37_tags_38,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P37_tags_38)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P37_tags_38[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_149,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_specs_149      /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P38_tags_39[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P38 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P38_tags_39,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P38_tags_39)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P38_tags_39[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P38_tags_39,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P38_tags_39)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P38_tags_39[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_153,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_specs_153      /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P39_tags_40[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P39 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P39_tags_40,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P39_tags_40)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P39_tags_40[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P39_tags_40,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P39_tags_40)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P39_tags_40[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_157,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_specs_157       /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P40_tags_41[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P40 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P40_tags_41,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P40_tags_41)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P40_tags_41[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P40_tags_41,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P40_tags_41)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P40_tags_41[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_161,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_specs_161   /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P41_tags_42[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P41 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P41_tags_42,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P41_tags_42)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P41_tags_42[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P41_tags_42,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P41_tags_42)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P41_tags_42[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_165,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_specs_165      /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P42_tags_43[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P42 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P42_tags_43,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P42_tags_43)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P42_tags_43[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P42_tags_43,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P42_tags_43)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P42_tags_43[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_169,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_specs_169      /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P43_tags_44[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P43 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P43_tags_44,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P43_tags_44)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P43_tags_44[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P43_tags_44,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P43_tags_44)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P43_tags_44[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_173,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_specs_173     /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P44_tags_45[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P44 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P44_tags_45,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P44_tags_45)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P44_tags_45[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P44_tags_45,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P44_tags_45)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P44_tags_45[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_177,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_specs_177      /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P45_tags_46[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P45 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P45_tags_46,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P45_tags_46)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P45_tags_46[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P45_tags_46,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P45_tags_46)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P45_tags_46[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABs_DataForwardingAddress_ItemIEs_181,
+       3,      /* Elements count */
+       &asn_SPC_E_RABs_DataForwardingAddress_ItemIEs_specs_181 /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P46_tags_47[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P46 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P46_tags_47,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P46_tags_47)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P46_tags_47[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P46_tags_47,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P46_tags_47)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P46_tags_47[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RAB_ItemIEs_185,
+       3,      /* Elements count */
+       &asn_SPC_E_RAB_ItemIEs_specs_185        /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P47_tags_48[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P47 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P47_tags_48,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P47_tags_48)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P47_tags_48[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P47_tags_48,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P47_tags_48)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P47_tags_48[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_E_RABUsageReport_ItemIEs_189,
+       3,      /* Elements count */
+       &asn_SPC_E_RABUsageReport_ItemIEs_specs_189     /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_9518P48_tags_49[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_9518P48 = {
+       "ProtocolIE-Single-Container",
+       "ProtocolIE-Single-Container",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ProtocolIE_Single_Container_9518P48_tags_49,
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P48_tags_49)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P48_tags_49[0]), /* 1 */
+       asn_DEF_ProtocolIE_Single_Container_9518P48_tags_49,    /* Same as above */
+       sizeof(asn_DEF_ProtocolIE_Single_Container_9518P48_tags_49)
+               /sizeof(asn_DEF_ProtocolIE_Single_Container_9518P48_tags_49[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SecondaryRATUsageReport_ItemIEs_193,
+       3,      /* Elements count */
+       &asn_SPC_SecondaryRATUsageReport_ItemIEs_specs_193      /* Additional specs */
+};
+
diff --git a/e2ap/lib/QCI.c b/e2ap/lib/QCI.c
new file mode 100644 (file)
index 0000000..3091edb
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "QCI.h"
+
+int
+QCI_constraint(const 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 >= 0 && value <= 255)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_QCI_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..255) */,
+       -1};
+asn_per_constraints_t asn_PER_type_QCI_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       8,  8,  0,  255 }      /* (0..255) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_QCI_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_QCI = {
+       "QCI",
+       "QCI",
+       &asn_OP_NativeInteger,
+       asn_DEF_QCI_tags_1,
+       sizeof(asn_DEF_QCI_tags_1)
+               /sizeof(asn_DEF_QCI_tags_1[0]), /* 1 */
+       asn_DEF_QCI_tags_1,     /* Same as above */
+       sizeof(asn_DEF_QCI_tags_1)
+               /sizeof(asn_DEF_QCI_tags_1[0]), /* 1 */
+       { &asn_OER_type_QCI_constr_1, &asn_PER_type_QCI_constr_1, QCI_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/RANfunction-Item.c b/e2ap/lib/RANfunction-Item.c
new file mode 100644 (file)
index 0000000..521b7bb
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RANfunction-Item.h"
+
+static asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RANfunctionID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ranFunctionID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionDefinition),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RANfunctionDefinition,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ranFunctionDefinition"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RANfunction_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANfunction_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranFunctionDefinition */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Item_specs_1 = {
+       sizeof(struct RANfunction_Item),
+       offsetof(struct RANfunction_Item, _asn_ctx),
+       asn_MAP_RANfunction_Item_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANfunction_Item = {
+       "RANfunction-Item",
+       "RANfunction-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RANfunction_Item_tags_1,
+       sizeof(asn_DEF_RANfunction_Item_tags_1)
+               /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */
+       asn_DEF_RANfunction_Item_tags_1,        /* Same as above */
+       sizeof(asn_DEF_RANfunction_Item_tags_1)
+               /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RANfunction_Item_1,
+       2,      /* Elements count */
+       &asn_SPC_RANfunction_Item_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/RANfunctionDefinition.c b/e2ap/lib/RANfunctionDefinition.c
new file mode 100644 (file)
index 0000000..932cbe2
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RANfunctionDefinition.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_RANfunctionDefinition_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition = {
+       "RANfunctionDefinition",
+       "RANfunctionDefinition",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_RANfunctionDefinition_tags_1,
+       sizeof(asn_DEF_RANfunctionDefinition_tags_1)
+               /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */
+       asn_DEF_RANfunctionDefinition_tags_1,   /* Same as above */
+       sizeof(asn_DEF_RANfunctionDefinition_tags_1)
+               /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/RANfunctionID-Item.c b/e2ap/lib/RANfunctionID-Item.c
new file mode 100644 (file)
index 0000000..4f6ed4a
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RANfunctionID-Item.h"
+
+static asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_Item, ranFunctionID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RANfunctionID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ranFunctionID"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RANfunctionID_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranFunctionID */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_Item_specs_1 = {
+       sizeof(struct RANfunctionID_Item),
+       offsetof(struct RANfunctionID_Item, _asn_ctx),
+       asn_MAP_RANfunctionID_Item_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANfunctionID_Item = {
+       "RANfunctionID-Item",
+       "RANfunctionID-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RANfunctionID_Item_tags_1,
+       sizeof(asn_DEF_RANfunctionID_Item_tags_1)
+               /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */
+       asn_DEF_RANfunctionID_Item_tags_1,      /* Same as above */
+       sizeof(asn_DEF_RANfunctionID_Item_tags_1)
+               /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RANfunctionID_Item_1,
+       1,      /* Elements count */
+       &asn_SPC_RANfunctionID_Item_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/RANfunctionID.c b/e2ap/lib/RANfunctionID.c
new file mode 100644 (file)
index 0000000..c32a28c
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RANfunctionID.h"
+
+int
+RANfunctionID_constraint(const 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 >= 0 && value <= 4095)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_RANfunctionID_constr_1 CC_NOTUSED = {
+       { 2, 1 }        /* (0..4095) */,
+       -1};
+asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       12,  12,  0,  4095 }   /* (0..4095) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANfunctionID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANfunctionID = {
+       "RANfunctionID",
+       "RANfunctionID",
+       &asn_OP_NativeInteger,
+       asn_DEF_RANfunctionID_tags_1,
+       sizeof(asn_DEF_RANfunctionID_tags_1)
+               /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */
+       asn_DEF_RANfunctionID_tags_1,   /* Same as above */
+       sizeof(asn_DEF_RANfunctionID_tags_1)
+               /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */
+       { &asn_OER_type_RANfunctionID_constr_1, &asn_PER_type_RANfunctionID_constr_1, RANfunctionID_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/RANfunctionIDcause-Item.c b/e2ap/lib/RANfunctionIDcause-Item.c
new file mode 100644 (file)
index 0000000..48120fb
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RANfunctionIDcause-Item.h"
+
+static asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_Item, ranFunctionID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RANfunctionID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ranFunctionID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_Item, ricCause),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_RICcause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ricCause"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricCause */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_Item_specs_1 = {
+       sizeof(struct RANfunctionIDcause_Item),
+       offsetof(struct RANfunctionIDcause_Item, _asn_ctx),
+       asn_MAP_RANfunctionIDcause_Item_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_Item = {
+       "RANfunctionIDcause-Item",
+       "RANfunctionIDcause-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RANfunctionIDcause_Item_tags_1,
+       sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1)
+               /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */
+       asn_DEF_RANfunctionIDcause_Item_tags_1, /* Same as above */
+       sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1)
+               /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RANfunctionIDcause_Item_1,
+       2,      /* Elements count */
+       &asn_SPC_RANfunctionIDcause_Item_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/RANfunctions-List.c b/e2ap/lib/RANfunctions-List.c
new file mode 100644 (file)
index 0000000..d236e7b
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RANfunctions-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_RANfunctions_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..256)) */};
+static asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       9,  9,  0,  256 }      /* (SIZE(0..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANfunctions_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P3,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RANfunctions_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANfunctions_List_specs_1 = {
+       sizeof(struct RANfunctions_List),
+       offsetof(struct RANfunctions_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANfunctions_List = {
+       "RANfunctions-List",
+       "RANfunctions-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_RANfunctions_List_tags_1,
+       sizeof(asn_DEF_RANfunctions_List_tags_1)
+               /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */
+       asn_DEF_RANfunctions_List_tags_1,       /* Same as above */
+       sizeof(asn_DEF_RANfunctions_List_tags_1)
+               /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_RANfunctions_List_constr_1, &asn_PER_type_RANfunctions_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_RANfunctions_List_1,
+       1,      /* Single element */
+       &asn_SPC_RANfunctions_List_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/RANfunctionsID-List.c b/e2ap/lib/RANfunctionsID-List.c
new file mode 100644 (file)
index 0000000..c9bcdb0
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RANfunctionsID-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..256)) */};
+static asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       9,  9,  0,  256 }      /* (SIZE(0..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P4,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RANfunctionsID_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANfunctionsID_List_specs_1 = {
+       sizeof(struct RANfunctionsID_List),
+       offsetof(struct RANfunctionsID_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List = {
+       "RANfunctionsID-List",
+       "RANfunctionsID-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_RANfunctionsID_List_tags_1,
+       sizeof(asn_DEF_RANfunctionsID_List_tags_1)
+               /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */
+       asn_DEF_RANfunctionsID_List_tags_1,     /* Same as above */
+       sizeof(asn_DEF_RANfunctionsID_List_tags_1)
+               /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_RANfunctionsID_List_constr_1, &asn_PER_type_RANfunctionsID_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_RANfunctionsID_List_1,
+       1,      /* Single element */
+       &asn_SPC_RANfunctionsID_List_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/RANfunctionsIDcause-List.c b/e2ap/lib/RANfunctionsIDcause-List.c
new file mode 100644 (file)
index 0000000..1145493
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RANfunctionsIDcause-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..256)) */};
+static asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       9,  9,  0,  256 }      /* (SIZE(0..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P5,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RANfunctionsIDcause_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANfunctionsIDcause_List_specs_1 = {
+       sizeof(struct RANfunctionsIDcause_List),
+       offsetof(struct RANfunctionsIDcause_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List = {
+       "RANfunctionsIDcause-List",
+       "RANfunctionsIDcause-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_RANfunctionsIDcause_List_tags_1,
+       sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1)
+               /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */
+       asn_DEF_RANfunctionsIDcause_List_tags_1,        /* Same as above */
+       sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1)
+               /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_RANfunctionsIDcause_List_constr_1, &asn_PER_type_RANfunctionsIDcause_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_RANfunctionsIDcause_List_1,
+       1,      /* Single element */
+       &asn_SPC_RANfunctionsIDcause_List_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICaction-Admitted-Item.c b/e2ap/lib/RICaction-Admitted-Item.c
new file mode 100644 (file)
index 0000000..e6e73ce
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICaction-Admitted-Item.h"
+
+static asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_Item, ricActionID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RICactionID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ricActionID"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ricActionID */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_Item_specs_1 = {
+       sizeof(struct RICaction_Admitted_Item),
+       offsetof(struct RICaction_Admitted_Item, _asn_ctx),
+       asn_MAP_RICaction_Admitted_Item_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_Item = {
+       "RICaction-Admitted-Item",
+       "RICaction-Admitted-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICaction_Admitted_Item_tags_1,
+       sizeof(asn_DEF_RICaction_Admitted_Item_tags_1)
+               /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */
+       asn_DEF_RICaction_Admitted_Item_tags_1, /* Same as above */
+       sizeof(asn_DEF_RICaction_Admitted_Item_tags_1)
+               /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICaction_Admitted_Item_1,
+       1,      /* Elements count */
+       &asn_SPC_RICaction_Admitted_Item_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICaction-Admitted-List.c b/e2ap/lib/RICaction-Admitted-List.c
new file mode 100644 (file)
index 0000000..0600ed4
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICaction-Admitted-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16)) */};
+static asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       4,  4,  1,  16 }       /* (SIZE(1..16)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P1,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RICaction_Admitted_List_specs_1 = {
+       sizeof(struct RICaction_Admitted_List),
+       offsetof(struct RICaction_Admitted_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List = {
+       "RICaction-Admitted-List",
+       "RICaction-Admitted-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_RICaction_Admitted_List_tags_1,
+       sizeof(asn_DEF_RICaction_Admitted_List_tags_1)
+               /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */
+       asn_DEF_RICaction_Admitted_List_tags_1, /* Same as above */
+       sizeof(asn_DEF_RICaction_Admitted_List_tags_1)
+               /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_RICaction_Admitted_List_constr_1, &asn_PER_type_RICaction_Admitted_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_RICaction_Admitted_List_1,
+       1,      /* Single element */
+       &asn_SPC_RICaction_Admitted_List_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICaction-NotAdmitted-Item.c b/e2ap/lib/RICaction-NotAdmitted-Item.c
new file mode 100644 (file)
index 0000000..4750b2e
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICaction-NotAdmitted-Item.h"
+
+static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, ricActionID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RICactionID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ricActionID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, ricCause),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_RICcause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ricCause"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricCause */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_Item_specs_1 = {
+       sizeof(struct RICaction_NotAdmitted_Item),
+       offsetof(struct RICaction_NotAdmitted_Item, _asn_ctx),
+       asn_MAP_RICaction_NotAdmitted_Item_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_Item = {
+       "RICaction-NotAdmitted-Item",
+       "RICaction-NotAdmitted-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICaction_NotAdmitted_Item_tags_1,
+       sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1)
+               /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */
+       asn_DEF_RICaction_NotAdmitted_Item_tags_1,      /* Same as above */
+       sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1)
+               /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICaction_NotAdmitted_Item_1,
+       2,      /* Elements count */
+       &asn_SPC_RICaction_NotAdmitted_Item_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICaction-NotAdmitted-List.c b/e2ap/lib/RICaction-NotAdmitted-List.c
new file mode 100644 (file)
index 0000000..6e4c1c1
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICaction-NotAdmitted-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..16)) */};
+static asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       5,  5,  0,  16 }       /* (SIZE(0..16)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RICaction_NotAdmitted_List_specs_1 = {
+       sizeof(struct RICaction_NotAdmitted_List),
+       offsetof(struct RICaction_NotAdmitted_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List = {
+       "RICaction-NotAdmitted-List",
+       "RICaction-NotAdmitted-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_RICaction_NotAdmitted_List_tags_1,
+       sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1)
+               /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */
+       asn_DEF_RICaction_NotAdmitted_List_tags_1,      /* Same as above */
+       sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1)
+               /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_RICaction_NotAdmitted_List_constr_1, &asn_PER_type_RICaction_NotAdmitted_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_RICaction_NotAdmitted_List_1,
+       1,      /* Single element */
+       &asn_SPC_RICaction_NotAdmitted_List_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICaction-ToBeSetup-Item.c b/e2ap/lib/RICaction-ToBeSetup-Item.c
new file mode 100644 (file)
index 0000000..3b3330d
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICaction-ToBeSetup-Item.h"
+
+#include "RICsubsequentAction.h"
+static asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RICactionID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ricActionID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionType),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RICactionType,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ricActionType"
+               },
+       { ATF_POINTER, 2, offsetof(struct RICaction_ToBeSetup_Item, ricActionDefinition),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RICactionDefinition,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ricActionDefinition"
+               },
+       { ATF_POINTER, 1, offsetof(struct RICaction_ToBeSetup_Item, ricSubsequentAction),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RICsubsequentAction,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ricSubsequentAction"
+               },
+};
+static const int asn_MAP_RICaction_ToBeSetup_Item_oms_1[] = { 2, 3 };
+static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricActionType */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ricActionDefinition */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ricSubsequentAction */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_Item_specs_1 = {
+       sizeof(struct RICaction_ToBeSetup_Item),
+       offsetof(struct RICaction_ToBeSetup_Item, _asn_ctx),
+       asn_MAP_RICaction_ToBeSetup_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_RICaction_ToBeSetup_Item_oms_1, /* Optional members */
+       2, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item = {
+       "RICaction-ToBeSetup-Item",
+       "RICaction-ToBeSetup-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICaction_ToBeSetup_Item_tags_1,
+       sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1)
+               /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */
+       asn_DEF_RICaction_ToBeSetup_Item_tags_1,        /* Same as above */
+       sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1)
+               /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICaction_ToBeSetup_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_RICaction_ToBeSetup_Item_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICactionDefinition.c b/e2ap/lib/RICactionDefinition.c
new file mode 100644 (file)
index 0000000..783a72b
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICactionDefinition.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_RICactionDefinition_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RICactionDefinition = {
+       "RICactionDefinition",
+       "RICactionDefinition",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_RICactionDefinition_tags_1,
+       sizeof(asn_DEF_RICactionDefinition_tags_1)
+               /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */
+       asn_DEF_RICactionDefinition_tags_1,     /* Same as above */
+       sizeof(asn_DEF_RICactionDefinition_tags_1)
+               /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICactionID.c b/e2ap/lib/RICactionID.c
new file mode 100644 (file)
index 0000000..7d3e419
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICactionID.h"
+
+int
+RICactionID_constraint(const 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 >= 0 && value <= 255)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_RICactionID_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..255) */,
+       -1};
+asn_per_constraints_t asn_PER_type_RICactionID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       8,  8,  0,  255 }      /* (0..255) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RICactionID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RICactionID = {
+       "RICactionID",
+       "RICactionID",
+       &asn_OP_NativeInteger,
+       asn_DEF_RICactionID_tags_1,
+       sizeof(asn_DEF_RICactionID_tags_1)
+               /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */
+       asn_DEF_RICactionID_tags_1,     /* Same as above */
+       sizeof(asn_DEF_RICactionID_tags_1)
+               /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */
+       { &asn_OER_type_RICactionID_constr_1, &asn_PER_type_RICactionID_constr_1, RICactionID_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/RICactionType.c b/e2ap/lib/RICactionType.c
new file mode 100644 (file)
index 0000000..39799df
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICactionType.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RICactionType_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_RICactionType_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RICactionType_value2enum_1[] = {
+       { 0,    6,      "report" },
+       { 1,    6,      "insert" },
+       { 2,    6,      "policy" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_RICactionType_enum2value_1[] = {
+       1,      /* insert(1) */
+       2,      /* policy(2) */
+       0       /* report(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1 = {
+       asn_MAP_RICactionType_value2enum_1,     /* "tag" => N; sorted by tag */
+       asn_MAP_RICactionType_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_RICactionType_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RICactionType = {
+       "RICactionType",
+       "RICactionType",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_RICactionType_tags_1,
+       sizeof(asn_DEF_RICactionType_tags_1)
+               /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */
+       asn_DEF_RICactionType_tags_1,   /* Same as above */
+       sizeof(asn_DEF_RICactionType_tags_1)
+               /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */
+       { &asn_OER_type_RICactionType_constr_1, &asn_PER_type_RICactionType_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_RICactionType_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICactions-ToBeSetup-List.c b/e2ap/lib/RICactions-ToBeSetup-List.c
new file mode 100644 (file)
index 0000000..ef8c51a
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICactions-ToBeSetup-List.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_RICactions_ToBeSetup_List_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16)) */};
+asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       4,  4,  1,  16 }       /* (SIZE(1..16)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P0,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICactions_ToBeSetup_List_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1 = {
+       sizeof(struct RICactions_ToBeSetup_List),
+       offsetof(struct RICactions_ToBeSetup_List, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List = {
+       "RICactions-ToBeSetup-List",
+       "RICactions-ToBeSetup-List",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_RICactions_ToBeSetup_List_tags_1,
+       sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1)
+               /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */
+       asn_DEF_RICactions_ToBeSetup_List_tags_1,       /* Same as above */
+       sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1)
+               /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */
+       { &asn_OER_type_RICactions_ToBeSetup_List_constr_1, &asn_PER_type_RICactions_ToBeSetup_List_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_RICactions_ToBeSetup_List_1,
+       1,      /* Single element */
+       &asn_SPC_RICactions_ToBeSetup_List_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICcallProcessID.c b/e2ap/lib/RICcallProcessID.c
new file mode 100644 (file)
index 0000000..21e7b7f
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICcallProcessID.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_RICcallProcessID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RICcallProcessID = {
+       "RICcallProcessID",
+       "RICcallProcessID",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_RICcallProcessID_tags_1,
+       sizeof(asn_DEF_RICcallProcessID_tags_1)
+               /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */
+       asn_DEF_RICcallProcessID_tags_1,        /* Same as above */
+       sizeof(asn_DEF_RICcallProcessID_tags_1)
+               /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICcause.c b/e2ap/lib/RICcause.c
new file mode 100644 (file)
index 0000000..bacbb45
--- /dev/null
@@ -0,0 +1,95 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICcause.h"
+
+static asn_oer_constraints_t asn_OER_type_RICcause_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_RICcause_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  4 }    /* (0..4,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_RICcause_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICcause, choice.radioNetwork),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CauseRadioNetwork,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "radioNetwork"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcause, choice.transport),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CauseTransport,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "transport"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcause, choice.protocol),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CauseProtocol,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocol"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcause, choice.misc),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CauseMisc,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "misc"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICcause, choice.ric),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CauseRIC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ric"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICcause_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* misc */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ric */
+};
+asn_CHOICE_specifics_t asn_SPC_RICcause_specs_1 = {
+       sizeof(struct RICcause),
+       offsetof(struct RICcause, _asn_ctx),
+       offsetof(struct RICcause, present),
+       sizeof(((struct RICcause *)0)->present),
+       asn_MAP_RICcause_tag2el_1,
+       5,      /* Count of tags in the map */
+       0, 0,
+       5       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RICcause = {
+       "RICcause",
+       "RICcause",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_RICcause_constr_1, &asn_PER_type_RICcause_constr_1, CHOICE_constraint },
+       asn_MBR_RICcause_1,
+       5,      /* Elements count */
+       &asn_SPC_RICcause_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICcontrolAckRequest.c b/e2ap/lib/RICcontrolAckRequest.c
new file mode 100644 (file)
index 0000000..3733126
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICcontrolAckRequest.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RICcontrolAckRequest_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolAckRequest_value2enum_1[] = {
+       { 0,    5,      "noAck" },
+       { 1,    3,      "ack" },
+       { 2,    4,      "nAck" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_RICcontrolAckRequest_enum2value_1[] = {
+       1,      /* ack(1) */
+       2,      /* nAck(2) */
+       0       /* noAck(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RICcontrolAckRequest_specs_1 = {
+       asn_MAP_RICcontrolAckRequest_value2enum_1,      /* "tag" => N; sorted by tag */
+       asn_MAP_RICcontrolAckRequest_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_RICcontrolAckRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest = {
+       "RICcontrolAckRequest",
+       "RICcontrolAckRequest",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_RICcontrolAckRequest_tags_1,
+       sizeof(asn_DEF_RICcontrolAckRequest_tags_1)
+               /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */
+       asn_DEF_RICcontrolAckRequest_tags_1,    /* Same as above */
+       sizeof(asn_DEF_RICcontrolAckRequest_tags_1)
+               /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */
+       { &asn_OER_type_RICcontrolAckRequest_constr_1, &asn_PER_type_RICcontrolAckRequest_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_RICcontrolAckRequest_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICcontrolAcknowledge.c b/e2ap/lib/RICcontrolAcknowledge.c
new file mode 100644 (file)
index 0000000..ca87b8b
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICcontrolAcknowledge.h"
+
+asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P8,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1 = {
+       sizeof(struct RICcontrolAcknowledge),
+       offsetof(struct RICcontrolAcknowledge, _asn_ctx),
+       asn_MAP_RICcontrolAcknowledge_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge = {
+       "RICcontrolAcknowledge",
+       "RICcontrolAcknowledge",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICcontrolAcknowledge_tags_1,
+       sizeof(asn_DEF_RICcontrolAcknowledge_tags_1)
+               /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */
+       asn_DEF_RICcontrolAcknowledge_tags_1,   /* Same as above */
+       sizeof(asn_DEF_RICcontrolAcknowledge_tags_1)
+               /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICcontrolAcknowledge_1,
+       1,      /* Elements count */
+       &asn_SPC_RICcontrolAcknowledge_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICcontrolFailure.c b/e2ap/lib/RICcontrolFailure.c
new file mode 100644 (file)
index 0000000..7b5bc03
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICcontrolFailure.h"
+
+asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P9,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1 = {
+       sizeof(struct RICcontrolFailure),
+       offsetof(struct RICcontrolFailure, _asn_ctx),
+       asn_MAP_RICcontrolFailure_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure = {
+       "RICcontrolFailure",
+       "RICcontrolFailure",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICcontrolFailure_tags_1,
+       sizeof(asn_DEF_RICcontrolFailure_tags_1)
+               /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */
+       asn_DEF_RICcontrolFailure_tags_1,       /* Same as above */
+       sizeof(asn_DEF_RICcontrolFailure_tags_1)
+               /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICcontrolFailure_1,
+       1,      /* Elements count */
+       &asn_SPC_RICcontrolFailure_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICcontrolHeader.c b/e2ap/lib/RICcontrolHeader.c
new file mode 100644 (file)
index 0000000..e211335
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICcontrolHeader.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_RICcontrolHeader_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader = {
+       "RICcontrolHeader",
+       "RICcontrolHeader",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_RICcontrolHeader_tags_1,
+       sizeof(asn_DEF_RICcontrolHeader_tags_1)
+               /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */
+       asn_DEF_RICcontrolHeader_tags_1,        /* Same as above */
+       sizeof(asn_DEF_RICcontrolHeader_tags_1)
+               /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICcontrolMessage.c b/e2ap/lib/RICcontrolMessage.c
new file mode 100644 (file)
index 0000000..b84d3b5
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICcontrolMessage.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_RICcontrolMessage_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage = {
+       "RICcontrolMessage",
+       "RICcontrolMessage",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_RICcontrolMessage_tags_1,
+       sizeof(asn_DEF_RICcontrolMessage_tags_1)
+               /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */
+       asn_DEF_RICcontrolMessage_tags_1,       /* Same as above */
+       sizeof(asn_DEF_RICcontrolMessage_tags_1)
+               /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICcontrolRequest.c b/e2ap/lib/RICcontrolRequest.c
new file mode 100644 (file)
index 0000000..3a9ddfd
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICcontrolRequest.h"
+
+asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P7,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1 = {
+       sizeof(struct RICcontrolRequest),
+       offsetof(struct RICcontrolRequest, _asn_ctx),
+       asn_MAP_RICcontrolRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest = {
+       "RICcontrolRequest",
+       "RICcontrolRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICcontrolRequest_tags_1,
+       sizeof(asn_DEF_RICcontrolRequest_tags_1)
+               /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */
+       asn_DEF_RICcontrolRequest_tags_1,       /* Same as above */
+       sizeof(asn_DEF_RICcontrolRequest_tags_1)
+               /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICcontrolRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_RICcontrolRequest_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICcontrolStatus.c b/e2ap/lib/RICcontrolStatus.c
new file mode 100644 (file)
index 0000000..99ae9bf
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICcontrolStatus.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RICcontrolStatus_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_RICcontrolStatus_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolStatus_value2enum_1[] = {
+       { 0,    7,      "success" },
+       { 1,    8,      "rejected" },
+       { 2,    6,      "failed" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_RICcontrolStatus_enum2value_1[] = {
+       2,      /* failed(2) */
+       1,      /* rejected(1) */
+       0       /* success(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RICcontrolStatus_specs_1 = {
+       asn_MAP_RICcontrolStatus_value2enum_1,  /* "tag" => N; sorted by tag */
+       asn_MAP_RICcontrolStatus_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_RICcontrolStatus_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus = {
+       "RICcontrolStatus",
+       "RICcontrolStatus",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_RICcontrolStatus_tags_1,
+       sizeof(asn_DEF_RICcontrolStatus_tags_1)
+               /sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */
+       asn_DEF_RICcontrolStatus_tags_1,        /* Same as above */
+       sizeof(asn_DEF_RICcontrolStatus_tags_1)
+               /sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */
+       { &asn_OER_type_RICcontrolStatus_constr_1, &asn_PER_type_RICcontrolStatus_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_RICcontrolStatus_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICeventTriggerDefinition.c b/e2ap/lib/RICeventTriggerDefinition.c
new file mode 100644 (file)
index 0000000..9a288d4
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICeventTriggerDefinition.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_RICeventTriggerDefinition_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition = {
+       "RICeventTriggerDefinition",
+       "RICeventTriggerDefinition",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_RICeventTriggerDefinition_tags_1,
+       sizeof(asn_DEF_RICeventTriggerDefinition_tags_1)
+               /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */
+       asn_DEF_RICeventTriggerDefinition_tags_1,       /* Same as above */
+       sizeof(asn_DEF_RICeventTriggerDefinition_tags_1)
+               /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICindication.c b/e2ap/lib/RICindication.c
new file mode 100644 (file)
index 0000000..5f661a7
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICindication.h"
+
+asn_TYPE_member_t asn_MBR_RICindication_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICindication, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P6,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICindication_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICindication_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1 = {
+       sizeof(struct RICindication),
+       offsetof(struct RICindication, _asn_ctx),
+       asn_MAP_RICindication_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICindication = {
+       "RICindication",
+       "RICindication",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICindication_tags_1,
+       sizeof(asn_DEF_RICindication_tags_1)
+               /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */
+       asn_DEF_RICindication_tags_1,   /* Same as above */
+       sizeof(asn_DEF_RICindication_tags_1)
+               /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICindication_1,
+       1,      /* Elements count */
+       &asn_SPC_RICindication_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICindicationHeader.c b/e2ap/lib/RICindicationHeader.c
new file mode 100644 (file)
index 0000000..8ec8ea0
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICindicationHeader.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_RICindicationHeader_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RICindicationHeader = {
+       "RICindicationHeader",
+       "RICindicationHeader",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_RICindicationHeader_tags_1,
+       sizeof(asn_DEF_RICindicationHeader_tags_1)
+               /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */
+       asn_DEF_RICindicationHeader_tags_1,     /* Same as above */
+       sizeof(asn_DEF_RICindicationHeader_tags_1)
+               /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICindicationMessage.c b/e2ap/lib/RICindicationMessage.c
new file mode 100644 (file)
index 0000000..be025b6
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICindicationMessage.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_RICindicationMessage_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RICindicationMessage = {
+       "RICindicationMessage",
+       "RICindicationMessage",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_RICindicationMessage_tags_1,
+       sizeof(asn_DEF_RICindicationMessage_tags_1)
+               /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */
+       asn_DEF_RICindicationMessage_tags_1,    /* Same as above */
+       sizeof(asn_DEF_RICindicationMessage_tags_1)
+               /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICindicationSN.c b/e2ap/lib/RICindicationSN.c
new file mode 100644 (file)
index 0000000..8317010
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICindicationSN.h"
+
+int
+RICindicationSN_constraint(const 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 >= 0 && value <= 65535)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_RICindicationSN_constr_1 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_type_RICindicationSN_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RICindicationSN_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RICindicationSN = {
+       "RICindicationSN",
+       "RICindicationSN",
+       &asn_OP_NativeInteger,
+       asn_DEF_RICindicationSN_tags_1,
+       sizeof(asn_DEF_RICindicationSN_tags_1)
+               /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */
+       asn_DEF_RICindicationSN_tags_1, /* Same as above */
+       sizeof(asn_DEF_RICindicationSN_tags_1)
+               /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */
+       { &asn_OER_type_RICindicationSN_constr_1, &asn_PER_type_RICindicationSN_constr_1, RICindicationSN_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/RICindicationType.c b/e2ap/lib/RICindicationType.c
new file mode 100644 (file)
index 0000000..ec720f2
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICindicationType.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RICindicationType_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_RICindicationType_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RICindicationType_value2enum_1[] = {
+       { 0,    6,      "report" },
+       { 1,    6,      "insert" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_RICindicationType_enum2value_1[] = {
+       1,      /* insert(1) */
+       0       /* report(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1 = {
+       asn_MAP_RICindicationType_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_RICindicationType_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_RICindicationType_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RICindicationType = {
+       "RICindicationType",
+       "RICindicationType",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_RICindicationType_tags_1,
+       sizeof(asn_DEF_RICindicationType_tags_1)
+               /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */
+       asn_DEF_RICindicationType_tags_1,       /* Same as above */
+       sizeof(asn_DEF_RICindicationType_tags_1)
+               /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */
+       { &asn_OER_type_RICindicationType_constr_1, &asn_PER_type_RICindicationType_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_RICindicationType_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICrequestID.c b/e2ap/lib/RICrequestID.c
new file mode 100644 (file)
index 0000000..7672188
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICrequestID.h"
+
+static int
+memb_ricRequestorID_constraint_1(const 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 >= 0 && value <= 65535)) {
+               /* 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_ricRequestSequenceNumber_constraint_1(const 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 >= 0 && value <= 65535)) {
+               /* 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_oer_constraints_t asn_OER_memb_ricRequestorID_constr_2 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_ricRequestorID_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_ricRequestSequenceNumber_constr_3 CC_NOTUSED = {
+       { 2, 1 }        /* (0..65535) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_ricRequestSequenceNumber_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RICrequestID_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricRequestorID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_ricRequestorID_constr_2, &asn_PER_memb_ricRequestorID_constr_2,  memb_ricRequestorID_constraint_1 },
+               0, 0, /* No default value */
+               "ricRequestorID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricRequestSequenceNumber),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_ricRequestSequenceNumber_constr_3, &asn_PER_memb_ricRequestSequenceNumber_constr_3,  memb_ricRequestSequenceNumber_constraint_1 },
+               0, 0, /* No default value */
+               "ricRequestSequenceNumber"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICrequestID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICrequestID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequestorID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricRequestSequenceNumber */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RICrequestID_specs_1 = {
+       sizeof(struct RICrequestID),
+       offsetof(struct RICrequestID, _asn_ctx),
+       asn_MAP_RICrequestID_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICrequestID = {
+       "RICrequestID",
+       "RICrequestID",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICrequestID_tags_1,
+       sizeof(asn_DEF_RICrequestID_tags_1)
+               /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */
+       asn_DEF_RICrequestID_tags_1,    /* Same as above */
+       sizeof(asn_DEF_RICrequestID_tags_1)
+               /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICrequestID_1,
+       2,      /* Elements count */
+       &asn_SPC_RICrequestID_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICserviceQuery.c b/e2ap/lib/RICserviceQuery.c
new file mode 100644 (file)
index 0000000..fe4a31d
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICserviceQuery.h"
+
+asn_TYPE_member_t asn_MBR_RICserviceQuery_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P13,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICserviceQuery_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1 = {
+       sizeof(struct RICserviceQuery),
+       offsetof(struct RICserviceQuery, _asn_ctx),
+       asn_MAP_RICserviceQuery_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICserviceQuery = {
+       "RICserviceQuery",
+       "RICserviceQuery",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICserviceQuery_tags_1,
+       sizeof(asn_DEF_RICserviceQuery_tags_1)
+               /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */
+       asn_DEF_RICserviceQuery_tags_1, /* Same as above */
+       sizeof(asn_DEF_RICserviceQuery_tags_1)
+               /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICserviceQuery_1,
+       1,      /* Elements count */
+       &asn_SPC_RICserviceQuery_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICserviceUpdate.c b/e2ap/lib/RICserviceUpdate.c
new file mode 100644 (file)
index 0000000..728a679
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICserviceUpdate.h"
+
+asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P10,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1 = {
+       sizeof(struct RICserviceUpdate),
+       offsetof(struct RICserviceUpdate, _asn_ctx),
+       asn_MAP_RICserviceUpdate_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate = {
+       "RICserviceUpdate",
+       "RICserviceUpdate",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICserviceUpdate_tags_1,
+       sizeof(asn_DEF_RICserviceUpdate_tags_1)
+               /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */
+       asn_DEF_RICserviceUpdate_tags_1,        /* Same as above */
+       sizeof(asn_DEF_RICserviceUpdate_tags_1)
+               /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICserviceUpdate_1,
+       1,      /* Elements count */
+       &asn_SPC_RICserviceUpdate_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICserviceUpdateAcknowledge.c b/e2ap/lib/RICserviceUpdateAcknowledge.c
new file mode 100644 (file)
index 0000000..095ba07
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICserviceUpdateAcknowledge.h"
+
+asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P11,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1 = {
+       sizeof(struct RICserviceUpdateAcknowledge),
+       offsetof(struct RICserviceUpdateAcknowledge, _asn_ctx),
+       asn_MAP_RICserviceUpdateAcknowledge_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge = {
+       "RICserviceUpdateAcknowledge",
+       "RICserviceUpdateAcknowledge",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICserviceUpdateAcknowledge_tags_1,
+       sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1)
+               /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */
+       asn_DEF_RICserviceUpdateAcknowledge_tags_1,     /* Same as above */
+       sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1)
+               /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICserviceUpdateAcknowledge_1,
+       1,      /* Elements count */
+       &asn_SPC_RICserviceUpdateAcknowledge_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICserviceUpdateFailure.c b/e2ap/lib/RICserviceUpdateFailure.c
new file mode 100644 (file)
index 0000000..2b2ad70
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICserviceUpdateFailure.h"
+
+asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P12,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1 = {
+       sizeof(struct RICserviceUpdateFailure),
+       offsetof(struct RICserviceUpdateFailure, _asn_ctx),
+       asn_MAP_RICserviceUpdateFailure_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure = {
+       "RICserviceUpdateFailure",
+       "RICserviceUpdateFailure",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICserviceUpdateFailure_tags_1,
+       sizeof(asn_DEF_RICserviceUpdateFailure_tags_1)
+               /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */
+       asn_DEF_RICserviceUpdateFailure_tags_1, /* Same as above */
+       sizeof(asn_DEF_RICserviceUpdateFailure_tags_1)
+               /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICserviceUpdateFailure_1,
+       1,      /* Elements count */
+       &asn_SPC_RICserviceUpdateFailure_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICsubscription.c b/e2ap/lib/RICsubscription.c
new file mode 100644 (file)
index 0000000..8207117
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICsubscription.h"
+
+static asn_TYPE_member_t asn_MBR_RICsubscription_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscription, ricEventTriggerDefinition),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RICeventTriggerDefinition,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ricEventTriggerDefinition"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscription, ricAction_ToBeSetup_List),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RICactions_ToBeSetup_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ricAction-ToBeSetup-List"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICsubscription_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscription_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricEventTriggerDefinition */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricAction-ToBeSetup-List */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RICsubscription_specs_1 = {
+       sizeof(struct RICsubscription),
+       offsetof(struct RICsubscription, _asn_ctx),
+       asn_MAP_RICsubscription_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubscription = {
+       "RICsubscription",
+       "RICsubscription",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICsubscription_tags_1,
+       sizeof(asn_DEF_RICsubscription_tags_1)
+               /sizeof(asn_DEF_RICsubscription_tags_1[0]), /* 1 */
+       asn_DEF_RICsubscription_tags_1, /* Same as above */
+       sizeof(asn_DEF_RICsubscription_tags_1)
+               /sizeof(asn_DEF_RICsubscription_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICsubscription_1,
+       2,      /* Elements count */
+       &asn_SPC_RICsubscription_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICsubscriptionDeleteFailure.c b/e2ap/lib/RICsubscriptionDeleteFailure.c
new file mode 100644 (file)
index 0000000..69c0b8d
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICsubscriptionDeleteFailure.h"
+
+asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P5,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1 = {
+       sizeof(struct RICsubscriptionDeleteFailure),
+       offsetof(struct RICsubscriptionDeleteFailure, _asn_ctx),
+       asn_MAP_RICsubscriptionDeleteFailure_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure = {
+       "RICsubscriptionDeleteFailure",
+       "RICsubscriptionDeleteFailure",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICsubscriptionDeleteFailure_tags_1,
+       sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1)
+               /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */
+       asn_DEF_RICsubscriptionDeleteFailure_tags_1,    /* Same as above */
+       sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1)
+               /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICsubscriptionDeleteFailure_1,
+       1,      /* Elements count */
+       &asn_SPC_RICsubscriptionDeleteFailure_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICsubscriptionDeleteRequest.c b/e2ap/lib/RICsubscriptionDeleteRequest.c
new file mode 100644 (file)
index 0000000..47578e4
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICsubscriptionDeleteRequest.h"
+
+asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P3,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1 = {
+       sizeof(struct RICsubscriptionDeleteRequest),
+       offsetof(struct RICsubscriptionDeleteRequest, _asn_ctx),
+       asn_MAP_RICsubscriptionDeleteRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest = {
+       "RICsubscriptionDeleteRequest",
+       "RICsubscriptionDeleteRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICsubscriptionDeleteRequest_tags_1,
+       sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1)
+               /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */
+       asn_DEF_RICsubscriptionDeleteRequest_tags_1,    /* Same as above */
+       sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1)
+               /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICsubscriptionDeleteRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_RICsubscriptionDeleteRequest_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICsubscriptionDeleteResponse.c b/e2ap/lib/RICsubscriptionDeleteResponse.c
new file mode 100644 (file)
index 0000000..19fe620
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICsubscriptionDeleteResponse.h"
+
+asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P4,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1 = {
+       sizeof(struct RICsubscriptionDeleteResponse),
+       offsetof(struct RICsubscriptionDeleteResponse, _asn_ctx),
+       asn_MAP_RICsubscriptionDeleteResponse_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse = {
+       "RICsubscriptionDeleteResponse",
+       "RICsubscriptionDeleteResponse",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICsubscriptionDeleteResponse_tags_1,
+       sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1)
+               /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */
+       asn_DEF_RICsubscriptionDeleteResponse_tags_1,   /* Same as above */
+       sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1)
+               /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICsubscriptionDeleteResponse_1,
+       1,      /* Elements count */
+       &asn_SPC_RICsubscriptionDeleteResponse_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICsubscriptionFailure.c b/e2ap/lib/RICsubscriptionFailure.c
new file mode 100644 (file)
index 0000000..4fb77ee
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICsubscriptionFailure.h"
+
+asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1 = {
+       sizeof(struct RICsubscriptionFailure),
+       offsetof(struct RICsubscriptionFailure, _asn_ctx),
+       asn_MAP_RICsubscriptionFailure_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure = {
+       "RICsubscriptionFailure",
+       "RICsubscriptionFailure",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICsubscriptionFailure_tags_1,
+       sizeof(asn_DEF_RICsubscriptionFailure_tags_1)
+               /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */
+       asn_DEF_RICsubscriptionFailure_tags_1,  /* Same as above */
+       sizeof(asn_DEF_RICsubscriptionFailure_tags_1)
+               /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICsubscriptionFailure_1,
+       1,      /* Elements count */
+       &asn_SPC_RICsubscriptionFailure_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICsubscriptionRequest.c b/e2ap/lib/RICsubscriptionRequest.c
new file mode 100644 (file)
index 0000000..16cc565
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICsubscriptionRequest.h"
+
+asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P0,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1 = {
+       sizeof(struct RICsubscriptionRequest),
+       offsetof(struct RICsubscriptionRequest, _asn_ctx),
+       asn_MAP_RICsubscriptionRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest = {
+       "RICsubscriptionRequest",
+       "RICsubscriptionRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICsubscriptionRequest_tags_1,
+       sizeof(asn_DEF_RICsubscriptionRequest_tags_1)
+               /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */
+       asn_DEF_RICsubscriptionRequest_tags_1,  /* Same as above */
+       sizeof(asn_DEF_RICsubscriptionRequest_tags_1)
+               /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICsubscriptionRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_RICsubscriptionRequest_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICsubscriptionResponse.c b/e2ap/lib/RICsubscriptionResponse.c
new file mode 100644 (file)
index 0000000..07c11b0
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICsubscriptionResponse.h"
+
+asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P1,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1 = {
+       sizeof(struct RICsubscriptionResponse),
+       offsetof(struct RICsubscriptionResponse, _asn_ctx),
+       asn_MAP_RICsubscriptionResponse_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse = {
+       "RICsubscriptionResponse",
+       "RICsubscriptionResponse",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICsubscriptionResponse_tags_1,
+       sizeof(asn_DEF_RICsubscriptionResponse_tags_1)
+               /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */
+       asn_DEF_RICsubscriptionResponse_tags_1, /* Same as above */
+       sizeof(asn_DEF_RICsubscriptionResponse_tags_1)
+               /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICsubscriptionResponse_1,
+       1,      /* Elements count */
+       &asn_SPC_RICsubscriptionResponse_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICsubsequentAction.c b/e2ap/lib/RICsubsequentAction.c
new file mode 100644 (file)
index 0000000..cf65c09
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICsubsequentAction.h"
+
+asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricSubsequentActionType),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RICsubsequentActionType,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ricSubsequentActionType"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricTimeToWait),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RICtimeToWait,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ricTimeToWait"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RICsubsequentAction_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICsubsequentAction_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricSubsequentActionType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricTimeToWait */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1 = {
+       sizeof(struct RICsubsequentAction),
+       offsetof(struct RICsubsequentAction, _asn_ctx),
+       asn_MAP_RICsubsequentAction_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubsequentAction = {
+       "RICsubsequentAction",
+       "RICsubsequentAction",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RICsubsequentAction_tags_1,
+       sizeof(asn_DEF_RICsubsequentAction_tags_1)
+               /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */
+       asn_DEF_RICsubsequentAction_tags_1,     /* Same as above */
+       sizeof(asn_DEF_RICsubsequentAction_tags_1)
+               /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RICsubsequentAction_1,
+       2,      /* Elements count */
+       &asn_SPC_RICsubsequentAction_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICsubsequentActionType.c b/e2ap/lib/RICsubsequentActionType.c
new file mode 100644 (file)
index 0000000..188c7b3
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICsubsequentActionType.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RICsubsequentActionType_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_RICsubsequentActionType_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RICsubsequentActionType_value2enum_1[] = {
+       { 0,    8,      "continue" },
+       { 1,    4,      "wait" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_RICsubsequentActionType_enum2value_1[] = {
+       0,      /* continue(0) */
+       1       /* wait(1) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1 = {
+       asn_MAP_RICsubsequentActionType_value2enum_1,   /* "tag" => N; sorted by tag */
+       asn_MAP_RICsubsequentActionType_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_RICsubsequentActionType_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType = {
+       "RICsubsequentActionType",
+       "RICsubsequentActionType",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_RICsubsequentActionType_tags_1,
+       sizeof(asn_DEF_RICsubsequentActionType_tags_1)
+               /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */
+       asn_DEF_RICsubsequentActionType_tags_1, /* Same as above */
+       sizeof(asn_DEF_RICsubsequentActionType_tags_1)
+               /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */
+       { &asn_OER_type_RICsubsequentActionType_constr_1, &asn_PER_type_RICsubsequentActionType_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_RICsubsequentActionType_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/RICtimeToWait.c b/e2ap/lib/RICtimeToWait.c
new file mode 100644 (file)
index 0000000..7c75d4e
--- /dev/null
@@ -0,0 +1,90 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RICtimeToWait.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RICtimeToWait_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  5,  5,  0,  17 }   /* (0..17,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RICtimeToWait_value2enum_1[] = {
+       { 0,    4,      "zero" },
+       { 1,    4,      "w1ms" },
+       { 2,    4,      "w2ms" },
+       { 3,    4,      "w5ms" },
+       { 4,    5,      "w10ms" },
+       { 5,    5,      "w20ms" },
+       { 6,    5,      "w30ms" },
+       { 7,    5,      "w40ms" },
+       { 8,    5,      "w50ms" },
+       { 9,    6,      "w100ms" },
+       { 10,   6,      "w200ms" },
+       { 11,   6,      "w500ms" },
+       { 12,   3,      "w1s" },
+       { 13,   3,      "w2s" },
+       { 14,   3,      "w5s" },
+       { 15,   4,      "w10s" },
+       { 16,   4,      "w20s" },
+       { 17,   4,      "w60s" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_RICtimeToWait_enum2value_1[] = {
+       9,      /* w100ms(9) */
+       4,      /* w10ms(4) */
+       15,     /* w10s(15) */
+       1,      /* w1ms(1) */
+       12,     /* w1s(12) */
+       10,     /* w200ms(10) */
+       5,      /* w20ms(5) */
+       16,     /* w20s(16) */
+       2,      /* w2ms(2) */
+       13,     /* w2s(13) */
+       6,      /* w30ms(6) */
+       7,      /* w40ms(7) */
+       11,     /* w500ms(11) */
+       8,      /* w50ms(8) */
+       3,      /* w5ms(3) */
+       14,     /* w5s(14) */
+       17,     /* w60s(17) */
+       0       /* zero(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1 = {
+       asn_MAP_RICtimeToWait_value2enum_1,     /* "tag" => N; sorted by tag */
+       asn_MAP_RICtimeToWait_enum2value_1,     /* N => "tag"; sorted by N */
+       18,     /* Number of elements in the maps */
+       19,     /* Extensions before this member */
+       1,      /* Strict enumeration */
+       0,      /* Native long size */
+       0
+};
+static const ber_tlv_tag_t asn_DEF_RICtimeToWait_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RICtimeToWait = {
+       "RICtimeToWait",
+       "RICtimeToWait",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_RICtimeToWait_tags_1,
+       sizeof(asn_DEF_RICtimeToWait_tags_1)
+               /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */
+       asn_DEF_RICtimeToWait_tags_1,   /* Same as above */
+       sizeof(asn_DEF_RICtimeToWait_tags_1)
+               /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */
+       { &asn_OER_type_RICtimeToWait_constr_1, &asn_PER_type_RICtimeToWait_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_RICtimeToWait_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/RLC-Status.c b/e2ap/lib/RLC-Status.c
new file mode 100644 (file)
index 0000000..5674d25
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RLC-Status.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_RLC_Status_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RLC_Status, reestablishment_Indication),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Reestablishment_Indication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "reestablishment-Indication"
+               },
+       { ATF_POINTER, 1, offsetof(struct RLC_Status, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P186,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_RLC_Status_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RLC_Status_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RLC_Status_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reestablishment-Indication */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RLC_Status_specs_1 = {
+       sizeof(struct RLC_Status),
+       offsetof(struct RLC_Status, _asn_ctx),
+       asn_MAP_RLC_Status_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_RLC_Status_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RLC_Status = {
+       "RLC-Status",
+       "RLC-Status",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RLC_Status_tags_1,
+       sizeof(asn_DEF_RLC_Status_tags_1)
+               /sizeof(asn_DEF_RLC_Status_tags_1[0]), /* 1 */
+       asn_DEF_RLC_Status_tags_1,      /* Same as above */
+       sizeof(asn_DEF_RLC_Status_tags_1)
+               /sizeof(asn_DEF_RLC_Status_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RLC_Status_1,
+       2,      /* Elements count */
+       &asn_SPC_RLC_Status_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/RLCMode.c b/e2ap/lib/RLCMode.c
new file mode 100644 (file)
index 0000000..00d0ce3
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RLCMode.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RLCMode_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_RLCMode_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RLCMode_value2enum_1[] = {
+       { 0,    6,      "rlc-am" },
+       { 1,    20,     "rlc-um-bidirectional" },
+       { 2,    24,     "rlc-um-unidirectional-ul" },
+       { 3,    24,     "rlc-um-unidirectional-dl" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_RLCMode_enum2value_1[] = {
+       0,      /* rlc-am(0) */
+       1,      /* rlc-um-bidirectional(1) */
+       3,      /* rlc-um-unidirectional-dl(3) */
+       2       /* rlc-um-unidirectional-ul(2) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_RLCMode_specs_1 = {
+       asn_MAP_RLCMode_value2enum_1,   /* "tag" => N; sorted by tag */
+       asn_MAP_RLCMode_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_RLCMode_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RLCMode = {
+       "RLCMode",
+       "RLCMode",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_RLCMode_tags_1,
+       sizeof(asn_DEF_RLCMode_tags_1)
+               /sizeof(asn_DEF_RLCMode_tags_1[0]), /* 1 */
+       asn_DEF_RLCMode_tags_1, /* Same as above */
+       sizeof(asn_DEF_RLCMode_tags_1)
+               /sizeof(asn_DEF_RLCMode_tags_1[0]), /* 1 */
+       { &asn_OER_type_RLCMode_constr_1, &asn_PER_type_RLCMode_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_RLCMode_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/RLFIndication.c b/e2ap/lib/RLFIndication.c
new file mode 100644 (file)
index 0000000..0dae24e
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RLFIndication.h"
+
+asn_TYPE_member_t asn_MBR_RLFIndication_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RLFIndication, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P38,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RLFIndication_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RLFIndication_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RLFIndication_specs_1 = {
+       sizeof(struct RLFIndication),
+       offsetof(struct RLFIndication, _asn_ctx),
+       asn_MAP_RLFIndication_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RLFIndication = {
+       "RLFIndication",
+       "RLFIndication",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RLFIndication_tags_1,
+       sizeof(asn_DEF_RLFIndication_tags_1)
+               /sizeof(asn_DEF_RLFIndication_tags_1[0]), /* 1 */
+       asn_DEF_RLFIndication_tags_1,   /* Same as above */
+       sizeof(asn_DEF_RLFIndication_tags_1)
+               /sizeof(asn_DEF_RLFIndication_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RLFIndication_1,
+       1,      /* Elements count */
+       &asn_SPC_RLFIndication_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/RNL-Header.c b/e2ap/lib/RNL-Header.c
new file mode 100644 (file)
index 0000000..07a739e
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RNL-Header.h"
+
+#include "GlobalENB-ID.h"
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_RNL_Header_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RNL_Header, source_GlobalENB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GlobalENB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "source-GlobalENB-ID"
+               },
+       { ATF_POINTER, 2, offsetof(struct RNL_Header, target_GlobalENB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GlobalENB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "target-GlobalENB-ID"
+               },
+       { ATF_POINTER, 1, offsetof(struct RNL_Header, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P16,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_RNL_Header_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RNL_Header_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RNL_Header_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* source-GlobalENB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* target-GlobalENB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RNL_Header_specs_1 = {
+       sizeof(struct RNL_Header),
+       offsetof(struct RNL_Header, _asn_ctx),
+       asn_MAP_RNL_Header_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_RNL_Header_oms_1,       /* Optional members */
+       2, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RNL_Header = {
+       "RNL-Header",
+       "RNL-Header",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RNL_Header_tags_1,
+       sizeof(asn_DEF_RNL_Header_tags_1)
+               /sizeof(asn_DEF_RNL_Header_tags_1[0]), /* 1 */
+       asn_DEF_RNL_Header_tags_1,      /* Same as above */
+       sizeof(asn_DEF_RNL_Header_tags_1)
+               /sizeof(asn_DEF_RNL_Header_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RNL_Header_1,
+       3,      /* Elements count */
+       &asn_SPC_RNL_Header_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/RNTP-Threshold.c b/e2ap/lib/RNTP-Threshold.c
new file mode 100644 (file)
index 0000000..a54bdcd
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RNTP-Threshold.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RNTP_Threshold_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_RNTP_Threshold_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  15 }   /* (0..15,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RNTP_Threshold_value2enum_1[] = {
+       { 0,    13,     "minusInfinity" },
+       { 1,    11,     "minusEleven" },
+       { 2,    8,      "minusTen" },
+       { 3,    9,      "minusNine" },
+       { 4,    10,     "minusEight" },
+       { 5,    10,     "minusSeven" },
+       { 6,    8,      "minusSix" },
+       { 7,    9,      "minusFive" },
+       { 8,    9,      "minusFour" },
+       { 9,    10,     "minusThree" },
+       { 10,   8,      "minusTwo" },
+       { 11,   8,      "minusOne" },
+       { 12,   4,      "zero" },
+       { 13,   3,      "one" },
+       { 14,   3,      "two" },
+       { 15,   5,      "three" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_RNTP_Threshold_enum2value_1[] = {
+       4,      /* minusEight(4) */
+       1,      /* minusEleven(1) */
+       7,      /* minusFive(7) */
+       8,      /* minusFour(8) */
+       0,      /* minusInfinity(0) */
+       3,      /* minusNine(3) */
+       11,     /* minusOne(11) */
+       5,      /* minusSeven(5) */
+       6,      /* minusSix(6) */
+       2,      /* minusTen(2) */
+       9,      /* minusThree(9) */
+       10,     /* minusTwo(10) */
+       13,     /* one(13) */
+       15,     /* three(15) */
+       14,     /* two(14) */
+       12      /* zero(12) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_RNTP_Threshold_specs_1 = {
+       asn_MAP_RNTP_Threshold_value2enum_1,    /* "tag" => N; sorted by tag */
+       asn_MAP_RNTP_Threshold_enum2value_1,    /* N => "tag"; sorted by N */
+       16,     /* Number of elements in the maps */
+       17,     /* Extensions before this member */
+       1,      /* Strict enumeration */
+       0,      /* Native long size */
+       0
+};
+static const ber_tlv_tag_t asn_DEF_RNTP_Threshold_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RNTP_Threshold = {
+       "RNTP-Threshold",
+       "RNTP-Threshold",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_RNTP_Threshold_tags_1,
+       sizeof(asn_DEF_RNTP_Threshold_tags_1)
+               /sizeof(asn_DEF_RNTP_Threshold_tags_1[0]), /* 1 */
+       asn_DEF_RNTP_Threshold_tags_1,  /* Same as above */
+       sizeof(asn_DEF_RNTP_Threshold_tags_1)
+               /sizeof(asn_DEF_RNTP_Threshold_tags_1[0]), /* 1 */
+       { &asn_OER_type_RNTP_Threshold_constr_1, &asn_PER_type_RNTP_Threshold_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_RNTP_Threshold_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/RRC-Config-Ind.c b/e2ap/lib/RRC-Config-Ind.c
new file mode 100644 (file)
index 0000000..5641d72
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RRC-Config-Ind.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RRC_Config_Ind_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_RRC_Config_Ind_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RRC_Config_Ind_value2enum_1[] = {
+       { 0,    11,     "full-config" },
+       { 1,    12,     "delta-config" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_RRC_Config_Ind_enum2value_1[] = {
+       1,      /* delta-config(1) */
+       0       /* full-config(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RRC_Config_Ind_specs_1 = {
+       asn_MAP_RRC_Config_Ind_value2enum_1,    /* "tag" => N; sorted by tag */
+       asn_MAP_RRC_Config_Ind_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_RRC_Config_Ind_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RRC_Config_Ind = {
+       "RRC-Config-Ind",
+       "RRC-Config-Ind",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_RRC_Config_Ind_tags_1,
+       sizeof(asn_DEF_RRC_Config_Ind_tags_1)
+               /sizeof(asn_DEF_RRC_Config_Ind_tags_1[0]), /* 1 */
+       asn_DEF_RRC_Config_Ind_tags_1,  /* Same as above */
+       sizeof(asn_DEF_RRC_Config_Ind_tags_1)
+               /sizeof(asn_DEF_RRC_Config_Ind_tags_1[0]), /* 1 */
+       { &asn_OER_type_RRC_Config_Ind_constr_1, &asn_PER_type_RRC_Config_Ind_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_RRC_Config_Ind_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/RRC-Context.c b/e2ap/lib/RRC-Context.c
new file mode 100644 (file)
index 0000000..c26ca19
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RRC-Context.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_RRC_Context_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RRC_Context = {
+       "RRC-Context",
+       "RRC-Context",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_RRC_Context_tags_1,
+       sizeof(asn_DEF_RRC_Context_tags_1)
+               /sizeof(asn_DEF_RRC_Context_tags_1[0]), /* 1 */
+       asn_DEF_RRC_Context_tags_1,     /* Same as above */
+       sizeof(asn_DEF_RRC_Context_tags_1)
+               /sizeof(asn_DEF_RRC_Context_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/RRCConnReestabIndicator.c b/e2ap/lib/RRCConnReestabIndicator.c
new file mode 100644 (file)
index 0000000..d0171c4
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RRCConnReestabIndicator.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RRCConnReestabIndicator_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_RRCConnReestabIndicator_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RRCConnReestabIndicator_value2enum_1[] = {
+       { 0,    22,     "reconfigurationFailure" },
+       { 1,    15,     "handoverFailure" },
+       { 2,    12,     "otherFailure" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_RRCConnReestabIndicator_enum2value_1[] = {
+       1,      /* handoverFailure(1) */
+       2,      /* otherFailure(2) */
+       0       /* reconfigurationFailure(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RRCConnReestabIndicator_specs_1 = {
+       asn_MAP_RRCConnReestabIndicator_value2enum_1,   /* "tag" => N; sorted by tag */
+       asn_MAP_RRCConnReestabIndicator_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_RRCConnReestabIndicator_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RRCConnReestabIndicator = {
+       "RRCConnReestabIndicator",
+       "RRCConnReestabIndicator",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_RRCConnReestabIndicator_tags_1,
+       sizeof(asn_DEF_RRCConnReestabIndicator_tags_1)
+               /sizeof(asn_DEF_RRCConnReestabIndicator_tags_1[0]), /* 1 */
+       asn_DEF_RRCConnReestabIndicator_tags_1, /* Same as above */
+       sizeof(asn_DEF_RRCConnReestabIndicator_tags_1)
+               /sizeof(asn_DEF_RRCConnReestabIndicator_tags_1[0]), /* 1 */
+       { &asn_OER_type_RRCConnReestabIndicator_constr_1, &asn_PER_type_RRCConnReestabIndicator_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_RRCConnReestabIndicator_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/RRCConnSetupIndicator.c b/e2ap/lib/RRCConnSetupIndicator.c
new file mode 100644 (file)
index 0000000..4f7e019
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RRCConnSetupIndicator.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RRCConnSetupIndicator_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_RRCConnSetupIndicator_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RRCConnSetupIndicator_value2enum_1[] = {
+       { 0,    12,     "rrcConnSetup" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_RRCConnSetupIndicator_enum2value_1[] = {
+       0       /* rrcConnSetup(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RRCConnSetupIndicator_specs_1 = {
+       asn_MAP_RRCConnSetupIndicator_value2enum_1,     /* "tag" => N; sorted by tag */
+       asn_MAP_RRCConnSetupIndicator_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_RRCConnSetupIndicator_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RRCConnSetupIndicator = {
+       "RRCConnSetupIndicator",
+       "RRCConnSetupIndicator",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_RRCConnSetupIndicator_tags_1,
+       sizeof(asn_DEF_RRCConnSetupIndicator_tags_1)
+               /sizeof(asn_DEF_RRCConnSetupIndicator_tags_1[0]), /* 1 */
+       asn_DEF_RRCConnSetupIndicator_tags_1,   /* Same as above */
+       sizeof(asn_DEF_RRCConnSetupIndicator_tags_1)
+               /sizeof(asn_DEF_RRCConnSetupIndicator_tags_1[0]), /* 1 */
+       { &asn_OER_type_RRCConnSetupIndicator_constr_1, &asn_PER_type_RRCConnSetupIndicator_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_RRCConnSetupIndicator_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/RRCContainer.c b/e2ap/lib/RRCContainer.c
new file mode 100644 (file)
index 0000000..acea458
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RRCContainer.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_RRCContainer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RRCContainer = {
+       "RRCContainer",
+       "RRCContainer",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_RRCContainer_tags_1,
+       sizeof(asn_DEF_RRCContainer_tags_1)
+               /sizeof(asn_DEF_RRCContainer_tags_1[0]), /* 1 */
+       asn_DEF_RRCContainer_tags_1,    /* Same as above */
+       sizeof(asn_DEF_RRCContainer_tags_1)
+               /sizeof(asn_DEF_RRCContainer_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/RRCTransfer.c b/e2ap/lib/RRCTransfer.c
new file mode 100644 (file)
index 0000000..a59e7dc
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RRCTransfer.h"
+
+asn_TYPE_member_t asn_MBR_RRCTransfer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RRCTransfer, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P82,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RRCTransfer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RRCTransfer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RRCTransfer_specs_1 = {
+       sizeof(struct RRCTransfer),
+       offsetof(struct RRCTransfer, _asn_ctx),
+       asn_MAP_RRCTransfer_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RRCTransfer = {
+       "RRCTransfer",
+       "RRCTransfer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RRCTransfer_tags_1,
+       sizeof(asn_DEF_RRCTransfer_tags_1)
+               /sizeof(asn_DEF_RRCTransfer_tags_1[0]), /* 1 */
+       asn_DEF_RRCTransfer_tags_1,     /* Same as above */
+       sizeof(asn_DEF_RRCTransfer_tags_1)
+               /sizeof(asn_DEF_RRCTransfer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RRCTransfer_1,
+       1,      /* Elements count */
+       &asn_SPC_RRCTransfer_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/RSRPMRList.c b/e2ap/lib/RSRPMRList.c
new file mode 100644 (file)
index 0000000..98e8558
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RSRPMRList.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_oer_constraints_t asn_OER_type_RSRPMRList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..128)) */};
+static asn_per_constraints_t asn_PER_type_RSRPMRList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       7,  7,  1,  128 }      /* (SIZE(1..128)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RSRPMRList__Member, rSRPMeasurementResult),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RSRPMeasurementResult,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "rSRPMeasurementResult"
+               },
+       { ATF_POINTER, 1, offsetof(struct RSRPMRList__Member, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P188,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "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 }, /* rSRPMeasurementResult */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+       sizeof(struct RSRPMRList__Member),
+       offsetof(struct RSRPMRList__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 */
+       2,      /* First extension addition */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+       "SEQUENCE",
+       "SEQUENCE",
+       &asn_OP_SEQUENCE,
+       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, 0, SEQUENCE_constraint },
+       asn_MBR_Member_2,
+       2,      /* Elements count */
+       &asn_SPC_Member_specs_2 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RSRPMRList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Member_2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RSRPMRList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RSRPMRList_specs_1 = {
+       sizeof(struct RSRPMRList),
+       offsetof(struct RSRPMRList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RSRPMRList = {
+       "RSRPMRList",
+       "RSRPMRList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_RSRPMRList_tags_1,
+       sizeof(asn_DEF_RSRPMRList_tags_1)
+               /sizeof(asn_DEF_RSRPMRList_tags_1[0]), /* 1 */
+       asn_DEF_RSRPMRList_tags_1,      /* Same as above */
+       sizeof(asn_DEF_RSRPMRList_tags_1)
+               /sizeof(asn_DEF_RSRPMRList_tags_1[0]), /* 1 */
+       { &asn_OER_type_RSRPMRList_constr_1, &asn_PER_type_RSRPMRList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_RSRPMRList_1,
+       1,      /* Single element */
+       &asn_SPC_RSRPMRList_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/RSRPMeasurementResult.c b/e2ap/lib/RSRPMeasurementResult.c
new file mode 100644 (file)
index 0000000..b966190
--- /dev/null
@@ -0,0 +1,150 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RSRPMeasurementResult.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_rSRPMeasured_constraint_2(const 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 >= 0 && value <= 97)) {
+               /* 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_oer_constraints_t asn_OER_memb_rSRPMeasured_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_rSRPMeasured_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  7,  7,  0,  97 }   /* (0..97,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_RSRPMeasurementResult_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..9)) */};
+asn_per_constraints_t asn_PER_type_RSRPMeasurementResult_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       4,  4,  1,  9 }        /* (SIZE(1..9)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RSRPMeasurementResult__Member, rSRPCellID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "rSRPCellID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RSRPMeasurementResult__Member, rSRPMeasured),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_rSRPMeasured_constr_4, &asn_PER_memb_rSRPMeasured_constr_4,  memb_rSRPMeasured_constraint_2 },
+               0, 0, /* No default value */
+               "rSRPMeasured"
+               },
+       { ATF_POINTER, 1, offsetof(struct RSRPMeasurementResult__Member, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P187,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "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 }, /* rSRPCellID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rSRPMeasured */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+       sizeof(struct RSRPMeasurementResult__Member),
+       offsetof(struct RSRPMeasurementResult__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 */
+       3,      /* First extension addition */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+       "SEQUENCE",
+       "SEQUENCE",
+       &asn_OP_SEQUENCE,
+       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, 0, SEQUENCE_constraint },
+       asn_MBR_Member_2,
+       3,      /* Elements count */
+       &asn_SPC_Member_specs_2 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RSRPMeasurementResult_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Member_2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RSRPMeasurementResult_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_RSRPMeasurementResult_specs_1 = {
+       sizeof(struct RSRPMeasurementResult),
+       offsetof(struct RSRPMeasurementResult, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RSRPMeasurementResult = {
+       "RSRPMeasurementResult",
+       "RSRPMeasurementResult",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_RSRPMeasurementResult_tags_1,
+       sizeof(asn_DEF_RSRPMeasurementResult_tags_1)
+               /sizeof(asn_DEF_RSRPMeasurementResult_tags_1[0]), /* 1 */
+       asn_DEF_RSRPMeasurementResult_tags_1,   /* Same as above */
+       sizeof(asn_DEF_RSRPMeasurementResult_tags_1)
+               /sizeof(asn_DEF_RSRPMeasurementResult_tags_1[0]), /* 1 */
+       { &asn_OER_type_RSRPMeasurementResult_constr_1, &asn_PER_type_RSRPMeasurementResult_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_RSRPMeasurementResult_1,
+       1,      /* Single element */
+       &asn_SPC_RSRPMeasurementResult_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/RadioResourceStatus.c b/e2ap/lib/RadioResourceStatus.c
new file mode 100644 (file)
index 0000000..5de7318
--- /dev/null
@@ -0,0 +1,113 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RadioResourceStatus.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_RadioResourceStatus_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus, dL_GBR_PRB_usage),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_DL_GBR_PRB_usage,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-GBR-PRB-usage"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus, uL_GBR_PRB_usage),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UL_GBR_PRB_usage,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-GBR-PRB-usage"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus, dL_non_GBR_PRB_usage),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_DL_non_GBR_PRB_usage,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-non-GBR-PRB-usage"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus, uL_non_GBR_PRB_usage),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UL_non_GBR_PRB_usage,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-non-GBR-PRB-usage"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus, dL_Total_PRB_usage),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_DL_Total_PRB_usage,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dL-Total-PRB-usage"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus, uL_Total_PRB_usage),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UL_Total_PRB_usage,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-Total-PRB-usage"
+               },
+       { ATF_POINTER, 1, offsetof(struct RadioResourceStatus, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P183,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_RadioResourceStatus_oms_1[] = { 6 };
+static const ber_tlv_tag_t asn_DEF_RadioResourceStatus_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RadioResourceStatus_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dL-GBR-PRB-usage */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-GBR-PRB-usage */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-non-GBR-PRB-usage */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* uL-non-GBR-PRB-usage */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dL-Total-PRB-usage */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* uL-Total-PRB-usage */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RadioResourceStatus_specs_1 = {
+       sizeof(struct RadioResourceStatus),
+       offsetof(struct RadioResourceStatus, _asn_ctx),
+       asn_MAP_RadioResourceStatus_tag2el_1,
+       7,      /* Count of tags in the map */
+       asn_MAP_RadioResourceStatus_oms_1,      /* Optional members */
+       1, 0,   /* Root/Additions */
+       7,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RadioResourceStatus = {
+       "RadioResourceStatus",
+       "RadioResourceStatus",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RadioResourceStatus_tags_1,
+       sizeof(asn_DEF_RadioResourceStatus_tags_1)
+               /sizeof(asn_DEF_RadioResourceStatus_tags_1[0]), /* 1 */
+       asn_DEF_RadioResourceStatus_tags_1,     /* Same as above */
+       sizeof(asn_DEF_RadioResourceStatus_tags_1)
+               /sizeof(asn_DEF_RadioResourceStatus_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RadioResourceStatus_1,
+       7,      /* Elements count */
+       &asn_SPC_RadioResourceStatus_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/RadioframeAllocationOffset.c b/e2ap/lib/RadioframeAllocationOffset.c
new file mode 100644 (file)
index 0000000..ed610ed
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RadioframeAllocationOffset.h"
+
+int
+RadioframeAllocationOffset_constraint(const 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 >= 0 && value <= 7)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_RadioframeAllocationOffset_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_RadioframeAllocationOffset_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  7 }    /* (0..7,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RadioframeAllocationOffset_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RadioframeAllocationOffset = {
+       "RadioframeAllocationOffset",
+       "RadioframeAllocationOffset",
+       &asn_OP_NativeInteger,
+       asn_DEF_RadioframeAllocationOffset_tags_1,
+       sizeof(asn_DEF_RadioframeAllocationOffset_tags_1)
+               /sizeof(asn_DEF_RadioframeAllocationOffset_tags_1[0]), /* 1 */
+       asn_DEF_RadioframeAllocationOffset_tags_1,      /* Same as above */
+       sizeof(asn_DEF_RadioframeAllocationOffset_tags_1)
+               /sizeof(asn_DEF_RadioframeAllocationOffset_tags_1[0]), /* 1 */
+       { &asn_OER_type_RadioframeAllocationOffset_constr_1, &asn_PER_type_RadioframeAllocationOffset_constr_1, RadioframeAllocationOffset_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/RadioframeAllocationPeriod.c b/e2ap/lib/RadioframeAllocationPeriod.c
new file mode 100644 (file)
index 0000000..4f8db5f
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RadioframeAllocationPeriod.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RadioframeAllocationPeriod_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_RadioframeAllocationPeriod_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  5 }    /* (0..5,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RadioframeAllocationPeriod_value2enum_1[] = {
+       { 0,    2,      "n1" },
+       { 1,    2,      "n2" },
+       { 2,    2,      "n4" },
+       { 3,    2,      "n8" },
+       { 4,    3,      "n16" },
+       { 5,    3,      "n32" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_RadioframeAllocationPeriod_enum2value_1[] = {
+       0,      /* n1(0) */
+       4,      /* n16(4) */
+       1,      /* n2(1) */
+       5,      /* n32(5) */
+       2,      /* n4(2) */
+       3       /* n8(3) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_RadioframeAllocationPeriod_specs_1 = {
+       asn_MAP_RadioframeAllocationPeriod_value2enum_1,        /* "tag" => N; sorted by tag */
+       asn_MAP_RadioframeAllocationPeriod_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_RadioframeAllocationPeriod_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RadioframeAllocationPeriod = {
+       "RadioframeAllocationPeriod",
+       "RadioframeAllocationPeriod",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_RadioframeAllocationPeriod_tags_1,
+       sizeof(asn_DEF_RadioframeAllocationPeriod_tags_1)
+               /sizeof(asn_DEF_RadioframeAllocationPeriod_tags_1[0]), /* 1 */
+       asn_DEF_RadioframeAllocationPeriod_tags_1,      /* Same as above */
+       sizeof(asn_DEF_RadioframeAllocationPeriod_tags_1)
+               /sizeof(asn_DEF_RadioframeAllocationPeriod_tags_1[0]), /* 1 */
+       { &asn_OER_type_RadioframeAllocationPeriod_constr_1, &asn_PER_type_RadioframeAllocationPeriod_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_RadioframeAllocationPeriod_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ReceiveStatusOfULPDCPSDUsExtended.c b/e2ap/lib/ReceiveStatusOfULPDCPSDUsExtended.c
new file mode 100644 (file)
index 0000000..d544e6b
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ReceiveStatusOfULPDCPSDUsExtended.h"
+
+int
+ReceiveStatusOfULPDCPSDUsExtended_constraint(const 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 >= 1 && size <= 16384)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_ReceiveStatusOfULPDCPSDUsExtended_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16384)) */};
+static asn_per_constraints_t asn_PER_type_ReceiveStatusOfULPDCPSDUsExtended_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       14,  14,  1,  16384 }  /* (SIZE(1..16384)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_ReceiveStatusOfULPDCPSDUsExtended_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ReceiveStatusOfULPDCPSDUsExtended = {
+       "ReceiveStatusOfULPDCPSDUsExtended",
+       "ReceiveStatusOfULPDCPSDUsExtended",
+       &asn_OP_BIT_STRING,
+       asn_DEF_ReceiveStatusOfULPDCPSDUsExtended_tags_1,
+       sizeof(asn_DEF_ReceiveStatusOfULPDCPSDUsExtended_tags_1)
+               /sizeof(asn_DEF_ReceiveStatusOfULPDCPSDUsExtended_tags_1[0]), /* 1 */
+       asn_DEF_ReceiveStatusOfULPDCPSDUsExtended_tags_1,       /* Same as above */
+       sizeof(asn_DEF_ReceiveStatusOfULPDCPSDUsExtended_tags_1)
+               /sizeof(asn_DEF_ReceiveStatusOfULPDCPSDUsExtended_tags_1[0]), /* 1 */
+       { &asn_OER_type_ReceiveStatusOfULPDCPSDUsExtended_constr_1, &asn_PER_type_ReceiveStatusOfULPDCPSDUsExtended_constr_1, ReceiveStatusOfULPDCPSDUsExtended_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c b/e2ap/lib/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c
new file mode 100644 (file)
index 0000000..382fed0
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h"
+
+int
+ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constraint(const 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 >= 1 && size <= 131072)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..131072)) */};
+static asn_per_constraints_t asn_PER_type_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       17, -1,  1,  131072 }  /* (SIZE(1..131072)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 = {
+       "ReceiveStatusOfULPDCPSDUsPDCP-SNlength18",
+       "ReceiveStatusOfULPDCPSDUsPDCP-SNlength18",
+       &asn_OP_BIT_STRING,
+       asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_tags_1,
+       sizeof(asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_tags_1)
+               /sizeof(asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_tags_1[0]), /* 1 */
+       asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_tags_1,        /* Same as above */
+       sizeof(asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_tags_1)
+               /sizeof(asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_tags_1[0]), /* 1 */
+       { &asn_OER_type_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constr_1, &asn_PER_type_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constr_1, ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/ReceiveStatusofULPDCPSDUs.c b/e2ap/lib/ReceiveStatusofULPDCPSDUs.c
new file mode 100644 (file)
index 0000000..f8f1384
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ReceiveStatusofULPDCPSDUs.h"
+
+int
+ReceiveStatusofULPDCPSDUs_constraint(const 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 == 4096)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_ReceiveStatusofULPDCPSDUs_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       4096    /* (SIZE(4096..4096)) */};
+asn_per_constraints_t asn_PER_type_ReceiveStatusofULPDCPSDUs_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  4096,  4096 }  /* (SIZE(4096..4096)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_ReceiveStatusofULPDCPSDUs_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ReceiveStatusofULPDCPSDUs = {
+       "ReceiveStatusofULPDCPSDUs",
+       "ReceiveStatusofULPDCPSDUs",
+       &asn_OP_BIT_STRING,
+       asn_DEF_ReceiveStatusofULPDCPSDUs_tags_1,
+       sizeof(asn_DEF_ReceiveStatusofULPDCPSDUs_tags_1)
+               /sizeof(asn_DEF_ReceiveStatusofULPDCPSDUs_tags_1[0]), /* 1 */
+       asn_DEF_ReceiveStatusofULPDCPSDUs_tags_1,       /* Same as above */
+       sizeof(asn_DEF_ReceiveStatusofULPDCPSDUs_tags_1)
+               /sizeof(asn_DEF_ReceiveStatusofULPDCPSDUs_tags_1[0]), /* 1 */
+       { &asn_OER_type_ReceiveStatusofULPDCPSDUs_constr_1, &asn_PER_type_ReceiveStatusofULPDCPSDUs_constr_1, ReceiveStatusofULPDCPSDUs_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/Reestablishment-Indication.c b/e2ap/lib/Reestablishment-Indication.c
new file mode 100644 (file)
index 0000000..e530826
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Reestablishment-Indication.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_Reestablishment_Indication_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_Reestablishment_Indication_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_Reestablishment_Indication_value2enum_1[] = {
+       { 0,    13,     "reestablished" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_Reestablishment_Indication_enum2value_1[] = {
+       0       /* reestablished(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_Reestablishment_Indication_specs_1 = {
+       asn_MAP_Reestablishment_Indication_value2enum_1,        /* "tag" => N; sorted by tag */
+       asn_MAP_Reestablishment_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_Reestablishment_Indication_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Reestablishment_Indication = {
+       "Reestablishment-Indication",
+       "Reestablishment-Indication",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_Reestablishment_Indication_tags_1,
+       sizeof(asn_DEF_Reestablishment_Indication_tags_1)
+               /sizeof(asn_DEF_Reestablishment_Indication_tags_1[0]), /* 1 */
+       asn_DEF_Reestablishment_Indication_tags_1,      /* Same as above */
+       sizeof(asn_DEF_Reestablishment_Indication_tags_1)
+               /sizeof(asn_DEF_Reestablishment_Indication_tags_1[0]), /* 1 */
+       { &asn_OER_type_Reestablishment_Indication_constr_1, &asn_PER_type_Reestablishment_Indication_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_Reestablishment_Indication_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/Registration-Request.c b/e2ap/lib/Registration-Request.c
new file mode 100644 (file)
index 0000000..010762a
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Registration-Request.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_Registration_Request_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_Registration_Request_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_Registration_Request_value2enum_1[] = {
+       { 0,    5,      "start" },
+       { 1,    4,      "stop" },
+       { 2,    12,     "partial-stop" },
+       { 3,    3,      "add" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_Registration_Request_enum2value_1[] = {
+       3,      /* add(3) */
+       2,      /* partial-stop(2) */
+       0,      /* start(0) */
+       1       /* stop(1) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_Registration_Request_specs_1 = {
+       asn_MAP_Registration_Request_value2enum_1,      /* "tag" => N; sorted by tag */
+       asn_MAP_Registration_Request_enum2value_1,      /* N => "tag"; sorted by N */
+       4,      /* 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_Registration_Request_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Registration_Request = {
+       "Registration-Request",
+       "Registration-Request",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_Registration_Request_tags_1,
+       sizeof(asn_DEF_Registration_Request_tags_1)
+               /sizeof(asn_DEF_Registration_Request_tags_1[0]), /* 1 */
+       asn_DEF_Registration_Request_tags_1,    /* Same as above */
+       sizeof(asn_DEF_Registration_Request_tags_1)
+               /sizeof(asn_DEF_Registration_Request_tags_1[0]), /* 1 */
+       { &asn_OER_type_Registration_Request_constr_1, &asn_PER_type_Registration_Request_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_Registration_Request_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/RelativeNarrowbandTxPower.c b/e2ap/lib/RelativeNarrowbandTxPower.c
new file mode 100644 (file)
index 0000000..a4f0f65
--- /dev/null
@@ -0,0 +1,261 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RelativeNarrowbandTxPower.h"
+
+#include "ProtocolExtensionContainer.h"
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static int
+memb_rNTP_PerPRB_constraint_1(const 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 >= 6 && size <= 110)) {
+               /* 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_p_B_constraint_1(const 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 >= 0 && value <= 3)) {
+               /* 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_pDCCH_InterferenceImpact_constraint_1(const 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 >= 0 && value <= 4)) {
+               /* 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_oer_constraints_t asn_OER_type_numberOfCellSpecificAntennaPorts_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_numberOfCellSpecificAntennaPorts_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_rNTP_PerPRB_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+static asn_per_constraints_t asn_PER_memb_rNTP_PerPRB_constr_2 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  7,  7,  6,  110 }  /* (SIZE(6..110,...)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_p_B_constr_9 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_p_B_constr_9 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_pDCCH_InterferenceImpact_constr_10 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_pDCCH_InterferenceImpact_constr_10 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  4 }    /* (0..4,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_numberOfCellSpecificAntennaPorts_value2enum_4[] = {
+       { 0,    3,      "one" },
+       { 1,    3,      "two" },
+       { 2,    4,      "four" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_numberOfCellSpecificAntennaPorts_enum2value_4[] = {
+       2,      /* four(2) */
+       0,      /* one(0) */
+       1       /* two(1) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_numberOfCellSpecificAntennaPorts_specs_4 = {
+       asn_MAP_numberOfCellSpecificAntennaPorts_value2enum_4,  /* "tag" => N; sorted by tag */
+       asn_MAP_numberOfCellSpecificAntennaPorts_enum2value_4,  /* 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_numberOfCellSpecificAntennaPorts_tags_4[] = {
+       (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_numberOfCellSpecificAntennaPorts_4 = {
+       "numberOfCellSpecificAntennaPorts",
+       "numberOfCellSpecificAntennaPorts",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_numberOfCellSpecificAntennaPorts_tags_4,
+       sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_4)
+               /sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_4[0]) - 1, /* 1 */
+       asn_DEF_numberOfCellSpecificAntennaPorts_tags_4,        /* Same as above */
+       sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_4)
+               /sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_4[0]), /* 2 */
+       { &asn_OER_type_numberOfCellSpecificAntennaPorts_constr_4, &asn_PER_type_numberOfCellSpecificAntennaPorts_constr_4, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_numberOfCellSpecificAntennaPorts_specs_4       /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RelativeNarrowbandTxPower_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower, rNTP_PerPRB),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_rNTP_PerPRB_constr_2, &asn_PER_memb_rNTP_PerPRB_constr_2,  memb_rNTP_PerPRB_constraint_1 },
+               0, 0, /* No default value */
+               "rNTP-PerPRB"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower, rNTP_Threshold),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RNTP_Threshold,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "rNTP-Threshold"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower, numberOfCellSpecificAntennaPorts),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_numberOfCellSpecificAntennaPorts_4,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "numberOfCellSpecificAntennaPorts"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower, p_B),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_p_B_constr_9, &asn_PER_memb_p_B_constr_9,  memb_p_B_constraint_1 },
+               0, 0, /* No default value */
+               "p-B"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower, pDCCH_InterferenceImpact),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_pDCCH_InterferenceImpact_constr_10, &asn_PER_memb_pDCCH_InterferenceImpact_constr_10,  memb_pDCCH_InterferenceImpact_constraint_1 },
+               0, 0, /* No default value */
+               "pDCCH-InterferenceImpact"
+               },
+       { ATF_POINTER, 1, offsetof(struct RelativeNarrowbandTxPower, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P184,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_RelativeNarrowbandTxPower_oms_1[] = { 5 };
+static const ber_tlv_tag_t asn_DEF_RelativeNarrowbandTxPower_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RelativeNarrowbandTxPower_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rNTP-PerPRB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rNTP-Threshold */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* numberOfCellSpecificAntennaPorts */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* p-B */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pDCCH-InterferenceImpact */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RelativeNarrowbandTxPower_specs_1 = {
+       sizeof(struct RelativeNarrowbandTxPower),
+       offsetof(struct RelativeNarrowbandTxPower, _asn_ctx),
+       asn_MAP_RelativeNarrowbandTxPower_tag2el_1,
+       6,      /* Count of tags in the map */
+       asn_MAP_RelativeNarrowbandTxPower_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       6,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RelativeNarrowbandTxPower = {
+       "RelativeNarrowbandTxPower",
+       "RelativeNarrowbandTxPower",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RelativeNarrowbandTxPower_tags_1,
+       sizeof(asn_DEF_RelativeNarrowbandTxPower_tags_1)
+               /sizeof(asn_DEF_RelativeNarrowbandTxPower_tags_1[0]), /* 1 */
+       asn_DEF_RelativeNarrowbandTxPower_tags_1,       /* Same as above */
+       sizeof(asn_DEF_RelativeNarrowbandTxPower_tags_1)
+               /sizeof(asn_DEF_RelativeNarrowbandTxPower_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RelativeNarrowbandTxPower_1,
+       6,      /* Elements count */
+       &asn_SPC_RelativeNarrowbandTxPower_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/ReplacingCellsList-Item.c b/e2ap/lib/ReplacingCellsList-Item.c
new file mode 100644 (file)
index 0000000..2c137c0
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ReplacingCellsList-Item.h"
+
+asn_TYPE_member_t asn_MBR_ReplacingCellsList_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ReplacingCellsList_Item, eCGI),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "eCGI"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ReplacingCellsList_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ReplacingCellsList_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* eCGI */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ReplacingCellsList_Item_specs_1 = {
+       sizeof(struct ReplacingCellsList_Item),
+       offsetof(struct ReplacingCellsList_Item, _asn_ctx),
+       asn_MAP_ReplacingCellsList_Item_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ReplacingCellsList_Item = {
+       "ReplacingCellsList-Item",
+       "ReplacingCellsList-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ReplacingCellsList_Item_tags_1,
+       sizeof(asn_DEF_ReplacingCellsList_Item_tags_1)
+               /sizeof(asn_DEF_ReplacingCellsList_Item_tags_1[0]), /* 1 */
+       asn_DEF_ReplacingCellsList_Item_tags_1, /* Same as above */
+       sizeof(asn_DEF_ReplacingCellsList_Item_tags_1)
+               /sizeof(asn_DEF_ReplacingCellsList_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ReplacingCellsList_Item_1,
+       1,      /* Elements count */
+       &asn_SPC_ReplacingCellsList_Item_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/ReplacingCellsList.c b/e2ap/lib/ReplacingCellsList.c
new file mode 100644 (file)
index 0000000..3f0606b
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ReplacingCellsList.h"
+
+#include "ReplacingCellsList-Item.h"
+static asn_oer_constraints_t asn_OER_type_ReplacingCellsList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..256)) */};
+asn_per_constraints_t asn_PER_type_ReplacingCellsList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       9,  9,  0,  256 }      /* (SIZE(0..256)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ReplacingCellsList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ReplacingCellsList_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ReplacingCellsList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ReplacingCellsList_specs_1 = {
+       sizeof(struct ReplacingCellsList),
+       offsetof(struct ReplacingCellsList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ReplacingCellsList = {
+       "ReplacingCellsList",
+       "ReplacingCellsList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ReplacingCellsList_tags_1,
+       sizeof(asn_DEF_ReplacingCellsList_tags_1)
+               /sizeof(asn_DEF_ReplacingCellsList_tags_1[0]), /* 1 */
+       asn_DEF_ReplacingCellsList_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ReplacingCellsList_tags_1)
+               /sizeof(asn_DEF_ReplacingCellsList_tags_1[0]), /* 1 */
+       { &asn_OER_type_ReplacingCellsList_constr_1, &asn_PER_type_ReplacingCellsList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ReplacingCellsList_1,
+       1,      /* Single element */
+       &asn_SPC_ReplacingCellsList_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ReportAmountMDT.c b/e2ap/lib/ReportAmountMDT.c
new file mode 100644 (file)
index 0000000..0328125
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ReportAmountMDT.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ReportAmountMDT_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_ReportAmountMDT_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       3,  3,  0,  7 }        /* (0..7) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_ReportAmountMDT_value2enum_1[] = {
+       { 0,    2,      "r1" },
+       { 1,    2,      "r2" },
+       { 2,    2,      "r4" },
+       { 3,    2,      "r8" },
+       { 4,    3,      "r16" },
+       { 5,    3,      "r32" },
+       { 6,    3,      "r64" },
+       { 7,    9,      "rinfinity" }
+};
+static const unsigned int asn_MAP_ReportAmountMDT_enum2value_1[] = {
+       0,      /* r1(0) */
+       4,      /* r16(4) */
+       1,      /* r2(1) */
+       5,      /* r32(5) */
+       2,      /* r4(2) */
+       6,      /* r64(6) */
+       3,      /* r8(3) */
+       7       /* rinfinity(7) */
+};
+const asn_INTEGER_specifics_t asn_SPC_ReportAmountMDT_specs_1 = {
+       asn_MAP_ReportAmountMDT_value2enum_1,   /* "tag" => N; sorted by tag */
+       asn_MAP_ReportAmountMDT_enum2value_1,   /* N => "tag"; sorted by N */
+       8,      /* 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_ReportAmountMDT_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ReportAmountMDT = {
+       "ReportAmountMDT",
+       "ReportAmountMDT",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_ReportAmountMDT_tags_1,
+       sizeof(asn_DEF_ReportAmountMDT_tags_1)
+               /sizeof(asn_DEF_ReportAmountMDT_tags_1[0]), /* 1 */
+       asn_DEF_ReportAmountMDT_tags_1, /* Same as above */
+       sizeof(asn_DEF_ReportAmountMDT_tags_1)
+               /sizeof(asn_DEF_ReportAmountMDT_tags_1[0]), /* 1 */
+       { &asn_OER_type_ReportAmountMDT_constr_1, &asn_PER_type_ReportAmountMDT_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_ReportAmountMDT_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/ReportArea.c b/e2ap/lib/ReportArea.c
new file mode 100644 (file)
index 0000000..c15a38c
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ReportArea.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ReportArea_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_ReportArea_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_ReportArea_value2enum_1[] = {
+       { 0,    4,      "ecgi" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_ReportArea_enum2value_1[] = {
+       0       /* ecgi(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_ReportArea_specs_1 = {
+       asn_MAP_ReportArea_value2enum_1,        /* "tag" => N; sorted by tag */
+       asn_MAP_ReportArea_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_ReportArea_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ReportArea = {
+       "ReportArea",
+       "ReportArea",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_ReportArea_tags_1,
+       sizeof(asn_DEF_ReportArea_tags_1)
+               /sizeof(asn_DEF_ReportArea_tags_1[0]), /* 1 */
+       asn_DEF_ReportArea_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ReportArea_tags_1)
+               /sizeof(asn_DEF_ReportArea_tags_1[0]), /* 1 */
+       { &asn_OER_type_ReportArea_constr_1, &asn_PER_type_ReportArea_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_ReportArea_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ReportCharacteristics.c b/e2ap/lib/ReportCharacteristics.c
new file mode 100644 (file)
index 0000000..ee3811e
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ReportCharacteristics.h"
+
+int
+ReportCharacteristics_constraint(const 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 == 32)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_ReportCharacteristics_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       32      /* (SIZE(32..32)) */};
+asn_per_constraints_t asn_PER_type_ReportCharacteristics_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  32,  32 }      /* (SIZE(32..32)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_ReportCharacteristics_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ReportCharacteristics = {
+       "ReportCharacteristics",
+       "ReportCharacteristics",
+       &asn_OP_BIT_STRING,
+       asn_DEF_ReportCharacteristics_tags_1,
+       sizeof(asn_DEF_ReportCharacteristics_tags_1)
+               /sizeof(asn_DEF_ReportCharacteristics_tags_1[0]), /* 1 */
+       asn_DEF_ReportCharacteristics_tags_1,   /* Same as above */
+       sizeof(asn_DEF_ReportCharacteristics_tags_1)
+               /sizeof(asn_DEF_ReportCharacteristics_tags_1[0]), /* 1 */
+       { &asn_OER_type_ReportCharacteristics_constr_1, &asn_PER_type_ReportCharacteristics_constr_1, ReportCharacteristics_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/ReportIntervalMDT.c b/e2ap/lib/ReportIntervalMDT.c
new file mode 100644 (file)
index 0000000..7e915fd
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ReportIntervalMDT.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ReportIntervalMDT_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_ReportIntervalMDT_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       4,  4,  0,  12 }       /* (0..12) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_ReportIntervalMDT_value2enum_1[] = {
+       { 0,    5,      "ms120" },
+       { 1,    5,      "ms240" },
+       { 2,    5,      "ms480" },
+       { 3,    5,      "ms640" },
+       { 4,    6,      "ms1024" },
+       { 5,    6,      "ms2048" },
+       { 6,    6,      "ms5120" },
+       { 7,    7,      "ms10240" },
+       { 8,    4,      "min1" },
+       { 9,    4,      "min6" },
+       { 10,   5,      "min12" },
+       { 11,   5,      "min30" },
+       { 12,   5,      "min60" }
+};
+static const unsigned int asn_MAP_ReportIntervalMDT_enum2value_1[] = {
+       8,      /* min1(8) */
+       10,     /* min12(10) */
+       11,     /* min30(11) */
+       9,      /* min6(9) */
+       12,     /* min60(12) */
+       4,      /* ms1024(4) */
+       7,      /* ms10240(7) */
+       0,      /* ms120(0) */
+       5,      /* ms2048(5) */
+       1,      /* ms240(1) */
+       2,      /* ms480(2) */
+       6,      /* ms5120(6) */
+       3       /* ms640(3) */
+};
+const asn_INTEGER_specifics_t asn_SPC_ReportIntervalMDT_specs_1 = {
+       asn_MAP_ReportIntervalMDT_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_ReportIntervalMDT_enum2value_1, /* N => "tag"; sorted by N */
+       13,     /* 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_ReportIntervalMDT_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ReportIntervalMDT = {
+       "ReportIntervalMDT",
+       "ReportIntervalMDT",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_ReportIntervalMDT_tags_1,
+       sizeof(asn_DEF_ReportIntervalMDT_tags_1)
+               /sizeof(asn_DEF_ReportIntervalMDT_tags_1[0]), /* 1 */
+       asn_DEF_ReportIntervalMDT_tags_1,       /* Same as above */
+       sizeof(asn_DEF_ReportIntervalMDT_tags_1)
+               /sizeof(asn_DEF_ReportIntervalMDT_tags_1[0]), /* 1 */
+       { &asn_OER_type_ReportIntervalMDT_constr_1, &asn_PER_type_ReportIntervalMDT_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_ReportIntervalMDT_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/ReportingPeriodicity.c b/e2ap/lib/ReportingPeriodicity.c
new file mode 100644 (file)
index 0000000..480ffa3
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ReportingPeriodicity.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ReportingPeriodicity_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_ReportingPeriodicity_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_ReportingPeriodicity_value2enum_1[] = {
+       { 0,    15,     "one-thousand-ms" },
+       { 1,    15,     "two-thousand-ms" },
+       { 2,    16,     "five-thousand-ms" },
+       { 3,    15,     "ten-thousand-ms" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_ReportingPeriodicity_enum2value_1[] = {
+       2,      /* five-thousand-ms(2) */
+       0,      /* one-thousand-ms(0) */
+       3,      /* ten-thousand-ms(3) */
+       1       /* two-thousand-ms(1) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_ReportingPeriodicity_specs_1 = {
+       asn_MAP_ReportingPeriodicity_value2enum_1,      /* "tag" => N; sorted by tag */
+       asn_MAP_ReportingPeriodicity_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_ReportingPeriodicity_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ReportingPeriodicity = {
+       "ReportingPeriodicity",
+       "ReportingPeriodicity",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_ReportingPeriodicity_tags_1,
+       sizeof(asn_DEF_ReportingPeriodicity_tags_1)
+               /sizeof(asn_DEF_ReportingPeriodicity_tags_1[0]), /* 1 */
+       asn_DEF_ReportingPeriodicity_tags_1,    /* Same as above */
+       sizeof(asn_DEF_ReportingPeriodicity_tags_1)
+               /sizeof(asn_DEF_ReportingPeriodicity_tags_1[0]), /* 1 */
+       { &asn_OER_type_ReportingPeriodicity_constr_1, &asn_PER_type_ReportingPeriodicity_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_ReportingPeriodicity_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/ReportingPeriodicityCSIR.c b/e2ap/lib/ReportingPeriodicityCSIR.c
new file mode 100644 (file)
index 0000000..e01a86c
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ReportingPeriodicityCSIR.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ReportingPeriodicityCSIR_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_ReportingPeriodicityCSIR_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  4 }    /* (0..4,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_ReportingPeriodicityCSIR_value2enum_1[] = {
+       { 0,    3,      "ms5" },
+       { 1,    4,      "ms10" },
+       { 2,    4,      "ms20" },
+       { 3,    4,      "ms40" },
+       { 4,    4,      "ms80" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_ReportingPeriodicityCSIR_enum2value_1[] = {
+       1,      /* ms10(1) */
+       2,      /* ms20(2) */
+       3,      /* ms40(3) */
+       0,      /* ms5(0) */
+       4       /* ms80(4) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_ReportingPeriodicityCSIR_specs_1 = {
+       asn_MAP_ReportingPeriodicityCSIR_value2enum_1,  /* "tag" => N; sorted by tag */
+       asn_MAP_ReportingPeriodicityCSIR_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_ReportingPeriodicityCSIR_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ReportingPeriodicityCSIR = {
+       "ReportingPeriodicityCSIR",
+       "ReportingPeriodicityCSIR",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_ReportingPeriodicityCSIR_tags_1,
+       sizeof(asn_DEF_ReportingPeriodicityCSIR_tags_1)
+               /sizeof(asn_DEF_ReportingPeriodicityCSIR_tags_1[0]), /* 1 */
+       asn_DEF_ReportingPeriodicityCSIR_tags_1,        /* Same as above */
+       sizeof(asn_DEF_ReportingPeriodicityCSIR_tags_1)
+               /sizeof(asn_DEF_ReportingPeriodicityCSIR_tags_1[0]), /* 1 */
+       { &asn_OER_type_ReportingPeriodicityCSIR_constr_1, &asn_PER_type_ReportingPeriodicityCSIR_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_ReportingPeriodicityCSIR_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/ReportingPeriodicityRSRPMR.c b/e2ap/lib/ReportingPeriodicityRSRPMR.c
new file mode 100644 (file)
index 0000000..fe27824
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ReportingPeriodicityRSRPMR.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ReportingPeriodicityRSRPMR_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_ReportingPeriodicityRSRPMR_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_ReportingPeriodicityRSRPMR_value2enum_1[] = {
+       { 0,    17,     "one-hundred-20-ms" },
+       { 1,    17,     "two-hundred-40-ms" },
+       { 2,    18,     "four-hundred-80-ms" },
+       { 3,    17,     "six-hundred-40-ms" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_ReportingPeriodicityRSRPMR_enum2value_1[] = {
+       2,      /* four-hundred-80-ms(2) */
+       0,      /* one-hundred-20-ms(0) */
+       3,      /* six-hundred-40-ms(3) */
+       1       /* two-hundred-40-ms(1) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_ReportingPeriodicityRSRPMR_specs_1 = {
+       asn_MAP_ReportingPeriodicityRSRPMR_value2enum_1,        /* "tag" => N; sorted by tag */
+       asn_MAP_ReportingPeriodicityRSRPMR_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_ReportingPeriodicityRSRPMR_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ReportingPeriodicityRSRPMR = {
+       "ReportingPeriodicityRSRPMR",
+       "ReportingPeriodicityRSRPMR",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_ReportingPeriodicityRSRPMR_tags_1,
+       sizeof(asn_DEF_ReportingPeriodicityRSRPMR_tags_1)
+               /sizeof(asn_DEF_ReportingPeriodicityRSRPMR_tags_1[0]), /* 1 */
+       asn_DEF_ReportingPeriodicityRSRPMR_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ReportingPeriodicityRSRPMR_tags_1)
+               /sizeof(asn_DEF_ReportingPeriodicityRSRPMR_tags_1[0]), /* 1 */
+       { &asn_OER_type_ReportingPeriodicityRSRPMR_constr_1, &asn_PER_type_ReportingPeriodicityRSRPMR_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_ReportingPeriodicityRSRPMR_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ReservedSubframePattern.c b/e2ap/lib/ReservedSubframePattern.c
new file mode 100644 (file)
index 0000000..5a1f328
--- /dev/null
@@ -0,0 +1,155 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ReservedSubframePattern.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_reservedSubframePattern_constraint_1(const 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 >= 10 && size <= 160)) {
+               /* 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_mBSFNControlRegionLength_constraint_1(const 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 >= 0 && value <= 3)) {
+               /* 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_oer_constraints_t asn_OER_memb_reservedSubframePattern_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(10..160)) */};
+static asn_per_constraints_t asn_PER_memb_reservedSubframePattern_constr_3 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  10,  160 }     /* (SIZE(10..160)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_mBSFNControlRegionLength_constr_4 CC_NOTUSED = {
+       { 1, 1 }        /* (0..3) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_mBSFNControlRegionLength_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (0..3) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ReservedSubframePattern_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ReservedSubframePattern, subframeType),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SubframeType,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "subframeType"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ReservedSubframePattern, reservedSubframePattern),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_reservedSubframePattern_constr_3, &asn_PER_memb_reservedSubframePattern_constr_3,  memb_reservedSubframePattern_constraint_1 },
+               0, 0, /* No default value */
+               "reservedSubframePattern"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ReservedSubframePattern, mBSFNControlRegionLength),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_mBSFNControlRegionLength_constr_4, &asn_PER_memb_mBSFNControlRegionLength_constr_4,  memb_mBSFNControlRegionLength_constraint_1 },
+               0, 0, /* No default value */
+               "mBSFNControlRegionLength"
+               },
+       { ATF_POINTER, 1, offsetof(struct ReservedSubframePattern, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P185,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ReservedSubframePattern_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_ReservedSubframePattern_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ReservedSubframePattern_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subframeType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reservedSubframePattern */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mBSFNControlRegionLength */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ReservedSubframePattern_specs_1 = {
+       sizeof(struct ReservedSubframePattern),
+       offsetof(struct ReservedSubframePattern, _asn_ctx),
+       asn_MAP_ReservedSubframePattern_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_ReservedSubframePattern_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ReservedSubframePattern = {
+       "ReservedSubframePattern",
+       "ReservedSubframePattern",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ReservedSubframePattern_tags_1,
+       sizeof(asn_DEF_ReservedSubframePattern_tags_1)
+               /sizeof(asn_DEF_ReservedSubframePattern_tags_1[0]), /* 1 */
+       asn_DEF_ReservedSubframePattern_tags_1, /* Same as above */
+       sizeof(asn_DEF_ReservedSubframePattern_tags_1)
+               /sizeof(asn_DEF_ReservedSubframePattern_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ReservedSubframePattern_1,
+       4,      /* Elements count */
+       &asn_SPC_ReservedSubframePattern_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/ResetRequest.c b/e2ap/lib/ResetRequest.c
new file mode 100644 (file)
index 0000000..7746828
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ResetRequest.h"
+
+asn_TYPE_member_t asn_MBR_ResetRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResetRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P22,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ResetRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResetRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1 = {
+       sizeof(struct ResetRequest),
+       offsetof(struct ResetRequest, _asn_ctx),
+       asn_MAP_ResetRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResetRequest = {
+       "ResetRequest",
+       "ResetRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResetRequest_tags_1,
+       sizeof(asn_DEF_ResetRequest_tags_1)
+               /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */
+       asn_DEF_ResetRequest_tags_1,    /* Same as above */
+       sizeof(asn_DEF_ResetRequest_tags_1)
+               /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResetRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_ResetRequest_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/ResetResponse.c b/e2ap/lib/ResetResponse.c
new file mode 100644 (file)
index 0000000..45f05d3
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ResetResponse.h"
+
+asn_TYPE_member_t asn_MBR_ResetResponse_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResetResponse, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P23,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ResetResponse_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResetResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1 = {
+       sizeof(struct ResetResponse),
+       offsetof(struct ResetResponse, _asn_ctx),
+       asn_MAP_ResetResponse_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResetResponse = {
+       "ResetResponse",
+       "ResetResponse",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResetResponse_tags_1,
+       sizeof(asn_DEF_ResetResponse_tags_1)
+               /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */
+       asn_DEF_ResetResponse_tags_1,   /* Same as above */
+       sizeof(asn_DEF_ResetResponse_tags_1)
+               /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResetResponse_1,
+       1,      /* Elements count */
+       &asn_SPC_ResetResponse_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/ResourceStatusFailure.c b/e2ap/lib/ResourceStatusFailure.c
new file mode 100644 (file)
index 0000000..53547e7
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ResourceStatusFailure.h"
+
+asn_TYPE_member_t asn_MBR_ResourceStatusFailure_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusFailure, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P33,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ResourceStatusFailure_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResourceStatusFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusFailure_specs_1 = {
+       sizeof(struct ResourceStatusFailure),
+       offsetof(struct ResourceStatusFailure, _asn_ctx),
+       asn_MAP_ResourceStatusFailure_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResourceStatusFailure = {
+       "ResourceStatusFailure",
+       "ResourceStatusFailure",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResourceStatusFailure_tags_1,
+       sizeof(asn_DEF_ResourceStatusFailure_tags_1)
+               /sizeof(asn_DEF_ResourceStatusFailure_tags_1[0]), /* 1 */
+       asn_DEF_ResourceStatusFailure_tags_1,   /* Same as above */
+       sizeof(asn_DEF_ResourceStatusFailure_tags_1)
+               /sizeof(asn_DEF_ResourceStatusFailure_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResourceStatusFailure_1,
+       1,      /* Elements count */
+       &asn_SPC_ResourceStatusFailure_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/ResourceStatusRequest.c b/e2ap/lib/ResourceStatusRequest.c
new file mode 100644 (file)
index 0000000..02414f0
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ResourceStatusRequest.h"
+
+asn_TYPE_member_t asn_MBR_ResourceStatusRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P31,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ResourceStatusRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResourceStatusRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusRequest_specs_1 = {
+       sizeof(struct ResourceStatusRequest),
+       offsetof(struct ResourceStatusRequest, _asn_ctx),
+       asn_MAP_ResourceStatusRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResourceStatusRequest = {
+       "ResourceStatusRequest",
+       "ResourceStatusRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResourceStatusRequest_tags_1,
+       sizeof(asn_DEF_ResourceStatusRequest_tags_1)
+               /sizeof(asn_DEF_ResourceStatusRequest_tags_1[0]), /* 1 */
+       asn_DEF_ResourceStatusRequest_tags_1,   /* Same as above */
+       sizeof(asn_DEF_ResourceStatusRequest_tags_1)
+               /sizeof(asn_DEF_ResourceStatusRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResourceStatusRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_ResourceStatusRequest_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/ResourceStatusResponse.c b/e2ap/lib/ResourceStatusResponse.c
new file mode 100644 (file)
index 0000000..c34b844
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ResourceStatusResponse.h"
+
+asn_TYPE_member_t asn_MBR_ResourceStatusResponse_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusResponse, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P32,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ResourceStatusResponse_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResourceStatusResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusResponse_specs_1 = {
+       sizeof(struct ResourceStatusResponse),
+       offsetof(struct ResourceStatusResponse, _asn_ctx),
+       asn_MAP_ResourceStatusResponse_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResourceStatusResponse = {
+       "ResourceStatusResponse",
+       "ResourceStatusResponse",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResourceStatusResponse_tags_1,
+       sizeof(asn_DEF_ResourceStatusResponse_tags_1)
+               /sizeof(asn_DEF_ResourceStatusResponse_tags_1[0]), /* 1 */
+       asn_DEF_ResourceStatusResponse_tags_1,  /* Same as above */
+       sizeof(asn_DEF_ResourceStatusResponse_tags_1)
+               /sizeof(asn_DEF_ResourceStatusResponse_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResourceStatusResponse_1,
+       1,      /* Elements count */
+       &asn_SPC_ResourceStatusResponse_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/ResourceStatusUpdate.c b/e2ap/lib/ResourceStatusUpdate.c
new file mode 100644 (file)
index 0000000..050e76b
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ResourceStatusUpdate.h"
+
+asn_TYPE_member_t asn_MBR_ResourceStatusUpdate_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusUpdate, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P34,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ResourceStatusUpdate_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResourceStatusUpdate_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusUpdate_specs_1 = {
+       sizeof(struct ResourceStatusUpdate),
+       offsetof(struct ResourceStatusUpdate, _asn_ctx),
+       asn_MAP_ResourceStatusUpdate_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResourceStatusUpdate = {
+       "ResourceStatusUpdate",
+       "ResourceStatusUpdate",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResourceStatusUpdate_tags_1,
+       sizeof(asn_DEF_ResourceStatusUpdate_tags_1)
+               /sizeof(asn_DEF_ResourceStatusUpdate_tags_1[0]), /* 1 */
+       asn_DEF_ResourceStatusUpdate_tags_1,    /* Same as above */
+       sizeof(asn_DEF_ResourceStatusUpdate_tags_1)
+               /sizeof(asn_DEF_ResourceStatusUpdate_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResourceStatusUpdate_1,
+       1,      /* Elements count */
+       &asn_SPC_ResourceStatusUpdate_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/ResourceType.c b/e2ap/lib/ResourceType.c
new file mode 100644 (file)
index 0000000..348a09f
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ResourceType.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ResourceType_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_ResourceType_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_ResourceType_value2enum_1[] = {
+       { 0,    14,     "downlinknonCRS" },
+       { 1,    3,      "cRS" },
+       { 2,    6,      "uplink" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_ResourceType_enum2value_1[] = {
+       1,      /* cRS(1) */
+       0,      /* downlinknonCRS(0) */
+       2       /* uplink(2) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_ResourceType_specs_1 = {
+       asn_MAP_ResourceType_value2enum_1,      /* "tag" => N; sorted by tag */
+       asn_MAP_ResourceType_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_ResourceType_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ResourceType = {
+       "ResourceType",
+       "ResourceType",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_ResourceType_tags_1,
+       sizeof(asn_DEF_ResourceType_tags_1)
+               /sizeof(asn_DEF_ResourceType_tags_1[0]), /* 1 */
+       asn_DEF_ResourceType_tags_1,    /* Same as above */
+       sizeof(asn_DEF_ResourceType_tags_1)
+               /sizeof(asn_DEF_ResourceType_tags_1[0]), /* 1 */
+       { &asn_OER_type_ResourceType_constr_1, &asn_PER_type_ResourceType_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_ResourceType_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/RespondingNodeType-EndcConfigUpdate.c b/e2ap/lib/RespondingNodeType-EndcConfigUpdate.c
new file mode 100644 (file)
index 0000000..cda3f82
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RespondingNodeType-EndcConfigUpdate.h"
+
+#include "ProtocolIE-Container.h"
+static asn_oer_constraints_t asn_OER_type_RespondingNodeType_EndcConfigUpdate_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_RespondingNodeType_EndcConfigUpdate_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RespondingNodeType_EndcConfigUpdate_1[] = {
+       { ATF_POINTER, 0, offsetof(struct RespondingNodeType_EndcConfigUpdate, choice.respond_eNB),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P95,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "respond-eNB"
+               },
+       { ATF_POINTER, 0, offsetof(struct RespondingNodeType_EndcConfigUpdate, choice.respond_en_gNB),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P96,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "respond-en-gNB"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_RespondingNodeType_EndcConfigUpdate_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* respond-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* respond-en-gNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_RespondingNodeType_EndcConfigUpdate_specs_1 = {
+       sizeof(struct RespondingNodeType_EndcConfigUpdate),
+       offsetof(struct RespondingNodeType_EndcConfigUpdate, _asn_ctx),
+       offsetof(struct RespondingNodeType_EndcConfigUpdate, present),
+       sizeof(((struct RespondingNodeType_EndcConfigUpdate *)0)->present),
+       asn_MAP_RespondingNodeType_EndcConfigUpdate_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RespondingNodeType_EndcConfigUpdate = {
+       "RespondingNodeType-EndcConfigUpdate",
+       "RespondingNodeType-EndcConfigUpdate",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_RespondingNodeType_EndcConfigUpdate_constr_1, &asn_PER_type_RespondingNodeType_EndcConfigUpdate_constr_1, CHOICE_constraint },
+       asn_MBR_RespondingNodeType_EndcConfigUpdate_1,
+       2,      /* Elements count */
+       &asn_SPC_RespondingNodeType_EndcConfigUpdate_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/RespondingNodeType-EndcX2Removal.c b/e2ap/lib/RespondingNodeType-EndcX2Removal.c
new file mode 100644 (file)
index 0000000..613da57
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RespondingNodeType-EndcX2Removal.h"
+
+#include "ProtocolIE-Container.h"
+static asn_oer_constraints_t asn_OER_type_RespondingNodeType_EndcX2Removal_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_RespondingNodeType_EndcX2Removal_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RespondingNodeType_EndcX2Removal_1[] = {
+       { ATF_POINTER, 0, offsetof(struct RespondingNodeType_EndcX2Removal, choice.respond_eNB),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P115,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "respond-eNB"
+               },
+       { ATF_POINTER, 0, offsetof(struct RespondingNodeType_EndcX2Removal, choice.respond_en_gNB),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P116,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "respond-en-gNB"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_RespondingNodeType_EndcX2Removal_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* respond-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* respond-en-gNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_RespondingNodeType_EndcX2Removal_specs_1 = {
+       sizeof(struct RespondingNodeType_EndcX2Removal),
+       offsetof(struct RespondingNodeType_EndcX2Removal, _asn_ctx),
+       offsetof(struct RespondingNodeType_EndcX2Removal, present),
+       sizeof(((struct RespondingNodeType_EndcX2Removal *)0)->present),
+       asn_MAP_RespondingNodeType_EndcX2Removal_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RespondingNodeType_EndcX2Removal = {
+       "RespondingNodeType-EndcX2Removal",
+       "RespondingNodeType-EndcX2Removal",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_RespondingNodeType_EndcX2Removal_constr_1, &asn_PER_type_RespondingNodeType_EndcX2Removal_constr_1, CHOICE_constraint },
+       asn_MBR_RespondingNodeType_EndcX2Removal_1,
+       2,      /* Elements count */
+       &asn_SPC_RespondingNodeType_EndcX2Removal_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/RespondingNodeType-EndcX2Setup.c b/e2ap/lib/RespondingNodeType-EndcX2Setup.c
new file mode 100644 (file)
index 0000000..b4d952e
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RespondingNodeType-EndcX2Setup.h"
+
+#include "ProtocolIE-Container.h"
+static asn_oer_constraints_t asn_OER_type_RespondingNodeType_EndcX2Setup_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_RespondingNodeType_EndcX2Setup_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RespondingNodeType_EndcX2Setup_1[] = {
+       { ATF_POINTER, 0, offsetof(struct RespondingNodeType_EndcX2Setup, choice.respond_eNB),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P88,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "respond-eNB"
+               },
+       { ATF_POINTER, 0, offsetof(struct RespondingNodeType_EndcX2Setup, choice.respond_en_gNB),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P89,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "respond-en-gNB"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_RespondingNodeType_EndcX2Setup_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* respond-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* respond-en-gNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_RespondingNodeType_EndcX2Setup_specs_1 = {
+       sizeof(struct RespondingNodeType_EndcX2Setup),
+       offsetof(struct RespondingNodeType_EndcX2Setup, _asn_ctx),
+       offsetof(struct RespondingNodeType_EndcX2Setup, present),
+       sizeof(((struct RespondingNodeType_EndcX2Setup *)0)->present),
+       asn_MAP_RespondingNodeType_EndcX2Setup_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RespondingNodeType_EndcX2Setup = {
+       "RespondingNodeType-EndcX2Setup",
+       "RespondingNodeType-EndcX2Setup",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_RespondingNodeType_EndcX2Setup_constr_1, &asn_PER_type_RespondingNodeType_EndcX2Setup_constr_1, CHOICE_constraint },
+       asn_MBR_RespondingNodeType_EndcX2Setup_1,
+       2,      /* Elements count */
+       &asn_SPC_RespondingNodeType_EndcX2Setup_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/RespondingNodeType-EutranrCellResourceCoordination.c b/e2ap/lib/RespondingNodeType-EutranrCellResourceCoordination.c
new file mode 100644 (file)
index 0000000..12ed633
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RespondingNodeType-EutranrCellResourceCoordination.h"
+
+#include "ProtocolIE-Container.h"
+static asn_oer_constraints_t asn_OER_type_RespondingNodeType_EutranrCellResourceCoordination_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_RespondingNodeType_EutranrCellResourceCoordination_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RespondingNodeType_EutranrCellResourceCoordination_1[] = {
+       { ATF_POINTER, 0, offsetof(struct RespondingNodeType_EutranrCellResourceCoordination, choice.respond_eNB),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P109,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "respond-eNB"
+               },
+       { ATF_POINTER, 0, offsetof(struct RespondingNodeType_EutranrCellResourceCoordination, choice.respond_en_gNB),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P110,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "respond-en-gNB"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_RespondingNodeType_EutranrCellResourceCoordination_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* respond-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* respond-en-gNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_RespondingNodeType_EutranrCellResourceCoordination_specs_1 = {
+       sizeof(struct RespondingNodeType_EutranrCellResourceCoordination),
+       offsetof(struct RespondingNodeType_EutranrCellResourceCoordination, _asn_ctx),
+       offsetof(struct RespondingNodeType_EutranrCellResourceCoordination, present),
+       sizeof(((struct RespondingNodeType_EutranrCellResourceCoordination *)0)->present),
+       asn_MAP_RespondingNodeType_EutranrCellResourceCoordination_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RespondingNodeType_EutranrCellResourceCoordination = {
+       "RespondingNodeType-EutranrCellResourceCoordination",
+       "RespondingNodeType-EutranrCellResourceCoordination",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_RespondingNodeType_EutranrCellResourceCoordination_constr_1, &asn_PER_type_RespondingNodeType_EutranrCellResourceCoordination_constr_1, CHOICE_constraint },
+       asn_MBR_RespondingNodeType_EutranrCellResourceCoordination_1,
+       2,      /* Elements count */
+       &asn_SPC_RespondingNodeType_EutranrCellResourceCoordination_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ResponseInformationSeNBReconfComp-RejectByMeNBItem.c b/e2ap/lib/ResponseInformationSeNBReconfComp-RejectByMeNBItem.c
new file mode 100644 (file)
index 0000000..33314ce
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ResponseInformationSeNBReconfComp-RejectByMeNBItem.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_RejectByMeNBItem_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItem, cause),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cause"
+               },
+       { ATF_POINTER, 2, offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItem, meNBtoSeNBContainer),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_MeNBtoSeNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "meNBtoSeNBContainer"
+               },
+       { ATF_POINTER, 1, offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItem, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P22,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ResponseInformationSeNBReconfComp_RejectByMeNBItem_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cause */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* meNBtoSeNBContainer */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_RejectByMeNBItem_specs_1 = {
+       sizeof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItem),
+       offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItem, _asn_ctx),
+       asn_MAP_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_ResponseInformationSeNBReconfComp_RejectByMeNBItem_oms_1,       /* Optional members */
+       2, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem = {
+       "ResponseInformationSeNBReconfComp-RejectByMeNBItem",
+       "ResponseInformationSeNBReconfComp-RejectByMeNBItem",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tags_1,
+       sizeof(asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tags_1)
+               /sizeof(asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tags_1[0]), /* 1 */
+       asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tags_1)
+               /sizeof(asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResponseInformationSeNBReconfComp_RejectByMeNBItem_1,
+       3,      /* Elements count */
+       &asn_SPC_ResponseInformationSeNBReconfComp_RejectByMeNBItem_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ResponseInformationSeNBReconfComp-SuccessItem.c b/e2ap/lib/ResponseInformationSeNBReconfComp-SuccessItem.c
new file mode 100644 (file)
index 0000000..65a5787
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ResponseInformationSeNBReconfComp-SuccessItem.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_SuccessItem_1[] = {
+       { ATF_POINTER, 2, offsetof(struct ResponseInformationSeNBReconfComp_SuccessItem, meNBtoSeNBContainer),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_MeNBtoSeNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "meNBtoSeNBContainer"
+               },
+       { ATF_POINTER, 1, offsetof(struct ResponseInformationSeNBReconfComp_SuccessItem, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P21,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ResponseInformationSeNBReconfComp_SuccessItem_oms_1[] = { 0, 1 };
+static const ber_tlv_tag_t asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSeNBReconfComp_SuccessItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* meNBtoSeNBContainer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_SuccessItem_specs_1 = {
+       sizeof(struct ResponseInformationSeNBReconfComp_SuccessItem),
+       offsetof(struct ResponseInformationSeNBReconfComp_SuccessItem, _asn_ctx),
+       asn_MAP_ResponseInformationSeNBReconfComp_SuccessItem_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_ResponseInformationSeNBReconfComp_SuccessItem_oms_1,    /* Optional members */
+       2, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem = {
+       "ResponseInformationSeNBReconfComp-SuccessItem",
+       "ResponseInformationSeNBReconfComp-SuccessItem",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem_tags_1,
+       sizeof(asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem_tags_1)
+               /sizeof(asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem_tags_1[0]), /* 1 */
+       asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem_tags_1,   /* Same as above */
+       sizeof(asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem_tags_1)
+               /sizeof(asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResponseInformationSeNBReconfComp_SuccessItem_1,
+       2,      /* Elements count */
+       &asn_SPC_ResponseInformationSeNBReconfComp_SuccessItem_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/ResponseInformationSeNBReconfComp.c b/e2ap/lib/ResponseInformationSeNBReconfComp.c
new file mode 100644 (file)
index 0000000..850293d
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ResponseInformationSeNBReconfComp.h"
+
+#include "ResponseInformationSeNBReconfComp-SuccessItem.h"
+#include "ResponseInformationSeNBReconfComp-RejectByMeNBItem.h"
+static asn_oer_constraints_t asn_OER_type_ResponseInformationSeNBReconfComp_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_ResponseInformationSeNBReconfComp_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_1[] = {
+       { ATF_POINTER, 0, offsetof(struct ResponseInformationSeNBReconfComp, choice.success),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "success"
+               },
+       { ATF_POINTER, 0, offsetof(struct ResponseInformationSeNBReconfComp, choice.reject_by_MeNB),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "reject-by-MeNB"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSeNBReconfComp_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* success */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reject-by-MeNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_specs_1 = {
+       sizeof(struct ResponseInformationSeNBReconfComp),
+       offsetof(struct ResponseInformationSeNBReconfComp, _asn_ctx),
+       offsetof(struct ResponseInformationSeNBReconfComp, present),
+       sizeof(((struct ResponseInformationSeNBReconfComp *)0)->present),
+       asn_MAP_ResponseInformationSeNBReconfComp_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp = {
+       "ResponseInformationSeNBReconfComp",
+       "ResponseInformationSeNBReconfComp",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_ResponseInformationSeNBReconfComp_constr_1, &asn_PER_type_ResponseInformationSeNBReconfComp_constr_1, CHOICE_constraint },
+       asn_MBR_ResponseInformationSeNBReconfComp_1,
+       2,      /* Elements count */
+       &asn_SPC_ResponseInformationSeNBReconfComp_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/ResponseInformationSgNBReconfComp-RejectByMeNBItem.c b/e2ap/lib/ResponseInformationSgNBReconfComp-RejectByMeNBItem.c
new file mode 100644 (file)
index 0000000..b0795b6
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ResponseInformationSgNBReconfComp-RejectByMeNBItem.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_RejectByMeNBItem_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItem, cause),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_Cause,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cause"
+               },
+       { ATF_POINTER, 1, offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItem, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P51,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ResponseInformationSgNBReconfComp_RejectByMeNBItem_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cause */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_RejectByMeNBItem_specs_1 = {
+       sizeof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItem),
+       offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItem, _asn_ctx),
+       asn_MAP_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_ResponseInformationSgNBReconfComp_RejectByMeNBItem_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem = {
+       "ResponseInformationSgNBReconfComp-RejectByMeNBItem",
+       "ResponseInformationSgNBReconfComp-RejectByMeNBItem",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tags_1,
+       sizeof(asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tags_1)
+               /sizeof(asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tags_1[0]), /* 1 */
+       asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tags_1)
+               /sizeof(asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResponseInformationSgNBReconfComp_RejectByMeNBItem_1,
+       2,      /* Elements count */
+       &asn_SPC_ResponseInformationSgNBReconfComp_RejectByMeNBItem_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ResponseInformationSgNBReconfComp-SuccessItem.c b/e2ap/lib/ResponseInformationSgNBReconfComp-SuccessItem.c
new file mode 100644 (file)
index 0000000..68cf788
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ResponseInformationSgNBReconfComp-SuccessItem.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_SuccessItem_1[] = {
+       { ATF_POINTER, 2, offsetof(struct ResponseInformationSgNBReconfComp_SuccessItem, meNBtoSgNBContainer),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_MeNBtoSgNBContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "meNBtoSgNBContainer"
+               },
+       { ATF_POINTER, 1, offsetof(struct ResponseInformationSgNBReconfComp_SuccessItem, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P50,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ResponseInformationSgNBReconfComp_SuccessItem_oms_1[] = { 0, 1 };
+static const ber_tlv_tag_t asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSgNBReconfComp_SuccessItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* meNBtoSgNBContainer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_SuccessItem_specs_1 = {
+       sizeof(struct ResponseInformationSgNBReconfComp_SuccessItem),
+       offsetof(struct ResponseInformationSgNBReconfComp_SuccessItem, _asn_ctx),
+       asn_MAP_ResponseInformationSgNBReconfComp_SuccessItem_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_ResponseInformationSgNBReconfComp_SuccessItem_oms_1,    /* Optional members */
+       2, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem = {
+       "ResponseInformationSgNBReconfComp-SuccessItem",
+       "ResponseInformationSgNBReconfComp-SuccessItem",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem_tags_1,
+       sizeof(asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem_tags_1)
+               /sizeof(asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem_tags_1[0]), /* 1 */
+       asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem_tags_1,   /* Same as above */
+       sizeof(asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem_tags_1)
+               /sizeof(asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ResponseInformationSgNBReconfComp_SuccessItem_1,
+       2,      /* Elements count */
+       &asn_SPC_ResponseInformationSgNBReconfComp_SuccessItem_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/ResponseInformationSgNBReconfComp.c b/e2ap/lib/ResponseInformationSgNBReconfComp.c
new file mode 100644 (file)
index 0000000..73d953b
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ResponseInformationSgNBReconfComp.h"
+
+#include "ResponseInformationSgNBReconfComp-SuccessItem.h"
+#include "ResponseInformationSgNBReconfComp-RejectByMeNBItem.h"
+static asn_oer_constraints_t asn_OER_type_ResponseInformationSgNBReconfComp_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_ResponseInformationSgNBReconfComp_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_1[] = {
+       { ATF_POINTER, 0, offsetof(struct ResponseInformationSgNBReconfComp, choice.success_SgNBReconfComp),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "success-SgNBReconfComp"
+               },
+       { ATF_POINTER, 0, offsetof(struct ResponseInformationSgNBReconfComp, choice.reject_by_MeNB_SgNBReconfComp),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "reject-by-MeNB-SgNBReconfComp"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSgNBReconfComp_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* success-SgNBReconfComp */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reject-by-MeNB-SgNBReconfComp */
+};
+static asn_CHOICE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_specs_1 = {
+       sizeof(struct ResponseInformationSgNBReconfComp),
+       offsetof(struct ResponseInformationSgNBReconfComp, _asn_ctx),
+       offsetof(struct ResponseInformationSgNBReconfComp, present),
+       sizeof(((struct ResponseInformationSgNBReconfComp *)0)->present),
+       asn_MAP_ResponseInformationSgNBReconfComp_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp = {
+       "ResponseInformationSgNBReconfComp",
+       "ResponseInformationSgNBReconfComp",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_ResponseInformationSgNBReconfComp_constr_1, &asn_PER_type_ResponseInformationSgNBReconfComp_constr_1, CHOICE_constraint },
+       asn_MBR_ResponseInformationSgNBReconfComp_1,
+       2,      /* Elements count */
+       &asn_SPC_ResponseInformationSgNBReconfComp_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/ResumeID.c b/e2ap/lib/ResumeID.c
new file mode 100644 (file)
index 0000000..e443541
--- /dev/null
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ResumeID.h"
+
+static int
+memb_non_truncated_constraint_1(const 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 == 40)) {
+               /* 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_truncated_constraint_1(const 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 == 24)) {
+               /* 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_oer_constraints_t asn_OER_memb_non_truncated_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       40      /* (SIZE(40..40)) */};
+static asn_per_constraints_t asn_PER_memb_non_truncated_constr_2 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  40,  40 }      /* (SIZE(40..40)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_truncated_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       24      /* (SIZE(24..24)) */};
+static asn_per_constraints_t asn_PER_memb_truncated_constr_3 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  24,  24 }      /* (SIZE(24..24)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ResumeID_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_ResumeID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ResumeID_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ResumeID, choice.non_truncated),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_non_truncated_constr_2, &asn_PER_memb_non_truncated_constr_2,  memb_non_truncated_constraint_1 },
+               0, 0, /* No default value */
+               "non-truncated"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ResumeID, choice.truncated),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_truncated_constr_3, &asn_PER_memb_truncated_constr_3,  memb_truncated_constraint_1 },
+               0, 0, /* No default value */
+               "truncated"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_ResumeID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* non-truncated */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* truncated */
+};
+static asn_CHOICE_specifics_t asn_SPC_ResumeID_specs_1 = {
+       sizeof(struct ResumeID),
+       offsetof(struct ResumeID, _asn_ctx),
+       offsetof(struct ResumeID, present),
+       sizeof(((struct ResumeID *)0)->present),
+       asn_MAP_ResumeID_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_ResumeID = {
+       "ResumeID",
+       "ResumeID",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_ResumeID_constr_1, &asn_PER_type_ResumeID_constr_1, CHOICE_constraint },
+       asn_MBR_ResumeID_1,
+       2,      /* Elements count */
+       &asn_SPC_ResumeID_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/RetrieveUEContextFailure.c b/e2ap/lib/RetrieveUEContextFailure.c
new file mode 100644 (file)
index 0000000..d6c1ef5
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RetrieveUEContextFailure.h"
+
+asn_TYPE_member_t asn_MBR_RetrieveUEContextFailure_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextFailure, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P63,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RetrieveUEContextFailure_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RetrieveUEContextFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextFailure_specs_1 = {
+       sizeof(struct RetrieveUEContextFailure),
+       offsetof(struct RetrieveUEContextFailure, _asn_ctx),
+       asn_MAP_RetrieveUEContextFailure_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextFailure = {
+       "RetrieveUEContextFailure",
+       "RetrieveUEContextFailure",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RetrieveUEContextFailure_tags_1,
+       sizeof(asn_DEF_RetrieveUEContextFailure_tags_1)
+               /sizeof(asn_DEF_RetrieveUEContextFailure_tags_1[0]), /* 1 */
+       asn_DEF_RetrieveUEContextFailure_tags_1,        /* Same as above */
+       sizeof(asn_DEF_RetrieveUEContextFailure_tags_1)
+               /sizeof(asn_DEF_RetrieveUEContextFailure_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RetrieveUEContextFailure_1,
+       1,      /* Elements count */
+       &asn_SPC_RetrieveUEContextFailure_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/RetrieveUEContextRequest.c b/e2ap/lib/RetrieveUEContextRequest.c
new file mode 100644 (file)
index 0000000..b4481a7
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RetrieveUEContextRequest.h"
+
+asn_TYPE_member_t asn_MBR_RetrieveUEContextRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P61,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RetrieveUEContextRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RetrieveUEContextRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextRequest_specs_1 = {
+       sizeof(struct RetrieveUEContextRequest),
+       offsetof(struct RetrieveUEContextRequest, _asn_ctx),
+       asn_MAP_RetrieveUEContextRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextRequest = {
+       "RetrieveUEContextRequest",
+       "RetrieveUEContextRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RetrieveUEContextRequest_tags_1,
+       sizeof(asn_DEF_RetrieveUEContextRequest_tags_1)
+               /sizeof(asn_DEF_RetrieveUEContextRequest_tags_1[0]), /* 1 */
+       asn_DEF_RetrieveUEContextRequest_tags_1,        /* Same as above */
+       sizeof(asn_DEF_RetrieveUEContextRequest_tags_1)
+               /sizeof(asn_DEF_RetrieveUEContextRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RetrieveUEContextRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_RetrieveUEContextRequest_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/RetrieveUEContextResponse.c b/e2ap/lib/RetrieveUEContextResponse.c
new file mode 100644 (file)
index 0000000..6c775cc
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "RetrieveUEContextResponse.h"
+
+asn_TYPE_member_t asn_MBR_RetrieveUEContextResponse_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P62,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_RetrieveUEContextResponse_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RetrieveUEContextResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextResponse_specs_1 = {
+       sizeof(struct RetrieveUEContextResponse),
+       offsetof(struct RetrieveUEContextResponse, _asn_ctx),
+       asn_MAP_RetrieveUEContextResponse_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextResponse = {
+       "RetrieveUEContextResponse",
+       "RetrieveUEContextResponse",
+       &asn_OP_SEQUENCE,
+       asn_DEF_RetrieveUEContextResponse_tags_1,
+       sizeof(asn_DEF_RetrieveUEContextResponse_tags_1)
+               /sizeof(asn_DEF_RetrieveUEContextResponse_tags_1[0]), /* 1 */
+       asn_DEF_RetrieveUEContextResponse_tags_1,       /* Same as above */
+       sizeof(asn_DEF_RetrieveUEContextResponse_tags_1)
+               /sizeof(asn_DEF_RetrieveUEContextResponse_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_RetrieveUEContextResponse_1,
+       1,      /* Elements count */
+       &asn_SPC_RetrieveUEContextResponse_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/S1TNLLoadIndicator.c b/e2ap/lib/S1TNLLoadIndicator.c
new file mode 100644 (file)
index 0000000..3f90803
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "S1TNLLoadIndicator.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_S1TNLLoadIndicator_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct S1TNLLoadIndicator, dLS1TNLLoadIndicator),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_LoadIndicator,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dLS1TNLLoadIndicator"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct S1TNLLoadIndicator, uLS1TNLLoadIndicator),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_LoadIndicator,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uLS1TNLLoadIndicator"
+               },
+       { ATF_POINTER, 1, offsetof(struct S1TNLLoadIndicator, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P189,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_S1TNLLoadIndicator_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_S1TNLLoadIndicator_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_S1TNLLoadIndicator_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dLS1TNLLoadIndicator */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uLS1TNLLoadIndicator */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_S1TNLLoadIndicator_specs_1 = {
+       sizeof(struct S1TNLLoadIndicator),
+       offsetof(struct S1TNLLoadIndicator, _asn_ctx),
+       asn_MAP_S1TNLLoadIndicator_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_S1TNLLoadIndicator_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_S1TNLLoadIndicator = {
+       "S1TNLLoadIndicator",
+       "S1TNLLoadIndicator",
+       &asn_OP_SEQUENCE,
+       asn_DEF_S1TNLLoadIndicator_tags_1,
+       sizeof(asn_DEF_S1TNLLoadIndicator_tags_1)
+               /sizeof(asn_DEF_S1TNLLoadIndicator_tags_1[0]), /* 1 */
+       asn_DEF_S1TNLLoadIndicator_tags_1,      /* Same as above */
+       sizeof(asn_DEF_S1TNLLoadIndicator_tags_1)
+               /sizeof(asn_DEF_S1TNLLoadIndicator_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_S1TNLLoadIndicator_1,
+       3,      /* Elements count */
+       &asn_SPC_S1TNLLoadIndicator_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/SCGChangeIndication.c b/e2ap/lib/SCGChangeIndication.c
new file mode 100644 (file)
index 0000000..97598f0
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SCGChangeIndication.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_SCGChangeIndication_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_SCGChangeIndication_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_SCGChangeIndication_value2enum_1[] = {
+       { 0,    19,     "pDCPCountWrapAround" },
+       { 1,    12,     "pSCellChange" },
+       { 2,    5,      "other" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_SCGChangeIndication_enum2value_1[] = {
+       2,      /* other(2) */
+       0,      /* pDCPCountWrapAround(0) */
+       1       /* pSCellChange(1) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_SCGChangeIndication_specs_1 = {
+       asn_MAP_SCGChangeIndication_value2enum_1,       /* "tag" => N; sorted by tag */
+       asn_MAP_SCGChangeIndication_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_SCGChangeIndication_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SCGChangeIndication = {
+       "SCGChangeIndication",
+       "SCGChangeIndication",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_SCGChangeIndication_tags_1,
+       sizeof(asn_DEF_SCGChangeIndication_tags_1)
+               /sizeof(asn_DEF_SCGChangeIndication_tags_1[0]), /* 1 */
+       asn_DEF_SCGChangeIndication_tags_1,     /* Same as above */
+       sizeof(asn_DEF_SCGChangeIndication_tags_1)
+               /sizeof(asn_DEF_SCGChangeIndication_tags_1[0]), /* 1 */
+       { &asn_OER_type_SCGChangeIndication_constr_1, &asn_PER_type_SCGChangeIndication_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_SCGChangeIndication_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/SCGConfigurationQuery.c b/e2ap/lib/SCGConfigurationQuery.c
new file mode 100644 (file)
index 0000000..ad0cac5
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SCGConfigurationQuery.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_SCGConfigurationQuery_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_SCGConfigurationQuery_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_SCGConfigurationQuery_value2enum_1[] = {
+       { 0,    4,      "true" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_SCGConfigurationQuery_enum2value_1[] = {
+       0       /* true(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_SCGConfigurationQuery_specs_1 = {
+       asn_MAP_SCGConfigurationQuery_value2enum_1,     /* "tag" => N; sorted by tag */
+       asn_MAP_SCGConfigurationQuery_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_SCGConfigurationQuery_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SCGConfigurationQuery = {
+       "SCGConfigurationQuery",
+       "SCGConfigurationQuery",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_SCGConfigurationQuery_tags_1,
+       sizeof(asn_DEF_SCGConfigurationQuery_tags_1)
+               /sizeof(asn_DEF_SCGConfigurationQuery_tags_1[0]), /* 1 */
+       asn_DEF_SCGConfigurationQuery_tags_1,   /* Same as above */
+       sizeof(asn_DEF_SCGConfigurationQuery_tags_1)
+               /sizeof(asn_DEF_SCGConfigurationQuery_tags_1[0]), /* 1 */
+       { &asn_OER_type_SCGConfigurationQuery_constr_1, &asn_PER_type_SCGConfigurationQuery_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_SCGConfigurationQuery_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/SGNB-Addition-Trigger-Ind.c b/e2ap/lib/SGNB-Addition-Trigger-Ind.c
new file mode 100644 (file)
index 0000000..290df3e
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SGNB-Addition-Trigger-Ind.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_SGNB_Addition_Trigger_Ind_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_SGNB_Addition_Trigger_Ind_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_SGNB_Addition_Trigger_Ind_value2enum_1[] = {
+       { 0,    9,      "sn-change" },
+       { 1,    12,     "inter-eNB-HO" },
+       { 2,    12,     "intra-eNB-HO" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_SGNB_Addition_Trigger_Ind_enum2value_1[] = {
+       1,      /* inter-eNB-HO(1) */
+       2,      /* intra-eNB-HO(2) */
+       0       /* sn-change(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_SGNB_Addition_Trigger_Ind_specs_1 = {
+       asn_MAP_SGNB_Addition_Trigger_Ind_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_SGNB_Addition_Trigger_Ind_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_SGNB_Addition_Trigger_Ind_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SGNB_Addition_Trigger_Ind = {
+       "SGNB-Addition-Trigger-Ind",
+       "SGNB-Addition-Trigger-Ind",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_SGNB_Addition_Trigger_Ind_tags_1,
+       sizeof(asn_DEF_SGNB_Addition_Trigger_Ind_tags_1)
+               /sizeof(asn_DEF_SGNB_Addition_Trigger_Ind_tags_1[0]), /* 1 */
+       asn_DEF_SGNB_Addition_Trigger_Ind_tags_1,       /* Same as above */
+       sizeof(asn_DEF_SGNB_Addition_Trigger_Ind_tags_1)
+               /sizeof(asn_DEF_SGNB_Addition_Trigger_Ind_tags_1[0]), /* 1 */
+       { &asn_OER_type_SGNB_Addition_Trigger_Ind_constr_1, &asn_PER_type_SGNB_Addition_Trigger_Ind_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_SGNB_Addition_Trigger_Ind_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/SIPTOBearerDeactivationIndication.c b/e2ap/lib/SIPTOBearerDeactivationIndication.c
new file mode 100644 (file)
index 0000000..9681e58
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SIPTOBearerDeactivationIndication.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_SIPTOBearerDeactivationIndication_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_SIPTOBearerDeactivationIndication_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_SIPTOBearerDeactivationIndication_value2enum_1[] = {
+       { 0,    4,      "true" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_SIPTOBearerDeactivationIndication_enum2value_1[] = {
+       0       /* true(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_SIPTOBearerDeactivationIndication_specs_1 = {
+       asn_MAP_SIPTOBearerDeactivationIndication_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_SIPTOBearerDeactivationIndication_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_SIPTOBearerDeactivationIndication_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SIPTOBearerDeactivationIndication = {
+       "SIPTOBearerDeactivationIndication",
+       "SIPTOBearerDeactivationIndication",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_SIPTOBearerDeactivationIndication_tags_1,
+       sizeof(asn_DEF_SIPTOBearerDeactivationIndication_tags_1)
+               /sizeof(asn_DEF_SIPTOBearerDeactivationIndication_tags_1[0]), /* 1 */
+       asn_DEF_SIPTOBearerDeactivationIndication_tags_1,       /* Same as above */
+       sizeof(asn_DEF_SIPTOBearerDeactivationIndication_tags_1)
+               /sizeof(asn_DEF_SIPTOBearerDeactivationIndication_tags_1[0]), /* 1 */
+       { &asn_OER_type_SIPTOBearerDeactivationIndication_constr_1, &asn_PER_type_SIPTOBearerDeactivationIndication_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_SIPTOBearerDeactivationIndication_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/SNStatusTransfer.c b/e2ap/lib/SNStatusTransfer.c
new file mode 100644 (file)
index 0000000..e9c554b
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SNStatusTransfer.h"
+
+asn_TYPE_member_t asn_MBR_SNStatusTransfer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SNStatusTransfer, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P18,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SNStatusTransfer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SNStatusTransfer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SNStatusTransfer_specs_1 = {
+       sizeof(struct SNStatusTransfer),
+       offsetof(struct SNStatusTransfer, _asn_ctx),
+       asn_MAP_SNStatusTransfer_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SNStatusTransfer = {
+       "SNStatusTransfer",
+       "SNStatusTransfer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SNStatusTransfer_tags_1,
+       sizeof(asn_DEF_SNStatusTransfer_tags_1)
+               /sizeof(asn_DEF_SNStatusTransfer_tags_1[0]), /* 1 */
+       asn_DEF_SNStatusTransfer_tags_1,        /* Same as above */
+       sizeof(asn_DEF_SNStatusTransfer_tags_1)
+               /sizeof(asn_DEF_SNStatusTransfer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SNStatusTransfer_1,
+       1,      /* Elements count */
+       &asn_SPC_SNStatusTransfer_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/SRBType.c b/e2ap/lib/SRBType.c
new file mode 100644 (file)
index 0000000..22e9ec4
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SRBType.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_SRBType_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_SRBType_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_SRBType_value2enum_1[] = {
+       { 0,    4,      "srb1" },
+       { 1,    4,      "srb2" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_SRBType_enum2value_1[] = {
+       0,      /* srb1(0) */
+       1       /* srb2(1) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_SRBType_specs_1 = {
+       asn_MAP_SRBType_value2enum_1,   /* "tag" => N; sorted by tag */
+       asn_MAP_SRBType_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_SRBType_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SRBType = {
+       "SRBType",
+       "SRBType",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_SRBType_tags_1,
+       sizeof(asn_DEF_SRBType_tags_1)
+               /sizeof(asn_DEF_SRBType_tags_1[0]), /* 1 */
+       asn_DEF_SRBType_tags_1, /* Same as above */
+       sizeof(asn_DEF_SRBType_tags_1)
+               /sizeof(asn_DEF_SRBType_tags_1[0]), /* 1 */
+       { &asn_OER_type_SRBType_constr_1, &asn_PER_type_SRBType_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_SRBType_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/SRVCCOperationPossible.c b/e2ap/lib/SRVCCOperationPossible.c
new file mode 100644 (file)
index 0000000..7bf3643
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SRVCCOperationPossible.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_SRVCCOperationPossible_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_SRVCCOperationPossible_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_SRVCCOperationPossible_value2enum_1[] = {
+       { 0,    8,      "possible" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_SRVCCOperationPossible_enum2value_1[] = {
+       0       /* possible(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_SRVCCOperationPossible_specs_1 = {
+       asn_MAP_SRVCCOperationPossible_value2enum_1,    /* "tag" => N; sorted by tag */
+       asn_MAP_SRVCCOperationPossible_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_SRVCCOperationPossible_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SRVCCOperationPossible = {
+       "SRVCCOperationPossible",
+       "SRVCCOperationPossible",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_SRVCCOperationPossible_tags_1,
+       sizeof(asn_DEF_SRVCCOperationPossible_tags_1)
+               /sizeof(asn_DEF_SRVCCOperationPossible_tags_1[0]), /* 1 */
+       asn_DEF_SRVCCOperationPossible_tags_1,  /* Same as above */
+       sizeof(asn_DEF_SRVCCOperationPossible_tags_1)
+               /sizeof(asn_DEF_SRVCCOperationPossible_tags_1[0]), /* 1 */
+       { &asn_OER_type_SRVCCOperationPossible_constr_1, &asn_PER_type_SRVCCOperationPossible_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_SRVCCOperationPossible_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/SULInformation.c b/e2ap/lib/SULInformation.c
new file mode 100644 (file)
index 0000000..ea3ecbe
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SULInformation.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_sUL_ARFCN_constraint_1(const 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 >= 0 && value <= 3279165)) {
+               /* 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_oer_constraints_t asn_OER_memb_sUL_ARFCN_constr_2 CC_NOTUSED = {
+       { 4, 1 }        /* (0..3279165) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_sUL_ARFCN_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       22, -1,  0,  3279165 } /* (0..3279165) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_SULInformation_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SULInformation, sUL_ARFCN),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_sUL_ARFCN_constr_2, &asn_PER_memb_sUL_ARFCN_constr_2,  memb_sUL_ARFCN_constraint_1 },
+               0, 0, /* No default value */
+               "sUL-ARFCN"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SULInformation, sUL_TxBW),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NR_TxBW,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sUL-TxBW"
+               },
+       { ATF_POINTER, 1, offsetof(struct SULInformation, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P199,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_SULInformation_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_SULInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SULInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sUL-ARFCN */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sUL-TxBW */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SULInformation_specs_1 = {
+       sizeof(struct SULInformation),
+       offsetof(struct SULInformation, _asn_ctx),
+       asn_MAP_SULInformation_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_SULInformation_oms_1,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SULInformation = {
+       "SULInformation",
+       "SULInformation",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SULInformation_tags_1,
+       sizeof(asn_DEF_SULInformation_tags_1)
+               /sizeof(asn_DEF_SULInformation_tags_1[0]), /* 1 */
+       asn_DEF_SULInformation_tags_1,  /* Same as above */
+       sizeof(asn_DEF_SULInformation_tags_1)
+               /sizeof(asn_DEF_SULInformation_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SULInformation_1,
+       3,      /* Elements count */
+       &asn_SPC_SULInformation_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/ScheduledCommunicationTime.c b/e2ap/lib/ScheduledCommunicationTime.c
new file mode 100644 (file)
index 0000000..474842b
--- /dev/null
@@ -0,0 +1,188 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ScheduledCommunicationTime.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_dayofWeek_constraint_1(const 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 == 7)) {
+               /* 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_timeofDayStart_constraint_1(const 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 >= 0 && value <= 86399)) {
+               /* 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_timeofDayEnd_constraint_1(const 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 >= 0 && value <= 86399)) {
+               /* 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_oer_constraints_t asn_OER_memb_dayofWeek_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       7       /* (SIZE(7..7)) */};
+static asn_per_constraints_t asn_PER_memb_dayofWeek_constr_2 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  7,  7 }        /* (SIZE(7..7)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_timeofDayStart_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_timeofDayStart_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  17, -1,  0,  86399 }       /* (0..86399,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_timeofDayEnd_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_timeofDayEnd_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  17, -1,  0,  86399 }       /* (0..86399,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ScheduledCommunicationTime_1[] = {
+       { ATF_POINTER, 4, offsetof(struct ScheduledCommunicationTime, dayofWeek),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_dayofWeek_constr_2, &asn_PER_memb_dayofWeek_constr_2,  memb_dayofWeek_constraint_1 },
+               0, 0, /* No default value */
+               "dayofWeek"
+               },
+       { ATF_POINTER, 3, offsetof(struct ScheduledCommunicationTime, timeofDayStart),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_timeofDayStart_constr_3, &asn_PER_memb_timeofDayStart_constr_3,  memb_timeofDayStart_constraint_1 },
+               0, 0, /* No default value */
+               "timeofDayStart"
+               },
+       { ATF_POINTER, 2, offsetof(struct ScheduledCommunicationTime, timeofDayEnd),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_timeofDayEnd_constr_4, &asn_PER_memb_timeofDayEnd_constr_4,  memb_timeofDayEnd_constraint_1 },
+               0, 0, /* No default value */
+               "timeofDayEnd"
+               },
+       { ATF_POINTER, 1, offsetof(struct ScheduledCommunicationTime, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P197,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ScheduledCommunicationTime_oms_1[] = { 0, 1, 2, 3 };
+static const ber_tlv_tag_t asn_DEF_ScheduledCommunicationTime_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ScheduledCommunicationTime_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dayofWeek */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timeofDayStart */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeofDayEnd */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ScheduledCommunicationTime_specs_1 = {
+       sizeof(struct ScheduledCommunicationTime),
+       offsetof(struct ScheduledCommunicationTime, _asn_ctx),
+       asn_MAP_ScheduledCommunicationTime_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_ScheduledCommunicationTime_oms_1,       /* Optional members */
+       4, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ScheduledCommunicationTime = {
+       "ScheduledCommunicationTime",
+       "ScheduledCommunicationTime",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ScheduledCommunicationTime_tags_1,
+       sizeof(asn_DEF_ScheduledCommunicationTime_tags_1)
+               /sizeof(asn_DEF_ScheduledCommunicationTime_tags_1[0]), /* 1 */
+       asn_DEF_ScheduledCommunicationTime_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ScheduledCommunicationTime_tags_1)
+               /sizeof(asn_DEF_ScheduledCommunicationTime_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ScheduledCommunicationTime_1,
+       4,      /* Elements count */
+       &asn_SPC_ScheduledCommunicationTime_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/SeNBAdditionRequest.c b/e2ap/lib/SeNBAdditionRequest.c
new file mode 100644 (file)
index 0000000..d64ad05
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SeNBAdditionRequest.h"
+
+asn_TYPE_member_t asn_MBR_SeNBAdditionRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P44,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBAdditionRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBAdditionRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequest_specs_1 = {
+       sizeof(struct SeNBAdditionRequest),
+       offsetof(struct SeNBAdditionRequest, _asn_ctx),
+       asn_MAP_SeNBAdditionRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequest = {
+       "SeNBAdditionRequest",
+       "SeNBAdditionRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBAdditionRequest_tags_1,
+       sizeof(asn_DEF_SeNBAdditionRequest_tags_1)
+               /sizeof(asn_DEF_SeNBAdditionRequest_tags_1[0]), /* 1 */
+       asn_DEF_SeNBAdditionRequest_tags_1,     /* Same as above */
+       sizeof(asn_DEF_SeNBAdditionRequest_tags_1)
+               /sizeof(asn_DEF_SeNBAdditionRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBAdditionRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_SeNBAdditionRequest_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/SeNBAdditionRequestAcknowledge.c b/e2ap/lib/SeNBAdditionRequestAcknowledge.c
new file mode 100644 (file)
index 0000000..3db265b
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SeNBAdditionRequestAcknowledge.h"
+
+asn_TYPE_member_t asn_MBR_SeNBAdditionRequestAcknowledge_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P45,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBAdditionRequestAcknowledge_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBAdditionRequestAcknowledge_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequestAcknowledge_specs_1 = {
+       sizeof(struct SeNBAdditionRequestAcknowledge),
+       offsetof(struct SeNBAdditionRequestAcknowledge, _asn_ctx),
+       asn_MAP_SeNBAdditionRequestAcknowledge_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestAcknowledge = {
+       "SeNBAdditionRequestAcknowledge",
+       "SeNBAdditionRequestAcknowledge",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBAdditionRequestAcknowledge_tags_1,
+       sizeof(asn_DEF_SeNBAdditionRequestAcknowledge_tags_1)
+               /sizeof(asn_DEF_SeNBAdditionRequestAcknowledge_tags_1[0]), /* 1 */
+       asn_DEF_SeNBAdditionRequestAcknowledge_tags_1,  /* Same as above */
+       sizeof(asn_DEF_SeNBAdditionRequestAcknowledge_tags_1)
+               /sizeof(asn_DEF_SeNBAdditionRequestAcknowledge_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBAdditionRequestAcknowledge_1,
+       1,      /* Elements count */
+       &asn_SPC_SeNBAdditionRequestAcknowledge_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/SeNBAdditionRequestReject.c b/e2ap/lib/SeNBAdditionRequestReject.c
new file mode 100644 (file)
index 0000000..bd51ffb
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SeNBAdditionRequestReject.h"
+
+asn_TYPE_member_t asn_MBR_SeNBAdditionRequestReject_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestReject, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P46,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBAdditionRequestReject_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBAdditionRequestReject_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequestReject_specs_1 = {
+       sizeof(struct SeNBAdditionRequestReject),
+       offsetof(struct SeNBAdditionRequestReject, _asn_ctx),
+       asn_MAP_SeNBAdditionRequestReject_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestReject = {
+       "SeNBAdditionRequestReject",
+       "SeNBAdditionRequestReject",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBAdditionRequestReject_tags_1,
+       sizeof(asn_DEF_SeNBAdditionRequestReject_tags_1)
+               /sizeof(asn_DEF_SeNBAdditionRequestReject_tags_1[0]), /* 1 */
+       asn_DEF_SeNBAdditionRequestReject_tags_1,       /* Same as above */
+       sizeof(asn_DEF_SeNBAdditionRequestReject_tags_1)
+               /sizeof(asn_DEF_SeNBAdditionRequestReject_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBAdditionRequestReject_1,
+       1,      /* Elements count */
+       &asn_SPC_SeNBAdditionRequestReject_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/SeNBCounterCheckRequest.c b/e2ap/lib/SeNBCounterCheckRequest.c
new file mode 100644 (file)
index 0000000..9e08cc5
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SeNBCounterCheckRequest.h"
+
+asn_TYPE_member_t asn_MBR_SeNBCounterCheckRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBCounterCheckRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P57,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBCounterCheckRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBCounterCheckRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBCounterCheckRequest_specs_1 = {
+       sizeof(struct SeNBCounterCheckRequest),
+       offsetof(struct SeNBCounterCheckRequest, _asn_ctx),
+       asn_MAP_SeNBCounterCheckRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBCounterCheckRequest = {
+       "SeNBCounterCheckRequest",
+       "SeNBCounterCheckRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBCounterCheckRequest_tags_1,
+       sizeof(asn_DEF_SeNBCounterCheckRequest_tags_1)
+               /sizeof(asn_DEF_SeNBCounterCheckRequest_tags_1[0]), /* 1 */
+       asn_DEF_SeNBCounterCheckRequest_tags_1, /* Same as above */
+       sizeof(asn_DEF_SeNBCounterCheckRequest_tags_1)
+               /sizeof(asn_DEF_SeNBCounterCheckRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBCounterCheckRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_SeNBCounterCheckRequest_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/SeNBModificationConfirm.c b/e2ap/lib/SeNBModificationConfirm.c
new file mode 100644 (file)
index 0000000..287c040
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SeNBModificationConfirm.h"
+
+asn_TYPE_member_t asn_MBR_SeNBModificationConfirm_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationConfirm, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P52,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBModificationConfirm_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationConfirm_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationConfirm_specs_1 = {
+       sizeof(struct SeNBModificationConfirm),
+       offsetof(struct SeNBModificationConfirm, _asn_ctx),
+       asn_MAP_SeNBModificationConfirm_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBModificationConfirm = {
+       "SeNBModificationConfirm",
+       "SeNBModificationConfirm",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBModificationConfirm_tags_1,
+       sizeof(asn_DEF_SeNBModificationConfirm_tags_1)
+               /sizeof(asn_DEF_SeNBModificationConfirm_tags_1[0]), /* 1 */
+       asn_DEF_SeNBModificationConfirm_tags_1, /* Same as above */
+       sizeof(asn_DEF_SeNBModificationConfirm_tags_1)
+               /sizeof(asn_DEF_SeNBModificationConfirm_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBModificationConfirm_1,
+       1,      /* Elements count */
+       &asn_SPC_SeNBModificationConfirm_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/SeNBModificationRefuse.c b/e2ap/lib/SeNBModificationRefuse.c
new file mode 100644 (file)
index 0000000..9ca68a4
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SeNBModificationRefuse.h"
+
+asn_TYPE_member_t asn_MBR_SeNBModificationRefuse_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P53,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBModificationRefuse_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRefuse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRefuse_specs_1 = {
+       sizeof(struct SeNBModificationRefuse),
+       offsetof(struct SeNBModificationRefuse, _asn_ctx),
+       asn_MAP_SeNBModificationRefuse_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBModificationRefuse = {
+       "SeNBModificationRefuse",
+       "SeNBModificationRefuse",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBModificationRefuse_tags_1,
+       sizeof(asn_DEF_SeNBModificationRefuse_tags_1)
+               /sizeof(asn_DEF_SeNBModificationRefuse_tags_1[0]), /* 1 */
+       asn_DEF_SeNBModificationRefuse_tags_1,  /* Same as above */
+       sizeof(asn_DEF_SeNBModificationRefuse_tags_1)
+               /sizeof(asn_DEF_SeNBModificationRefuse_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBModificationRefuse_1,
+       1,      /* Elements count */
+       &asn_SPC_SeNBModificationRefuse_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/SeNBModificationRequest.c b/e2ap/lib/SeNBModificationRequest.c
new file mode 100644 (file)
index 0000000..7a2c3de
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SeNBModificationRequest.h"
+
+asn_TYPE_member_t asn_MBR_SeNBModificationRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P48,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBModificationRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequest_specs_1 = {
+       sizeof(struct SeNBModificationRequest),
+       offsetof(struct SeNBModificationRequest, _asn_ctx),
+       asn_MAP_SeNBModificationRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequest = {
+       "SeNBModificationRequest",
+       "SeNBModificationRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBModificationRequest_tags_1,
+       sizeof(asn_DEF_SeNBModificationRequest_tags_1)
+               /sizeof(asn_DEF_SeNBModificationRequest_tags_1[0]), /* 1 */
+       asn_DEF_SeNBModificationRequest_tags_1, /* Same as above */
+       sizeof(asn_DEF_SeNBModificationRequest_tags_1)
+               /sizeof(asn_DEF_SeNBModificationRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBModificationRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_SeNBModificationRequest_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/SeNBModificationRequestAcknowledge.c b/e2ap/lib/SeNBModificationRequestAcknowledge.c
new file mode 100644 (file)
index 0000000..3d87583
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SeNBModificationRequestAcknowledge.h"
+
+asn_TYPE_member_t asn_MBR_SeNBModificationRequestAcknowledge_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P49,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBModificationRequestAcknowledge_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRequestAcknowledge_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequestAcknowledge_specs_1 = {
+       sizeof(struct SeNBModificationRequestAcknowledge),
+       offsetof(struct SeNBModificationRequestAcknowledge, _asn_ctx),
+       asn_MAP_SeNBModificationRequestAcknowledge_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestAcknowledge = {
+       "SeNBModificationRequestAcknowledge",
+       "SeNBModificationRequestAcknowledge",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBModificationRequestAcknowledge_tags_1,
+       sizeof(asn_DEF_SeNBModificationRequestAcknowledge_tags_1)
+               /sizeof(asn_DEF_SeNBModificationRequestAcknowledge_tags_1[0]), /* 1 */
+       asn_DEF_SeNBModificationRequestAcknowledge_tags_1,      /* Same as above */
+       sizeof(asn_DEF_SeNBModificationRequestAcknowledge_tags_1)
+               /sizeof(asn_DEF_SeNBModificationRequestAcknowledge_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBModificationRequestAcknowledge_1,
+       1,      /* Elements count */
+       &asn_SPC_SeNBModificationRequestAcknowledge_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/SeNBModificationRequestReject.c b/e2ap/lib/SeNBModificationRequestReject.c
new file mode 100644 (file)
index 0000000..ce9cff6
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SeNBModificationRequestReject.h"
+
+asn_TYPE_member_t asn_MBR_SeNBModificationRequestReject_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestReject, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P50,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBModificationRequestReject_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRequestReject_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequestReject_specs_1 = {
+       sizeof(struct SeNBModificationRequestReject),
+       offsetof(struct SeNBModificationRequestReject, _asn_ctx),
+       asn_MAP_SeNBModificationRequestReject_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestReject = {
+       "SeNBModificationRequestReject",
+       "SeNBModificationRequestReject",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBModificationRequestReject_tags_1,
+       sizeof(asn_DEF_SeNBModificationRequestReject_tags_1)
+               /sizeof(asn_DEF_SeNBModificationRequestReject_tags_1[0]), /* 1 */
+       asn_DEF_SeNBModificationRequestReject_tags_1,   /* Same as above */
+       sizeof(asn_DEF_SeNBModificationRequestReject_tags_1)
+               /sizeof(asn_DEF_SeNBModificationRequestReject_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBModificationRequestReject_1,
+       1,      /* Elements count */
+       &asn_SPC_SeNBModificationRequestReject_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/SeNBModificationRequired.c b/e2ap/lib/SeNBModificationRequired.c
new file mode 100644 (file)
index 0000000..46c711d
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SeNBModificationRequired.h"
+
+asn_TYPE_member_t asn_MBR_SeNBModificationRequired_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P51,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBModificationRequired_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRequired_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequired_specs_1 = {
+       sizeof(struct SeNBModificationRequired),
+       offsetof(struct SeNBModificationRequired, _asn_ctx),
+       asn_MAP_SeNBModificationRequired_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequired = {
+       "SeNBModificationRequired",
+       "SeNBModificationRequired",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBModificationRequired_tags_1,
+       sizeof(asn_DEF_SeNBModificationRequired_tags_1)
+               /sizeof(asn_DEF_SeNBModificationRequired_tags_1[0]), /* 1 */
+       asn_DEF_SeNBModificationRequired_tags_1,        /* Same as above */
+       sizeof(asn_DEF_SeNBModificationRequired_tags_1)
+               /sizeof(asn_DEF_SeNBModificationRequired_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBModificationRequired_1,
+       1,      /* Elements count */
+       &asn_SPC_SeNBModificationRequired_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/SeNBReconfigurationComplete.c b/e2ap/lib/SeNBReconfigurationComplete.c
new file mode 100644 (file)
index 0000000..2b192d7
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SeNBReconfigurationComplete.h"
+
+asn_TYPE_member_t asn_MBR_SeNBReconfigurationComplete_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReconfigurationComplete, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P47,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBReconfigurationComplete_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBReconfigurationComplete_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBReconfigurationComplete_specs_1 = {
+       sizeof(struct SeNBReconfigurationComplete),
+       offsetof(struct SeNBReconfigurationComplete, _asn_ctx),
+       asn_MAP_SeNBReconfigurationComplete_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBReconfigurationComplete = {
+       "SeNBReconfigurationComplete",
+       "SeNBReconfigurationComplete",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBReconfigurationComplete_tags_1,
+       sizeof(asn_DEF_SeNBReconfigurationComplete_tags_1)
+               /sizeof(asn_DEF_SeNBReconfigurationComplete_tags_1[0]), /* 1 */
+       asn_DEF_SeNBReconfigurationComplete_tags_1,     /* Same as above */
+       sizeof(asn_DEF_SeNBReconfigurationComplete_tags_1)
+               /sizeof(asn_DEF_SeNBReconfigurationComplete_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBReconfigurationComplete_1,
+       1,      /* Elements count */
+       &asn_SPC_SeNBReconfigurationComplete_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/SeNBReleaseConfirm.c b/e2ap/lib/SeNBReleaseConfirm.c
new file mode 100644 (file)
index 0000000..d50966a
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SeNBReleaseConfirm.h"
+
+asn_TYPE_member_t asn_MBR_SeNBReleaseConfirm_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseConfirm, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P56,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBReleaseConfirm_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBReleaseConfirm_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseConfirm_specs_1 = {
+       sizeof(struct SeNBReleaseConfirm),
+       offsetof(struct SeNBReleaseConfirm, _asn_ctx),
+       asn_MAP_SeNBReleaseConfirm_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBReleaseConfirm = {
+       "SeNBReleaseConfirm",
+       "SeNBReleaseConfirm",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBReleaseConfirm_tags_1,
+       sizeof(asn_DEF_SeNBReleaseConfirm_tags_1)
+               /sizeof(asn_DEF_SeNBReleaseConfirm_tags_1[0]), /* 1 */
+       asn_DEF_SeNBReleaseConfirm_tags_1,      /* Same as above */
+       sizeof(asn_DEF_SeNBReleaseConfirm_tags_1)
+               /sizeof(asn_DEF_SeNBReleaseConfirm_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBReleaseConfirm_1,
+       1,      /* Elements count */
+       &asn_SPC_SeNBReleaseConfirm_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/SeNBReleaseRequest.c b/e2ap/lib/SeNBReleaseRequest.c
new file mode 100644 (file)
index 0000000..47d5530
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SeNBReleaseRequest.h"
+
+asn_TYPE_member_t asn_MBR_SeNBReleaseRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P54,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBReleaseRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBReleaseRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseRequest_specs_1 = {
+       sizeof(struct SeNBReleaseRequest),
+       offsetof(struct SeNBReleaseRequest, _asn_ctx),
+       asn_MAP_SeNBReleaseRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequest = {
+       "SeNBReleaseRequest",
+       "SeNBReleaseRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBReleaseRequest_tags_1,
+       sizeof(asn_DEF_SeNBReleaseRequest_tags_1)
+               /sizeof(asn_DEF_SeNBReleaseRequest_tags_1[0]), /* 1 */
+       asn_DEF_SeNBReleaseRequest_tags_1,      /* Same as above */
+       sizeof(asn_DEF_SeNBReleaseRequest_tags_1)
+               /sizeof(asn_DEF_SeNBReleaseRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBReleaseRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_SeNBReleaseRequest_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/SeNBReleaseRequired.c b/e2ap/lib/SeNBReleaseRequired.c
new file mode 100644 (file)
index 0000000..82ba91c
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SeNBReleaseRequired.h"
+
+asn_TYPE_member_t asn_MBR_SeNBReleaseRequired_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequired, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P55,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SeNBReleaseRequired_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SeNBReleaseRequired_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseRequired_specs_1 = {
+       sizeof(struct SeNBReleaseRequired),
+       offsetof(struct SeNBReleaseRequired, _asn_ctx),
+       asn_MAP_SeNBReleaseRequired_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequired = {
+       "SeNBReleaseRequired",
+       "SeNBReleaseRequired",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SeNBReleaseRequired_tags_1,
+       sizeof(asn_DEF_SeNBReleaseRequired_tags_1)
+               /sizeof(asn_DEF_SeNBReleaseRequired_tags_1[0]), /* 1 */
+       asn_DEF_SeNBReleaseRequired_tags_1,     /* Same as above */
+       sizeof(asn_DEF_SeNBReleaseRequired_tags_1)
+               /sizeof(asn_DEF_SeNBReleaseRequired_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SeNBReleaseRequired_1,
+       1,      /* Elements count */
+       &asn_SPC_SeNBReleaseRequired_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/SeNBSecurityKey.c b/e2ap/lib/SeNBSecurityKey.c
new file mode 100644 (file)
index 0000000..63ec71b
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SeNBSecurityKey.h"
+
+int
+SeNBSecurityKey_constraint(const 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 == 256)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_SeNBSecurityKey_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       256     /* (SIZE(256..256)) */};
+asn_per_constraints_t asn_PER_type_SeNBSecurityKey_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  256,  256 }    /* (SIZE(256..256)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_SeNBSecurityKey_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBSecurityKey = {
+       "SeNBSecurityKey",
+       "SeNBSecurityKey",
+       &asn_OP_BIT_STRING,
+       asn_DEF_SeNBSecurityKey_tags_1,
+       sizeof(asn_DEF_SeNBSecurityKey_tags_1)
+               /sizeof(asn_DEF_SeNBSecurityKey_tags_1[0]), /* 1 */
+       asn_DEF_SeNBSecurityKey_tags_1, /* Same as above */
+       sizeof(asn_DEF_SeNBSecurityKey_tags_1)
+               /sizeof(asn_DEF_SeNBSecurityKey_tags_1[0]), /* 1 */
+       { &asn_OER_type_SeNBSecurityKey_constr_1, &asn_PER_type_SeNBSecurityKey_constr_1, SeNBSecurityKey_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/SeNBtoMeNBContainer.c b/e2ap/lib/SeNBtoMeNBContainer.c
new file mode 100644 (file)
index 0000000..d9f60ac
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SeNBtoMeNBContainer.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_SeNBtoMeNBContainer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SeNBtoMeNBContainer = {
+       "SeNBtoMeNBContainer",
+       "SeNBtoMeNBContainer",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_SeNBtoMeNBContainer_tags_1,
+       sizeof(asn_DEF_SeNBtoMeNBContainer_tags_1)
+               /sizeof(asn_DEF_SeNBtoMeNBContainer_tags_1[0]), /* 1 */
+       asn_DEF_SeNBtoMeNBContainer_tags_1,     /* Same as above */
+       sizeof(asn_DEF_SeNBtoMeNBContainer_tags_1)
+               /sizeof(asn_DEF_SeNBtoMeNBContainer_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/SecondaryRATDataUsageReport.c b/e2ap/lib/SecondaryRATDataUsageReport.c
new file mode 100644 (file)
index 0000000..2d13457
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SecondaryRATDataUsageReport.h"
+
+asn_TYPE_member_t asn_MBR_SecondaryRATDataUsageReport_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATDataUsageReport, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P101,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SecondaryRATDataUsageReport_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SecondaryRATDataUsageReport_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATDataUsageReport_specs_1 = {
+       sizeof(struct SecondaryRATDataUsageReport),
+       offsetof(struct SecondaryRATDataUsageReport, _asn_ctx),
+       asn_MAP_SecondaryRATDataUsageReport_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SecondaryRATDataUsageReport = {
+       "SecondaryRATDataUsageReport",
+       "SecondaryRATDataUsageReport",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SecondaryRATDataUsageReport_tags_1,
+       sizeof(asn_DEF_SecondaryRATDataUsageReport_tags_1)
+               /sizeof(asn_DEF_SecondaryRATDataUsageReport_tags_1[0]), /* 1 */
+       asn_DEF_SecondaryRATDataUsageReport_tags_1,     /* Same as above */
+       sizeof(asn_DEF_SecondaryRATDataUsageReport_tags_1)
+               /sizeof(asn_DEF_SecondaryRATDataUsageReport_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SecondaryRATDataUsageReport_1,
+       1,      /* Elements count */
+       &asn_SPC_SecondaryRATDataUsageReport_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/SecondaryRATUsageReport-Item.c b/e2ap/lib/SecondaryRATUsageReport-Item.c
new file mode 100644 (file)
index 0000000..ca6af07
--- /dev/null
@@ -0,0 +1,132 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SecondaryRATUsageReport-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_secondaryRATType_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_secondaryRATType_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_secondaryRATType_value2enum_3[] = {
+       { 0,    2,      "nr" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_secondaryRATType_enum2value_3[] = {
+       0       /* nr(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_secondaryRATType_specs_3 = {
+       asn_MAP_secondaryRATType_value2enum_3,  /* "tag" => N; sorted by tag */
+       asn_MAP_secondaryRATType_enum2value_3,  /* 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_secondaryRATType_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_secondaryRATType_3 = {
+       "secondaryRATType",
+       "secondaryRATType",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_secondaryRATType_tags_3,
+       sizeof(asn_DEF_secondaryRATType_tags_3)
+               /sizeof(asn_DEF_secondaryRATType_tags_3[0]) - 1, /* 1 */
+       asn_DEF_secondaryRATType_tags_3,        /* Same as above */
+       sizeof(asn_DEF_secondaryRATType_tags_3)
+               /sizeof(asn_DEF_secondaryRATType_tags_3[0]), /* 2 */
+       { &asn_OER_type_secondaryRATType_constr_3, &asn_PER_type_secondaryRATType_constr_3, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_secondaryRATType_specs_3       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_SecondaryRATUsageReport_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_Item, e_RAB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RAB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RAB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_Item, secondaryRATType),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_secondaryRATType_3,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "secondaryRATType"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_Item, e_RABUsageReportList),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABUsageReportList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RABUsageReportList"
+               },
+       { ATF_POINTER, 1, offsetof(struct SecondaryRATUsageReport_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P190,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_SecondaryRATUsageReport_Item_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_SecondaryRATUsageReport_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SecondaryRATUsageReport_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* secondaryRATType */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e-RABUsageReportList */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATUsageReport_Item_specs_1 = {
+       sizeof(struct SecondaryRATUsageReport_Item),
+       offsetof(struct SecondaryRATUsageReport_Item, _asn_ctx),
+       asn_MAP_SecondaryRATUsageReport_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_SecondaryRATUsageReport_Item_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SecondaryRATUsageReport_Item = {
+       "SecondaryRATUsageReport-Item",
+       "SecondaryRATUsageReport-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SecondaryRATUsageReport_Item_tags_1,
+       sizeof(asn_DEF_SecondaryRATUsageReport_Item_tags_1)
+               /sizeof(asn_DEF_SecondaryRATUsageReport_Item_tags_1[0]), /* 1 */
+       asn_DEF_SecondaryRATUsageReport_Item_tags_1,    /* Same as above */
+       sizeof(asn_DEF_SecondaryRATUsageReport_Item_tags_1)
+               /sizeof(asn_DEF_SecondaryRATUsageReport_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SecondaryRATUsageReport_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_SecondaryRATUsageReport_Item_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/SecondaryRATUsageReportList.c b/e2ap/lib/SecondaryRATUsageReportList.c
new file mode 100644 (file)
index 0000000..08b2f2f
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SecondaryRATUsageReportList.h"
+
+#include "ProtocolIE-Single-Container.h"
+static asn_oer_constraints_t asn_OER_type_SecondaryRATUsageReportList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_SecondaryRATUsageReportList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_SecondaryRATUsageReportList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ProtocolIE_Single_Container_9518P48,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SecondaryRATUsageReportList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_SecondaryRATUsageReportList_specs_1 = {
+       sizeof(struct SecondaryRATUsageReportList),
+       offsetof(struct SecondaryRATUsageReportList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_SecondaryRATUsageReportList = {
+       "SecondaryRATUsageReportList",
+       "SecondaryRATUsageReportList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_SecondaryRATUsageReportList_tags_1,
+       sizeof(asn_DEF_SecondaryRATUsageReportList_tags_1)
+               /sizeof(asn_DEF_SecondaryRATUsageReportList_tags_1[0]), /* 1 */
+       asn_DEF_SecondaryRATUsageReportList_tags_1,     /* Same as above */
+       sizeof(asn_DEF_SecondaryRATUsageReportList_tags_1)
+               /sizeof(asn_DEF_SecondaryRATUsageReportList_tags_1[0]), /* 1 */
+       { &asn_OER_type_SecondaryRATUsageReportList_constr_1, &asn_PER_type_SecondaryRATUsageReportList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_SecondaryRATUsageReportList_1,
+       1,      /* Single element */
+       &asn_SPC_SecondaryRATUsageReportList_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/ServedCell-Information.c b/e2ap/lib/ServedCell-Information.c
new file mode 100644 (file)
index 0000000..1e5fdf6
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ServedCell-Information.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ServedCell_Information_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information, pCI),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PCI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pCI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information, cellId),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cellId"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information, tAC),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TAC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "tAC"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information, broadcastPLMNs),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BroadcastPLMNs_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "broadcastPLMNs"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information, eUTRA_Mode_Info),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_EUTRA_Mode_Info,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "eUTRA-Mode-Info"
+               },
+       { ATF_POINTER, 1, offsetof(struct ServedCell_Information, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P192,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ServedCell_Information_oms_1[] = { 5 };
+static const ber_tlv_tag_t asn_DEF_ServedCell_Information_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ServedCell_Information_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pCI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellId */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* tAC */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* broadcastPLMNs */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* eUTRA-Mode-Info */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ServedCell_Information_specs_1 = {
+       sizeof(struct ServedCell_Information),
+       offsetof(struct ServedCell_Information, _asn_ctx),
+       asn_MAP_ServedCell_Information_tag2el_1,
+       6,      /* Count of tags in the map */
+       asn_MAP_ServedCell_Information_oms_1,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       6,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedCell_Information = {
+       "ServedCell-Information",
+       "ServedCell-Information",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ServedCell_Information_tags_1,
+       sizeof(asn_DEF_ServedCell_Information_tags_1)
+               /sizeof(asn_DEF_ServedCell_Information_tags_1[0]), /* 1 */
+       asn_DEF_ServedCell_Information_tags_1,  /* Same as above */
+       sizeof(asn_DEF_ServedCell_Information_tags_1)
+               /sizeof(asn_DEF_ServedCell_Information_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ServedCell_Information_1,
+       6,      /* Elements count */
+       &asn_SPC_ServedCell_Information_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/ServedCells.c b/e2ap/lib/ServedCells.c
new file mode 100644 (file)
index 0000000..013d65a
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ServedCells.h"
+
+#include "Neighbour-Information.h"
+#include "ProtocolExtensionContainer.h"
+static asn_oer_constraints_t asn_OER_type_ServedCells_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_ServedCells_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCells__Member, servedCellInfo),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ServedCell_Information,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "servedCellInfo"
+               },
+       { ATF_POINTER, 2, offsetof(struct ServedCells__Member, neighbour_Info),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Neighbour_Information,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "neighbour-Info"
+               },
+       { ATF_POINTER, 1, offsetof(struct ServedCells__Member, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P191,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "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 }, /* servedCellInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* neighbour-Info */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+       sizeof(struct ServedCells__Member),
+       offsetof(struct ServedCells__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 */
+       3,      /* First extension addition */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+       "SEQUENCE",
+       "SEQUENCE",
+       &asn_OP_SEQUENCE,
+       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, 0, SEQUENCE_constraint },
+       asn_MBR_Member_2,
+       3,      /* Elements count */
+       &asn_SPC_Member_specs_2 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_ServedCells_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Member_2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedCells_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ServedCells_specs_1 = {
+       sizeof(struct ServedCells),
+       offsetof(struct ServedCells, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedCells = {
+       "ServedCells",
+       "ServedCells",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ServedCells_tags_1,
+       sizeof(asn_DEF_ServedCells_tags_1)
+               /sizeof(asn_DEF_ServedCells_tags_1[0]), /* 1 */
+       asn_DEF_ServedCells_tags_1,     /* Same as above */
+       sizeof(asn_DEF_ServedCells_tags_1)
+               /sizeof(asn_DEF_ServedCells_tags_1[0]), /* 1 */
+       { &asn_OER_type_ServedCells_constr_1, &asn_PER_type_ServedCells_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ServedCells_1,
+       1,      /* Single element */
+       &asn_SPC_ServedCells_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/ServedCellsToActivate-Item.c b/e2ap/lib/ServedCellsToActivate-Item.c
new file mode 100644 (file)
index 0000000..9509428
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ServedCellsToActivate-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ServedCellsToActivate_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCellsToActivate_Item, ecgi),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ecgi"
+               },
+       { ATF_POINTER, 1, offsetof(struct ServedCellsToActivate_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P14,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ServedCellsToActivate_Item_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_ServedCellsToActivate_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ServedCellsToActivate_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ecgi */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ServedCellsToActivate_Item_specs_1 = {
+       sizeof(struct ServedCellsToActivate_Item),
+       offsetof(struct ServedCellsToActivate_Item, _asn_ctx),
+       asn_MAP_ServedCellsToActivate_Item_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_ServedCellsToActivate_Item_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedCellsToActivate_Item = {
+       "ServedCellsToActivate-Item",
+       "ServedCellsToActivate-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ServedCellsToActivate_Item_tags_1,
+       sizeof(asn_DEF_ServedCellsToActivate_Item_tags_1)
+               /sizeof(asn_DEF_ServedCellsToActivate_Item_tags_1[0]), /* 1 */
+       asn_DEF_ServedCellsToActivate_Item_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ServedCellsToActivate_Item_tags_1)
+               /sizeof(asn_DEF_ServedCellsToActivate_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ServedCellsToActivate_Item_1,
+       2,      /* Elements count */
+       &asn_SPC_ServedCellsToActivate_Item_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ServedCellsToActivate.c b/e2ap/lib/ServedCellsToActivate.c
new file mode 100644 (file)
index 0000000..96d4b49
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ServedCellsToActivate.h"
+
+#include "ServedCellsToActivate-Item.h"
+static asn_oer_constraints_t asn_OER_type_ServedCellsToActivate_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_ServedCellsToActivate_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ServedCellsToActivate_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedCellsToActivate_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedCellsToActivate_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ServedCellsToActivate_specs_1 = {
+       sizeof(struct ServedCellsToActivate),
+       offsetof(struct ServedCellsToActivate, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedCellsToActivate = {
+       "ServedCellsToActivate",
+       "ServedCellsToActivate",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ServedCellsToActivate_tags_1,
+       sizeof(asn_DEF_ServedCellsToActivate_tags_1)
+               /sizeof(asn_DEF_ServedCellsToActivate_tags_1[0]), /* 1 */
+       asn_DEF_ServedCellsToActivate_tags_1,   /* Same as above */
+       sizeof(asn_DEF_ServedCellsToActivate_tags_1)
+               /sizeof(asn_DEF_ServedCellsToActivate_tags_1[0]), /* 1 */
+       { &asn_OER_type_ServedCellsToActivate_constr_1, &asn_PER_type_ServedCellsToActivate_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ServedCellsToActivate_1,
+       1,      /* Single element */
+       &asn_SPC_ServedCellsToActivate_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/ServedCellsToModify-Item.c b/e2ap/lib/ServedCellsToModify-Item.c
new file mode 100644 (file)
index 0000000..66ab6a9
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ServedCellsToModify-Item.h"
+
+#include "Neighbour-Information.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ServedCellsToModify_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCellsToModify_Item, old_ecgi),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "old-ecgi"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedCellsToModify_Item, servedCellInfo),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ServedCell_Information,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "servedCellInfo"
+               },
+       { ATF_POINTER, 2, offsetof(struct ServedCellsToModify_Item, neighbour_Info),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Neighbour_Information,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "neighbour-Info"
+               },
+       { ATF_POINTER, 1, offsetof(struct ServedCellsToModify_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P8,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ServedCellsToModify_Item_oms_1[] = { 2, 3 };
+static const ber_tlv_tag_t asn_DEF_ServedCellsToModify_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ServedCellsToModify_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* old-ecgi */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* servedCellInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* neighbour-Info */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ServedCellsToModify_Item_specs_1 = {
+       sizeof(struct ServedCellsToModify_Item),
+       offsetof(struct ServedCellsToModify_Item, _asn_ctx),
+       asn_MAP_ServedCellsToModify_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_ServedCellsToModify_Item_oms_1, /* Optional members */
+       2, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedCellsToModify_Item = {
+       "ServedCellsToModify-Item",
+       "ServedCellsToModify-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ServedCellsToModify_Item_tags_1,
+       sizeof(asn_DEF_ServedCellsToModify_Item_tags_1)
+               /sizeof(asn_DEF_ServedCellsToModify_Item_tags_1[0]), /* 1 */
+       asn_DEF_ServedCellsToModify_Item_tags_1,        /* Same as above */
+       sizeof(asn_DEF_ServedCellsToModify_Item_tags_1)
+               /sizeof(asn_DEF_ServedCellsToModify_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ServedCellsToModify_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_ServedCellsToModify_Item_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/ServedCellsToModify.c b/e2ap/lib/ServedCellsToModify.c
new file mode 100644 (file)
index 0000000..0ddb0a7
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ServedCellsToModify.h"
+
+#include "ServedCellsToModify-Item.h"
+static asn_oer_constraints_t asn_OER_type_ServedCellsToModify_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_ServedCellsToModify_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ServedCellsToModify_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedCellsToModify_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedCellsToModify_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ServedCellsToModify_specs_1 = {
+       sizeof(struct ServedCellsToModify),
+       offsetof(struct ServedCellsToModify, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedCellsToModify = {
+       "ServedCellsToModify",
+       "ServedCellsToModify",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ServedCellsToModify_tags_1,
+       sizeof(asn_DEF_ServedCellsToModify_tags_1)
+               /sizeof(asn_DEF_ServedCellsToModify_tags_1[0]), /* 1 */
+       asn_DEF_ServedCellsToModify_tags_1,     /* Same as above */
+       sizeof(asn_DEF_ServedCellsToModify_tags_1)
+               /sizeof(asn_DEF_ServedCellsToModify_tags_1[0]), /* 1 */
+       { &asn_OER_type_ServedCellsToModify_constr_1, &asn_PER_type_ServedCellsToModify_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ServedCellsToModify_1,
+       1,      /* Single element */
+       &asn_SPC_ServedCellsToModify_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/ServedEUTRAcellsENDCX2ManagementList.c b/e2ap/lib/ServedEUTRAcellsENDCX2ManagementList.c
new file mode 100644 (file)
index 0000000..2a0ce58
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ServedEUTRAcellsENDCX2ManagementList.h"
+
+#include "NRNeighbour-Information.h"
+#include "ProtocolExtensionContainer.h"
+static asn_oer_constraints_t asn_OER_type_ServedEUTRAcellsENDCX2ManagementList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_ServedEUTRAcellsENDCX2ManagementList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsENDCX2ManagementList__Member, servedEUTRACellInfo),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ServedCell_Information,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "servedEUTRACellInfo"
+               },
+       { ATF_POINTER, 2, offsetof(struct ServedEUTRAcellsENDCX2ManagementList__Member, nrNeighbourInfo),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRNeighbour_Information,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nrNeighbourInfo"
+               },
+       { ATF_POINTER, 1, offsetof(struct ServedEUTRAcellsENDCX2ManagementList__Member, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P90,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "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 }, /* servedEUTRACellInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nrNeighbourInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+       sizeof(struct ServedEUTRAcellsENDCX2ManagementList__Member),
+       offsetof(struct ServedEUTRAcellsENDCX2ManagementList__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 */
+       3,      /* First extension addition */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+       "SEQUENCE",
+       "SEQUENCE",
+       &asn_OP_SEQUENCE,
+       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, 0, SEQUENCE_constraint },
+       asn_MBR_Member_2,
+       3,      /* Elements count */
+       &asn_SPC_Member_specs_2 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_ServedEUTRAcellsENDCX2ManagementList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Member_2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedEUTRAcellsENDCX2ManagementList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ServedEUTRAcellsENDCX2ManagementList_specs_1 = {
+       sizeof(struct ServedEUTRAcellsENDCX2ManagementList),
+       offsetof(struct ServedEUTRAcellsENDCX2ManagementList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsENDCX2ManagementList = {
+       "ServedEUTRAcellsENDCX2ManagementList",
+       "ServedEUTRAcellsENDCX2ManagementList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ServedEUTRAcellsENDCX2ManagementList_tags_1,
+       sizeof(asn_DEF_ServedEUTRAcellsENDCX2ManagementList_tags_1)
+               /sizeof(asn_DEF_ServedEUTRAcellsENDCX2ManagementList_tags_1[0]), /* 1 */
+       asn_DEF_ServedEUTRAcellsENDCX2ManagementList_tags_1,    /* Same as above */
+       sizeof(asn_DEF_ServedEUTRAcellsENDCX2ManagementList_tags_1)
+               /sizeof(asn_DEF_ServedEUTRAcellsENDCX2ManagementList_tags_1[0]), /* 1 */
+       { &asn_OER_type_ServedEUTRAcellsENDCX2ManagementList_constr_1, &asn_PER_type_ServedEUTRAcellsENDCX2ManagementList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ServedEUTRAcellsENDCX2ManagementList_1,
+       1,      /* Single element */
+       &asn_SPC_ServedEUTRAcellsENDCX2ManagementList_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/ServedEUTRAcellsToDeleteListENDCConfUpd.c b/e2ap/lib/ServedEUTRAcellsToDeleteListENDCConfUpd.c
new file mode 100644 (file)
index 0000000..a9a47af
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ServedEUTRAcellsToDeleteListENDCConfUpd.h"
+
+#include "ECGI.h"
+static asn_oer_constraints_t asn_OER_type_ServedEUTRAcellsToDeleteListENDCConfUpd_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_ServedEUTRAcellsToDeleteListENDCConfUpd_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ServedEUTRAcellsToDeleteListENDCConfUpd_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ServedEUTRAcellsToDeleteListENDCConfUpd_specs_1 = {
+       sizeof(struct ServedEUTRAcellsToDeleteListENDCConfUpd),
+       offsetof(struct ServedEUTRAcellsToDeleteListENDCConfUpd, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd = {
+       "ServedEUTRAcellsToDeleteListENDCConfUpd",
+       "ServedEUTRAcellsToDeleteListENDCConfUpd",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd_tags_1,
+       sizeof(asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd_tags_1)
+               /sizeof(asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd_tags_1[0]), /* 1 */
+       asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd_tags_1, /* Same as above */
+       sizeof(asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd_tags_1)
+               /sizeof(asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd_tags_1[0]), /* 1 */
+       { &asn_OER_type_ServedEUTRAcellsToDeleteListENDCConfUpd_constr_1, &asn_PER_type_ServedEUTRAcellsToDeleteListENDCConfUpd_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ServedEUTRAcellsToDeleteListENDCConfUpd_1,
+       1,      /* Single element */
+       &asn_SPC_ServedEUTRAcellsToDeleteListENDCConfUpd_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/ServedEUTRAcellsToModifyListENDCConfUpd.c b/e2ap/lib/ServedEUTRAcellsToModifyListENDCConfUpd.c
new file mode 100644 (file)
index 0000000..0e848c4
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ServedEUTRAcellsToModifyListENDCConfUpd.h"
+
+#include "NRNeighbour-Information.h"
+#include "ProtocolExtensionContainer.h"
+static asn_oer_constraints_t asn_OER_type_ServedEUTRAcellsToModifyListENDCConfUpd_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+static asn_per_constraints_t asn_PER_type_ServedEUTRAcellsToModifyListENDCConfUpd_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd__Member, old_ECGI),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "old-ECGI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd__Member, servedEUTRACellInfo),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ServedCell_Information,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "servedEUTRACellInfo"
+               },
+       { ATF_POINTER, 2, offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd__Member, nrNeighbourInfo),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRNeighbour_Information,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nrNeighbourInfo"
+               },
+       { ATF_POINTER, 1, offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd__Member, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P99,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "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 }, /* old-ECGI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* servedEUTRACellInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nrNeighbourInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+       sizeof(struct ServedEUTRAcellsToModifyListENDCConfUpd__Member),
+       offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd__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 */
+       4,      /* First extension addition */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+       "SEQUENCE",
+       "SEQUENCE",
+       &asn_OP_SEQUENCE,
+       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, 0, SEQUENCE_constraint },
+       asn_MBR_Member_2,
+       4,      /* Elements count */
+       &asn_SPC_Member_specs_2 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_ServedEUTRAcellsToModifyListENDCConfUpd_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Member_2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ServedEUTRAcellsToModifyListENDCConfUpd_specs_1 = {
+       sizeof(struct ServedEUTRAcellsToModifyListENDCConfUpd),
+       offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd = {
+       "ServedEUTRAcellsToModifyListENDCConfUpd",
+       "ServedEUTRAcellsToModifyListENDCConfUpd",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_tags_1,
+       sizeof(asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_tags_1)
+               /sizeof(asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_tags_1[0]), /* 1 */
+       asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_tags_1, /* Same as above */
+       sizeof(asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_tags_1)
+               /sizeof(asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_tags_1[0]), /* 1 */
+       { &asn_OER_type_ServedEUTRAcellsToModifyListENDCConfUpd_constr_1, &asn_PER_type_ServedEUTRAcellsToModifyListENDCConfUpd_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ServedEUTRAcellsToModifyListENDCConfUpd_1,
+       1,      /* Single element */
+       &asn_SPC_ServedEUTRAcellsToModifyListENDCConfUpd_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/ServedNRCell-Information.c b/e2ap/lib/ServedNRCell-Information.c
new file mode 100644 (file)
index 0000000..1d4a6c8
--- /dev/null
@@ -0,0 +1,182 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ServedNRCell-Information.h"
+
+#include "ProtocolExtensionContainer.h"
+#include "FDD-InfoServedNRCell-Information.h"
+#include "TDD-InfoServedNRCell-Information.h"
+static asn_oer_constraints_t asn_OER_type_nrModeInfo_constr_7 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_nrModeInfo_constr_7 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_nrModeInfo_7[] = {
+       { ATF_POINTER, 0, offsetof(struct ServedNRCell_Information__nrModeInfo, choice.fdd),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_FDD_InfoServedNRCell_Information,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "fdd"
+               },
+       { ATF_POINTER, 0, offsetof(struct ServedNRCell_Information__nrModeInfo, choice.tdd),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TDD_InfoServedNRCell_Information,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "tdd"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_nrModeInfo_tag2el_7[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fdd */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tdd */
+};
+static asn_CHOICE_specifics_t asn_SPC_nrModeInfo_specs_7 = {
+       sizeof(struct ServedNRCell_Information__nrModeInfo),
+       offsetof(struct ServedNRCell_Information__nrModeInfo, _asn_ctx),
+       offsetof(struct ServedNRCell_Information__nrModeInfo, present),
+       sizeof(((struct ServedNRCell_Information__nrModeInfo *)0)->present),
+       asn_MAP_nrModeInfo_tag2el_7,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_nrModeInfo_7 = {
+       "nrModeInfo",
+       "nrModeInfo",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_nrModeInfo_constr_7, &asn_PER_type_nrModeInfo_constr_7, CHOICE_constraint },
+       asn_MBR_nrModeInfo_7,
+       2,      /* Elements count */
+       &asn_SPC_nrModeInfo_specs_7     /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ServedNRCell_Information_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedNRCell_Information, nrpCI),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRPCI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nrpCI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedNRCell_Information, nrCellID),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRCGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nrCellID"
+               },
+       { ATF_POINTER, 2, offsetof(struct ServedNRCell_Information, fiveGS_TAC),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_FiveGS_TAC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "fiveGS-TAC"
+               },
+       { ATF_POINTER, 1, offsetof(struct ServedNRCell_Information, configured_TAC),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TAC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "configured-TAC"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedNRCell_Information, broadcastPLMNs),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BroadcastPLMNs_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "broadcastPLMNs"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedNRCell_Information, nrModeInfo),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_nrModeInfo_7,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nrModeInfo"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedNRCell_Information, measurementTimingConfiguration),
+               (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_OCTET_STRING,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "measurementTimingConfiguration"
+               },
+       { ATF_POINTER, 1, offsetof(struct ServedNRCell_Information, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P92,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ServedNRCell_Information_oms_1[] = { 2, 3, 7 };
+static const ber_tlv_tag_t asn_DEF_ServedNRCell_Information_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ServedNRCell_Information_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrpCI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nrCellID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* fiveGS-TAC */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* configured-TAC */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* broadcastPLMNs */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* nrModeInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* measurementTimingConfiguration */
+    { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ServedNRCell_Information_specs_1 = {
+       sizeof(struct ServedNRCell_Information),
+       offsetof(struct ServedNRCell_Information, _asn_ctx),
+       asn_MAP_ServedNRCell_Information_tag2el_1,
+       8,      /* Count of tags in the map */
+       asn_MAP_ServedNRCell_Information_oms_1, /* Optional members */
+       3, 0,   /* Root/Additions */
+       8,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedNRCell_Information = {
+       "ServedNRCell-Information",
+       "ServedNRCell-Information",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ServedNRCell_Information_tags_1,
+       sizeof(asn_DEF_ServedNRCell_Information_tags_1)
+               /sizeof(asn_DEF_ServedNRCell_Information_tags_1[0]), /* 1 */
+       asn_DEF_ServedNRCell_Information_tags_1,        /* Same as above */
+       sizeof(asn_DEF_ServedNRCell_Information_tags_1)
+               /sizeof(asn_DEF_ServedNRCell_Information_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ServedNRCell_Information_1,
+       8,      /* Elements count */
+       &asn_SPC_ServedNRCell_Information_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/ServedNRCellsToActivate-Item.c b/e2ap/lib/ServedNRCellsToActivate-Item.c
new file mode 100644 (file)
index 0000000..5feef8f
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ServedNRCellsToActivate-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ServedNRCellsToActivate_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToActivate_Item, nrCellID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRCGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nrCellID"
+               },
+       { ATF_POINTER, 1, offsetof(struct ServedNRCellsToActivate_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P101,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ServedNRCellsToActivate_Item_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_ServedNRCellsToActivate_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ServedNRCellsToActivate_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrCellID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ServedNRCellsToActivate_Item_specs_1 = {
+       sizeof(struct ServedNRCellsToActivate_Item),
+       offsetof(struct ServedNRCellsToActivate_Item, _asn_ctx),
+       asn_MAP_ServedNRCellsToActivate_Item_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_ServedNRCellsToActivate_Item_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToActivate_Item = {
+       "ServedNRCellsToActivate-Item",
+       "ServedNRCellsToActivate-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ServedNRCellsToActivate_Item_tags_1,
+       sizeof(asn_DEF_ServedNRCellsToActivate_Item_tags_1)
+               /sizeof(asn_DEF_ServedNRCellsToActivate_Item_tags_1[0]), /* 1 */
+       asn_DEF_ServedNRCellsToActivate_Item_tags_1,    /* Same as above */
+       sizeof(asn_DEF_ServedNRCellsToActivate_Item_tags_1)
+               /sizeof(asn_DEF_ServedNRCellsToActivate_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ServedNRCellsToActivate_Item_1,
+       2,      /* Elements count */
+       &asn_SPC_ServedNRCellsToActivate_Item_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/ServedNRCellsToActivate.c b/e2ap/lib/ServedNRCellsToActivate.c
new file mode 100644 (file)
index 0000000..3e09a48
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ServedNRCellsToActivate.h"
+
+#include "ServedNRCellsToActivate-Item.h"
+static asn_oer_constraints_t asn_OER_type_ServedNRCellsToActivate_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16384)) */};
+static asn_per_constraints_t asn_PER_type_ServedNRCellsToActivate_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       14,  14,  1,  16384 }  /* (SIZE(1..16384)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ServedNRCellsToActivate_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedNRCellsToActivate_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedNRCellsToActivate_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ServedNRCellsToActivate_specs_1 = {
+       sizeof(struct ServedNRCellsToActivate),
+       offsetof(struct ServedNRCellsToActivate, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToActivate = {
+       "ServedNRCellsToActivate",
+       "ServedNRCellsToActivate",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ServedNRCellsToActivate_tags_1,
+       sizeof(asn_DEF_ServedNRCellsToActivate_tags_1)
+               /sizeof(asn_DEF_ServedNRCellsToActivate_tags_1[0]), /* 1 */
+       asn_DEF_ServedNRCellsToActivate_tags_1, /* Same as above */
+       sizeof(asn_DEF_ServedNRCellsToActivate_tags_1)
+               /sizeof(asn_DEF_ServedNRCellsToActivate_tags_1[0]), /* 1 */
+       { &asn_OER_type_ServedNRCellsToActivate_constr_1, &asn_PER_type_ServedNRCellsToActivate_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ServedNRCellsToActivate_1,
+       1,      /* Single element */
+       &asn_SPC_ServedNRCellsToActivate_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/ServedNRCellsToModify-Item.c b/e2ap/lib/ServedNRCellsToModify-Item.c
new file mode 100644 (file)
index 0000000..f88aeda
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ServedNRCellsToModify-Item.h"
+
+#include "NRNeighbour-Information.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ServedNRCellsToModify_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToModify_Item, old_nrcgi),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRCGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "old-nrcgi"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToModify_Item, servedNRCellInformation),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ServedNRCell_Information,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "servedNRCellInformation"
+               },
+       { ATF_POINTER, 3, offsetof(struct ServedNRCellsToModify_Item, nrNeighbourInformation),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRNeighbour_Information,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nrNeighbourInformation"
+               },
+       { ATF_POINTER, 2, offsetof(struct ServedNRCellsToModify_Item, nrDeactivationIndication),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_DeactivationIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nrDeactivationIndication"
+               },
+       { ATF_POINTER, 1, offsetof(struct ServedNRCellsToModify_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P100,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ServedNRCellsToModify_Item_oms_1[] = { 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_ServedNRCellsToModify_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ServedNRCellsToModify_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* old-nrcgi */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* servedNRCellInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nrNeighbourInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* nrDeactivationIndication */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ServedNRCellsToModify_Item_specs_1 = {
+       sizeof(struct ServedNRCellsToModify_Item),
+       offsetof(struct ServedNRCellsToModify_Item, _asn_ctx),
+       asn_MAP_ServedNRCellsToModify_Item_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_ServedNRCellsToModify_Item_oms_1,       /* Optional members */
+       3, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToModify_Item = {
+       "ServedNRCellsToModify-Item",
+       "ServedNRCellsToModify-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ServedNRCellsToModify_Item_tags_1,
+       sizeof(asn_DEF_ServedNRCellsToModify_Item_tags_1)
+               /sizeof(asn_DEF_ServedNRCellsToModify_Item_tags_1[0]), /* 1 */
+       asn_DEF_ServedNRCellsToModify_Item_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ServedNRCellsToModify_Item_tags_1)
+               /sizeof(asn_DEF_ServedNRCellsToModify_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ServedNRCellsToModify_Item_1,
+       5,      /* Elements count */
+       &asn_SPC_ServedNRCellsToModify_Item_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ServedNRcellsENDCX2ManagementList.c b/e2ap/lib/ServedNRcellsENDCX2ManagementList.c
new file mode 100644 (file)
index 0000000..79af672
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ServedNRcellsENDCX2ManagementList.h"
+
+#include "NRNeighbour-Information.h"
+#include "ProtocolExtensionContainer.h"
+static asn_oer_constraints_t asn_OER_type_ServedNRcellsENDCX2ManagementList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16384)) */};
+static asn_per_constraints_t asn_PER_type_ServedNRcellsENDCX2ManagementList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       14,  14,  1,  16384 }  /* (SIZE(1..16384)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ServedNRcellsENDCX2ManagementList__Member, servedNRCellInfo),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ServedNRCell_Information,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "servedNRCellInfo"
+               },
+       { ATF_POINTER, 2, offsetof(struct ServedNRcellsENDCX2ManagementList__Member, nRNeighbourInfo),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRNeighbour_Information,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nRNeighbourInfo"
+               },
+       { ATF_POINTER, 1, offsetof(struct ServedNRcellsENDCX2ManagementList__Member, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P91,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "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 }, /* servedNRCellInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRNeighbourInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+       sizeof(struct ServedNRcellsENDCX2ManagementList__Member),
+       offsetof(struct ServedNRcellsENDCX2ManagementList__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 */
+       3,      /* First extension addition */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+       "SEQUENCE",
+       "SEQUENCE",
+       &asn_OP_SEQUENCE,
+       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, 0, SEQUENCE_constraint },
+       asn_MBR_Member_2,
+       3,      /* Elements count */
+       &asn_SPC_Member_specs_2 /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_ServedNRcellsENDCX2ManagementList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_Member_2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedNRcellsENDCX2ManagementList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ServedNRcellsENDCX2ManagementList_specs_1 = {
+       sizeof(struct ServedNRcellsENDCX2ManagementList),
+       offsetof(struct ServedNRcellsENDCX2ManagementList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedNRcellsENDCX2ManagementList = {
+       "ServedNRcellsENDCX2ManagementList",
+       "ServedNRcellsENDCX2ManagementList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ServedNRcellsENDCX2ManagementList_tags_1,
+       sizeof(asn_DEF_ServedNRcellsENDCX2ManagementList_tags_1)
+               /sizeof(asn_DEF_ServedNRcellsENDCX2ManagementList_tags_1[0]), /* 1 */
+       asn_DEF_ServedNRcellsENDCX2ManagementList_tags_1,       /* Same as above */
+       sizeof(asn_DEF_ServedNRcellsENDCX2ManagementList_tags_1)
+               /sizeof(asn_DEF_ServedNRcellsENDCX2ManagementList_tags_1[0]), /* 1 */
+       { &asn_OER_type_ServedNRcellsENDCX2ManagementList_constr_1, &asn_PER_type_ServedNRcellsENDCX2ManagementList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ServedNRcellsENDCX2ManagementList_1,
+       1,      /* Single element */
+       &asn_SPC_ServedNRcellsENDCX2ManagementList_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/ServedNRcellsToDeleteENDCConfUpdList.c b/e2ap/lib/ServedNRcellsToDeleteENDCConfUpdList.c
new file mode 100644 (file)
index 0000000..c3601b2
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ServedNRcellsToDeleteENDCConfUpdList.h"
+
+#include "NRCGI.h"
+static asn_oer_constraints_t asn_OER_type_ServedNRcellsToDeleteENDCConfUpdList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16384)) */};
+static asn_per_constraints_t asn_PER_type_ServedNRcellsToDeleteENDCConfUpdList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       14,  14,  1,  16384 }  /* (SIZE(1..16384)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ServedNRcellsToDeleteENDCConfUpdList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_NRCGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedNRcellsToDeleteENDCConfUpdList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ServedNRcellsToDeleteENDCConfUpdList_specs_1 = {
+       sizeof(struct ServedNRcellsToDeleteENDCConfUpdList),
+       offsetof(struct ServedNRcellsToDeleteENDCConfUpdList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedNRcellsToDeleteENDCConfUpdList = {
+       "ServedNRcellsToDeleteENDCConfUpdList",
+       "ServedNRcellsToDeleteENDCConfUpdList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ServedNRcellsToDeleteENDCConfUpdList_tags_1,
+       sizeof(asn_DEF_ServedNRcellsToDeleteENDCConfUpdList_tags_1)
+               /sizeof(asn_DEF_ServedNRcellsToDeleteENDCConfUpdList_tags_1[0]), /* 1 */
+       asn_DEF_ServedNRcellsToDeleteENDCConfUpdList_tags_1,    /* Same as above */
+       sizeof(asn_DEF_ServedNRcellsToDeleteENDCConfUpdList_tags_1)
+               /sizeof(asn_DEF_ServedNRcellsToDeleteENDCConfUpdList_tags_1[0]), /* 1 */
+       { &asn_OER_type_ServedNRcellsToDeleteENDCConfUpdList_constr_1, &asn_PER_type_ServedNRcellsToDeleteENDCConfUpdList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ServedNRcellsToDeleteENDCConfUpdList_1,
+       1,      /* Single element */
+       &asn_SPC_ServedNRcellsToDeleteENDCConfUpdList_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/ServedNRcellsToModifyENDCConfUpdList.c b/e2ap/lib/ServedNRcellsToModifyENDCConfUpdList.c
new file mode 100644 (file)
index 0000000..2ffe9ff
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ServedNRcellsToModifyENDCConfUpdList.h"
+
+#include "ServedNRCellsToModify-Item.h"
+static asn_oer_constraints_t asn_OER_type_ServedNRcellsToModifyENDCConfUpdList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16384)) */};
+static asn_per_constraints_t asn_PER_type_ServedNRcellsToModifyENDCConfUpdList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       14,  14,  1,  16384 }  /* (SIZE(1..16384)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ServedNRcellsToModifyENDCConfUpdList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ServedNRCellsToModify_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_ServedNRcellsToModifyENDCConfUpdList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ServedNRcellsToModifyENDCConfUpdList_specs_1 = {
+       sizeof(struct ServedNRcellsToModifyENDCConfUpdList),
+       offsetof(struct ServedNRcellsToModifyENDCConfUpdList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ServedNRcellsToModifyENDCConfUpdList = {
+       "ServedNRcellsToModifyENDCConfUpdList",
+       "ServedNRcellsToModifyENDCConfUpdList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_ServedNRcellsToModifyENDCConfUpdList_tags_1,
+       sizeof(asn_DEF_ServedNRcellsToModifyENDCConfUpdList_tags_1)
+               /sizeof(asn_DEF_ServedNRcellsToModifyENDCConfUpdList_tags_1[0]), /* 1 */
+       asn_DEF_ServedNRcellsToModifyENDCConfUpdList_tags_1,    /* Same as above */
+       sizeof(asn_DEF_ServedNRcellsToModifyENDCConfUpdList_tags_1)
+               /sizeof(asn_DEF_ServedNRcellsToModifyENDCConfUpdList_tags_1[0]), /* 1 */
+       { &asn_OER_type_ServedNRcellsToModifyENDCConfUpdList_constr_1, &asn_PER_type_ServedNRcellsToModifyENDCConfUpdList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_ServedNRcellsToModifyENDCConfUpdList_1,
+       1,      /* Single element */
+       &asn_SPC_ServedNRcellsToModifyENDCConfUpdList_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/ServiceType.c b/e2ap/lib/ServiceType.c
new file mode 100644 (file)
index 0000000..df3d161
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ServiceType.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ServiceType_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_ServiceType_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_ServiceType_value2enum_1[] = {
+       { 0,    25,     "qMC-for-streaming-service" },
+       { 1,    20,     "qMC-for-MTSI-service" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_ServiceType_enum2value_1[] = {
+       1,      /* qMC-for-MTSI-service(1) */
+       0       /* qMC-for-streaming-service(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_ServiceType_specs_1 = {
+       asn_MAP_ServiceType_value2enum_1,       /* "tag" => N; sorted by tag */
+       asn_MAP_ServiceType_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_ServiceType_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ServiceType = {
+       "ServiceType",
+       "ServiceType",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_ServiceType_tags_1,
+       sizeof(asn_DEF_ServiceType_tags_1)
+               /sizeof(asn_DEF_ServiceType_tags_1[0]), /* 1 */
+       asn_DEF_ServiceType_tags_1,     /* Same as above */
+       sizeof(asn_DEF_ServiceType_tags_1)
+               /sizeof(asn_DEF_ServiceType_tags_1[0]), /* 1 */
+       { &asn_OER_type_ServiceType_constr_1, &asn_PER_type_ServiceType_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_ServiceType_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNB-UE-X2AP-ID.c b/e2ap/lib/SgNB-UE-X2AP-ID.c
new file mode 100644 (file)
index 0000000..27db8d8
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNB-UE-X2AP-ID.h"
+
+int
+SgNB_UE_X2AP_ID_constraint(const 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 asn_oer_constraints_t asn_OER_type_SgNB_UE_X2AP_ID_constr_1 CC_NOTUSED = {
+       { 4, 1 }        /* (0..4294967295) */,
+       -1};
+asn_per_constraints_t asn_PER_type_SgNB_UE_X2AP_ID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       32, -1,  0,  4294967295 }      /* (0..4294967295) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+const asn_INTEGER_specifics_t asn_SPC_SgNB_UE_X2AP_ID_specs_1 = {
+       0,      0,      0,      0,      0,
+       0,      /* Native long size */
+       1       /* Unsigned representation */
+};
+static const ber_tlv_tag_t asn_DEF_SgNB_UE_X2AP_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SgNB_UE_X2AP_ID = {
+       "SgNB-UE-X2AP-ID",
+       "SgNB-UE-X2AP-ID",
+       &asn_OP_NativeInteger,
+       asn_DEF_SgNB_UE_X2AP_ID_tags_1,
+       sizeof(asn_DEF_SgNB_UE_X2AP_ID_tags_1)
+               /sizeof(asn_DEF_SgNB_UE_X2AP_ID_tags_1[0]), /* 1 */
+       asn_DEF_SgNB_UE_X2AP_ID_tags_1, /* Same as above */
+       sizeof(asn_DEF_SgNB_UE_X2AP_ID_tags_1)
+               /sizeof(asn_DEF_SgNB_UE_X2AP_ID_tags_1[0]), /* 1 */
+       { &asn_OER_type_SgNB_UE_X2AP_ID_constr_1, &asn_PER_type_SgNB_UE_X2AP_ID_constr_1, SgNB_UE_X2AP_ID_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_SgNB_UE_X2AP_ID_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBActivityNotification.c b/e2ap/lib/SgNBActivityNotification.c
new file mode 100644 (file)
index 0000000..3f96c5a
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBActivityNotification.h"
+
+asn_TYPE_member_t asn_MBR_SgNBActivityNotification_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P102,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBActivityNotification_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBActivityNotification_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBActivityNotification_specs_1 = {
+       sizeof(struct SgNBActivityNotification),
+       offsetof(struct SgNBActivityNotification, _asn_ctx),
+       asn_MAP_SgNBActivityNotification_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBActivityNotification = {
+       "SgNBActivityNotification",
+       "SgNBActivityNotification",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBActivityNotification_tags_1,
+       sizeof(asn_DEF_SgNBActivityNotification_tags_1)
+               /sizeof(asn_DEF_SgNBActivityNotification_tags_1[0]), /* 1 */
+       asn_DEF_SgNBActivityNotification_tags_1,        /* Same as above */
+       sizeof(asn_DEF_SgNBActivityNotification_tags_1)
+               /sizeof(asn_DEF_SgNBActivityNotification_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBActivityNotification_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBActivityNotification_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBAdditionRequest.c b/e2ap/lib/SgNBAdditionRequest.c
new file mode 100644 (file)
index 0000000..2b84cd7
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBAdditionRequest.h"
+
+asn_TYPE_member_t asn_MBR_SgNBAdditionRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P64,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBAdditionRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBAdditionRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequest_specs_1 = {
+       sizeof(struct SgNBAdditionRequest),
+       offsetof(struct SgNBAdditionRequest, _asn_ctx),
+       asn_MAP_SgNBAdditionRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequest = {
+       "SgNBAdditionRequest",
+       "SgNBAdditionRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBAdditionRequest_tags_1,
+       sizeof(asn_DEF_SgNBAdditionRequest_tags_1)
+               /sizeof(asn_DEF_SgNBAdditionRequest_tags_1[0]), /* 1 */
+       asn_DEF_SgNBAdditionRequest_tags_1,     /* Same as above */
+       sizeof(asn_DEF_SgNBAdditionRequest_tags_1)
+               /sizeof(asn_DEF_SgNBAdditionRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBAdditionRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBAdditionRequest_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBAdditionRequestAcknowledge.c b/e2ap/lib/SgNBAdditionRequestAcknowledge.c
new file mode 100644 (file)
index 0000000..c1b4a37
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBAdditionRequestAcknowledge.h"
+
+asn_TYPE_member_t asn_MBR_SgNBAdditionRequestAcknowledge_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P65,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBAdditionRequestAcknowledge_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBAdditionRequestAcknowledge_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequestAcknowledge_specs_1 = {
+       sizeof(struct SgNBAdditionRequestAcknowledge),
+       offsetof(struct SgNBAdditionRequestAcknowledge, _asn_ctx),
+       asn_MAP_SgNBAdditionRequestAcknowledge_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestAcknowledge = {
+       "SgNBAdditionRequestAcknowledge",
+       "SgNBAdditionRequestAcknowledge",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBAdditionRequestAcknowledge_tags_1,
+       sizeof(asn_DEF_SgNBAdditionRequestAcknowledge_tags_1)
+               /sizeof(asn_DEF_SgNBAdditionRequestAcknowledge_tags_1[0]), /* 1 */
+       asn_DEF_SgNBAdditionRequestAcknowledge_tags_1,  /* Same as above */
+       sizeof(asn_DEF_SgNBAdditionRequestAcknowledge_tags_1)
+               /sizeof(asn_DEF_SgNBAdditionRequestAcknowledge_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBAdditionRequestAcknowledge_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBAdditionRequestAcknowledge_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBAdditionRequestReject.c b/e2ap/lib/SgNBAdditionRequestReject.c
new file mode 100644 (file)
index 0000000..a1fd750
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBAdditionRequestReject.h"
+
+asn_TYPE_member_t asn_MBR_SgNBAdditionRequestReject_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P66,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBAdditionRequestReject_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBAdditionRequestReject_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequestReject_specs_1 = {
+       sizeof(struct SgNBAdditionRequestReject),
+       offsetof(struct SgNBAdditionRequestReject, _asn_ctx),
+       asn_MAP_SgNBAdditionRequestReject_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestReject = {
+       "SgNBAdditionRequestReject",
+       "SgNBAdditionRequestReject",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBAdditionRequestReject_tags_1,
+       sizeof(asn_DEF_SgNBAdditionRequestReject_tags_1)
+               /sizeof(asn_DEF_SgNBAdditionRequestReject_tags_1[0]), /* 1 */
+       asn_DEF_SgNBAdditionRequestReject_tags_1,       /* Same as above */
+       sizeof(asn_DEF_SgNBAdditionRequestReject_tags_1)
+               /sizeof(asn_DEF_SgNBAdditionRequestReject_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBAdditionRequestReject_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBAdditionRequestReject_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBChangeConfirm.c b/e2ap/lib/SgNBChangeConfirm.c
new file mode 100644 (file)
index 0000000..18d348e
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBChangeConfirm.h"
+
+asn_TYPE_member_t asn_MBR_SgNBChangeConfirm_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P81,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBChangeConfirm_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBChangeConfirm_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeConfirm_specs_1 = {
+       sizeof(struct SgNBChangeConfirm),
+       offsetof(struct SgNBChangeConfirm, _asn_ctx),
+       asn_MAP_SgNBChangeConfirm_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBChangeConfirm = {
+       "SgNBChangeConfirm",
+       "SgNBChangeConfirm",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBChangeConfirm_tags_1,
+       sizeof(asn_DEF_SgNBChangeConfirm_tags_1)
+               /sizeof(asn_DEF_SgNBChangeConfirm_tags_1[0]), /* 1 */
+       asn_DEF_SgNBChangeConfirm_tags_1,       /* Same as above */
+       sizeof(asn_DEF_SgNBChangeConfirm_tags_1)
+               /sizeof(asn_DEF_SgNBChangeConfirm_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBChangeConfirm_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBChangeConfirm_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBChangeRefuse.c b/e2ap/lib/SgNBChangeRefuse.c
new file mode 100644 (file)
index 0000000..1b15ab7
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBChangeRefuse.h"
+
+asn_TYPE_member_t asn_MBR_SgNBChangeRefuse_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P83,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBChangeRefuse_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBChangeRefuse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeRefuse_specs_1 = {
+       sizeof(struct SgNBChangeRefuse),
+       offsetof(struct SgNBChangeRefuse, _asn_ctx),
+       asn_MAP_SgNBChangeRefuse_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBChangeRefuse = {
+       "SgNBChangeRefuse",
+       "SgNBChangeRefuse",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBChangeRefuse_tags_1,
+       sizeof(asn_DEF_SgNBChangeRefuse_tags_1)
+               /sizeof(asn_DEF_SgNBChangeRefuse_tags_1[0]), /* 1 */
+       asn_DEF_SgNBChangeRefuse_tags_1,        /* Same as above */
+       sizeof(asn_DEF_SgNBChangeRefuse_tags_1)
+               /sizeof(asn_DEF_SgNBChangeRefuse_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBChangeRefuse_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBChangeRefuse_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBChangeRequired.c b/e2ap/lib/SgNBChangeRequired.c
new file mode 100644 (file)
index 0000000..d896b79
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBChangeRequired.h"
+
+asn_TYPE_member_t asn_MBR_SgNBChangeRequired_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P80,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBChangeRequired_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBChangeRequired_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeRequired_specs_1 = {
+       sizeof(struct SgNBChangeRequired),
+       offsetof(struct SgNBChangeRequired, _asn_ctx),
+       asn_MAP_SgNBChangeRequired_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBChangeRequired = {
+       "SgNBChangeRequired",
+       "SgNBChangeRequired",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBChangeRequired_tags_1,
+       sizeof(asn_DEF_SgNBChangeRequired_tags_1)
+               /sizeof(asn_DEF_SgNBChangeRequired_tags_1[0]), /* 1 */
+       asn_DEF_SgNBChangeRequired_tags_1,      /* Same as above */
+       sizeof(asn_DEF_SgNBChangeRequired_tags_1)
+               /sizeof(asn_DEF_SgNBChangeRequired_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBChangeRequired_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBChangeRequired_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBCoordinationAssistanceInformation.c b/e2ap/lib/SgNBCoordinationAssistanceInformation.c
new file mode 100644 (file)
index 0000000..7a8d3b1
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBCoordinationAssistanceInformation.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_SgNBCoordinationAssistanceInformation_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_SgNBCoordinationAssistanceInformation_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_SgNBCoordinationAssistanceInformation_value2enum_1[] = {
+       { 0,    25,     "coordination-not-required" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_SgNBCoordinationAssistanceInformation_enum2value_1[] = {
+       0       /* coordination-not-required(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_SgNBCoordinationAssistanceInformation_specs_1 = {
+       asn_MAP_SgNBCoordinationAssistanceInformation_value2enum_1,     /* "tag" => N; sorted by tag */
+       asn_MAP_SgNBCoordinationAssistanceInformation_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_SgNBCoordinationAssistanceInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBCoordinationAssistanceInformation = {
+       "SgNBCoordinationAssistanceInformation",
+       "SgNBCoordinationAssistanceInformation",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_SgNBCoordinationAssistanceInformation_tags_1,
+       sizeof(asn_DEF_SgNBCoordinationAssistanceInformation_tags_1)
+               /sizeof(asn_DEF_SgNBCoordinationAssistanceInformation_tags_1[0]), /* 1 */
+       asn_DEF_SgNBCoordinationAssistanceInformation_tags_1,   /* Same as above */
+       sizeof(asn_DEF_SgNBCoordinationAssistanceInformation_tags_1)
+               /sizeof(asn_DEF_SgNBCoordinationAssistanceInformation_tags_1[0]), /* 1 */
+       { &asn_OER_type_SgNBCoordinationAssistanceInformation_constr_1, &asn_PER_type_SgNBCoordinationAssistanceInformation_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_SgNBCoordinationAssistanceInformation_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBCounterCheckRequest.c b/e2ap/lib/SgNBCounterCheckRequest.c
new file mode 100644 (file)
index 0000000..3fb532c
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBCounterCheckRequest.h"
+
+asn_TYPE_member_t asn_MBR_SgNBCounterCheckRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBCounterCheckRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P79,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBCounterCheckRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBCounterCheckRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBCounterCheckRequest_specs_1 = {
+       sizeof(struct SgNBCounterCheckRequest),
+       offsetof(struct SgNBCounterCheckRequest, _asn_ctx),
+       asn_MAP_SgNBCounterCheckRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBCounterCheckRequest = {
+       "SgNBCounterCheckRequest",
+       "SgNBCounterCheckRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBCounterCheckRequest_tags_1,
+       sizeof(asn_DEF_SgNBCounterCheckRequest_tags_1)
+               /sizeof(asn_DEF_SgNBCounterCheckRequest_tags_1[0]), /* 1 */
+       asn_DEF_SgNBCounterCheckRequest_tags_1, /* Same as above */
+       sizeof(asn_DEF_SgNBCounterCheckRequest_tags_1)
+               /sizeof(asn_DEF_SgNBCounterCheckRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBCounterCheckRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBCounterCheckRequest_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBModificationConfirm.c b/e2ap/lib/SgNBModificationConfirm.c
new file mode 100644 (file)
index 0000000..0efb766
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBModificationConfirm.h"
+
+asn_TYPE_member_t asn_MBR_SgNBModificationConfirm_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P72,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBModificationConfirm_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationConfirm_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationConfirm_specs_1 = {
+       sizeof(struct SgNBModificationConfirm),
+       offsetof(struct SgNBModificationConfirm, _asn_ctx),
+       asn_MAP_SgNBModificationConfirm_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBModificationConfirm = {
+       "SgNBModificationConfirm",
+       "SgNBModificationConfirm",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBModificationConfirm_tags_1,
+       sizeof(asn_DEF_SgNBModificationConfirm_tags_1)
+               /sizeof(asn_DEF_SgNBModificationConfirm_tags_1[0]), /* 1 */
+       asn_DEF_SgNBModificationConfirm_tags_1, /* Same as above */
+       sizeof(asn_DEF_SgNBModificationConfirm_tags_1)
+               /sizeof(asn_DEF_SgNBModificationConfirm_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBModificationConfirm_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBModificationConfirm_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBModificationRefuse.c b/e2ap/lib/SgNBModificationRefuse.c
new file mode 100644 (file)
index 0000000..7f6f1a0
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBModificationRefuse.h"
+
+asn_TYPE_member_t asn_MBR_SgNBModificationRefuse_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P73,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBModificationRefuse_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRefuse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRefuse_specs_1 = {
+       sizeof(struct SgNBModificationRefuse),
+       offsetof(struct SgNBModificationRefuse, _asn_ctx),
+       asn_MAP_SgNBModificationRefuse_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBModificationRefuse = {
+       "SgNBModificationRefuse",
+       "SgNBModificationRefuse",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBModificationRefuse_tags_1,
+       sizeof(asn_DEF_SgNBModificationRefuse_tags_1)
+               /sizeof(asn_DEF_SgNBModificationRefuse_tags_1[0]), /* 1 */
+       asn_DEF_SgNBModificationRefuse_tags_1,  /* Same as above */
+       sizeof(asn_DEF_SgNBModificationRefuse_tags_1)
+               /sizeof(asn_DEF_SgNBModificationRefuse_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBModificationRefuse_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBModificationRefuse_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBModificationRequest.c b/e2ap/lib/SgNBModificationRequest.c
new file mode 100644 (file)
index 0000000..ffdad84
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBModificationRequest.h"
+
+asn_TYPE_member_t asn_MBR_SgNBModificationRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P68,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBModificationRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequest_specs_1 = {
+       sizeof(struct SgNBModificationRequest),
+       offsetof(struct SgNBModificationRequest, _asn_ctx),
+       asn_MAP_SgNBModificationRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequest = {
+       "SgNBModificationRequest",
+       "SgNBModificationRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBModificationRequest_tags_1,
+       sizeof(asn_DEF_SgNBModificationRequest_tags_1)
+               /sizeof(asn_DEF_SgNBModificationRequest_tags_1[0]), /* 1 */
+       asn_DEF_SgNBModificationRequest_tags_1, /* Same as above */
+       sizeof(asn_DEF_SgNBModificationRequest_tags_1)
+               /sizeof(asn_DEF_SgNBModificationRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBModificationRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBModificationRequest_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBModificationRequestAcknowledge.c b/e2ap/lib/SgNBModificationRequestAcknowledge.c
new file mode 100644 (file)
index 0000000..233827c
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBModificationRequestAcknowledge.h"
+
+asn_TYPE_member_t asn_MBR_SgNBModificationRequestAcknowledge_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P69,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBModificationRequestAcknowledge_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRequestAcknowledge_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequestAcknowledge_specs_1 = {
+       sizeof(struct SgNBModificationRequestAcknowledge),
+       offsetof(struct SgNBModificationRequestAcknowledge, _asn_ctx),
+       asn_MAP_SgNBModificationRequestAcknowledge_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestAcknowledge = {
+       "SgNBModificationRequestAcknowledge",
+       "SgNBModificationRequestAcknowledge",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBModificationRequestAcknowledge_tags_1,
+       sizeof(asn_DEF_SgNBModificationRequestAcknowledge_tags_1)
+               /sizeof(asn_DEF_SgNBModificationRequestAcknowledge_tags_1[0]), /* 1 */
+       asn_DEF_SgNBModificationRequestAcknowledge_tags_1,      /* Same as above */
+       sizeof(asn_DEF_SgNBModificationRequestAcknowledge_tags_1)
+               /sizeof(asn_DEF_SgNBModificationRequestAcknowledge_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBModificationRequestAcknowledge_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBModificationRequestAcknowledge_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBModificationRequestReject.c b/e2ap/lib/SgNBModificationRequestReject.c
new file mode 100644 (file)
index 0000000..a49f44c
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBModificationRequestReject.h"
+
+asn_TYPE_member_t asn_MBR_SgNBModificationRequestReject_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P70,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBModificationRequestReject_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRequestReject_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequestReject_specs_1 = {
+       sizeof(struct SgNBModificationRequestReject),
+       offsetof(struct SgNBModificationRequestReject, _asn_ctx),
+       asn_MAP_SgNBModificationRequestReject_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestReject = {
+       "SgNBModificationRequestReject",
+       "SgNBModificationRequestReject",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBModificationRequestReject_tags_1,
+       sizeof(asn_DEF_SgNBModificationRequestReject_tags_1)
+               /sizeof(asn_DEF_SgNBModificationRequestReject_tags_1[0]), /* 1 */
+       asn_DEF_SgNBModificationRequestReject_tags_1,   /* Same as above */
+       sizeof(asn_DEF_SgNBModificationRequestReject_tags_1)
+               /sizeof(asn_DEF_SgNBModificationRequestReject_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBModificationRequestReject_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBModificationRequestReject_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBModificationRequired.c b/e2ap/lib/SgNBModificationRequired.c
new file mode 100644 (file)
index 0000000..3610301
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBModificationRequired.h"
+
+asn_TYPE_member_t asn_MBR_SgNBModificationRequired_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P71,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBModificationRequired_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRequired_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequired_specs_1 = {
+       sizeof(struct SgNBModificationRequired),
+       offsetof(struct SgNBModificationRequired, _asn_ctx),
+       asn_MAP_SgNBModificationRequired_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequired = {
+       "SgNBModificationRequired",
+       "SgNBModificationRequired",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBModificationRequired_tags_1,
+       sizeof(asn_DEF_SgNBModificationRequired_tags_1)
+               /sizeof(asn_DEF_SgNBModificationRequired_tags_1[0]), /* 1 */
+       asn_DEF_SgNBModificationRequired_tags_1,        /* Same as above */
+       sizeof(asn_DEF_SgNBModificationRequired_tags_1)
+               /sizeof(asn_DEF_SgNBModificationRequired_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBModificationRequired_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBModificationRequired_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBReconfigurationComplete.c b/e2ap/lib/SgNBReconfigurationComplete.c
new file mode 100644 (file)
index 0000000..9a55a3f
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBReconfigurationComplete.h"
+
+asn_TYPE_member_t asn_MBR_SgNBReconfigurationComplete_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReconfigurationComplete, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P67,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBReconfigurationComplete_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBReconfigurationComplete_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBReconfigurationComplete_specs_1 = {
+       sizeof(struct SgNBReconfigurationComplete),
+       offsetof(struct SgNBReconfigurationComplete, _asn_ctx),
+       asn_MAP_SgNBReconfigurationComplete_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBReconfigurationComplete = {
+       "SgNBReconfigurationComplete",
+       "SgNBReconfigurationComplete",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBReconfigurationComplete_tags_1,
+       sizeof(asn_DEF_SgNBReconfigurationComplete_tags_1)
+               /sizeof(asn_DEF_SgNBReconfigurationComplete_tags_1[0]), /* 1 */
+       asn_DEF_SgNBReconfigurationComplete_tags_1,     /* Same as above */
+       sizeof(asn_DEF_SgNBReconfigurationComplete_tags_1)
+               /sizeof(asn_DEF_SgNBReconfigurationComplete_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBReconfigurationComplete_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBReconfigurationComplete_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBReleaseConfirm.c b/e2ap/lib/SgNBReleaseConfirm.c
new file mode 100644 (file)
index 0000000..2352e70
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBReleaseConfirm.h"
+
+asn_TYPE_member_t asn_MBR_SgNBReleaseConfirm_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P78,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBReleaseConfirm_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseConfirm_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseConfirm_specs_1 = {
+       sizeof(struct SgNBReleaseConfirm),
+       offsetof(struct SgNBReleaseConfirm, _asn_ctx),
+       asn_MAP_SgNBReleaseConfirm_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBReleaseConfirm = {
+       "SgNBReleaseConfirm",
+       "SgNBReleaseConfirm",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBReleaseConfirm_tags_1,
+       sizeof(asn_DEF_SgNBReleaseConfirm_tags_1)
+               /sizeof(asn_DEF_SgNBReleaseConfirm_tags_1[0]), /* 1 */
+       asn_DEF_SgNBReleaseConfirm_tags_1,      /* Same as above */
+       sizeof(asn_DEF_SgNBReleaseConfirm_tags_1)
+               /sizeof(asn_DEF_SgNBReleaseConfirm_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBReleaseConfirm_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBReleaseConfirm_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBReleaseRequest.c b/e2ap/lib/SgNBReleaseRequest.c
new file mode 100644 (file)
index 0000000..fcc5487
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBReleaseRequest.h"
+
+asn_TYPE_member_t asn_MBR_SgNBReleaseRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P74,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBReleaseRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequest_specs_1 = {
+       sizeof(struct SgNBReleaseRequest),
+       offsetof(struct SgNBReleaseRequest, _asn_ctx),
+       asn_MAP_SgNBReleaseRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequest = {
+       "SgNBReleaseRequest",
+       "SgNBReleaseRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBReleaseRequest_tags_1,
+       sizeof(asn_DEF_SgNBReleaseRequest_tags_1)
+               /sizeof(asn_DEF_SgNBReleaseRequest_tags_1[0]), /* 1 */
+       asn_DEF_SgNBReleaseRequest_tags_1,      /* Same as above */
+       sizeof(asn_DEF_SgNBReleaseRequest_tags_1)
+               /sizeof(asn_DEF_SgNBReleaseRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBReleaseRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBReleaseRequest_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBReleaseRequestAcknowledge.c b/e2ap/lib/SgNBReleaseRequestAcknowledge.c
new file mode 100644 (file)
index 0000000..3140570
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBReleaseRequestAcknowledge.h"
+
+asn_TYPE_member_t asn_MBR_SgNBReleaseRequestAcknowledge_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P75,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBReleaseRequestAcknowledge_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseRequestAcknowledge_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequestAcknowledge_specs_1 = {
+       sizeof(struct SgNBReleaseRequestAcknowledge),
+       offsetof(struct SgNBReleaseRequestAcknowledge, _asn_ctx),
+       asn_MAP_SgNBReleaseRequestAcknowledge_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestAcknowledge = {
+       "SgNBReleaseRequestAcknowledge",
+       "SgNBReleaseRequestAcknowledge",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBReleaseRequestAcknowledge_tags_1,
+       sizeof(asn_DEF_SgNBReleaseRequestAcknowledge_tags_1)
+               /sizeof(asn_DEF_SgNBReleaseRequestAcknowledge_tags_1[0]), /* 1 */
+       asn_DEF_SgNBReleaseRequestAcknowledge_tags_1,   /* Same as above */
+       sizeof(asn_DEF_SgNBReleaseRequestAcknowledge_tags_1)
+               /sizeof(asn_DEF_SgNBReleaseRequestAcknowledge_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBReleaseRequestAcknowledge_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBReleaseRequestAcknowledge_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBReleaseRequestReject.c b/e2ap/lib/SgNBReleaseRequestReject.c
new file mode 100644 (file)
index 0000000..5c795ec
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBReleaseRequestReject.h"
+
+asn_TYPE_member_t asn_MBR_SgNBReleaseRequestReject_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P76,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBReleaseRequestReject_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseRequestReject_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequestReject_specs_1 = {
+       sizeof(struct SgNBReleaseRequestReject),
+       offsetof(struct SgNBReleaseRequestReject, _asn_ctx),
+       asn_MAP_SgNBReleaseRequestReject_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestReject = {
+       "SgNBReleaseRequestReject",
+       "SgNBReleaseRequestReject",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBReleaseRequestReject_tags_1,
+       sizeof(asn_DEF_SgNBReleaseRequestReject_tags_1)
+               /sizeof(asn_DEF_SgNBReleaseRequestReject_tags_1[0]), /* 1 */
+       asn_DEF_SgNBReleaseRequestReject_tags_1,        /* Same as above */
+       sizeof(asn_DEF_SgNBReleaseRequestReject_tags_1)
+               /sizeof(asn_DEF_SgNBReleaseRequestReject_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBReleaseRequestReject_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBReleaseRequestReject_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBReleaseRequired.c b/e2ap/lib/SgNBReleaseRequired.c
new file mode 100644 (file)
index 0000000..248aaed
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBReleaseRequired.h"
+
+asn_TYPE_member_t asn_MBR_SgNBReleaseRequired_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P77,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SgNBReleaseRequired_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseRequired_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequired_specs_1 = {
+       sizeof(struct SgNBReleaseRequired),
+       offsetof(struct SgNBReleaseRequired, _asn_ctx),
+       asn_MAP_SgNBReleaseRequired_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequired = {
+       "SgNBReleaseRequired",
+       "SgNBReleaseRequired",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBReleaseRequired_tags_1,
+       sizeof(asn_DEF_SgNBReleaseRequired_tags_1)
+               /sizeof(asn_DEF_SgNBReleaseRequired_tags_1[0]), /* 1 */
+       asn_DEF_SgNBReleaseRequired_tags_1,     /* Same as above */
+       sizeof(asn_DEF_SgNBReleaseRequired_tags_1)
+               /sizeof(asn_DEF_SgNBReleaseRequired_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBReleaseRequired_1,
+       1,      /* Elements count */
+       &asn_SPC_SgNBReleaseRequired_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBResourceCoordinationInformation.c b/e2ap/lib/SgNBResourceCoordinationInformation.c
new file mode 100644 (file)
index 0000000..cd9ab64
--- /dev/null
@@ -0,0 +1,161 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBResourceCoordinationInformation.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_uLCoordinationInformation_constraint_1(const 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 >= 6 && size <= 4400)) {
+               /* 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_dLCoordinationInformation_constraint_1(const 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 >= 6 && size <= 4400)) {
+               /* 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_oer_constraints_t asn_OER_memb_uLCoordinationInformation_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+static asn_per_constraints_t asn_PER_memb_uLCoordinationInformation_constr_3 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  13,  13,  6,  4400 }       /* (SIZE(6..4400,...)) */,
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_dLCoordinationInformation_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+static asn_per_constraints_t asn_PER_memb_dLCoordinationInformation_constr_4 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  13,  13,  6,  4400 }       /* (SIZE(6..4400,...)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_SgNBResourceCoordinationInformation_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBResourceCoordinationInformation, nR_CGI),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRCGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nR-CGI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SgNBResourceCoordinationInformation, uLCoordinationInformation),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_uLCoordinationInformation_constr_3, &asn_PER_memb_uLCoordinationInformation_constr_3,  memb_uLCoordinationInformation_constraint_1 },
+               0, 0, /* No default value */
+               "uLCoordinationInformation"
+               },
+       { ATF_POINTER, 2, offsetof(struct SgNBResourceCoordinationInformation, dLCoordinationInformation),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_dLCoordinationInformation_constr_4, &asn_PER_memb_dLCoordinationInformation_constr_4,  memb_dLCoordinationInformation_constraint_1 },
+               0, 0, /* No default value */
+               "dLCoordinationInformation"
+               },
+       { ATF_POINTER, 1, offsetof(struct SgNBResourceCoordinationInformation, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P193,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_SgNBResourceCoordinationInformation_oms_1[] = { 2, 3 };
+static const ber_tlv_tag_t asn_DEF_SgNBResourceCoordinationInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SgNBResourceCoordinationInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR-CGI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uLCoordinationInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dLCoordinationInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_SgNBResourceCoordinationInformation_specs_1 = {
+       sizeof(struct SgNBResourceCoordinationInformation),
+       offsetof(struct SgNBResourceCoordinationInformation, _asn_ctx),
+       asn_MAP_SgNBResourceCoordinationInformation_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_SgNBResourceCoordinationInformation_oms_1,      /* Optional members */
+       2, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBResourceCoordinationInformation = {
+       "SgNBResourceCoordinationInformation",
+       "SgNBResourceCoordinationInformation",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SgNBResourceCoordinationInformation_tags_1,
+       sizeof(asn_DEF_SgNBResourceCoordinationInformation_tags_1)
+               /sizeof(asn_DEF_SgNBResourceCoordinationInformation_tags_1[0]), /* 1 */
+       asn_DEF_SgNBResourceCoordinationInformation_tags_1,     /* Same as above */
+       sizeof(asn_DEF_SgNBResourceCoordinationInformation_tags_1)
+               /sizeof(asn_DEF_SgNBResourceCoordinationInformation_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SgNBResourceCoordinationInformation_1,
+       4,      /* Elements count */
+       &asn_SPC_SgNBResourceCoordinationInformation_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBSecurityKey.c b/e2ap/lib/SgNBSecurityKey.c
new file mode 100644 (file)
index 0000000..2a191a8
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBSecurityKey.h"
+
+int
+SgNBSecurityKey_constraint(const 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 == 256)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_SgNBSecurityKey_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       256     /* (SIZE(256..256)) */};
+asn_per_constraints_t asn_PER_type_SgNBSecurityKey_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  256,  256 }    /* (SIZE(256..256)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_SgNBSecurityKey_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBSecurityKey = {
+       "SgNBSecurityKey",
+       "SgNBSecurityKey",
+       &asn_OP_BIT_STRING,
+       asn_DEF_SgNBSecurityKey_tags_1,
+       sizeof(asn_DEF_SgNBSecurityKey_tags_1)
+               /sizeof(asn_DEF_SgNBSecurityKey_tags_1[0]), /* 1 */
+       asn_DEF_SgNBSecurityKey_tags_1, /* Same as above */
+       sizeof(asn_DEF_SgNBSecurityKey_tags_1)
+               /sizeof(asn_DEF_SgNBSecurityKey_tags_1[0]), /* 1 */
+       { &asn_OER_type_SgNBSecurityKey_constr_1, &asn_PER_type_SgNBSecurityKey_constr_1, SgNBSecurityKey_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/SgNBtoMeNBContainer.c b/e2ap/lib/SgNBtoMeNBContainer.c
new file mode 100644 (file)
index 0000000..a80d88f
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SgNBtoMeNBContainer.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_SgNBtoMeNBContainer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SgNBtoMeNBContainer = {
+       "SgNBtoMeNBContainer",
+       "SgNBtoMeNBContainer",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_SgNBtoMeNBContainer_tags_1,
+       sizeof(asn_DEF_SgNBtoMeNBContainer_tags_1)
+               /sizeof(asn_DEF_SgNBtoMeNBContainer_tags_1[0]), /* 1 */
+       asn_DEF_SgNBtoMeNBContainer_tags_1,     /* Same as above */
+       sizeof(asn_DEF_SgNBtoMeNBContainer_tags_1)
+               /sizeof(asn_DEF_SgNBtoMeNBContainer_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/SharedResourceType.c b/e2ap/lib/SharedResourceType.c
new file mode 100644 (file)
index 0000000..824f639
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SharedResourceType.h"
+
+#include "ULOnlySharing.h"
+#include "ULandDLSharing.h"
+static asn_oer_constraints_t asn_OER_type_SharedResourceType_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_SharedResourceType_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_SharedResourceType_1[] = {
+       { ATF_POINTER, 0, offsetof(struct SharedResourceType, choice.uLOnlySharing),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ULOnlySharing,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uLOnlySharing"
+               },
+       { ATF_POINTER, 0, offsetof(struct SharedResourceType, choice.uLandDLSharing),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ULandDLSharing,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uLandDLSharing"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_SharedResourceType_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uLOnlySharing */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* uLandDLSharing */
+};
+asn_CHOICE_specifics_t asn_SPC_SharedResourceType_specs_1 = {
+       sizeof(struct SharedResourceType),
+       offsetof(struct SharedResourceType, _asn_ctx),
+       offsetof(struct SharedResourceType, present),
+       sizeof(((struct SharedResourceType *)0)->present),
+       asn_MAP_SharedResourceType_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_SharedResourceType = {
+       "SharedResourceType",
+       "SharedResourceType",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_SharedResourceType_constr_1, &asn_PER_type_SharedResourceType_constr_1, CHOICE_constraint },
+       asn_MBR_SharedResourceType_1,
+       2,      /* Elements count */
+       &asn_SPC_SharedResourceType_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/ShortMAC-I.c b/e2ap/lib/ShortMAC-I.c
new file mode 100644 (file)
index 0000000..0f499ca
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ShortMAC-I.h"
+
+int
+ShortMAC_I_constraint(const 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 == 16)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_ShortMAC_I_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       16      /* (SIZE(16..16)) */};
+static asn_per_constraints_t asn_PER_type_ShortMAC_I_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  16,  16 }      /* (SIZE(16..16)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_ShortMAC_I_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ShortMAC_I = {
+       "ShortMAC-I",
+       "ShortMAC-I",
+       &asn_OP_BIT_STRING,
+       asn_DEF_ShortMAC_I_tags_1,
+       sizeof(asn_DEF_ShortMAC_I_tags_1)
+               /sizeof(asn_DEF_ShortMAC_I_tags_1[0]), /* 1 */
+       asn_DEF_ShortMAC_I_tags_1,      /* Same as above */
+       sizeof(asn_DEF_ShortMAC_I_tags_1)
+               /sizeof(asn_DEF_ShortMAC_I_tags_1[0]), /* 1 */
+       { &asn_OER_type_ShortMAC_I_constr_1, &asn_PER_type_ShortMAC_I_constr_1, ShortMAC_I_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/SourceOfUEActivityBehaviourInformation.c b/e2ap/lib/SourceOfUEActivityBehaviourInformation.c
new file mode 100644 (file)
index 0000000..fceb355
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SourceOfUEActivityBehaviourInformation.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_SourceOfUEActivityBehaviourInformation_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_SourceOfUEActivityBehaviourInformation_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_SourceOfUEActivityBehaviourInformation_value2enum_1[] = {
+       { 0,    24,     "subscription-information" },
+       { 1,    10,     "statistics" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_SourceOfUEActivityBehaviourInformation_enum2value_1[] = {
+       1,      /* statistics(1) */
+       0       /* subscription-information(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_SourceOfUEActivityBehaviourInformation_specs_1 = {
+       asn_MAP_SourceOfUEActivityBehaviourInformation_value2enum_1,    /* "tag" => N; sorted by tag */
+       asn_MAP_SourceOfUEActivityBehaviourInformation_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_SourceOfUEActivityBehaviourInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SourceOfUEActivityBehaviourInformation = {
+       "SourceOfUEActivityBehaviourInformation",
+       "SourceOfUEActivityBehaviourInformation",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_SourceOfUEActivityBehaviourInformation_tags_1,
+       sizeof(asn_DEF_SourceOfUEActivityBehaviourInformation_tags_1)
+               /sizeof(asn_DEF_SourceOfUEActivityBehaviourInformation_tags_1[0]), /* 1 */
+       asn_DEF_SourceOfUEActivityBehaviourInformation_tags_1,  /* Same as above */
+       sizeof(asn_DEF_SourceOfUEActivityBehaviourInformation_tags_1)
+               /sizeof(asn_DEF_SourceOfUEActivityBehaviourInformation_tags_1[0]), /* 1 */
+       { &asn_OER_type_SourceOfUEActivityBehaviourInformation_constr_1, &asn_PER_type_SourceOfUEActivityBehaviourInformation_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_SourceOfUEActivityBehaviourInformation_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/SpecialSubframe-Info.c b/e2ap/lib/SpecialSubframe-Info.c
new file mode 100644 (file)
index 0000000..1b0aa6e
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SpecialSubframe-Info.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_SpecialSubframe_Info_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SpecialSubframe_Info, specialSubframePatterns),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SpecialSubframePatterns,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "specialSubframePatterns"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SpecialSubframe_Info, cyclicPrefixDL),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CyclicPrefixDL,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cyclicPrefixDL"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SpecialSubframe_Info, cyclicPrefixUL),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_CyclicPrefixUL,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "cyclicPrefixUL"
+               },
+       { ATF_POINTER, 1, offsetof(struct SpecialSubframe_Info, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P194,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_SpecialSubframe_Info_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_SpecialSubframe_Info_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SpecialSubframe_Info_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* specialSubframePatterns */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cyclicPrefixDL */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cyclicPrefixUL */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SpecialSubframe_Info_specs_1 = {
+       sizeof(struct SpecialSubframe_Info),
+       offsetof(struct SpecialSubframe_Info, _asn_ctx),
+       asn_MAP_SpecialSubframe_Info_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_SpecialSubframe_Info_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SpecialSubframe_Info = {
+       "SpecialSubframe-Info",
+       "SpecialSubframe-Info",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SpecialSubframe_Info_tags_1,
+       sizeof(asn_DEF_SpecialSubframe_Info_tags_1)
+               /sizeof(asn_DEF_SpecialSubframe_Info_tags_1[0]), /* 1 */
+       asn_DEF_SpecialSubframe_Info_tags_1,    /* Same as above */
+       sizeof(asn_DEF_SpecialSubframe_Info_tags_1)
+               /sizeof(asn_DEF_SpecialSubframe_Info_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SpecialSubframe_Info_1,
+       4,      /* Elements count */
+       &asn_SPC_SpecialSubframe_Info_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/SpecialSubframePatterns.c b/e2ap/lib/SpecialSubframePatterns.c
new file mode 100644 (file)
index 0000000..960c713
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SpecialSubframePatterns.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_SpecialSubframePatterns_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_SpecialSubframePatterns_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  8 }    /* (0..8,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_SpecialSubframePatterns_value2enum_1[] = {
+       { 0,    4,      "ssp0" },
+       { 1,    4,      "ssp1" },
+       { 2,    4,      "ssp2" },
+       { 3,    4,      "ssp3" },
+       { 4,    4,      "ssp4" },
+       { 5,    4,      "ssp5" },
+       { 6,    4,      "ssp6" },
+       { 7,    4,      "ssp7" },
+       { 8,    4,      "ssp8" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_SpecialSubframePatterns_enum2value_1[] = {
+       0,      /* ssp0(0) */
+       1,      /* ssp1(1) */
+       2,      /* ssp2(2) */
+       3,      /* ssp3(3) */
+       4,      /* ssp4(4) */
+       5,      /* ssp5(5) */
+       6,      /* ssp6(6) */
+       7,      /* ssp7(7) */
+       8       /* ssp8(8) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_SpecialSubframePatterns_specs_1 = {
+       asn_MAP_SpecialSubframePatterns_value2enum_1,   /* "tag" => N; sorted by tag */
+       asn_MAP_SpecialSubframePatterns_enum2value_1,   /* N => "tag"; sorted by N */
+       9,      /* Number of elements in the maps */
+       10,     /* Extensions before this member */
+       1,      /* Strict enumeration */
+       0,      /* Native long size */
+       0
+};
+static const ber_tlv_tag_t asn_DEF_SpecialSubframePatterns_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SpecialSubframePatterns = {
+       "SpecialSubframePatterns",
+       "SpecialSubframePatterns",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_SpecialSubframePatterns_tags_1,
+       sizeof(asn_DEF_SpecialSubframePatterns_tags_1)
+               /sizeof(asn_DEF_SpecialSubframePatterns_tags_1[0]), /* 1 */
+       asn_DEF_SpecialSubframePatterns_tags_1, /* Same as above */
+       sizeof(asn_DEF_SpecialSubframePatterns_tags_1)
+               /sizeof(asn_DEF_SpecialSubframePatterns_tags_1[0]), /* 1 */
+       { &asn_OER_type_SpecialSubframePatterns_constr_1, &asn_PER_type_SpecialSubframePatterns_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_SpecialSubframePatterns_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/SpectrumSharingGroupID.c b/e2ap/lib/SpectrumSharingGroupID.c
new file mode 100644 (file)
index 0000000..449a0b2
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SpectrumSharingGroupID.h"
+
+int
+SpectrumSharingGroupID_constraint(const 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 >= 1 && value <= 256)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_SpectrumSharingGroupID_constr_1 CC_NOTUSED = {
+       { 2, 1 }        /* (1..256) */,
+       -1};
+static asn_per_constraints_t asn_PER_type_SpectrumSharingGroupID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (1..256) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_SpectrumSharingGroupID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SpectrumSharingGroupID = {
+       "SpectrumSharingGroupID",
+       "SpectrumSharingGroupID",
+       &asn_OP_NativeInteger,
+       asn_DEF_SpectrumSharingGroupID_tags_1,
+       sizeof(asn_DEF_SpectrumSharingGroupID_tags_1)
+               /sizeof(asn_DEF_SpectrumSharingGroupID_tags_1[0]), /* 1 */
+       asn_DEF_SpectrumSharingGroupID_tags_1,  /* Same as above */
+       sizeof(asn_DEF_SpectrumSharingGroupID_tags_1)
+               /sizeof(asn_DEF_SpectrumSharingGroupID_tags_1[0]), /* 1 */
+       { &asn_OER_type_SpectrumSharingGroupID_constr_1, &asn_PER_type_SpectrumSharingGroupID_constr_1, SpectrumSharingGroupID_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/SplitSRB.c b/e2ap/lib/SplitSRB.c
new file mode 100644 (file)
index 0000000..c37197a
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SplitSRB.h"
+
+#include "DeliveryStatus.h"
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_SplitSRB_1[] = {
+       { ATF_POINTER, 1, offsetof(struct SplitSRB, rrcContainer),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RRCContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "rrcContainer"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SplitSRB, srbType),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SRBType,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "srbType"
+               },
+       { ATF_POINTER, 2, offsetof(struct SplitSRB, deliveryStatus),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_DeliveryStatus,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "deliveryStatus"
+               },
+       { ATF_POINTER, 1, offsetof(struct SplitSRB, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P170,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_SplitSRB_oms_1[] = { 0, 2, 3 };
+static const ber_tlv_tag_t asn_DEF_SplitSRB_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SplitSRB_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcContainer */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* srbType */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* deliveryStatus */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_SplitSRB_specs_1 = {
+       sizeof(struct SplitSRB),
+       offsetof(struct SplitSRB, _asn_ctx),
+       asn_MAP_SplitSRB_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_SplitSRB_oms_1, /* Optional members */
+       3, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SplitSRB = {
+       "SplitSRB",
+       "SplitSRB",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SplitSRB_tags_1,
+       sizeof(asn_DEF_SplitSRB_tags_1)
+               /sizeof(asn_DEF_SplitSRB_tags_1[0]), /* 1 */
+       asn_DEF_SplitSRB_tags_1,        /* Same as above */
+       sizeof(asn_DEF_SplitSRB_tags_1)
+               /sizeof(asn_DEF_SplitSRB_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SplitSRB_1,
+       4,      /* Elements count */
+       &asn_SPC_SplitSRB_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/SplitSRBs.c b/e2ap/lib/SplitSRBs.c
new file mode 100644 (file)
index 0000000..8090492
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SplitSRBs.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_SplitSRBs_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_SplitSRBs_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_SplitSRBs_value2enum_1[] = {
+       { 0,    4,      "srb1" },
+       { 1,    4,      "srb2" },
+       { 2,    8,      "srb1and2" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_SplitSRBs_enum2value_1[] = {
+       0,      /* srb1(0) */
+       2,      /* srb1and2(2) */
+       1       /* srb2(1) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_SplitSRBs_specs_1 = {
+       asn_MAP_SplitSRBs_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_SplitSRBs_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_SplitSRBs_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SplitSRBs = {
+       "SplitSRBs",
+       "SplitSRBs",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_SplitSRBs_tags_1,
+       sizeof(asn_DEF_SplitSRBs_tags_1)
+               /sizeof(asn_DEF_SplitSRBs_tags_1[0]), /* 1 */
+       asn_DEF_SplitSRBs_tags_1,       /* Same as above */
+       sizeof(asn_DEF_SplitSRBs_tags_1)
+               /sizeof(asn_DEF_SplitSRBs_tags_1[0]), /* 1 */
+       { &asn_OER_type_SplitSRBs_constr_1, &asn_PER_type_SplitSRBs_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_SplitSRBs_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/Style-ID.c b/e2ap/lib/Style-ID.c
new file mode 100644 (file)
index 0000000..f268a1b
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Style-ID.h"
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_Style_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Style_ID = {
+       "Style-ID",
+       "Style-ID",
+       &asn_OP_NativeInteger,
+       asn_DEF_Style_ID_tags_1,
+       sizeof(asn_DEF_Style_ID_tags_1)
+               /sizeof(asn_DEF_Style_ID_tags_1[0]), /* 1 */
+       asn_DEF_Style_ID_tags_1,        /* Same as above */
+       sizeof(asn_DEF_Style_ID_tags_1)
+               /sizeof(asn_DEF_Style_ID_tags_1[0]), /* 1 */
+       { 0, 0, NativeInteger_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/SubbandCQI.c b/e2ap/lib/SubbandCQI.c
new file mode 100644 (file)
index 0000000..6b99af1
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SubbandCQI.h"
+
+#include "SubbandCQICodeword1.h"
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_SubbandCQI_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SubbandCQI, subbandCQICodeword0),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_SubbandCQICodeword0,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "subbandCQICodeword0"
+               },
+       { ATF_POINTER, 2, offsetof(struct SubbandCQI, subbandCQICodeword1),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_SubbandCQICodeword1,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "subbandCQICodeword1"
+               },
+       { ATF_POINTER, 1, offsetof(struct SubbandCQI, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P195,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_SubbandCQI_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_SubbandCQI_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SubbandCQI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subbandCQICodeword0 */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subbandCQICodeword1 */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SubbandCQI_specs_1 = {
+       sizeof(struct SubbandCQI),
+       offsetof(struct SubbandCQI, _asn_ctx),
+       asn_MAP_SubbandCQI_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_SubbandCQI_oms_1,       /* Optional members */
+       2, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SubbandCQI = {
+       "SubbandCQI",
+       "SubbandCQI",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SubbandCQI_tags_1,
+       sizeof(asn_DEF_SubbandCQI_tags_1)
+               /sizeof(asn_DEF_SubbandCQI_tags_1[0]), /* 1 */
+       asn_DEF_SubbandCQI_tags_1,      /* Same as above */
+       sizeof(asn_DEF_SubbandCQI_tags_1)
+               /sizeof(asn_DEF_SubbandCQI_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SubbandCQI_1,
+       3,      /* Elements count */
+       &asn_SPC_SubbandCQI_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/SubbandCQICodeword0.c b/e2ap/lib/SubbandCQICodeword0.c
new file mode 100644 (file)
index 0000000..0f1d62c
--- /dev/null
@@ -0,0 +1,174 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SubbandCQICodeword0.h"
+
+static int
+memb_four_bitCQI_constraint_1(const 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 >= 0 && value <= 15)) {
+               /* 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_two_bitSubbandDifferentialCQI_constraint_1(const 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 >= 0 && value <= 3)) {
+               /* 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_two_bitDifferentialCQI_constraint_1(const 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 >= 0 && value <= 3)) {
+               /* 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_oer_constraints_t asn_OER_memb_four_bitCQI_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_four_bitCQI_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  15 }   /* (0..15,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_two_bitSubbandDifferentialCQI_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_two_bitSubbandDifferentialCQI_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_two_bitDifferentialCQI_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_two_bitDifferentialCQI_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_SubbandCQICodeword0_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_SubbandCQICodeword0_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_SubbandCQICodeword0_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SubbandCQICodeword0, choice.four_bitCQI),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_four_bitCQI_constr_2, &asn_PER_memb_four_bitCQI_constr_2,  memb_four_bitCQI_constraint_1 },
+               0, 0, /* No default value */
+               "four-bitCQI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SubbandCQICodeword0, choice.two_bitSubbandDifferentialCQI),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_two_bitSubbandDifferentialCQI_constr_3, &asn_PER_memb_two_bitSubbandDifferentialCQI_constr_3,  memb_two_bitSubbandDifferentialCQI_constraint_1 },
+               0, 0, /* No default value */
+               "two-bitSubbandDifferentialCQI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SubbandCQICodeword0, choice.two_bitDifferentialCQI),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_two_bitDifferentialCQI_constr_4, &asn_PER_memb_two_bitDifferentialCQI_constr_4,  memb_two_bitDifferentialCQI_constraint_1 },
+               0, 0, /* No default value */
+               "two-bitDifferentialCQI"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_SubbandCQICodeword0_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* four-bitCQI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* two-bitSubbandDifferentialCQI */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* two-bitDifferentialCQI */
+};
+asn_CHOICE_specifics_t asn_SPC_SubbandCQICodeword0_specs_1 = {
+       sizeof(struct SubbandCQICodeword0),
+       offsetof(struct SubbandCQICodeword0, _asn_ctx),
+       offsetof(struct SubbandCQICodeword0, present),
+       sizeof(((struct SubbandCQICodeword0 *)0)->present),
+       asn_MAP_SubbandCQICodeword0_tag2el_1,
+       3,      /* Count of tags in the map */
+       0, 0,
+       3       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_SubbandCQICodeword0 = {
+       "SubbandCQICodeword0",
+       "SubbandCQICodeword0",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_SubbandCQICodeword0_constr_1, &asn_PER_type_SubbandCQICodeword0_constr_1, CHOICE_constraint },
+       asn_MBR_SubbandCQICodeword0_1,
+       3,      /* Elements count */
+       &asn_SPC_SubbandCQICodeword0_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/SubbandCQICodeword1.c b/e2ap/lib/SubbandCQICodeword1.c
new file mode 100644 (file)
index 0000000..e530ebc
--- /dev/null
@@ -0,0 +1,217 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SubbandCQICodeword1.h"
+
+static int
+memb_four_bitCQI_constraint_1(const 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 >= 0 && value <= 15)) {
+               /* 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_three_bitSpatialDifferentialCQI_constraint_1(const 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 >= 0 && value <= 7)) {
+               /* 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_two_bitSubbandDifferentialCQI_constraint_1(const 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 >= 0 && value <= 3)) {
+               /* 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_two_bitDifferentialCQI_constraint_1(const 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 >= 0 && value <= 3)) {
+               /* 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_oer_constraints_t asn_OER_memb_four_bitCQI_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_four_bitCQI_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  15 }   /* (0..15,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_three_bitSpatialDifferentialCQI_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_three_bitSpatialDifferentialCQI_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  7 }    /* (0..7,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_two_bitSubbandDifferentialCQI_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_two_bitSubbandDifferentialCQI_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_two_bitDifferentialCQI_constr_5 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_two_bitDifferentialCQI_constr_5 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_SubbandCQICodeword1_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_SubbandCQICodeword1_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_SubbandCQICodeword1_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SubbandCQICodeword1, choice.four_bitCQI),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_four_bitCQI_constr_2, &asn_PER_memb_four_bitCQI_constr_2,  memb_four_bitCQI_constraint_1 },
+               0, 0, /* No default value */
+               "four-bitCQI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SubbandCQICodeword1, choice.three_bitSpatialDifferentialCQI),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_three_bitSpatialDifferentialCQI_constr_3, &asn_PER_memb_three_bitSpatialDifferentialCQI_constr_3,  memb_three_bitSpatialDifferentialCQI_constraint_1 },
+               0, 0, /* No default value */
+               "three-bitSpatialDifferentialCQI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SubbandCQICodeword1, choice.two_bitSubbandDifferentialCQI),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_two_bitSubbandDifferentialCQI_constr_4, &asn_PER_memb_two_bitSubbandDifferentialCQI_constr_4,  memb_two_bitSubbandDifferentialCQI_constraint_1 },
+               0, 0, /* No default value */
+               "two-bitSubbandDifferentialCQI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SubbandCQICodeword1, choice.two_bitDifferentialCQI),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_two_bitDifferentialCQI_constr_5, &asn_PER_memb_two_bitDifferentialCQI_constr_5,  memb_two_bitDifferentialCQI_constraint_1 },
+               0, 0, /* No default value */
+               "two-bitDifferentialCQI"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_SubbandCQICodeword1_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* four-bitCQI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* three-bitSpatialDifferentialCQI */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* two-bitSubbandDifferentialCQI */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* two-bitDifferentialCQI */
+};
+asn_CHOICE_specifics_t asn_SPC_SubbandCQICodeword1_specs_1 = {
+       sizeof(struct SubbandCQICodeword1),
+       offsetof(struct SubbandCQICodeword1, _asn_ctx),
+       offsetof(struct SubbandCQICodeword1, present),
+       sizeof(((struct SubbandCQICodeword1 *)0)->present),
+       asn_MAP_SubbandCQICodeword1_tag2el_1,
+       4,      /* Count of tags in the map */
+       0, 0,
+       4       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_SubbandCQICodeword1 = {
+       "SubbandCQICodeword1",
+       "SubbandCQICodeword1",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_SubbandCQICodeword1_constr_1, &asn_PER_type_SubbandCQICodeword1_constr_1, CHOICE_constraint },
+       asn_MBR_SubbandCQICodeword1_1,
+       4,      /* Elements count */
+       &asn_SPC_SubbandCQICodeword1_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/SubbandCQIItem.c b/e2ap/lib/SubbandCQIItem.c
new file mode 100644 (file)
index 0000000..f37ccf9
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SubbandCQIItem.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_subbandIndex_constraint_1(const 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 >= 0 && value <= 27)) {
+               /* 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_oer_constraints_t asn_OER_memb_subbandIndex_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_subbandIndex_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  5,  5,  0,  27 }   /* (0..27,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_SubbandCQIItem_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SubbandCQIItem, subbandCQI),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SubbandCQI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "subbandCQI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SubbandCQIItem, subbandIndex),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_subbandIndex_constr_3, &asn_PER_memb_subbandIndex_constr_3,  memb_subbandIndex_constraint_1 },
+               0, 0, /* No default value */
+               "subbandIndex"
+               },
+       { ATF_POINTER, 1, offsetof(struct SubbandCQIItem, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P198,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_SubbandCQIItem_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_SubbandCQIItem_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SubbandCQIItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subbandCQI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subbandIndex */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SubbandCQIItem_specs_1 = {
+       sizeof(struct SubbandCQIItem),
+       offsetof(struct SubbandCQIItem, _asn_ctx),
+       asn_MAP_SubbandCQIItem_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_SubbandCQIItem_oms_1,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SubbandCQIItem = {
+       "SubbandCQIItem",
+       "SubbandCQIItem",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SubbandCQIItem_tags_1,
+       sizeof(asn_DEF_SubbandCQIItem_tags_1)
+               /sizeof(asn_DEF_SubbandCQIItem_tags_1[0]), /* 1 */
+       asn_DEF_SubbandCQIItem_tags_1,  /* Same as above */
+       sizeof(asn_DEF_SubbandCQIItem_tags_1)
+               /sizeof(asn_DEF_SubbandCQIItem_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SubbandCQIItem_1,
+       3,      /* Elements count */
+       &asn_SPC_SubbandCQIItem_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/SubbandCQIList.c b/e2ap/lib/SubbandCQIList.c
new file mode 100644 (file)
index 0000000..b698d41
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SubbandCQIList.h"
+
+#include "SubbandCQIItem.h"
+static asn_oer_constraints_t asn_OER_type_SubbandCQIList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..14)) */};
+asn_per_constraints_t asn_PER_type_SubbandCQIList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       4,  4,  1,  14 }       /* (SIZE(1..14)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_SubbandCQIList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SubbandCQIItem,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SubbandCQIList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_SubbandCQIList_specs_1 = {
+       sizeof(struct SubbandCQIList),
+       offsetof(struct SubbandCQIList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_SubbandCQIList = {
+       "SubbandCQIList",
+       "SubbandCQIList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_SubbandCQIList_tags_1,
+       sizeof(asn_DEF_SubbandCQIList_tags_1)
+               /sizeof(asn_DEF_SubbandCQIList_tags_1[0]), /* 1 */
+       asn_DEF_SubbandCQIList_tags_1,  /* Same as above */
+       sizeof(asn_DEF_SubbandCQIList_tags_1)
+               /sizeof(asn_DEF_SubbandCQIList_tags_1[0]), /* 1 */
+       { &asn_OER_type_SubbandCQIList_constr_1, &asn_PER_type_SubbandCQIList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_SubbandCQIList_1,
+       1,      /* Single element */
+       &asn_SPC_SubbandCQIList_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/SubbandSize.c b/e2ap/lib/SubbandSize.c
new file mode 100644 (file)
index 0000000..18b241a
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SubbandSize.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_SubbandSize_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_SubbandSize_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  4 }    /* (0..4,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_SubbandSize_value2enum_1[] = {
+       { 0,    5,      "size2" },
+       { 1,    5,      "size3" },
+       { 2,    5,      "size4" },
+       { 3,    5,      "size6" },
+       { 4,    5,      "size8" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_SubbandSize_enum2value_1[] = {
+       0,      /* size2(0) */
+       1,      /* size3(1) */
+       2,      /* size4(2) */
+       3,      /* size6(3) */
+       4       /* size8(4) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_SubbandSize_specs_1 = {
+       asn_MAP_SubbandSize_value2enum_1,       /* "tag" => N; sorted by tag */
+       asn_MAP_SubbandSize_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_SubbandSize_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SubbandSize = {
+       "SubbandSize",
+       "SubbandSize",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_SubbandSize_tags_1,
+       sizeof(asn_DEF_SubbandSize_tags_1)
+               /sizeof(asn_DEF_SubbandSize_tags_1[0]), /* 1 */
+       asn_DEF_SubbandSize_tags_1,     /* Same as above */
+       sizeof(asn_DEF_SubbandSize_tags_1)
+               /sizeof(asn_DEF_SubbandSize_tags_1[0]), /* 1 */
+       { &asn_OER_type_SubbandSize_constr_1, &asn_PER_type_SubbandSize_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_SubbandSize_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/SubframeAllocation.c b/e2ap/lib/SubframeAllocation.c
new file mode 100644 (file)
index 0000000..e2b6351
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SubframeAllocation.h"
+
+static asn_oer_constraints_t asn_OER_type_SubframeAllocation_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_SubframeAllocation_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_SubframeAllocation_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SubframeAllocation, choice.oneframe),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Oneframe,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "oneframe"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SubframeAllocation, choice.fourframes),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Fourframes,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "fourframes"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_SubframeAllocation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oneframe */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fourframes */
+};
+asn_CHOICE_specifics_t asn_SPC_SubframeAllocation_specs_1 = {
+       sizeof(struct SubframeAllocation),
+       offsetof(struct SubframeAllocation, _asn_ctx),
+       offsetof(struct SubframeAllocation, present),
+       sizeof(((struct SubframeAllocation *)0)->present),
+       asn_MAP_SubframeAllocation_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_SubframeAllocation = {
+       "SubframeAllocation",
+       "SubframeAllocation",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_SubframeAllocation_constr_1, &asn_PER_type_SubframeAllocation_constr_1, CHOICE_constraint },
+       asn_MBR_SubframeAllocation_1,
+       2,      /* Elements count */
+       &asn_SPC_SubframeAllocation_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/SubframeAssignment.c b/e2ap/lib/SubframeAssignment.c
new file mode 100644 (file)
index 0000000..e7b03e3
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SubframeAssignment.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_SubframeAssignment_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_SubframeAssignment_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  6 }    /* (0..6,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_SubframeAssignment_value2enum_1[] = {
+       { 0,    3,      "sa0" },
+       { 1,    3,      "sa1" },
+       { 2,    3,      "sa2" },
+       { 3,    3,      "sa3" },
+       { 4,    3,      "sa4" },
+       { 5,    3,      "sa5" },
+       { 6,    3,      "sa6" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_SubframeAssignment_enum2value_1[] = {
+       0,      /* sa0(0) */
+       1,      /* sa1(1) */
+       2,      /* sa2(2) */
+       3,      /* sa3(3) */
+       4,      /* sa4(4) */
+       5,      /* sa5(5) */
+       6       /* sa6(6) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_SubframeAssignment_specs_1 = {
+       asn_MAP_SubframeAssignment_value2enum_1,        /* "tag" => N; sorted by tag */
+       asn_MAP_SubframeAssignment_enum2value_1,        /* N => "tag"; sorted by N */
+       7,      /* Number of elements in the maps */
+       8,      /* Extensions before this member */
+       1,      /* Strict enumeration */
+       0,      /* Native long size */
+       0
+};
+static const ber_tlv_tag_t asn_DEF_SubframeAssignment_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SubframeAssignment = {
+       "SubframeAssignment",
+       "SubframeAssignment",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_SubframeAssignment_tags_1,
+       sizeof(asn_DEF_SubframeAssignment_tags_1)
+               /sizeof(asn_DEF_SubframeAssignment_tags_1[0]), /* 1 */
+       asn_DEF_SubframeAssignment_tags_1,      /* Same as above */
+       sizeof(asn_DEF_SubframeAssignment_tags_1)
+               /sizeof(asn_DEF_SubframeAssignment_tags_1[0]), /* 1 */
+       { &asn_OER_type_SubframeAssignment_constr_1, &asn_PER_type_SubframeAssignment_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_SubframeAssignment_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/SubframeType.c b/e2ap/lib/SubframeType.c
new file mode 100644 (file)
index 0000000..a471492
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SubframeType.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_SubframeType_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_SubframeType_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_SubframeType_value2enum_1[] = {
+       { 0,    5,      "mbsfn" },
+       { 1,    8,      "nonmbsfn" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_SubframeType_enum2value_1[] = {
+       0,      /* mbsfn(0) */
+       1       /* nonmbsfn(1) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_SubframeType_specs_1 = {
+       asn_MAP_SubframeType_value2enum_1,      /* "tag" => N; sorted by tag */
+       asn_MAP_SubframeType_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_SubframeType_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SubframeType = {
+       "SubframeType",
+       "SubframeType",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_SubframeType_tags_1,
+       sizeof(asn_DEF_SubframeType_tags_1)
+               /sizeof(asn_DEF_SubframeType_tags_1[0]), /* 1 */
+       asn_DEF_SubframeType_tags_1,    /* Same as above */
+       sizeof(asn_DEF_SubframeType_tags_1)
+               /sizeof(asn_DEF_SubframeType_tags_1[0]), /* 1 */
+       { &asn_OER_type_SubframeType_constr_1, &asn_PER_type_SubframeType_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_SubframeType_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/SubscriberProfileIDforRFP.c b/e2ap/lib/SubscriberProfileIDforRFP.c
new file mode 100644 (file)
index 0000000..5d496eb
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SubscriberProfileIDforRFP.h"
+
+int
+SubscriberProfileIDforRFP_constraint(const 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 >= 1 && value <= 256)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_SubscriberProfileIDforRFP_constr_1 CC_NOTUSED = {
+       { 2, 1 }        /* (1..256) */,
+       -1};
+asn_per_constraints_t asn_PER_type_SubscriberProfileIDforRFP_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (1..256) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_SubscriberProfileIDforRFP_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SubscriberProfileIDforRFP = {
+       "SubscriberProfileIDforRFP",
+       "SubscriberProfileIDforRFP",
+       &asn_OP_NativeInteger,
+       asn_DEF_SubscriberProfileIDforRFP_tags_1,
+       sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1)
+               /sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1[0]), /* 1 */
+       asn_DEF_SubscriberProfileIDforRFP_tags_1,       /* Same as above */
+       sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1)
+               /sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1[0]), /* 1 */
+       { &asn_OER_type_SubscriberProfileIDforRFP_constr_1, &asn_PER_type_SubscriberProfileIDforRFP_constr_1, SubscriberProfileIDforRFP_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/Subscription-Based-UE-DifferentiationInfo.c b/e2ap/lib/Subscription-Based-UE-DifferentiationInfo.c
new file mode 100644 (file)
index 0000000..0e23c95
--- /dev/null
@@ -0,0 +1,355 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Subscription-Based-UE-DifferentiationInfo.h"
+
+#include "ScheduledCommunicationTime.h"
+#include "ProtocolExtensionContainer.h"
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static int
+memb_periodicTime_constraint_1(const 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 >= 1 && value <= 3600)) {
+               /* 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_oer_constraints_t asn_OER_type_periodicCommunicationIndicator_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_periodicCommunicationIndicator_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_stationaryIndication_constr_8 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_stationaryIndication_constr_8 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_trafficProfile_constr_12 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_trafficProfile_constr_12 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_batteryIndication_constr_17 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_batteryIndication_constr_17 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_periodicTime_constr_6 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_periodicTime_constr_6 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  12,  12,  1,  3600 }       /* (1..3600,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_periodicCommunicationIndicator_value2enum_2[] = {
+       { 0,    12,     "periodically" },
+       { 1,    8,      "ondemand" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_periodicCommunicationIndicator_enum2value_2[] = {
+       1,      /* ondemand(1) */
+       0       /* periodically(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_periodicCommunicationIndicator_specs_2 = {
+       asn_MAP_periodicCommunicationIndicator_value2enum_2,    /* "tag" => N; sorted by tag */
+       asn_MAP_periodicCommunicationIndicator_enum2value_2,    /* 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_periodicCommunicationIndicator_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_periodicCommunicationIndicator_2 = {
+       "periodicCommunicationIndicator",
+       "periodicCommunicationIndicator",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_periodicCommunicationIndicator_tags_2,
+       sizeof(asn_DEF_periodicCommunicationIndicator_tags_2)
+               /sizeof(asn_DEF_periodicCommunicationIndicator_tags_2[0]) - 1, /* 1 */
+       asn_DEF_periodicCommunicationIndicator_tags_2,  /* Same as above */
+       sizeof(asn_DEF_periodicCommunicationIndicator_tags_2)
+               /sizeof(asn_DEF_periodicCommunicationIndicator_tags_2[0]), /* 2 */
+       { &asn_OER_type_periodicCommunicationIndicator_constr_2, &asn_PER_type_periodicCommunicationIndicator_constr_2, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_periodicCommunicationIndicator_specs_2 /* Additional specs */
+};
+
+static const asn_INTEGER_enum_map_t asn_MAP_stationaryIndication_value2enum_8[] = {
+       { 0,    10,     "stationary" },
+       { 1,    6,      "mobile" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_stationaryIndication_enum2value_8[] = {
+       1,      /* mobile(1) */
+       0       /* stationary(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_stationaryIndication_specs_8 = {
+       asn_MAP_stationaryIndication_value2enum_8,      /* "tag" => N; sorted by tag */
+       asn_MAP_stationaryIndication_enum2value_8,      /* 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_stationaryIndication_tags_8[] = {
+       (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_stationaryIndication_8 = {
+       "stationaryIndication",
+       "stationaryIndication",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_stationaryIndication_tags_8,
+       sizeof(asn_DEF_stationaryIndication_tags_8)
+               /sizeof(asn_DEF_stationaryIndication_tags_8[0]) - 1, /* 1 */
+       asn_DEF_stationaryIndication_tags_8,    /* Same as above */
+       sizeof(asn_DEF_stationaryIndication_tags_8)
+               /sizeof(asn_DEF_stationaryIndication_tags_8[0]), /* 2 */
+       { &asn_OER_type_stationaryIndication_constr_8, &asn_PER_type_stationaryIndication_constr_8, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_stationaryIndication_specs_8   /* Additional specs */
+};
+
+static const asn_INTEGER_enum_map_t asn_MAP_trafficProfile_value2enum_12[] = {
+       { 0,    13,     "single-packet" },
+       { 1,    12,     "dual-packets" },
+       { 2,    16,     "multiple-packets" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_trafficProfile_enum2value_12[] = {
+       1,      /* dual-packets(1) */
+       2,      /* multiple-packets(2) */
+       0       /* single-packet(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_trafficProfile_specs_12 = {
+       asn_MAP_trafficProfile_value2enum_12,   /* "tag" => N; sorted by tag */
+       asn_MAP_trafficProfile_enum2value_12,   /* 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_trafficProfile_tags_12[] = {
+       (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_trafficProfile_12 = {
+       "trafficProfile",
+       "trafficProfile",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_trafficProfile_tags_12,
+       sizeof(asn_DEF_trafficProfile_tags_12)
+               /sizeof(asn_DEF_trafficProfile_tags_12[0]) - 1, /* 1 */
+       asn_DEF_trafficProfile_tags_12, /* Same as above */
+       sizeof(asn_DEF_trafficProfile_tags_12)
+               /sizeof(asn_DEF_trafficProfile_tags_12[0]), /* 2 */
+       { &asn_OER_type_trafficProfile_constr_12, &asn_PER_type_trafficProfile_constr_12, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_trafficProfile_specs_12        /* Additional specs */
+};
+
+static const asn_INTEGER_enum_map_t asn_MAP_batteryIndication_value2enum_17[] = {
+       { 0,    15,     "battery-powered" },
+       { 1,    47,     "battery-powered-not-rechargeable-or-replaceable" },
+       { 2,    19,     "not-battery-powered" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_batteryIndication_enum2value_17[] = {
+       0,      /* battery-powered(0) */
+       1,      /* battery-powered-not-rechargeable-or-replaceable(1) */
+       2       /* not-battery-powered(2) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_batteryIndication_specs_17 = {
+       asn_MAP_batteryIndication_value2enum_17,        /* "tag" => N; sorted by tag */
+       asn_MAP_batteryIndication_enum2value_17,        /* 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_batteryIndication_tags_17[] = {
+       (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_batteryIndication_17 = {
+       "batteryIndication",
+       "batteryIndication",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_batteryIndication_tags_17,
+       sizeof(asn_DEF_batteryIndication_tags_17)
+               /sizeof(asn_DEF_batteryIndication_tags_17[0]) - 1, /* 1 */
+       asn_DEF_batteryIndication_tags_17,      /* Same as above */
+       sizeof(asn_DEF_batteryIndication_tags_17)
+               /sizeof(asn_DEF_batteryIndication_tags_17[0]), /* 2 */
+       { &asn_OER_type_batteryIndication_constr_17, &asn_PER_type_batteryIndication_constr_17, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_batteryIndication_specs_17     /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_Subscription_Based_UE_DifferentiationInfo_1[] = {
+       { ATF_POINTER, 7, offsetof(struct Subscription_Based_UE_DifferentiationInfo, periodicCommunicationIndicator),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_periodicCommunicationIndicator_2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "periodicCommunicationIndicator"
+               },
+       { ATF_POINTER, 6, offsetof(struct Subscription_Based_UE_DifferentiationInfo, periodicTime),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_periodicTime_constr_6, &asn_PER_memb_periodicTime_constr_6,  memb_periodicTime_constraint_1 },
+               0, 0, /* No default value */
+               "periodicTime"
+               },
+       { ATF_POINTER, 5, offsetof(struct Subscription_Based_UE_DifferentiationInfo, scheduledCommunicationTime),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ScheduledCommunicationTime,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "scheduledCommunicationTime"
+               },
+       { ATF_POINTER, 4, offsetof(struct Subscription_Based_UE_DifferentiationInfo, stationaryIndication),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_stationaryIndication_8,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "stationaryIndication"
+               },
+       { ATF_POINTER, 3, offsetof(struct Subscription_Based_UE_DifferentiationInfo, trafficProfile),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_trafficProfile_12,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "trafficProfile"
+               },
+       { ATF_POINTER, 2, offsetof(struct Subscription_Based_UE_DifferentiationInfo, batteryIndication),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_batteryIndication_17,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "batteryIndication"
+               },
+       { ATF_POINTER, 1, offsetof(struct Subscription_Based_UE_DifferentiationInfo, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P196,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_Subscription_Based_UE_DifferentiationInfo_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 };
+static const ber_tlv_tag_t asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_Subscription_Based_UE_DifferentiationInfo_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* periodicCommunicationIndicator */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* periodicTime */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* scheduledCommunicationTime */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* stationaryIndication */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* trafficProfile */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* batteryIndication */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Subscription_Based_UE_DifferentiationInfo_specs_1 = {
+       sizeof(struct Subscription_Based_UE_DifferentiationInfo),
+       offsetof(struct Subscription_Based_UE_DifferentiationInfo, _asn_ctx),
+       asn_MAP_Subscription_Based_UE_DifferentiationInfo_tag2el_1,
+       7,      /* Count of tags in the map */
+       asn_MAP_Subscription_Based_UE_DifferentiationInfo_oms_1,        /* Optional members */
+       7, 0,   /* Root/Additions */
+       7,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_Subscription_Based_UE_DifferentiationInfo = {
+       "Subscription-Based-UE-DifferentiationInfo",
+       "Subscription-Based-UE-DifferentiationInfo",
+       &asn_OP_SEQUENCE,
+       asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1,
+       sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1)
+               /sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1[0]), /* 1 */
+       asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1,       /* Same as above */
+       sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1)
+               /sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_Subscription_Based_UE_DifferentiationInfo_1,
+       7,      /* Elements count */
+       &asn_SPC_Subscription_Based_UE_DifferentiationInfo_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/SuccessfulOutcome.c b/e2ap/lib/SuccessfulOutcome.c
new file mode 100644 (file)
index 0000000..f23ce4d
--- /dev/null
@@ -0,0 +1,817 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Descriptions"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SuccessfulOutcome.h"
+
+static const long asn_VAL_1_id_handoverPreparation = 0;
+static const long asn_VAL_1_reject = 0;
+static const long asn_VAL_2_id_reset = 7;
+static const long asn_VAL_2_reject = 0;
+static const long asn_VAL_3_id_x2Setup = 6;
+static const long asn_VAL_3_reject = 0;
+static const long asn_VAL_4_id_resourceStatusReportingInitiation = 9;
+static const long asn_VAL_4_reject = 0;
+static const long asn_VAL_5_id_eNBConfigurationUpdate = 8;
+static const long asn_VAL_5_reject = 0;
+static const long asn_VAL_6_id_mobilitySettingsChange = 12;
+static const long asn_VAL_6_reject = 0;
+static const long asn_VAL_7_id_cellActivation = 15;
+static const long asn_VAL_7_reject = 0;
+static const long asn_VAL_8_id_seNBAdditionPreparation = 19;
+static const long asn_VAL_8_reject = 0;
+static const long asn_VAL_9_id_meNBinitiatedSeNBModificationPreparation = 21;
+static const long asn_VAL_9_reject = 0;
+static const long asn_VAL_10_id_seNBinitiatedSeNBModification = 22;
+static const long asn_VAL_10_reject = 0;
+static const long asn_VAL_11_id_seNBinitiatedSeNBRelease = 24;
+static const long asn_VAL_11_reject = 0;
+static const long asn_VAL_12_id_x2Removal = 18;
+static const long asn_VAL_12_reject = 0;
+static const long asn_VAL_13_id_retrieveUEContext = 26;
+static const long asn_VAL_13_reject = 0;
+static const long asn_VAL_14_id_sgNBAdditionPreparation = 27;
+static const long asn_VAL_14_reject = 0;
+static const long asn_VAL_15_id_meNBinitiatedSgNBModificationPreparation = 29;
+static const long asn_VAL_15_reject = 0;
+static const long asn_VAL_16_id_sgNBinitiatedSgNBModification = 30;
+static const long asn_VAL_16_reject = 0;
+static const long asn_VAL_17_id_meNBinitiatedSgNBRelease = 31;
+static const long asn_VAL_17_ignore = 1;
+static const long asn_VAL_18_id_sgNBinitiatedSgNBRelease = 32;
+static const long asn_VAL_18_reject = 0;
+static const long asn_VAL_19_id_sgNBChange = 34;
+static const long asn_VAL_19_reject = 0;
+static const long asn_VAL_20_id_endcX2Setup = 36;
+static const long asn_VAL_20_reject = 0;
+static const long asn_VAL_21_id_endcConfigurationUpdate = 37;
+static const long asn_VAL_21_reject = 0;
+static const long asn_VAL_22_id_endcCellActivation = 39;
+static const long asn_VAL_22_reject = 0;
+static const long asn_VAL_23_id_endcPartialReset = 40;
+static const long asn_VAL_23_reject = 0;
+static const long asn_VAL_24_id_eUTRANRCellResourceCoordination = 41;
+static const long asn_VAL_24_reject = 0;
+static const long asn_VAL_25_id_endcX2Removal = 43;
+static const long asn_VAL_25_reject = 0;
+static const long asn_VAL_26_id_snStatusTransfer = 4;
+static const long asn_VAL_26_ignore = 1;
+static const long asn_VAL_27_id_uEContextRelease = 5;
+static const long asn_VAL_27_ignore = 1;
+static const long asn_VAL_28_id_handoverCancel = 1;
+static const long asn_VAL_28_ignore = 1;
+static const long asn_VAL_29_id_errorIndication = 3;
+static const long asn_VAL_29_ignore = 1;
+static const long asn_VAL_30_id_resourceStatusReporting = 10;
+static const long asn_VAL_30_ignore = 1;
+static const long asn_VAL_31_id_loadIndication = 2;
+static const long asn_VAL_31_ignore = 1;
+static const long asn_VAL_32_id_privateMessage = 11;
+static const long asn_VAL_32_ignore = 1;
+static const long asn_VAL_33_id_rLFIndication = 13;
+static const long asn_VAL_33_ignore = 1;
+static const long asn_VAL_34_id_handoverReport = 14;
+static const long asn_VAL_34_ignore = 1;
+static const long asn_VAL_35_id_x2Release = 16;
+static const long asn_VAL_35_reject = 0;
+static const long asn_VAL_36_id_x2APMessageTransfer = 17;
+static const long asn_VAL_36_reject = 0;
+static const long asn_VAL_37_id_seNBReconfigurationCompletion = 20;
+static const long asn_VAL_37_ignore = 1;
+static const long asn_VAL_38_id_meNBinitiatedSeNBRelease = 23;
+static const long asn_VAL_38_ignore = 1;
+static const long asn_VAL_39_id_seNBCounterCheck = 25;
+static const long asn_VAL_39_reject = 0;
+static const long asn_VAL_40_id_sgNBReconfigurationCompletion = 28;
+static const long asn_VAL_40_ignore = 1;
+static const long asn_VAL_41_id_sgNBCounterCheck = 33;
+static const long asn_VAL_41_reject = 0;
+static const long asn_VAL_42_id_rRCTransfer = 35;
+static const long asn_VAL_42_reject = 0;
+static const long asn_VAL_43_id_secondaryRATDataUsageReport = 38;
+static const long asn_VAL_43_reject = 0;
+static const long asn_VAL_44_id_SgNBActivityNotification = 42;
+static const long asn_VAL_44_reject = 0;
+static const long asn_VAL_45_id_dataForwardingAddressIndication = 44;
+static const long asn_VAL_45_ignore = 1;
+static const long asn_VAL_46_id_gNBStatusIndication = 45;
+static const long asn_VAL_46_ignore = 1;
+static const asn_ioc_cell_t asn_IOS_X2AP_ELEMENTARY_PROCEDURES_1_rows[] = {
+       { "&InitiatingMessage", aioc__type, &asn_DEF_HandoverRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_HandoverRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_HandoverPreparationFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_handoverPreparation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_reset },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_X2SetupRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_X2SetupResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_X2SetupFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_x2Setup },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResourceStatusResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ResourceStatusFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_resourceStatusReportingInitiation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENBConfigurationUpdate },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENBConfigurationUpdateAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENBConfigurationUpdateFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_eNBConfigurationUpdate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_MobilityChangeRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_MobilityChangeAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_MobilityChangeFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_mobilitySettingsChange },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_CellActivationRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_CellActivationResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_CellActivationFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_cellActivation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBAdditionRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SeNBAdditionRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SeNBAdditionRequestReject },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_seNBAdditionPreparation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBModificationRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationRequestReject },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_meNBinitiatedSeNBModificationPreparation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBModificationRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationConfirm },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationRefuse },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_seNBinitiatedSeNBModification },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBReleaseRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SeNBReleaseConfirm },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_seNBinitiatedSeNBRelease },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_X2RemovalRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_X2RemovalResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_X2RemovalFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_x2Removal },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RetrieveUEContextRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_RetrieveUEContextResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RetrieveUEContextFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_13_id_retrieveUEContext },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBAdditionRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBAdditionRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SgNBAdditionRequestReject },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_14_id_sgNBAdditionPreparation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBModificationRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationRequestReject },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_15_id_meNBinitiatedSgNBModificationPreparation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBModificationRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationConfirm },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationRefuse },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_16_id_sgNBinitiatedSgNBModification },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBReleaseRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBReleaseRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SgNBReleaseRequestReject },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_17_id_meNBinitiatedSgNBRelease },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBReleaseRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBReleaseConfirm },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_18_id_sgNBinitiatedSgNBRelease },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBChangeRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBChangeConfirm },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SgNBChangeRefuse },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_19_id_sgNBChange },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCX2SetupRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2SetupResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2SetupFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_20_id_endcX2Setup },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCConfigurationUpdate },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCConfigurationUpdateAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCConfigurationUpdateFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_21_id_endcConfigurationUpdate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCCellActivationRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCCellActivationResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCCellActivationFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_22_id_endcCellActivation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCPartialResetRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCPartialResetConfirm },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_23_id_endcPartialReset },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_EUTRANRCellResourceCoordinationRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_EUTRANRCellResourceCoordinationResponse },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_24_id_eUTRANRCellResourceCoordination },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCX2RemovalRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2RemovalResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2RemovalFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_25_id_endcX2Removal },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SNStatusTransfer },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_26_id_snStatusTransfer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextRelease },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_27_id_uEContextRelease },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_HandoverCancel },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_28_id_handoverCancel },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_29_id_errorIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusUpdate },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_30_id_resourceStatusReporting },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_LoadInformation },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_31_id_loadIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_PrivateMessage },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_32_id_privateMessage },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RLFIndication },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_33_id_rLFIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_HandoverReport },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_34_id_handoverReport },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_X2Release },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_35_id_x2Release },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_X2APMessageTransfer },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_36_id_x2APMessageTransfer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBReconfigurationComplete },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_37_id_seNBReconfigurationCompletion },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBReleaseRequest },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_38_id_meNBinitiatedSeNBRelease },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBCounterCheckRequest },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_39_id_seNBCounterCheck },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBReconfigurationComplete },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_40_id_sgNBReconfigurationCompletion },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBCounterCheckRequest },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_41_id_sgNBCounterCheck },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RRCTransfer },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_42_id_rRCTransfer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SecondaryRATDataUsageReport },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_43_id_secondaryRATDataUsageReport },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBActivityNotification },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_44_id_SgNBActivityNotification },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_DataForwardingAddressIndication },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_45_id_dataForwardingAddressIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_GNBStatusIndication },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_46_id_gNBStatusIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_ignore }
+};
+static const asn_ioc_set_t asn_IOS_X2AP_ELEMENTARY_PROCEDURES_1[] = {
+       { 46, 5, asn_IOS_X2AP_ELEMENTARY_PROCEDURES_1_rows }
+};
+static int
+memb_procedureCode_constraint_1(const 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 >= 0 && value <= 255)) {
+               /* 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_type_selector_result_t
+select_SuccessfulOutcome_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2AP_ELEMENTARY_PROCEDURES_1;
+       size_t constraining_column = 3; /* &procedureCode */
+       size_t for_column = 4; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SuccessfulOutcome_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2AP_ELEMENTARY_PROCEDURES_1;
+       size_t constraining_column = 3; /* &procedureCode */
+       size_t for_column = 1; /* &SuccessfulOutcome */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_oer_constraints_t asn_OER_memb_procedureCode_constr_2 CC_NOTUSED = {
+       { 1, 1 }        /* (0..255) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       8,  8,  0,  255 }      /* (0..255) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_value_4[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.HandoverRequestAcknowledge),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_HandoverRequestAcknowledge,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "HandoverRequestAcknowledge"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ResetResponse),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ResetResponse,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ResetResponse"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.X2SetupResponse),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_X2SetupResponse,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "X2SetupResponse"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ResourceStatusResponse),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ResourceStatusResponse,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ResourceStatusResponse"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ENBConfigurationUpdateAcknowledge),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENBConfigurationUpdateAcknowledge,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ENBConfigurationUpdateAcknowledge"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.MobilityChangeAcknowledge),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MobilityChangeAcknowledge,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MobilityChangeAcknowledge"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.CellActivationResponse),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellActivationResponse,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CellActivationResponse"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.SeNBAdditionRequestAcknowledge),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBAdditionRequestAcknowledge,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBAdditionRequestAcknowledge"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.SeNBModificationRequestAcknowledge),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBModificationRequestAcknowledge,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBModificationRequestAcknowledge"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.SeNBModificationConfirm),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBModificationConfirm,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBModificationConfirm"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.SeNBReleaseConfirm),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBReleaseConfirm,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBReleaseConfirm"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.X2RemovalResponse),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_X2RemovalResponse,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "X2RemovalResponse"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RetrieveUEContextResponse),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RetrieveUEContextResponse,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RetrieveUEContextResponse"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.SgNBAdditionRequestAcknowledge),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBAdditionRequestAcknowledge,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBAdditionRequestAcknowledge"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.SgNBModificationRequestAcknowledge),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBModificationRequestAcknowledge,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBModificationRequestAcknowledge"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.SgNBModificationConfirm),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBModificationConfirm,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBModificationConfirm"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.SgNBReleaseRequestAcknowledge),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBReleaseRequestAcknowledge,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBReleaseRequestAcknowledge"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.SgNBReleaseConfirm),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBReleaseConfirm,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBReleaseConfirm"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.SgNBChangeConfirm),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBChangeConfirm,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBChangeConfirm"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ENDCX2SetupResponse),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCX2SetupResponse,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ENDCX2SetupResponse"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ENDCConfigurationUpdateAcknowledge),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCConfigurationUpdateAcknowledge,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ENDCConfigurationUpdateAcknowledge"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ENDCCellActivationResponse),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCCellActivationResponse,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ENDCCellActivationResponse"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ENDCPartialResetConfirm),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCPartialResetConfirm,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ENDCPartialResetConfirm"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.EUTRANRCellResourceCoordinationResponse),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_EUTRANRCellResourceCoordinationResponse,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "EUTRANRCellResourceCoordinationResponse"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ENDCX2RemovalResponse),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCX2RemovalResponse,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ENDCX2RemovalResponse"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 24 }, /* HandoverRequestAcknowledge */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 23 }, /* ResetResponse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 22 }, /* X2SetupResponse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 21 }, /* ResourceStatusResponse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 20 }, /* ENBConfigurationUpdateAcknowledge */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 19 }, /* MobilityChangeAcknowledge */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 18 }, /* CellActivationResponse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 17 }, /* SeNBAdditionRequestAcknowledge */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 16 }, /* SeNBModificationRequestAcknowledge */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 15 }, /* SeNBModificationConfirm */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 14 }, /* SeNBReleaseConfirm */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -11, 13 }, /* X2RemovalResponse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -12, 12 }, /* RetrieveUEContextResponse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 13, -13, 11 }, /* SgNBAdditionRequestAcknowledge */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 14, -14, 10 }, /* SgNBModificationRequestAcknowledge */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 15, -15, 9 }, /* SgNBModificationConfirm */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 16, -16, 8 }, /* SgNBReleaseRequestAcknowledge */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 17, -17, 7 }, /* SgNBReleaseConfirm */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 18, -18, 6 }, /* SgNBChangeConfirm */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 19, -19, 5 }, /* ENDCX2SetupResponse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 20, -20, 4 }, /* ENDCConfigurationUpdateAcknowledge */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 21, -21, 3 }, /* ENDCCellActivationResponse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 22, -22, 2 }, /* ENDCPartialResetConfirm */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 23, -23, 1 }, /* EUTRANRCellResourceCoordinationResponse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 24, -24, 0 } /* ENDCX2RemovalResponse */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = {
+       sizeof(struct SuccessfulOutcome__value),
+       offsetof(struct SuccessfulOutcome__value, _asn_ctx),
+       offsetof(struct SuccessfulOutcome__value, present),
+       sizeof(((struct SuccessfulOutcome__value *)0)->present),
+       asn_MAP_value_tag2el_4,
+       25,     /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_4 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_4,
+       25,     /* Elements count */
+       &asn_SPC_value_specs_4  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, procedureCode),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProcedureCode,
+               0,
+               { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2,  memb_procedureCode_constraint_1 },
+               0, 0, /* No default value */
+               "procedureCode"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SuccessfulOutcome_criticality_type,
+               { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3,  memb_criticality_constraint_1 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_4,
+               select_SuccessfulOutcome_value_type,
+               { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4,  memb_value_constraint_1 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SuccessfulOutcome_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcome_specs_1 = {
+       sizeof(struct SuccessfulOutcome),
+       offsetof(struct SuccessfulOutcome, _asn_ctx),
+       asn_MAP_SuccessfulOutcome_tag2el_1,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcome = {
+       "SuccessfulOutcome",
+       "SuccessfulOutcome",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SuccessfulOutcome_tags_1,
+       sizeof(asn_DEF_SuccessfulOutcome_tags_1)
+               /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */
+       asn_DEF_SuccessfulOutcome_tags_1,       /* Same as above */
+       sizeof(asn_DEF_SuccessfulOutcome_tags_1)
+               /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SuccessfulOutcome_1,
+       3,      /* Elements count */
+       &asn_SPC_SuccessfulOutcome_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/SuccessfulOutcomeE2.c b/e2ap/lib/SuccessfulOutcomeE2.c
new file mode 100644 (file)
index 0000000..6ca46f1
--- /dev/null
@@ -0,0 +1,327 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Descriptions"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SuccessfulOutcomeE2.h"
+
+static const long asn_VAL_1_id_ricSubscription = 201;
+static const long asn_VAL_1_reject = 0;
+static const long asn_VAL_2_id_ricSubscriptionDelete = 202;
+static const long asn_VAL_2_reject = 0;
+static const long asn_VAL_3_id_ricServiceUpdate = 203;
+static const long asn_VAL_3_reject = 0;
+static const long asn_VAL_4_id_ricControl = 204;
+static const long asn_VAL_4_reject = 0;
+static const long asn_VAL_5_id_ricIndication = 205;
+static const long asn_VAL_5_ignore = 1;
+static const long asn_VAL_6_id_ricServiceQuery = 206;
+static const long asn_VAL_6_ignore = 1;
+static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = {
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_ricSubscription },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_ricSubscriptionDelete },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_ricServiceUpdate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_ricControl },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_ricIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_ricServiceQuery },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_ignore }
+};
+static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = {
+       { 6, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows }
+};
+static int
+memb_procedureCode_constraint_1(const 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 >= 0 && value <= 255)) {
+               /* 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_type_selector_result_t
+select_SuccessfulOutcomeE2_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1;
+       size_t constraining_column = 3; /* &procedureCode */
+       size_t for_column = 4; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcomeE2, procedureCode));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_SuccessfulOutcomeE2_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1;
+       size_t constraining_column = 3; /* &procedureCode */
+       size_t for_column = 1; /* &SuccessfulOutcome */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcomeE2, procedureCode));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_oer_constraints_t asn_OER_memb_procedureCode_constr_2 CC_NOTUSED = {
+       { 1, 1 }        /* (0..255) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       8,  8,  0,  255 }      /* (0..255) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_value_4[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcomeE2__value, choice.RICsubscriptionResponse),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICsubscriptionResponse,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICsubscriptionResponse"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcomeE2__value, choice.RICsubscriptionDeleteResponse),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICsubscriptionDeleteResponse,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICsubscriptionDeleteResponse"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcomeE2__value, choice.RICserviceUpdateAcknowledge),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICserviceUpdateAcknowledge,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICserviceUpdateAcknowledge"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcomeE2__value, choice.RICcontrolAcknowledge),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICcontrolAcknowledge,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICcontrolAcknowledge"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 3 }, /* RICsubscriptionResponse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 2 }, /* RICsubscriptionDeleteResponse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 1 }, /* RICserviceUpdateAcknowledge */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 0 } /* RICcontrolAcknowledge */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = {
+       sizeof(struct SuccessfulOutcomeE2__value),
+       offsetof(struct SuccessfulOutcomeE2__value, _asn_ctx),
+       offsetof(struct SuccessfulOutcomeE2__value, present),
+       sizeof(((struct SuccessfulOutcomeE2__value *)0)->present),
+       asn_MAP_value_tag2el_4,
+       4,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_4 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_4,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_4  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_SuccessfulOutcomeE2_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcomeE2, procedureCode),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProcedureCode,
+               0,
+               { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2,  memb_procedureCode_constraint_1 },
+               0, 0, /* No default value */
+               "procedureCode"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcomeE2, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_SuccessfulOutcomeE2_criticality_type,
+               { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3,  memb_criticality_constraint_1 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcomeE2, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_4,
+               select_SuccessfulOutcomeE2_value_type,
+               { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4,  memb_value_constraint_1 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_SuccessfulOutcomeE2_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SuccessfulOutcomeE2_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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcomeE2_specs_1 = {
+       sizeof(struct SuccessfulOutcomeE2),
+       offsetof(struct SuccessfulOutcomeE2, _asn_ctx),
+       asn_MAP_SuccessfulOutcomeE2_tag2el_1,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcomeE2 = {
+       "SuccessfulOutcomeE2",
+       "SuccessfulOutcomeE2",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SuccessfulOutcomeE2_tags_1,
+       sizeof(asn_DEF_SuccessfulOutcomeE2_tags_1)
+               /sizeof(asn_DEF_SuccessfulOutcomeE2_tags_1[0]), /* 1 */
+       asn_DEF_SuccessfulOutcomeE2_tags_1,     /* Same as above */
+       sizeof(asn_DEF_SuccessfulOutcomeE2_tags_1)
+               /sizeof(asn_DEF_SuccessfulOutcomeE2_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SuccessfulOutcomeE2_1,
+       3,      /* Elements count */
+       &asn_SPC_SuccessfulOutcomeE2_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/SupportedSULFreqBandItem.c b/e2ap/lib/SupportedSULFreqBandItem.c
new file mode 100644 (file)
index 0000000..f410867
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "SupportedSULFreqBandItem.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_freqBandIndicatorNr_constraint_1(const 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 >= 1 && value <= 1024)) {
+               /* 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_oer_constraints_t asn_OER_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  10,  10,  1,  1024 }       /* (1..1024,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_SupportedSULFreqBandItem_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct SupportedSULFreqBandItem, freqBandIndicatorNr),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_freqBandIndicatorNr_constr_2, &asn_PER_memb_freqBandIndicatorNr_constr_2,  memb_freqBandIndicatorNr_constraint_1 },
+               0, 0, /* No default value */
+               "freqBandIndicatorNr"
+               },
+       { ATF_POINTER, 1, offsetof(struct SupportedSULFreqBandItem, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P200,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_SupportedSULFreqBandItem_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_SupportedSULFreqBandItem_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SupportedSULFreqBandItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* freqBandIndicatorNr */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SupportedSULFreqBandItem_specs_1 = {
+       sizeof(struct SupportedSULFreqBandItem),
+       offsetof(struct SupportedSULFreqBandItem, _asn_ctx),
+       asn_MAP_SupportedSULFreqBandItem_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_SupportedSULFreqBandItem_oms_1, /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SupportedSULFreqBandItem = {
+       "SupportedSULFreqBandItem",
+       "SupportedSULFreqBandItem",
+       &asn_OP_SEQUENCE,
+       asn_DEF_SupportedSULFreqBandItem_tags_1,
+       sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1)
+               /sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1[0]), /* 1 */
+       asn_DEF_SupportedSULFreqBandItem_tags_1,        /* Same as above */
+       sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1)
+               /sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_SupportedSULFreqBandItem_1,
+       2,      /* Elements count */
+       &asn_SPC_SupportedSULFreqBandItem_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/TABasedMDT.c b/e2ap/lib/TABasedMDT.c
new file mode 100644 (file)
index 0000000..24be946
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TABasedMDT.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_TABasedMDT_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TABasedMDT, tAListforMDT),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TAListforMDT,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "tAListforMDT"
+               },
+       { ATF_POINTER, 1, offsetof(struct TABasedMDT, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P201,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_TABasedMDT_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_TABasedMDT_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TABasedMDT_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAListforMDT */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TABasedMDT_specs_1 = {
+       sizeof(struct TABasedMDT),
+       offsetof(struct TABasedMDT, _asn_ctx),
+       asn_MAP_TABasedMDT_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_TABasedMDT_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TABasedMDT = {
+       "TABasedMDT",
+       "TABasedMDT",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TABasedMDT_tags_1,
+       sizeof(asn_DEF_TABasedMDT_tags_1)
+               /sizeof(asn_DEF_TABasedMDT_tags_1[0]), /* 1 */
+       asn_DEF_TABasedMDT_tags_1,      /* Same as above */
+       sizeof(asn_DEF_TABasedMDT_tags_1)
+               /sizeof(asn_DEF_TABasedMDT_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TABasedMDT_1,
+       2,      /* Elements count */
+       &asn_SPC_TABasedMDT_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/TABasedQMC.c b/e2ap/lib/TABasedQMC.c
new file mode 100644 (file)
index 0000000..dc6c42f
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TABasedQMC.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_TABasedQMC_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TABasedQMC, tAListforQMC),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TAListforQMC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "tAListforQMC"
+               },
+       { ATF_POINTER, 1, offsetof(struct TABasedQMC, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P204,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_TABasedQMC_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_TABasedQMC_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TABasedQMC_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAListforQMC */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TABasedQMC_specs_1 = {
+       sizeof(struct TABasedQMC),
+       offsetof(struct TABasedQMC, _asn_ctx),
+       asn_MAP_TABasedQMC_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_TABasedQMC_oms_1,       /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TABasedQMC = {
+       "TABasedQMC",
+       "TABasedQMC",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TABasedQMC_tags_1,
+       sizeof(asn_DEF_TABasedQMC_tags_1)
+               /sizeof(asn_DEF_TABasedQMC_tags_1[0]), /* 1 */
+       asn_DEF_TABasedQMC_tags_1,      /* Same as above */
+       sizeof(asn_DEF_TABasedQMC_tags_1)
+               /sizeof(asn_DEF_TABasedQMC_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TABasedQMC_1,
+       2,      /* Elements count */
+       &asn_SPC_TABasedQMC_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/TAC.c b/e2ap/lib/TAC.c
new file mode 100644 (file)
index 0000000..757fb3a
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TAC.h"
+
+int
+TAC_constraint(const 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 == 2)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_TAC_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       2       /* (SIZE(2..2)) */};
+asn_per_constraints_t asn_PER_type_TAC_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  2,  2 }        /* (SIZE(2..2)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_TAC_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_TAC = {
+       "TAC",
+       "TAC",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_TAC_tags_1,
+       sizeof(asn_DEF_TAC_tags_1)
+               /sizeof(asn_DEF_TAC_tags_1[0]), /* 1 */
+       asn_DEF_TAC_tags_1,     /* Same as above */
+       sizeof(asn_DEF_TAC_tags_1)
+               /sizeof(asn_DEF_TAC_tags_1[0]), /* 1 */
+       { &asn_OER_type_TAC_constr_1, &asn_PER_type_TAC_constr_1, TAC_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/TAI-Item.c b/e2ap/lib/TAI-Item.c
new file mode 100644 (file)
index 0000000..13fa170
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TAI-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_TAI_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TAI_Item, tAC),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TAC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "tAC"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TAI_Item, pLMN_Identity),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pLMN-Identity"
+               },
+       { ATF_POINTER, 1, offsetof(struct TAI_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P203,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_TAI_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_TAI_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TAI_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAC */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pLMN-Identity */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TAI_Item_specs_1 = {
+       sizeof(struct TAI_Item),
+       offsetof(struct TAI_Item, _asn_ctx),
+       asn_MAP_TAI_Item_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_TAI_Item_oms_1, /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TAI_Item = {
+       "TAI-Item",
+       "TAI-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TAI_Item_tags_1,
+       sizeof(asn_DEF_TAI_Item_tags_1)
+               /sizeof(asn_DEF_TAI_Item_tags_1[0]), /* 1 */
+       asn_DEF_TAI_Item_tags_1,        /* Same as above */
+       sizeof(asn_DEF_TAI_Item_tags_1)
+               /sizeof(asn_DEF_TAI_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TAI_Item_1,
+       3,      /* Elements count */
+       &asn_SPC_TAI_Item_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/TAIBasedMDT.c b/e2ap/lib/TAIBasedMDT.c
new file mode 100644 (file)
index 0000000..f233b6d
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TAIBasedMDT.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_TAIBasedMDT_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TAIBasedMDT, tAIListforMDT),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TAIListforMDT,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "tAIListforMDT"
+               },
+       { ATF_POINTER, 1, offsetof(struct TAIBasedMDT, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P202,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_TAIBasedMDT_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_TAIBasedMDT_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TAIBasedMDT_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAIListforMDT */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TAIBasedMDT_specs_1 = {
+       sizeof(struct TAIBasedMDT),
+       offsetof(struct TAIBasedMDT, _asn_ctx),
+       asn_MAP_TAIBasedMDT_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_TAIBasedMDT_oms_1,      /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TAIBasedMDT = {
+       "TAIBasedMDT",
+       "TAIBasedMDT",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TAIBasedMDT_tags_1,
+       sizeof(asn_DEF_TAIBasedMDT_tags_1)
+               /sizeof(asn_DEF_TAIBasedMDT_tags_1[0]), /* 1 */
+       asn_DEF_TAIBasedMDT_tags_1,     /* Same as above */
+       sizeof(asn_DEF_TAIBasedMDT_tags_1)
+               /sizeof(asn_DEF_TAIBasedMDT_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TAIBasedMDT_1,
+       2,      /* Elements count */
+       &asn_SPC_TAIBasedMDT_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/TAIBasedQMC.c b/e2ap/lib/TAIBasedQMC.c
new file mode 100644 (file)
index 0000000..1b0744a
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TAIBasedQMC.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_TAIBasedQMC_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TAIBasedQMC, tAIListforQMC),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TAIListforQMC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "tAIListforQMC"
+               },
+       { ATF_POINTER, 1, offsetof(struct TAIBasedQMC, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P205,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_TAIBasedQMC_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_TAIBasedQMC_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TAIBasedQMC_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAIListforQMC */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TAIBasedQMC_specs_1 = {
+       sizeof(struct TAIBasedQMC),
+       offsetof(struct TAIBasedQMC, _asn_ctx),
+       asn_MAP_TAIBasedQMC_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_TAIBasedQMC_oms_1,      /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TAIBasedQMC = {
+       "TAIBasedQMC",
+       "TAIBasedQMC",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TAIBasedQMC_tags_1,
+       sizeof(asn_DEF_TAIBasedQMC_tags_1)
+               /sizeof(asn_DEF_TAIBasedQMC_tags_1[0]), /* 1 */
+       asn_DEF_TAIBasedQMC_tags_1,     /* Same as above */
+       sizeof(asn_DEF_TAIBasedQMC_tags_1)
+               /sizeof(asn_DEF_TAIBasedQMC_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TAIBasedQMC_1,
+       2,      /* Elements count */
+       &asn_SPC_TAIBasedQMC_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/TAIListforMDT.c b/e2ap/lib/TAIListforMDT.c
new file mode 100644 (file)
index 0000000..e419489
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TAIListforMDT.h"
+
+#include "TAI-Item.h"
+static asn_oer_constraints_t asn_OER_type_TAIListforMDT_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..8)) */};
+asn_per_constraints_t asn_PER_type_TAIListforMDT_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       3,  3,  1,  8 }        /* (SIZE(1..8)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_TAIListforMDT_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_TAI_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_TAIListforMDT_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_TAIListforMDT_specs_1 = {
+       sizeof(struct TAIListforMDT),
+       offsetof(struct TAIListforMDT, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_TAIListforMDT = {
+       "TAIListforMDT",
+       "TAIListforMDT",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_TAIListforMDT_tags_1,
+       sizeof(asn_DEF_TAIListforMDT_tags_1)
+               /sizeof(asn_DEF_TAIListforMDT_tags_1[0]), /* 1 */
+       asn_DEF_TAIListforMDT_tags_1,   /* Same as above */
+       sizeof(asn_DEF_TAIListforMDT_tags_1)
+               /sizeof(asn_DEF_TAIListforMDT_tags_1[0]), /* 1 */
+       { &asn_OER_type_TAIListforMDT_constr_1, &asn_PER_type_TAIListforMDT_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_TAIListforMDT_1,
+       1,      /* Single element */
+       &asn_SPC_TAIListforMDT_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/TAIListforQMC.c b/e2ap/lib/TAIListforQMC.c
new file mode 100644 (file)
index 0000000..8db6ab2
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TAIListforQMC.h"
+
+#include "TAI-Item.h"
+static asn_oer_constraints_t asn_OER_type_TAIListforQMC_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..8)) */};
+asn_per_constraints_t asn_PER_type_TAIListforQMC_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       3,  3,  1,  8 }        /* (SIZE(1..8)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_TAIListforQMC_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_TAI_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_TAIListforQMC_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_TAIListforQMC_specs_1 = {
+       sizeof(struct TAIListforQMC),
+       offsetof(struct TAIListforQMC, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_TAIListforQMC = {
+       "TAIListforQMC",
+       "TAIListforQMC",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_TAIListforQMC_tags_1,
+       sizeof(asn_DEF_TAIListforQMC_tags_1)
+               /sizeof(asn_DEF_TAIListforQMC_tags_1[0]), /* 1 */
+       asn_DEF_TAIListforQMC_tags_1,   /* Same as above */
+       sizeof(asn_DEF_TAIListforQMC_tags_1)
+               /sizeof(asn_DEF_TAIListforQMC_tags_1[0]), /* 1 */
+       { &asn_OER_type_TAIListforQMC_constr_1, &asn_PER_type_TAIListforQMC_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_TAIListforQMC_1,
+       1,      /* Single element */
+       &asn_SPC_TAIListforQMC_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/TAListforMDT.c b/e2ap/lib/TAListforMDT.c
new file mode 100644 (file)
index 0000000..363b5ac
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TAListforMDT.h"
+
+static asn_oer_constraints_t asn_OER_type_TAListforMDT_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..8)) */};
+asn_per_constraints_t asn_PER_type_TAListforMDT_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       3,  3,  1,  8 }        /* (SIZE(1..8)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_TAListforMDT_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_TAC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_TAListforMDT_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_TAListforMDT_specs_1 = {
+       sizeof(struct TAListforMDT),
+       offsetof(struct TAListforMDT, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_TAListforMDT = {
+       "TAListforMDT",
+       "TAListforMDT",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_TAListforMDT_tags_1,
+       sizeof(asn_DEF_TAListforMDT_tags_1)
+               /sizeof(asn_DEF_TAListforMDT_tags_1[0]), /* 1 */
+       asn_DEF_TAListforMDT_tags_1,    /* Same as above */
+       sizeof(asn_DEF_TAListforMDT_tags_1)
+               /sizeof(asn_DEF_TAListforMDT_tags_1[0]), /* 1 */
+       { &asn_OER_type_TAListforMDT_constr_1, &asn_PER_type_TAListforMDT_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_TAListforMDT_1,
+       1,      /* Single element */
+       &asn_SPC_TAListforMDT_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/TAListforQMC.c b/e2ap/lib/TAListforQMC.c
new file mode 100644 (file)
index 0000000..780b795
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TAListforQMC.h"
+
+static asn_oer_constraints_t asn_OER_type_TAListforQMC_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..8)) */};
+asn_per_constraints_t asn_PER_type_TAListforQMC_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       3,  3,  1,  8 }        /* (SIZE(1..8)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_TAListforQMC_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_TAC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_TAListforQMC_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_TAListforQMC_specs_1 = {
+       sizeof(struct TAListforQMC),
+       offsetof(struct TAListforQMC, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_TAListforQMC = {
+       "TAListforQMC",
+       "TAListforQMC",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_TAListforQMC_tags_1,
+       sizeof(asn_DEF_TAListforQMC_tags_1)
+               /sizeof(asn_DEF_TAListforQMC_tags_1[0]), /* 1 */
+       asn_DEF_TAListforQMC_tags_1,    /* Same as above */
+       sizeof(asn_DEF_TAListforQMC_tags_1)
+               /sizeof(asn_DEF_TAListforQMC_tags_1[0]), /* 1 */
+       { &asn_OER_type_TAListforQMC_constr_1, &asn_PER_type_TAListforQMC_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_TAListforQMC_1,
+       1,      /* Single element */
+       &asn_SPC_TAListforQMC_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/TDD-Info.c b/e2ap/lib/TDD-Info.c
new file mode 100644 (file)
index 0000000..f92daa0
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TDD-Info.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_TDD_Info_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TDD_Info, eARFCN),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EARFCN,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "eARFCN"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TDD_Info, transmission_Bandwidth),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Transmission_Bandwidth,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "transmission-Bandwidth"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TDD_Info, subframeAssignment),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SubframeAssignment,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "subframeAssignment"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TDD_Info, specialSubframe_Info),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SpecialSubframe_Info,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "specialSubframe-Info"
+               },
+       { ATF_POINTER, 1, offsetof(struct TDD_Info, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P206,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_TDD_Info_oms_1[] = { 4 };
+static const ber_tlv_tag_t asn_DEF_TDD_Info_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TDD_Info_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eARFCN */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transmission-Bandwidth */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* subframeAssignment */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* specialSubframe-Info */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TDD_Info_specs_1 = {
+       sizeof(struct TDD_Info),
+       offsetof(struct TDD_Info, _asn_ctx),
+       asn_MAP_TDD_Info_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_TDD_Info_oms_1, /* Optional members */
+       1, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TDD_Info = {
+       "TDD-Info",
+       "TDD-Info",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TDD_Info_tags_1,
+       sizeof(asn_DEF_TDD_Info_tags_1)
+               /sizeof(asn_DEF_TDD_Info_tags_1[0]), /* 1 */
+       asn_DEF_TDD_Info_tags_1,        /* Same as above */
+       sizeof(asn_DEF_TDD_Info_tags_1)
+               /sizeof(asn_DEF_TDD_Info_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TDD_Info_1,
+       5,      /* Elements count */
+       &asn_SPC_TDD_Info_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/TDD-InfoNeighbourServedNRCell-Information.c b/e2ap/lib/TDD-InfoNeighbourServedNRCell-Information.c
new file mode 100644 (file)
index 0000000..8971c4f
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TDD-InfoNeighbourServedNRCell-Information.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_TDD_InfoNeighbourServedNRCell_Information_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TDD_InfoNeighbourServedNRCell_Information, nRFreqInfo),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRFreqInfo,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nRFreqInfo"
+               },
+       { ATF_POINTER, 1, offsetof(struct TDD_InfoNeighbourServedNRCell_Information, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P96,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_TDD_InfoNeighbourServedNRCell_Information_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_TDD_InfoNeighbourServedNRCell_Information_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TDD_InfoNeighbourServedNRCell_Information_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRFreqInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TDD_InfoNeighbourServedNRCell_Information_specs_1 = {
+       sizeof(struct TDD_InfoNeighbourServedNRCell_Information),
+       offsetof(struct TDD_InfoNeighbourServedNRCell_Information, _asn_ctx),
+       asn_MAP_TDD_InfoNeighbourServedNRCell_Information_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_TDD_InfoNeighbourServedNRCell_Information_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TDD_InfoNeighbourServedNRCell_Information = {
+       "TDD-InfoNeighbourServedNRCell-Information",
+       "TDD-InfoNeighbourServedNRCell-Information",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TDD_InfoNeighbourServedNRCell_Information_tags_1,
+       sizeof(asn_DEF_TDD_InfoNeighbourServedNRCell_Information_tags_1)
+               /sizeof(asn_DEF_TDD_InfoNeighbourServedNRCell_Information_tags_1[0]), /* 1 */
+       asn_DEF_TDD_InfoNeighbourServedNRCell_Information_tags_1,       /* Same as above */
+       sizeof(asn_DEF_TDD_InfoNeighbourServedNRCell_Information_tags_1)
+               /sizeof(asn_DEF_TDD_InfoNeighbourServedNRCell_Information_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TDD_InfoNeighbourServedNRCell_Information_1,
+       2,      /* Elements count */
+       &asn_SPC_TDD_InfoNeighbourServedNRCell_Information_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/TDD-InfoServedNRCell-Information.c b/e2ap/lib/TDD-InfoServedNRCell-Information.c
new file mode 100644 (file)
index 0000000..ef4f836
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TDD-InfoServedNRCell-Information.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_TDD_InfoServedNRCell_Information_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TDD_InfoServedNRCell_Information, nRFreqInfo),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRFreqInfo,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nRFreqInfo"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TDD_InfoServedNRCell_Information, nR_TxBW),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NR_TxBW,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nR-TxBW"
+               },
+       { ATF_POINTER, 1, offsetof(struct TDD_InfoServedNRCell_Information, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P95,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_TDD_InfoServedNRCell_Information_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_TDD_InfoServedNRCell_Information_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TDD_InfoServedNRCell_Information_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRFreqInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nR-TxBW */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TDD_InfoServedNRCell_Information_specs_1 = {
+       sizeof(struct TDD_InfoServedNRCell_Information),
+       offsetof(struct TDD_InfoServedNRCell_Information, _asn_ctx),
+       asn_MAP_TDD_InfoServedNRCell_Information_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_TDD_InfoServedNRCell_Information_oms_1, /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TDD_InfoServedNRCell_Information = {
+       "TDD-InfoServedNRCell-Information",
+       "TDD-InfoServedNRCell-Information",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TDD_InfoServedNRCell_Information_tags_1,
+       sizeof(asn_DEF_TDD_InfoServedNRCell_Information_tags_1)
+               /sizeof(asn_DEF_TDD_InfoServedNRCell_Information_tags_1[0]), /* 1 */
+       asn_DEF_TDD_InfoServedNRCell_Information_tags_1,        /* Same as above */
+       sizeof(asn_DEF_TDD_InfoServedNRCell_Information_tags_1)
+               /sizeof(asn_DEF_TDD_InfoServedNRCell_Information_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TDD_InfoServedNRCell_Information_1,
+       3,      /* Elements count */
+       &asn_SPC_TDD_InfoServedNRCell_Information_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/TargetCellInUTRAN.c b/e2ap/lib/TargetCellInUTRAN.c
new file mode 100644 (file)
index 0000000..4c0721d
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TargetCellInUTRAN.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_TargetCellInUTRAN_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_TargetCellInUTRAN = {
+       "TargetCellInUTRAN",
+       "TargetCellInUTRAN",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_TargetCellInUTRAN_tags_1,
+       sizeof(asn_DEF_TargetCellInUTRAN_tags_1)
+               /sizeof(asn_DEF_TargetCellInUTRAN_tags_1[0]), /* 1 */
+       asn_DEF_TargetCellInUTRAN_tags_1,       /* Same as above */
+       sizeof(asn_DEF_TargetCellInUTRAN_tags_1)
+               /sizeof(asn_DEF_TargetCellInUTRAN_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/TargeteNBtoSource-eNBTransparentContainer.c b/e2ap/lib/TargeteNBtoSource-eNBTransparentContainer.c
new file mode 100644 (file)
index 0000000..366c6c1
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TargeteNBtoSource-eNBTransparentContainer.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_TargeteNBtoSource_eNBTransparentContainer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_TargeteNBtoSource_eNBTransparentContainer = {
+       "TargeteNBtoSource-eNBTransparentContainer",
+       "TargeteNBtoSource-eNBTransparentContainer",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_TargeteNBtoSource_eNBTransparentContainer_tags_1,
+       sizeof(asn_DEF_TargeteNBtoSource_eNBTransparentContainer_tags_1)
+               /sizeof(asn_DEF_TargeteNBtoSource_eNBTransparentContainer_tags_1[0]), /* 1 */
+       asn_DEF_TargeteNBtoSource_eNBTransparentContainer_tags_1,       /* Same as above */
+       sizeof(asn_DEF_TargeteNBtoSource_eNBTransparentContainer_tags_1)
+               /sizeof(asn_DEF_TargeteNBtoSource_eNBTransparentContainer_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/Threshold-RSRP.c b/e2ap/lib/Threshold-RSRP.c
new file mode 100644 (file)
index 0000000..c62c6df
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Threshold-RSRP.h"
+
+int
+Threshold_RSRP_constraint(const 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 >= 0 && value <= 97)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_Threshold_RSRP_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..97) */,
+       -1};
+asn_per_constraints_t asn_PER_type_Threshold_RSRP_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       7,  7,  0,  97 }       /* (0..97) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_Threshold_RSRP_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Threshold_RSRP = {
+       "Threshold-RSRP",
+       "Threshold-RSRP",
+       &asn_OP_NativeInteger,
+       asn_DEF_Threshold_RSRP_tags_1,
+       sizeof(asn_DEF_Threshold_RSRP_tags_1)
+               /sizeof(asn_DEF_Threshold_RSRP_tags_1[0]), /* 1 */
+       asn_DEF_Threshold_RSRP_tags_1,  /* Same as above */
+       sizeof(asn_DEF_Threshold_RSRP_tags_1)
+               /sizeof(asn_DEF_Threshold_RSRP_tags_1[0]), /* 1 */
+       { &asn_OER_type_Threshold_RSRP_constr_1, &asn_PER_type_Threshold_RSRP_constr_1, Threshold_RSRP_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/Threshold-RSRQ.c b/e2ap/lib/Threshold-RSRQ.c
new file mode 100644 (file)
index 0000000..9672dfd
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Threshold-RSRQ.h"
+
+int
+Threshold_RSRQ_constraint(const 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 >= 0 && value <= 34)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_Threshold_RSRQ_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..34) */,
+       -1};
+asn_per_constraints_t asn_PER_type_Threshold_RSRQ_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       6,  6,  0,  34 }       /* (0..34) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_Threshold_RSRQ_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Threshold_RSRQ = {
+       "Threshold-RSRQ",
+       "Threshold-RSRQ",
+       &asn_OP_NativeInteger,
+       asn_DEF_Threshold_RSRQ_tags_1,
+       sizeof(asn_DEF_Threshold_RSRQ_tags_1)
+               /sizeof(asn_DEF_Threshold_RSRQ_tags_1[0]), /* 1 */
+       asn_DEF_Threshold_RSRQ_tags_1,  /* Same as above */
+       sizeof(asn_DEF_Threshold_RSRQ_tags_1)
+               /sizeof(asn_DEF_Threshold_RSRQ_tags_1[0]), /* 1 */
+       { &asn_OER_type_Threshold_RSRQ_constr_1, &asn_PER_type_Threshold_RSRQ_constr_1, Threshold_RSRQ_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/Time-UE-StayedInCell-EnhancedGranularity.c b/e2ap/lib/Time-UE-StayedInCell-EnhancedGranularity.c
new file mode 100644 (file)
index 0000000..34b7416
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Time-UE-StayedInCell-EnhancedGranularity.h"
+
+int
+Time_UE_StayedInCell_EnhancedGranularity_constraint(const 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 >= 0 && value <= 40950)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_Time_UE_StayedInCell_EnhancedGranularity_constr_1 CC_NOTUSED = {
+       { 2, 1 }        /* (0..40950) */,
+       -1};
+static asn_per_constraints_t asn_PER_type_Time_UE_StayedInCell_EnhancedGranularity_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       16,  16,  0,  40950 }  /* (0..40950) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_Time_UE_StayedInCell_EnhancedGranularity_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Time_UE_StayedInCell_EnhancedGranularity = {
+       "Time-UE-StayedInCell-EnhancedGranularity",
+       "Time-UE-StayedInCell-EnhancedGranularity",
+       &asn_OP_NativeInteger,
+       asn_DEF_Time_UE_StayedInCell_EnhancedGranularity_tags_1,
+       sizeof(asn_DEF_Time_UE_StayedInCell_EnhancedGranularity_tags_1)
+               /sizeof(asn_DEF_Time_UE_StayedInCell_EnhancedGranularity_tags_1[0]), /* 1 */
+       asn_DEF_Time_UE_StayedInCell_EnhancedGranularity_tags_1,        /* Same as above */
+       sizeof(asn_DEF_Time_UE_StayedInCell_EnhancedGranularity_tags_1)
+               /sizeof(asn_DEF_Time_UE_StayedInCell_EnhancedGranularity_tags_1[0]), /* 1 */
+       { &asn_OER_type_Time_UE_StayedInCell_EnhancedGranularity_constr_1, &asn_PER_type_Time_UE_StayedInCell_EnhancedGranularity_constr_1, Time_UE_StayedInCell_EnhancedGranularity_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/Time-UE-StayedInCell.c b/e2ap/lib/Time-UE-StayedInCell.c
new file mode 100644 (file)
index 0000000..60fa4f3
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Time-UE-StayedInCell.h"
+
+int
+Time_UE_StayedInCell_constraint(const 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 >= 0 && value <= 4095)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_Time_UE_StayedInCell_constr_1 CC_NOTUSED = {
+       { 2, 1 }        /* (0..4095) */,
+       -1};
+asn_per_constraints_t asn_PER_type_Time_UE_StayedInCell_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       12,  12,  0,  4095 }   /* (0..4095) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_Time_UE_StayedInCell_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Time_UE_StayedInCell = {
+       "Time-UE-StayedInCell",
+       "Time-UE-StayedInCell",
+       &asn_OP_NativeInteger,
+       asn_DEF_Time_UE_StayedInCell_tags_1,
+       sizeof(asn_DEF_Time_UE_StayedInCell_tags_1)
+               /sizeof(asn_DEF_Time_UE_StayedInCell_tags_1[0]), /* 1 */
+       asn_DEF_Time_UE_StayedInCell_tags_1,    /* Same as above */
+       sizeof(asn_DEF_Time_UE_StayedInCell_tags_1)
+               /sizeof(asn_DEF_Time_UE_StayedInCell_tags_1[0]), /* 1 */
+       { &asn_OER_type_Time_UE_StayedInCell_constr_1, &asn_PER_type_Time_UE_StayedInCell_constr_1, Time_UE_StayedInCell_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/TimeStamp.c b/e2ap/lib/TimeStamp.c
new file mode 100644 (file)
index 0000000..5c2bb38
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TimeStamp.h"
+
+int
+TimeStamp_constraint(const 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 == 8)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_TimeStamp_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       8       /* (SIZE(8..8)) */};
+asn_per_constraints_t asn_PER_type_TimeStamp_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  8,  8 }        /* (SIZE(8..8)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_TimeStamp_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_TimeStamp = {
+       "TimeStamp",
+       "TimeStamp",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_TimeStamp_tags_1,
+       sizeof(asn_DEF_TimeStamp_tags_1)
+               /sizeof(asn_DEF_TimeStamp_tags_1[0]), /* 1 */
+       asn_DEF_TimeStamp_tags_1,       /* Same as above */
+       sizeof(asn_DEF_TimeStamp_tags_1)
+               /sizeof(asn_DEF_TimeStamp_tags_1[0]), /* 1 */
+       { &asn_OER_type_TimeStamp_constr_1, &asn_PER_type_TimeStamp_constr_1, TimeStamp_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/TimeToWait.c b/e2ap/lib/TimeToWait.c
new file mode 100644 (file)
index 0000000..e73e3f6
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TimeToWait.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_TimeToWait_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_TimeToWait_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  5 }    /* (0..5,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_TimeToWait_value2enum_1[] = {
+       { 0,    3,      "v1s" },
+       { 1,    3,      "v2s" },
+       { 2,    3,      "v5s" },
+       { 3,    4,      "v10s" },
+       { 4,    4,      "v20s" },
+       { 5,    4,      "v60s" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_TimeToWait_enum2value_1[] = {
+       3,      /* v10s(3) */
+       0,      /* v1s(0) */
+       4,      /* v20s(4) */
+       1,      /* v2s(1) */
+       2,      /* v5s(2) */
+       5       /* v60s(5) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1 = {
+       asn_MAP_TimeToWait_value2enum_1,        /* "tag" => N; sorted by tag */
+       asn_MAP_TimeToWait_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_TimeToWait_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_TimeToWait = {
+       "TimeToWait",
+       "TimeToWait",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_TimeToWait_tags_1,
+       sizeof(asn_DEF_TimeToWait_tags_1)
+               /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */
+       asn_DEF_TimeToWait_tags_1,      /* Same as above */
+       sizeof(asn_DEF_TimeToWait_tags_1)
+               /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */
+       { &asn_OER_type_TimeToWait_constr_1, &asn_PER_type_TimeToWait_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_TimeToWait_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/TraceActivation.c b/e2ap/lib/TraceActivation.c
new file mode 100644 (file)
index 0000000..8e11a2c
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TraceActivation.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_TraceActivation_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TraceActivation, eUTRANTraceID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EUTRANTraceID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "eUTRANTraceID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TraceActivation, interfacesToTrace),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_InterfacesToTrace,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "interfacesToTrace"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TraceActivation, traceDepth),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TraceDepth,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "traceDepth"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct TraceActivation, traceCollectionEntityIPAddress),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TraceCollectionEntityIPAddress,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "traceCollectionEntityIPAddress"
+               },
+       { ATF_POINTER, 1, offsetof(struct TraceActivation, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P207,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_TraceActivation_oms_1[] = { 4 };
+static const ber_tlv_tag_t asn_DEF_TraceActivation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TraceActivation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRANTraceID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* interfacesToTrace */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* traceDepth */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* traceCollectionEntityIPAddress */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_TraceActivation_specs_1 = {
+       sizeof(struct TraceActivation),
+       offsetof(struct TraceActivation, _asn_ctx),
+       asn_MAP_TraceActivation_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_TraceActivation_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TraceActivation = {
+       "TraceActivation",
+       "TraceActivation",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TraceActivation_tags_1,
+       sizeof(asn_DEF_TraceActivation_tags_1)
+               /sizeof(asn_DEF_TraceActivation_tags_1[0]), /* 1 */
+       asn_DEF_TraceActivation_tags_1, /* Same as above */
+       sizeof(asn_DEF_TraceActivation_tags_1)
+               /sizeof(asn_DEF_TraceActivation_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TraceActivation_1,
+       5,      /* Elements count */
+       &asn_SPC_TraceActivation_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/TraceCollectionEntityIPAddress.c b/e2ap/lib/TraceCollectionEntityIPAddress.c
new file mode 100644 (file)
index 0000000..711e068
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TraceCollectionEntityIPAddress.h"
+
+int
+TraceCollectionEntityIPAddress_constraint(const 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 >= 1 && size <= 160)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_TraceCollectionEntityIPAddress_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+asn_per_constraints_t asn_PER_type_TraceCollectionEntityIPAddress_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  1,  160 }  /* (SIZE(1..160,...)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_TraceCollectionEntityIPAddress_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_TraceCollectionEntityIPAddress = {
+       "TraceCollectionEntityIPAddress",
+       "TraceCollectionEntityIPAddress",
+       &asn_OP_BIT_STRING,
+       asn_DEF_TraceCollectionEntityIPAddress_tags_1,
+       sizeof(asn_DEF_TraceCollectionEntityIPAddress_tags_1)
+               /sizeof(asn_DEF_TraceCollectionEntityIPAddress_tags_1[0]), /* 1 */
+       asn_DEF_TraceCollectionEntityIPAddress_tags_1,  /* Same as above */
+       sizeof(asn_DEF_TraceCollectionEntityIPAddress_tags_1)
+               /sizeof(asn_DEF_TraceCollectionEntityIPAddress_tags_1[0]), /* 1 */
+       { &asn_OER_type_TraceCollectionEntityIPAddress_constr_1, &asn_PER_type_TraceCollectionEntityIPAddress_constr_1, TraceCollectionEntityIPAddress_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/TraceDepth.c b/e2ap/lib/TraceDepth.c
new file mode 100644 (file)
index 0000000..9182c6c
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TraceDepth.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_TraceDepth_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_TraceDepth_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  5 }    /* (0..5,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_TraceDepth_value2enum_1[] = {
+       { 0,    7,      "minimum" },
+       { 1,    6,      "medium" },
+       { 2,    7,      "maximum" },
+       { 3,    37,     "minimumWithoutVendorSpecificExtension" },
+       { 4,    36,     "mediumWithoutVendorSpecificExtension" },
+       { 5,    37,     "maximumWithoutVendorSpecificExtension" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_TraceDepth_enum2value_1[] = {
+       2,      /* maximum(2) */
+       5,      /* maximumWithoutVendorSpecificExtension(5) */
+       1,      /* medium(1) */
+       4,      /* mediumWithoutVendorSpecificExtension(4) */
+       0,      /* minimum(0) */
+       3       /* minimumWithoutVendorSpecificExtension(3) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_TraceDepth_specs_1 = {
+       asn_MAP_TraceDepth_value2enum_1,        /* "tag" => N; sorted by tag */
+       asn_MAP_TraceDepth_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_TraceDepth_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_TraceDepth = {
+       "TraceDepth",
+       "TraceDepth",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_TraceDepth_tags_1,
+       sizeof(asn_DEF_TraceDepth_tags_1)
+               /sizeof(asn_DEF_TraceDepth_tags_1[0]), /* 1 */
+       asn_DEF_TraceDepth_tags_1,      /* Same as above */
+       sizeof(asn_DEF_TraceDepth_tags_1)
+               /sizeof(asn_DEF_TraceDepth_tags_1[0]), /* 1 */
+       { &asn_OER_type_TraceDepth_constr_1, &asn_PER_type_TraceDepth_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_TraceDepth_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/Transmission-Bandwidth.c b/e2ap/lib/Transmission-Bandwidth.c
new file mode 100644 (file)
index 0000000..501aa1e
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "Transmission-Bandwidth.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_Transmission_Bandwidth_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_Transmission_Bandwidth_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  5 }    /* (0..5,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_Transmission_Bandwidth_value2enum_1[] = {
+       { 0,    3,      "bw6" },
+       { 1,    4,      "bw15" },
+       { 2,    4,      "bw25" },
+       { 3,    4,      "bw50" },
+       { 4,    4,      "bw75" },
+       { 5,    5,      "bw100" },
+       { 6,    3,      "bw1" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_Transmission_Bandwidth_enum2value_1[] = {
+       6,      /* bw1(6) */
+       5,      /* bw100(5) */
+       1,      /* bw15(1) */
+       2,      /* bw25(2) */
+       3,      /* bw50(3) */
+       0,      /* bw6(0) */
+       4       /* bw75(4) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_Transmission_Bandwidth_specs_1 = {
+       asn_MAP_Transmission_Bandwidth_value2enum_1,    /* "tag" => N; sorted by tag */
+       asn_MAP_Transmission_Bandwidth_enum2value_1,    /* N => "tag"; sorted by N */
+       7,      /* 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_Transmission_Bandwidth_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Transmission_Bandwidth = {
+       "Transmission-Bandwidth",
+       "Transmission-Bandwidth",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_Transmission_Bandwidth_tags_1,
+       sizeof(asn_DEF_Transmission_Bandwidth_tags_1)
+               /sizeof(asn_DEF_Transmission_Bandwidth_tags_1[0]), /* 1 */
+       asn_DEF_Transmission_Bandwidth_tags_1,  /* Same as above */
+       sizeof(asn_DEF_Transmission_Bandwidth_tags_1)
+               /sizeof(asn_DEF_Transmission_Bandwidth_tags_1[0]), /* 1 */
+       { &asn_OER_type_Transmission_Bandwidth_constr_1, &asn_PER_type_Transmission_Bandwidth_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_Transmission_Bandwidth_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/TransportLayerAddress.c b/e2ap/lib/TransportLayerAddress.c
new file mode 100644 (file)
index 0000000..c0d102c
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TransportLayerAddress.h"
+
+int
+TransportLayerAddress_constraint(const 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 >= 1 && size <= 160)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_TransportLayerAddress_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+asn_per_constraints_t asn_PER_type_TransportLayerAddress_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  1,  160 }  /* (SIZE(1..160,...)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_TransportLayerAddress_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_TransportLayerAddress = {
+       "TransportLayerAddress",
+       "TransportLayerAddress",
+       &asn_OP_BIT_STRING,
+       asn_DEF_TransportLayerAddress_tags_1,
+       sizeof(asn_DEF_TransportLayerAddress_tags_1)
+               /sizeof(asn_DEF_TransportLayerAddress_tags_1[0]), /* 1 */
+       asn_DEF_TransportLayerAddress_tags_1,   /* Same as above */
+       sizeof(asn_DEF_TransportLayerAddress_tags_1)
+               /sizeof(asn_DEF_TransportLayerAddress_tags_1[0]), /* 1 */
+       { &asn_OER_type_TransportLayerAddress_constr_1, &asn_PER_type_TransportLayerAddress_constr_1, TransportLayerAddress_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/TriggeringMessage.c b/e2ap/lib/TriggeringMessage.c
new file mode 100644 (file)
index 0000000..b8f422b
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-CommonDataTypes"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TriggeringMessage.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_TriggeringMessage_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_TriggeringMessage_value2enum_1[] = {
+       { 0,    18,     "initiating-message" },
+       { 1,    18,     "successful-outcome" },
+       { 2,    20,     "unsuccessful-outcome" }
+};
+static const unsigned int asn_MAP_TriggeringMessage_enum2value_1[] = {
+       0,      /* initiating-message(0) */
+       1,      /* successful-outcome(1) */
+       2       /* unsuccessful-outcome(2) */
+};
+const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1 = {
+       asn_MAP_TriggeringMessage_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_TriggeringMessage_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_TriggeringMessage_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_TriggeringMessage = {
+       "TriggeringMessage",
+       "TriggeringMessage",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_TriggeringMessage_tags_1,
+       sizeof(asn_DEF_TriggeringMessage_tags_1)
+               /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */
+       asn_DEF_TriggeringMessage_tags_1,       /* Same as above */
+       sizeof(asn_DEF_TriggeringMessage_tags_1)
+               /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */
+       { &asn_OER_type_TriggeringMessage_constr_1, &asn_PER_type_TriggeringMessage_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_TriggeringMessage_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/TunnelInformation.c b/e2ap/lib/TunnelInformation.c
new file mode 100644 (file)
index 0000000..8577fe8
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TunnelInformation.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_TunnelInformation_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct TunnelInformation, transportLayerAddress),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_TransportLayerAddress,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "transportLayerAddress"
+               },
+       { ATF_POINTER, 2, offsetof(struct TunnelInformation, uDP_Port_Number),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Port_Number,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uDP-Port-Number"
+               },
+       { ATF_POINTER, 1, offsetof(struct TunnelInformation, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P208,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_TunnelInformation_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_TunnelInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_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_TunnelInformation_specs_1 = {
+       sizeof(struct TunnelInformation),
+       offsetof(struct TunnelInformation, _asn_ctx),
+       asn_MAP_TunnelInformation_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_TunnelInformation_oms_1,        /* Optional members */
+       2, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TunnelInformation = {
+       "TunnelInformation",
+       "TunnelInformation",
+       &asn_OP_SEQUENCE,
+       asn_DEF_TunnelInformation_tags_1,
+       sizeof(asn_DEF_TunnelInformation_tags_1)
+               /sizeof(asn_DEF_TunnelInformation_tags_1[0]), /* 1 */
+       asn_DEF_TunnelInformation_tags_1,       /* Same as above */
+       sizeof(asn_DEF_TunnelInformation_tags_1)
+               /sizeof(asn_DEF_TunnelInformation_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_TunnelInformation_1,
+       3,      /* Elements count */
+       &asn_SPC_TunnelInformation_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/TypeOfError.c b/e2ap/lib/TypeOfError.c
new file mode 100644 (file)
index 0000000..336da29
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TypeOfError.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_TypeOfError_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_TypeOfError_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_TypeOfError_value2enum_1[] = {
+       { 0,    14,     "not-understood" },
+       { 1,    7,      "missing" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_TypeOfError_enum2value_1[] = {
+       1,      /* missing(1) */
+       0       /* not-understood(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1 = {
+       asn_MAP_TypeOfError_value2enum_1,       /* "tag" => N; sorted by tag */
+       asn_MAP_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_TypeOfError_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_TypeOfError = {
+       "TypeOfError",
+       "TypeOfError",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_TypeOfError_tags_1,
+       sizeof(asn_DEF_TypeOfError_tags_1)
+               /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */
+       asn_DEF_TypeOfError_tags_1,     /* Same as above */
+       sizeof(asn_DEF_TypeOfError_tags_1)
+               /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */
+       { &asn_OER_type_TypeOfError_constr_1, &asn_PER_type_TypeOfError_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_TypeOfError_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/TypeOfMessage.c b/e2ap/lib/TypeOfMessage.c
new file mode 100644 (file)
index 0000000..6569746
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-gNB-X2-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "TypeOfMessage.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_TypeOfMessage_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_TypeOfMessage_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (0..3) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_TypeOfMessage_value2enum_1[] = {
+       { 0,    7,      "nothing" },
+       { 1,    18,     "initiating-message" },
+       { 2,    18,     "successful-outcome" },
+       { 3,    20,     "unsuccessful-outcome" }
+};
+static const unsigned int asn_MAP_TypeOfMessage_enum2value_1[] = {
+       1,      /* initiating-message(1) */
+       0,      /* nothing(0) */
+       2,      /* successful-outcome(2) */
+       3       /* unsuccessful-outcome(3) */
+};
+const asn_INTEGER_specifics_t asn_SPC_TypeOfMessage_specs_1 = {
+       asn_MAP_TypeOfMessage_value2enum_1,     /* "tag" => N; sorted by tag */
+       asn_MAP_TypeOfMessage_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_TypeOfMessage_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_TypeOfMessage = {
+       "TypeOfMessage",
+       "TypeOfMessage",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_TypeOfMessage_tags_1,
+       sizeof(asn_DEF_TypeOfMessage_tags_1)
+               /sizeof(asn_DEF_TypeOfMessage_tags_1[0]), /* 1 */
+       asn_DEF_TypeOfMessage_tags_1,   /* Same as above */
+       sizeof(asn_DEF_TypeOfMessage_tags_1)
+               /sizeof(asn_DEF_TypeOfMessage_tags_1[0]), /* 1 */
+       { &asn_OER_type_TypeOfMessage_constr_1, &asn_PER_type_TypeOfMessage_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_TypeOfMessage_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/UE-ContextInformation-SgNBModReq.c b/e2ap/lib/UE-ContextInformation-SgNBModReq.c
new file mode 100644 (file)
index 0000000..c530ec5
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UE-ContextInformation-SgNBModReq.h"
+
+#include "NRUESecurityCapabilities.h"
+#include "UEAggregateMaximumBitRate.h"
+#include "E-RABs-ToBeAdded-SgNBModReq-List.h"
+#include "E-RABs-ToBeModified-SgNBModReq-List.h"
+#include "E-RABs-ToBeReleased-SgNBModReq-List.h"
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_UE_ContextInformation_SgNBModReq_1[] = {
+       { ATF_POINTER, 7, offsetof(struct UE_ContextInformation_SgNBModReq, nRUE_SecurityCapabilities),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NRUESecurityCapabilities,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "nRUE-SecurityCapabilities"
+               },
+       { ATF_POINTER, 6, offsetof(struct UE_ContextInformation_SgNBModReq, sgNB_SecurityKey),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SgNBSecurityKey,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNB-SecurityKey"
+               },
+       { ATF_POINTER, 5, offsetof(struct UE_ContextInformation_SgNBModReq, sgNBUEAggregateMaximumBitRate),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UEAggregateMaximumBitRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNBUEAggregateMaximumBitRate"
+               },
+       { ATF_POINTER, 4, offsetof(struct UE_ContextInformation_SgNBModReq, e_RABs_ToBeAdded),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RABs-ToBeAdded"
+               },
+       { ATF_POINTER, 3, offsetof(struct UE_ContextInformation_SgNBModReq, e_RABs_ToBeModified),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeModified_SgNBModReq_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RABs-ToBeModified"
+               },
+       { ATF_POINTER, 2, offsetof(struct UE_ContextInformation_SgNBModReq, e_RABs_ToBeReleased),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RABs-ToBeReleased"
+               },
+       { ATF_POINTER, 1, offsetof(struct UE_ContextInformation_SgNBModReq, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P52,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_UE_ContextInformation_SgNBModReq_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 };
+static const ber_tlv_tag_t asn_DEF_UE_ContextInformation_SgNBModReq_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UE_ContextInformation_SgNBModReq_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRUE-SecurityCapabilities */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sgNB-SecurityKey */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sgNBUEAggregateMaximumBitRate */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* e-RABs-ToBeAdded */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* e-RABs-ToBeModified */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* e-RABs-ToBeReleased */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformation_SgNBModReq_specs_1 = {
+       sizeof(struct UE_ContextInformation_SgNBModReq),
+       offsetof(struct UE_ContextInformation_SgNBModReq, _asn_ctx),
+       asn_MAP_UE_ContextInformation_SgNBModReq_tag2el_1,
+       7,      /* Count of tags in the map */
+       asn_MAP_UE_ContextInformation_SgNBModReq_oms_1, /* Optional members */
+       7, 0,   /* Root/Additions */
+       7,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UE_ContextInformation_SgNBModReq = {
+       "UE-ContextInformation-SgNBModReq",
+       "UE-ContextInformation-SgNBModReq",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UE_ContextInformation_SgNBModReq_tags_1,
+       sizeof(asn_DEF_UE_ContextInformation_SgNBModReq_tags_1)
+               /sizeof(asn_DEF_UE_ContextInformation_SgNBModReq_tags_1[0]), /* 1 */
+       asn_DEF_UE_ContextInformation_SgNBModReq_tags_1,        /* Same as above */
+       sizeof(asn_DEF_UE_ContextInformation_SgNBModReq_tags_1)
+               /sizeof(asn_DEF_UE_ContextInformation_SgNBModReq_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UE_ContextInformation_SgNBModReq_1,
+       7,      /* Elements count */
+       &asn_SPC_UE_ContextInformation_SgNBModReq_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/UE-ContextInformation.c b/e2ap/lib/UE-ContextInformation.c
new file mode 100644 (file)
index 0000000..5193d45
--- /dev/null
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UE-ContextInformation.h"
+
+#include "HandoverRestrictionList.h"
+#include "LocationReportingInformation.h"
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_UE_ContextInformation_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation, mME_UE_S1AP_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UE_S1AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "mME-UE-S1AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation, uESecurityCapabilities),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UESecurityCapabilities,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uESecurityCapabilities"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation, aS_SecurityInformation),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_AS_SecurityInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "aS-SecurityInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation, uEaggregateMaximumBitRate),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UEAggregateMaximumBitRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uEaggregateMaximumBitRate"
+               },
+       { ATF_POINTER, 1, offsetof(struct UE_ContextInformation, subscriberProfileIDforRFP),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SubscriberProfileIDforRFP,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "subscriberProfileIDforRFP"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation, e_RABs_ToBeSetup_List),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeSetup_List,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RABs-ToBeSetup-List"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation, rRC_Context),
+               (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RRC_Context,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "rRC-Context"
+               },
+       { ATF_POINTER, 3, offsetof(struct UE_ContextInformation, handoverRestrictionList),
+               (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_HandoverRestrictionList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "handoverRestrictionList"
+               },
+       { ATF_POINTER, 2, offsetof(struct UE_ContextInformation, locationReportingInformation),
+               (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_LocationReportingInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "locationReportingInformation"
+               },
+       { ATF_POINTER, 1, offsetof(struct UE_ContextInformation, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P0,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_UE_ContextInformation_oms_1[] = { 4, 7, 8, 9 };
+static const ber_tlv_tag_t asn_DEF_UE_ContextInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UE_ContextInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mME-UE-S1AP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uESecurityCapabilities */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* aS-SecurityInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* uEaggregateMaximumBitRate */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* subscriberProfileIDforRFP */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* e-RABs-ToBeSetup-List */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* rRC-Context */
+    { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* handoverRestrictionList */
+    { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* locationReportingInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformation_specs_1 = {
+       sizeof(struct UE_ContextInformation),
+       offsetof(struct UE_ContextInformation, _asn_ctx),
+       asn_MAP_UE_ContextInformation_tag2el_1,
+       10,     /* Count of tags in the map */
+       asn_MAP_UE_ContextInformation_oms_1,    /* Optional members */
+       4, 0,   /* Root/Additions */
+       10,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UE_ContextInformation = {
+       "UE-ContextInformation",
+       "UE-ContextInformation",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UE_ContextInformation_tags_1,
+       sizeof(asn_DEF_UE_ContextInformation_tags_1)
+               /sizeof(asn_DEF_UE_ContextInformation_tags_1[0]), /* 1 */
+       asn_DEF_UE_ContextInformation_tags_1,   /* Same as above */
+       sizeof(asn_DEF_UE_ContextInformation_tags_1)
+               /sizeof(asn_DEF_UE_ContextInformation_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UE_ContextInformation_1,
+       10,     /* Elements count */
+       &asn_SPC_UE_ContextInformation_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/UE-ContextInformationRetrieve.c b/e2ap/lib/UE-ContextInformationRetrieve.c
new file mode 100644 (file)
index 0000000..dd9810b
--- /dev/null
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UE-ContextInformationRetrieve.h"
+
+#include "HandoverRestrictionList.h"
+#include "LocationReportingInformation.h"
+#include "MDTPLMNList.h"
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_UE_ContextInformationRetrieve_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve, mME_UE_S1AP_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UE_S1AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "mME-UE-S1AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve, uESecurityCapabilities),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UESecurityCapabilities,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uESecurityCapabilities"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve, aS_SecurityInformation),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_AS_SecurityInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "aS-SecurityInformation"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve, uEaggregateMaximumBitRate),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UEAggregateMaximumBitRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uEaggregateMaximumBitRate"
+               },
+       { ATF_POINTER, 1, offsetof(struct UE_ContextInformationRetrieve, subscriberProfileIDforRFP),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SubscriberProfileIDforRFP,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "subscriberProfileIDforRFP"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve, e_RABs_ToBeSetup_ListRetrieve),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeSetup_ListRetrieve,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RABs-ToBeSetup-ListRetrieve"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve, rRC_Context),
+               (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RRC_Context,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "rRC-Context"
+               },
+       { ATF_POINTER, 5, offsetof(struct UE_ContextInformationRetrieve, handoverRestrictionList),
+               (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_HandoverRestrictionList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "handoverRestrictionList"
+               },
+       { ATF_POINTER, 4, offsetof(struct UE_ContextInformationRetrieve, locationReportingInformation),
+               (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_LocationReportingInformation,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "locationReportingInformation"
+               },
+       { ATF_POINTER, 3, offsetof(struct UE_ContextInformationRetrieve, managBasedMDTallowed),
+               (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ManagementBasedMDTallowed,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "managBasedMDTallowed"
+               },
+       { ATF_POINTER, 2, offsetof(struct UE_ContextInformationRetrieve, managBasedMDTPLMNList),
+               (ASN_TAG_CLASS_CONTEXT | (10 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_MDTPLMNList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "managBasedMDTPLMNList"
+               },
+       { ATF_POINTER, 1, offsetof(struct UE_ContextInformationRetrieve, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (11 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P42,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_UE_ContextInformationRetrieve_oms_1[] = { 4, 7, 8, 9, 10, 11 };
+static const ber_tlv_tag_t asn_DEF_UE_ContextInformationRetrieve_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UE_ContextInformationRetrieve_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mME-UE-S1AP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uESecurityCapabilities */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* aS-SecurityInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* uEaggregateMaximumBitRate */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* subscriberProfileIDforRFP */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* e-RABs-ToBeSetup-ListRetrieve */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* rRC-Context */
+    { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* handoverRestrictionList */
+    { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* locationReportingInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* managBasedMDTallowed */
+    { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* managBasedMDTPLMNList */
+    { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformationRetrieve_specs_1 = {
+       sizeof(struct UE_ContextInformationRetrieve),
+       offsetof(struct UE_ContextInformationRetrieve, _asn_ctx),
+       asn_MAP_UE_ContextInformationRetrieve_tag2el_1,
+       12,     /* Count of tags in the map */
+       asn_MAP_UE_ContextInformationRetrieve_oms_1,    /* Optional members */
+       6, 0,   /* Root/Additions */
+       12,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationRetrieve = {
+       "UE-ContextInformationRetrieve",
+       "UE-ContextInformationRetrieve",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UE_ContextInformationRetrieve_tags_1,
+       sizeof(asn_DEF_UE_ContextInformationRetrieve_tags_1)
+               /sizeof(asn_DEF_UE_ContextInformationRetrieve_tags_1[0]), /* 1 */
+       asn_DEF_UE_ContextInformationRetrieve_tags_1,   /* Same as above */
+       sizeof(asn_DEF_UE_ContextInformationRetrieve_tags_1)
+               /sizeof(asn_DEF_UE_ContextInformationRetrieve_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UE_ContextInformationRetrieve_1,
+       12,     /* Elements count */
+       &asn_SPC_UE_ContextInformationRetrieve_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/UE-ContextInformationSeNBModReq.c b/e2ap/lib/UE-ContextInformationSeNBModReq.c
new file mode 100644 (file)
index 0000000..25dfd8c
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UE-ContextInformationSeNBModReq.h"
+
+#include "UESecurityCapabilities.h"
+#include "UEAggregateMaximumBitRate.h"
+#include "E-RABs-ToBeAdded-List-ModReq.h"
+#include "E-RABs-ToBeModified-List-ModReq.h"
+#include "E-RABs-ToBeReleased-List-ModReq.h"
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_UE_ContextInformationSeNBModReq_1[] = {
+       { ATF_POINTER, 7, offsetof(struct UE_ContextInformationSeNBModReq, uE_SecurityCapabilities),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UESecurityCapabilities,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uE-SecurityCapabilities"
+               },
+       { ATF_POINTER, 6, offsetof(struct UE_ContextInformationSeNBModReq, seNB_SecurityKey),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SeNBSecurityKey,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "seNB-SecurityKey"
+               },
+       { ATF_POINTER, 5, offsetof(struct UE_ContextInformationSeNBModReq, seNBUEAggregateMaximumBitRate),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UEAggregateMaximumBitRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "seNBUEAggregateMaximumBitRate"
+               },
+       { ATF_POINTER, 4, offsetof(struct UE_ContextInformationSeNBModReq, e_RABs_ToBeAdded),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeAdded_List_ModReq,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RABs-ToBeAdded"
+               },
+       { ATF_POINTER, 3, offsetof(struct UE_ContextInformationSeNBModReq, e_RABs_ToBeModified),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeModified_List_ModReq,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RABs-ToBeModified"
+               },
+       { ATF_POINTER, 2, offsetof(struct UE_ContextInformationSeNBModReq, e_RABs_ToBeReleased),
+               (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_E_RABs_ToBeReleased_List_ModReq,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "e-RABs-ToBeReleased"
+               },
+       { ATF_POINTER, 1, offsetof(struct UE_ContextInformationSeNBModReq, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P23,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_UE_ContextInformationSeNBModReq_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 };
+static const ber_tlv_tag_t asn_DEF_UE_ContextInformationSeNBModReq_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UE_ContextInformationSeNBModReq_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uE-SecurityCapabilities */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* seNB-SecurityKey */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* seNBUEAggregateMaximumBitRate */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* e-RABs-ToBeAdded */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* e-RABs-ToBeModified */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* e-RABs-ToBeReleased */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformationSeNBModReq_specs_1 = {
+       sizeof(struct UE_ContextInformationSeNBModReq),
+       offsetof(struct UE_ContextInformationSeNBModReq, _asn_ctx),
+       asn_MAP_UE_ContextInformationSeNBModReq_tag2el_1,
+       7,      /* Count of tags in the map */
+       asn_MAP_UE_ContextInformationSeNBModReq_oms_1,  /* Optional members */
+       7, 0,   /* Root/Additions */
+       7,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationSeNBModReq = {
+       "UE-ContextInformationSeNBModReq",
+       "UE-ContextInformationSeNBModReq",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UE_ContextInformationSeNBModReq_tags_1,
+       sizeof(asn_DEF_UE_ContextInformationSeNBModReq_tags_1)
+               /sizeof(asn_DEF_UE_ContextInformationSeNBModReq_tags_1[0]), /* 1 */
+       asn_DEF_UE_ContextInformationSeNBModReq_tags_1, /* Same as above */
+       sizeof(asn_DEF_UE_ContextInformationSeNBModReq_tags_1)
+               /sizeof(asn_DEF_UE_ContextInformationSeNBModReq_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UE_ContextInformationSeNBModReq_1,
+       7,      /* Elements count */
+       &asn_SPC_UE_ContextInformationSeNBModReq_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/UE-ContextKeptIndicator.c b/e2ap/lib/UE-ContextKeptIndicator.c
new file mode 100644 (file)
index 0000000..baa48a0
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UE-ContextKeptIndicator.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_UE_ContextKeptIndicator_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_UE_ContextKeptIndicator_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_UE_ContextKeptIndicator_value2enum_1[] = {
+       { 0,    4,      "true" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_UE_ContextKeptIndicator_enum2value_1[] = {
+       0       /* true(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_UE_ContextKeptIndicator_specs_1 = {
+       asn_MAP_UE_ContextKeptIndicator_value2enum_1,   /* "tag" => N; sorted by tag */
+       asn_MAP_UE_ContextKeptIndicator_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_UE_ContextKeptIndicator_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_UE_ContextKeptIndicator = {
+       "UE-ContextKeptIndicator",
+       "UE-ContextKeptIndicator",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_UE_ContextKeptIndicator_tags_1,
+       sizeof(asn_DEF_UE_ContextKeptIndicator_tags_1)
+               /sizeof(asn_DEF_UE_ContextKeptIndicator_tags_1[0]), /* 1 */
+       asn_DEF_UE_ContextKeptIndicator_tags_1, /* Same as above */
+       sizeof(asn_DEF_UE_ContextKeptIndicator_tags_1)
+               /sizeof(asn_DEF_UE_ContextKeptIndicator_tags_1[0]), /* 1 */
+       { &asn_OER_type_UE_ContextKeptIndicator_constr_1, &asn_PER_type_UE_ContextKeptIndicator_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_UE_ContextKeptIndicator_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/UE-ContextReferenceAtSeNB.c b/e2ap/lib/UE-ContextReferenceAtSeNB.c
new file mode 100644 (file)
index 0000000..9c098fb
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UE-ContextReferenceAtSeNB.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtSeNB_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSeNB, source_GlobalSeNB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GlobalENB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "source-GlobalSeNB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSeNB, seNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "seNB-UE-X2AP-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSeNB, seNB_UE_X2AP_ID_Extension),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "seNB-UE-X2AP-ID-Extension"
+               },
+       { ATF_POINTER, 1, offsetof(struct UE_ContextReferenceAtSeNB, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_UE_ContextReferenceAtSeNB_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_UE_ContextReferenceAtSeNB_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UE_ContextReferenceAtSeNB_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* source-GlobalSeNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* seNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* seNB-UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtSeNB_specs_1 = {
+       sizeof(struct UE_ContextReferenceAtSeNB),
+       offsetof(struct UE_ContextReferenceAtSeNB, _asn_ctx),
+       asn_MAP_UE_ContextReferenceAtSeNB_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_UE_ContextReferenceAtSeNB_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtSeNB = {
+       "UE-ContextReferenceAtSeNB",
+       "UE-ContextReferenceAtSeNB",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UE_ContextReferenceAtSeNB_tags_1,
+       sizeof(asn_DEF_UE_ContextReferenceAtSeNB_tags_1)
+               /sizeof(asn_DEF_UE_ContextReferenceAtSeNB_tags_1[0]), /* 1 */
+       asn_DEF_UE_ContextReferenceAtSeNB_tags_1,       /* Same as above */
+       sizeof(asn_DEF_UE_ContextReferenceAtSeNB_tags_1)
+               /sizeof(asn_DEF_UE_ContextReferenceAtSeNB_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UE_ContextReferenceAtSeNB_1,
+       4,      /* Elements count */
+       &asn_SPC_UE_ContextReferenceAtSeNB_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/UE-ContextReferenceAtSgNB.c b/e2ap/lib/UE-ContextReferenceAtSgNB.c
new file mode 100644 (file)
index 0000000..a5dc819
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UE-ContextReferenceAtSgNB.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtSgNB_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSgNB, source_GlobalSgNB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_GlobalGNB_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "source-GlobalSgNB-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSgNB, sgNB_UE_X2AP_ID),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNB-UE-X2AP-ID"
+               },
+       { ATF_POINTER, 1, offsetof(struct UE_ContextReferenceAtSgNB, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P4,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_UE_ContextReferenceAtSgNB_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_UE_ContextReferenceAtSgNB_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UE_ContextReferenceAtSgNB_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* source-GlobalSgNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sgNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtSgNB_specs_1 = {
+       sizeof(struct UE_ContextReferenceAtSgNB),
+       offsetof(struct UE_ContextReferenceAtSgNB, _asn_ctx),
+       asn_MAP_UE_ContextReferenceAtSgNB_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_UE_ContextReferenceAtSgNB_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtSgNB = {
+       "UE-ContextReferenceAtSgNB",
+       "UE-ContextReferenceAtSgNB",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UE_ContextReferenceAtSgNB_tags_1,
+       sizeof(asn_DEF_UE_ContextReferenceAtSgNB_tags_1)
+               /sizeof(asn_DEF_UE_ContextReferenceAtSgNB_tags_1[0]), /* 1 */
+       asn_DEF_UE_ContextReferenceAtSgNB_tags_1,       /* Same as above */
+       sizeof(asn_DEF_UE_ContextReferenceAtSgNB_tags_1)
+               /sizeof(asn_DEF_UE_ContextReferenceAtSgNB_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UE_ContextReferenceAtSgNB_1,
+       3,      /* Elements count */
+       &asn_SPC_UE_ContextReferenceAtSgNB_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/UE-ContextReferenceAtWT.c b/e2ap/lib/UE-ContextReferenceAtWT.c
new file mode 100644 (file)
index 0000000..032d041
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UE-ContextReferenceAtWT.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtWT_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtWT, wTID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_WTID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "wTID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtWT, wT_UE_XwAP_ID),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_WT_UE_XwAP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "wT-UE-XwAP-ID"
+               },
+       { ATF_POINTER, 1, offsetof(struct UE_ContextReferenceAtWT, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P3,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_UE_ContextReferenceAtWT_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_UE_ContextReferenceAtWT_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UE_ContextReferenceAtWT_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wTID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* wT-UE-XwAP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtWT_specs_1 = {
+       sizeof(struct UE_ContextReferenceAtWT),
+       offsetof(struct UE_ContextReferenceAtWT, _asn_ctx),
+       asn_MAP_UE_ContextReferenceAtWT_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_UE_ContextReferenceAtWT_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtWT = {
+       "UE-ContextReferenceAtWT",
+       "UE-ContextReferenceAtWT",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UE_ContextReferenceAtWT_tags_1,
+       sizeof(asn_DEF_UE_ContextReferenceAtWT_tags_1)
+               /sizeof(asn_DEF_UE_ContextReferenceAtWT_tags_1[0]), /* 1 */
+       asn_DEF_UE_ContextReferenceAtWT_tags_1, /* Same as above */
+       sizeof(asn_DEF_UE_ContextReferenceAtWT_tags_1)
+               /sizeof(asn_DEF_UE_ContextReferenceAtWT_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UE_ContextReferenceAtWT_1,
+       3,      /* Elements count */
+       &asn_SPC_UE_ContextReferenceAtWT_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/UE-HistoryInformation.c b/e2ap/lib/UE-HistoryInformation.c
new file mode 100644 (file)
index 0000000..efca173
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UE-HistoryInformation.h"
+
+#include "LastVisitedCell-Item.h"
+static asn_oer_constraints_t asn_OER_type_UE_HistoryInformation_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..16)) */};
+static asn_per_constraints_t asn_PER_type_UE_HistoryInformation_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       4,  4,  1,  16 }       /* (SIZE(1..16)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_UE_HistoryInformation_1[] = {
+       { ATF_POINTER, 0, 0,
+               -1 /* Ambiguous tag (CHOICE?) */,
+               0,
+               &asn_DEF_LastVisitedCell_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UE_HistoryInformation_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_UE_HistoryInformation_specs_1 = {
+       sizeof(struct UE_HistoryInformation),
+       offsetof(struct UE_HistoryInformation, _asn_ctx),
+       2,      /* XER encoding is XMLValueList */
+};
+asn_TYPE_descriptor_t asn_DEF_UE_HistoryInformation = {
+       "UE-HistoryInformation",
+       "UE-HistoryInformation",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_UE_HistoryInformation_tags_1,
+       sizeof(asn_DEF_UE_HistoryInformation_tags_1)
+               /sizeof(asn_DEF_UE_HistoryInformation_tags_1[0]), /* 1 */
+       asn_DEF_UE_HistoryInformation_tags_1,   /* Same as above */
+       sizeof(asn_DEF_UE_HistoryInformation_tags_1)
+               /sizeof(asn_DEF_UE_HistoryInformation_tags_1[0]), /* 1 */
+       { &asn_OER_type_UE_HistoryInformation_constr_1, &asn_PER_type_UE_HistoryInformation_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_UE_HistoryInformation_1,
+       1,      /* Single element */
+       &asn_SPC_UE_HistoryInformation_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/UE-HistoryInformationFromTheUE.c b/e2ap/lib/UE-HistoryInformationFromTheUE.c
new file mode 100644 (file)
index 0000000..174f78e
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UE-HistoryInformationFromTheUE.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_UE_HistoryInformationFromTheUE_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_UE_HistoryInformationFromTheUE = {
+       "UE-HistoryInformationFromTheUE",
+       "UE-HistoryInformationFromTheUE",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_UE_HistoryInformationFromTheUE_tags_1,
+       sizeof(asn_DEF_UE_HistoryInformationFromTheUE_tags_1)
+               /sizeof(asn_DEF_UE_HistoryInformationFromTheUE_tags_1[0]), /* 1 */
+       asn_DEF_UE_HistoryInformationFromTheUE_tags_1,  /* Same as above */
+       sizeof(asn_DEF_UE_HistoryInformationFromTheUE_tags_1)
+               /sizeof(asn_DEF_UE_HistoryInformationFromTheUE_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/UE-RLF-Report-Container-for-extended-bands.c b/e2ap/lib/UE-RLF-Report-Container-for-extended-bands.c
new file mode 100644 (file)
index 0000000..5d6c31c
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UE-RLF-Report-Container-for-extended-bands.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_UE_RLF_Report_Container_for_extended_bands_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_UE_RLF_Report_Container_for_extended_bands = {
+       "UE-RLF-Report-Container-for-extended-bands",
+       "UE-RLF-Report-Container-for-extended-bands",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_UE_RLF_Report_Container_for_extended_bands_tags_1,
+       sizeof(asn_DEF_UE_RLF_Report_Container_for_extended_bands_tags_1)
+               /sizeof(asn_DEF_UE_RLF_Report_Container_for_extended_bands_tags_1[0]), /* 1 */
+       asn_DEF_UE_RLF_Report_Container_for_extended_bands_tags_1,      /* Same as above */
+       sizeof(asn_DEF_UE_RLF_Report_Container_for_extended_bands_tags_1)
+               /sizeof(asn_DEF_UE_RLF_Report_Container_for_extended_bands_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/UE-RLF-Report-Container.c b/e2ap/lib/UE-RLF-Report-Container.c
new file mode 100644 (file)
index 0000000..f6c4fb8
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UE-RLF-Report-Container.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_UE_RLF_Report_Container_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_UE_RLF_Report_Container = {
+       "UE-RLF-Report-Container",
+       "UE-RLF-Report-Container",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_UE_RLF_Report_Container_tags_1,
+       sizeof(asn_DEF_UE_RLF_Report_Container_tags_1)
+               /sizeof(asn_DEF_UE_RLF_Report_Container_tags_1[0]), /* 1 */
+       asn_DEF_UE_RLF_Report_Container_tags_1, /* Same as above */
+       sizeof(asn_DEF_UE_RLF_Report_Container_tags_1)
+               /sizeof(asn_DEF_UE_RLF_Report_Container_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/UE-S1AP-ID.c b/e2ap/lib/UE-S1AP-ID.c
new file mode 100644 (file)
index 0000000..750fbdf
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UE-S1AP-ID.h"
+
+int
+UE_S1AP_ID_constraint(const 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 asn_oer_constraints_t asn_OER_type_UE_S1AP_ID_constr_1 CC_NOTUSED = {
+       { 4, 1 }        /* (0..4294967295) */,
+       -1};
+asn_per_constraints_t asn_PER_type_UE_S1AP_ID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       32, -1,  0,  4294967295 }      /* (0..4294967295) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+const asn_INTEGER_specifics_t asn_SPC_UE_S1AP_ID_specs_1 = {
+       0,      0,      0,      0,      0,
+       0,      /* Native long size */
+       1       /* Unsigned representation */
+};
+static const ber_tlv_tag_t asn_DEF_UE_S1AP_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_UE_S1AP_ID = {
+       "UE-S1AP-ID",
+       "UE-S1AP-ID",
+       &asn_OP_NativeInteger,
+       asn_DEF_UE_S1AP_ID_tags_1,
+       sizeof(asn_DEF_UE_S1AP_ID_tags_1)
+               /sizeof(asn_DEF_UE_S1AP_ID_tags_1[0]), /* 1 */
+       asn_DEF_UE_S1AP_ID_tags_1,      /* Same as above */
+       sizeof(asn_DEF_UE_S1AP_ID_tags_1)
+               /sizeof(asn_DEF_UE_S1AP_ID_tags_1[0]), /* 1 */
+       { &asn_OER_type_UE_S1AP_ID_constr_1, &asn_PER_type_UE_S1AP_ID_constr_1, UE_S1AP_ID_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_UE_S1AP_ID_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/UE-X2AP-ID-Extension.c b/e2ap/lib/UE-X2AP-ID-Extension.c
new file mode 100644 (file)
index 0000000..c7226fd
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UE-X2AP-ID-Extension.h"
+
+int
+UE_X2AP_ID_Extension_constraint(const 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 >= 0 && value <= 4095)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_UE_X2AP_ID_Extension_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_UE_X2AP_ID_Extension_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  12,  12,  0,  4095 }       /* (0..4095,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_UE_X2AP_ID_Extension_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_UE_X2AP_ID_Extension = {
+       "UE-X2AP-ID-Extension",
+       "UE-X2AP-ID-Extension",
+       &asn_OP_NativeInteger,
+       asn_DEF_UE_X2AP_ID_Extension_tags_1,
+       sizeof(asn_DEF_UE_X2AP_ID_Extension_tags_1)
+               /sizeof(asn_DEF_UE_X2AP_ID_Extension_tags_1[0]), /* 1 */
+       asn_DEF_UE_X2AP_ID_Extension_tags_1,    /* Same as above */
+       sizeof(asn_DEF_UE_X2AP_ID_Extension_tags_1)
+               /sizeof(asn_DEF_UE_X2AP_ID_Extension_tags_1[0]), /* 1 */
+       { &asn_OER_type_UE_X2AP_ID_Extension_constr_1, &asn_PER_type_UE_X2AP_ID_Extension_constr_1, UE_X2AP_ID_Extension_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/UE-X2AP-ID.c b/e2ap/lib/UE-X2AP-ID.c
new file mode 100644 (file)
index 0000000..0f6c63a
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UE-X2AP-ID.h"
+
+int
+UE_X2AP_ID_constraint(const 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 >= 0 && value <= 4095)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_UE_X2AP_ID_constr_1 CC_NOTUSED = {
+       { 2, 1 }        /* (0..4095) */,
+       -1};
+asn_per_constraints_t asn_PER_type_UE_X2AP_ID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       12,  12,  0,  4095 }   /* (0..4095) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_UE_X2AP_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_UE_X2AP_ID = {
+       "UE-X2AP-ID",
+       "UE-X2AP-ID",
+       &asn_OP_NativeInteger,
+       asn_DEF_UE_X2AP_ID_tags_1,
+       sizeof(asn_DEF_UE_X2AP_ID_tags_1)
+               /sizeof(asn_DEF_UE_X2AP_ID_tags_1[0]), /* 1 */
+       asn_DEF_UE_X2AP_ID_tags_1,      /* Same as above */
+       sizeof(asn_DEF_UE_X2AP_ID_tags_1)
+               /sizeof(asn_DEF_UE_X2AP_ID_tags_1[0]), /* 1 */
+       { &asn_OER_type_UE_X2AP_ID_constr_1, &asn_PER_type_UE_X2AP_ID_constr_1, UE_X2AP_ID_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/UEAggregateMaximumBitRate.c b/e2ap/lib/UEAggregateMaximumBitRate.c
new file mode 100644 (file)
index 0000000..fd7e212
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UEAggregateMaximumBitRate.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_UEAggregateMaximumBitRate_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UEAggregateMaximumBitRate, uEaggregateMaximumBitRateDownlink),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BitRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uEaggregateMaximumBitRateDownlink"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UEAggregateMaximumBitRate, uEaggregateMaximumBitRateUplink),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BitRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uEaggregateMaximumBitRateUplink"
+               },
+       { ATF_POINTER, 1, offsetof(struct UEAggregateMaximumBitRate, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P209,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_UEAggregateMaximumBitRate_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_UEAggregateMaximumBitRate_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEAggregateMaximumBitRate_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uEaggregateMaximumBitRateDownlink */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uEaggregateMaximumBitRateUplink */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UEAggregateMaximumBitRate_specs_1 = {
+       sizeof(struct UEAggregateMaximumBitRate),
+       offsetof(struct UEAggregateMaximumBitRate, _asn_ctx),
+       asn_MAP_UEAggregateMaximumBitRate_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_UEAggregateMaximumBitRate_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UEAggregateMaximumBitRate = {
+       "UEAggregateMaximumBitRate",
+       "UEAggregateMaximumBitRate",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UEAggregateMaximumBitRate_tags_1,
+       sizeof(asn_DEF_UEAggregateMaximumBitRate_tags_1)
+               /sizeof(asn_DEF_UEAggregateMaximumBitRate_tags_1[0]), /* 1 */
+       asn_DEF_UEAggregateMaximumBitRate_tags_1,       /* Same as above */
+       sizeof(asn_DEF_UEAggregateMaximumBitRate_tags_1)
+               /sizeof(asn_DEF_UEAggregateMaximumBitRate_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UEAggregateMaximumBitRate_1,
+       3,      /* Elements count */
+       &asn_SPC_UEAggregateMaximumBitRate_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/UEAppLayerMeasConfig.c b/e2ap/lib/UEAppLayerMeasConfig.c
new file mode 100644 (file)
index 0000000..274a399
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UEAppLayerMeasConfig.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_containerForAppLayerMeasConfig_constraint_1(const 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 >= 1 && size <= 1000)) {
+               /* 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_oer_constraints_t asn_OER_memb_containerForAppLayerMeasConfig_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..1000)) */};
+static asn_per_constraints_t asn_PER_memb_containerForAppLayerMeasConfig_constr_2 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       10,  10,  1,  1000 }   /* (SIZE(1..1000)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_UEAppLayerMeasConfig_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UEAppLayerMeasConfig, containerForAppLayerMeasConfig),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_OCTET_STRING,
+               0,
+               { &asn_OER_memb_containerForAppLayerMeasConfig_constr_2, &asn_PER_memb_containerForAppLayerMeasConfig_constr_2,  memb_containerForAppLayerMeasConfig_constraint_1 },
+               0, 0, /* No default value */
+               "containerForAppLayerMeasConfig"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UEAppLayerMeasConfig, areaScopeOfQMC),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_AreaScopeOfQMC,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "areaScopeOfQMC"
+               },
+       { ATF_POINTER, 1, offsetof(struct UEAppLayerMeasConfig, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P210,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_UEAppLayerMeasConfig_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_UEAppLayerMeasConfig_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEAppLayerMeasConfig_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* containerForAppLayerMeasConfig */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* areaScopeOfQMC */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_UEAppLayerMeasConfig_specs_1 = {
+       sizeof(struct UEAppLayerMeasConfig),
+       offsetof(struct UEAppLayerMeasConfig, _asn_ctx),
+       asn_MAP_UEAppLayerMeasConfig_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_UEAppLayerMeasConfig_oms_1,     /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UEAppLayerMeasConfig = {
+       "UEAppLayerMeasConfig",
+       "UEAppLayerMeasConfig",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UEAppLayerMeasConfig_tags_1,
+       sizeof(asn_DEF_UEAppLayerMeasConfig_tags_1)
+               /sizeof(asn_DEF_UEAppLayerMeasConfig_tags_1[0]), /* 1 */
+       asn_DEF_UEAppLayerMeasConfig_tags_1,    /* Same as above */
+       sizeof(asn_DEF_UEAppLayerMeasConfig_tags_1)
+               /sizeof(asn_DEF_UEAppLayerMeasConfig_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UEAppLayerMeasConfig_1,
+       3,      /* Elements count */
+       &asn_SPC_UEAppLayerMeasConfig_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/UEContextRelease.c b/e2ap/lib/UEContextRelease.c
new file mode 100644 (file)
index 0000000..5812e46
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UEContextRelease.h"
+
+asn_TYPE_member_t asn_MBR_UEContextRelease_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UEContextRelease, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P19,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UEContextRelease_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEContextRelease_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UEContextRelease_specs_1 = {
+       sizeof(struct UEContextRelease),
+       offsetof(struct UEContextRelease, _asn_ctx),
+       asn_MAP_UEContextRelease_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UEContextRelease = {
+       "UEContextRelease",
+       "UEContextRelease",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UEContextRelease_tags_1,
+       sizeof(asn_DEF_UEContextRelease_tags_1)
+               /sizeof(asn_DEF_UEContextRelease_tags_1[0]), /* 1 */
+       asn_DEF_UEContextRelease_tags_1,        /* Same as above */
+       sizeof(asn_DEF_UEContextRelease_tags_1)
+               /sizeof(asn_DEF_UEContextRelease_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UEContextRelease_1,
+       1,      /* Elements count */
+       &asn_SPC_UEContextRelease_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/UEID.c b/e2ap/lib/UEID.c
new file mode 100644 (file)
index 0000000..af285ff
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UEID.h"
+
+int
+UEID_constraint(const 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 == 16)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_UEID_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       16      /* (SIZE(16..16)) */};
+asn_per_constraints_t asn_PER_type_UEID_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  16,  16 }      /* (SIZE(16..16)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_UEID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_UEID = {
+       "UEID",
+       "UEID",
+       &asn_OP_BIT_STRING,
+       asn_DEF_UEID_tags_1,
+       sizeof(asn_DEF_UEID_tags_1)
+               /sizeof(asn_DEF_UEID_tags_1[0]), /* 1 */
+       asn_DEF_UEID_tags_1,    /* Same as above */
+       sizeof(asn_DEF_UEID_tags_1)
+               /sizeof(asn_DEF_UEID_tags_1[0]), /* 1 */
+       { &asn_OER_type_UEID_constr_1, &asn_PER_type_UEID_constr_1, UEID_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/UENRMeasurement.c b/e2ap/lib/UENRMeasurement.c
new file mode 100644 (file)
index 0000000..60c292d
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UENRMeasurement.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_UENRMeasurement_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UENRMeasurement, uENRMeasurements),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_RRCContainer,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uENRMeasurements"
+               },
+       { ATF_POINTER, 1, offsetof(struct UENRMeasurement, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P171,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_UENRMeasurement_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_UENRMeasurement_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UENRMeasurement_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uENRMeasurements */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_UENRMeasurement_specs_1 = {
+       sizeof(struct UENRMeasurement),
+       offsetof(struct UENRMeasurement, _asn_ctx),
+       asn_MAP_UENRMeasurement_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_UENRMeasurement_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UENRMeasurement = {
+       "UENRMeasurement",
+       "UENRMeasurement",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UENRMeasurement_tags_1,
+       sizeof(asn_DEF_UENRMeasurement_tags_1)
+               /sizeof(asn_DEF_UENRMeasurement_tags_1[0]), /* 1 */
+       asn_DEF_UENRMeasurement_tags_1, /* Same as above */
+       sizeof(asn_DEF_UENRMeasurement_tags_1)
+               /sizeof(asn_DEF_UENRMeasurement_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UENRMeasurement_1,
+       2,      /* Elements count */
+       &asn_SPC_UENRMeasurement_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/UESecurityCapabilities.c b/e2ap/lib/UESecurityCapabilities.c
new file mode 100644 (file)
index 0000000..056f910
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UESecurityCapabilities.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_UESecurityCapabilities_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UESecurityCapabilities, encryptionAlgorithms),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_EncryptionAlgorithms,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "encryptionAlgorithms"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UESecurityCapabilities, integrityProtectionAlgorithms),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_IntegrityProtectionAlgorithms,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "integrityProtectionAlgorithms"
+               },
+       { ATF_POINTER, 1, offsetof(struct UESecurityCapabilities, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P211,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_UESecurityCapabilities_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_UESecurityCapabilities_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UESecurityCapabilities_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* encryptionAlgorithms */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* integrityProtectionAlgorithms */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UESecurityCapabilities_specs_1 = {
+       sizeof(struct UESecurityCapabilities),
+       offsetof(struct UESecurityCapabilities, _asn_ctx),
+       asn_MAP_UESecurityCapabilities_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_UESecurityCapabilities_oms_1,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UESecurityCapabilities = {
+       "UESecurityCapabilities",
+       "UESecurityCapabilities",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UESecurityCapabilities_tags_1,
+       sizeof(asn_DEF_UESecurityCapabilities_tags_1)
+               /sizeof(asn_DEF_UESecurityCapabilities_tags_1[0]), /* 1 */
+       asn_DEF_UESecurityCapabilities_tags_1,  /* Same as above */
+       sizeof(asn_DEF_UESecurityCapabilities_tags_1)
+               /sizeof(asn_DEF_UESecurityCapabilities_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UESecurityCapabilities_1,
+       3,      /* Elements count */
+       &asn_SPC_UESecurityCapabilities_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/UESidelinkAggregateMaximumBitRate.c b/e2ap/lib/UESidelinkAggregateMaximumBitRate.c
new file mode 100644 (file)
index 0000000..f43e2ee
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UESidelinkAggregateMaximumBitRate.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_UESidelinkAggregateMaximumBitRate_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UESidelinkAggregateMaximumBitRate, uESidelinkAggregateMaximumBitRate),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BitRate,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uESidelinkAggregateMaximumBitRate"
+               },
+       { ATF_POINTER, 1, offsetof(struct UESidelinkAggregateMaximumBitRate, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P212,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_UESidelinkAggregateMaximumBitRate_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_UESidelinkAggregateMaximumBitRate_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UESidelinkAggregateMaximumBitRate_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uESidelinkAggregateMaximumBitRate */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_UESidelinkAggregateMaximumBitRate_specs_1 = {
+       sizeof(struct UESidelinkAggregateMaximumBitRate),
+       offsetof(struct UESidelinkAggregateMaximumBitRate, _asn_ctx),
+       asn_MAP_UESidelinkAggregateMaximumBitRate_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_UESidelinkAggregateMaximumBitRate_oms_1,        /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UESidelinkAggregateMaximumBitRate = {
+       "UESidelinkAggregateMaximumBitRate",
+       "UESidelinkAggregateMaximumBitRate",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UESidelinkAggregateMaximumBitRate_tags_1,
+       sizeof(asn_DEF_UESidelinkAggregateMaximumBitRate_tags_1)
+               /sizeof(asn_DEF_UESidelinkAggregateMaximumBitRate_tags_1[0]), /* 1 */
+       asn_DEF_UESidelinkAggregateMaximumBitRate_tags_1,       /* Same as above */
+       sizeof(asn_DEF_UESidelinkAggregateMaximumBitRate_tags_1)
+               /sizeof(asn_DEF_UESidelinkAggregateMaximumBitRate_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UESidelinkAggregateMaximumBitRate_1,
+       2,      /* Elements count */
+       &asn_SPC_UESidelinkAggregateMaximumBitRate_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/UEsToBeResetList-Item.c b/e2ap/lib/UEsToBeResetList-Item.c
new file mode 100644 (file)
index 0000000..c0d9dfd
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UEsToBeResetList-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_UEsToBeResetList_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UEsToBeResetList_Item, meNB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "meNB-ID"
+               },
+       { ATF_POINTER, 3, offsetof(struct UEsToBeResetList_Item, meNB_ID_ext),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UE_X2AP_ID_Extension,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "meNB-ID-ext"
+               },
+       { ATF_POINTER, 2, offsetof(struct UEsToBeResetList_Item, sgNB_ID),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SgNB_UE_X2AP_ID,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "sgNB-ID"
+               },
+       { ATF_POINTER, 1, offsetof(struct UEsToBeResetList_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P213,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_UEsToBeResetList_Item_oms_1[] = { 1, 2, 3 };
+static const ber_tlv_tag_t asn_DEF_UEsToBeResetList_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEsToBeResetList_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* meNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* meNB-ID-ext */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sgNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UEsToBeResetList_Item_specs_1 = {
+       sizeof(struct UEsToBeResetList_Item),
+       offsetof(struct UEsToBeResetList_Item, _asn_ctx),
+       asn_MAP_UEsToBeResetList_Item_tag2el_1,
+       4,      /* Count of tags in the map */
+       asn_MAP_UEsToBeResetList_Item_oms_1,    /* Optional members */
+       3, 0,   /* Root/Additions */
+       4,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UEsToBeResetList_Item = {
+       "UEsToBeResetList-Item",
+       "UEsToBeResetList-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UEsToBeResetList_Item_tags_1,
+       sizeof(asn_DEF_UEsToBeResetList_Item_tags_1)
+               /sizeof(asn_DEF_UEsToBeResetList_Item_tags_1[0]), /* 1 */
+       asn_DEF_UEsToBeResetList_Item_tags_1,   /* Same as above */
+       sizeof(asn_DEF_UEsToBeResetList_Item_tags_1)
+               /sizeof(asn_DEF_UEsToBeResetList_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UEsToBeResetList_Item_1,
+       4,      /* Elements count */
+       &asn_SPC_UEsToBeResetList_Item_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/UEsToBeResetList.c b/e2ap/lib/UEsToBeResetList.c
new file mode 100644 (file)
index 0000000..13be07b
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UEsToBeResetList.h"
+
+#include "UEsToBeResetList-Item.h"
+static asn_oer_constraints_t asn_OER_type_UEsToBeResetList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..8192)) */};
+static asn_per_constraints_t asn_PER_type_UEsToBeResetList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       13,  13,  1,  8192 }   /* (SIZE(1..8192)) */,
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_UEsToBeResetList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UEsToBeResetList_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UEsToBeResetList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_UEsToBeResetList_specs_1 = {
+       sizeof(struct UEsToBeResetList),
+       offsetof(struct UEsToBeResetList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_UEsToBeResetList = {
+       "UEsToBeResetList",
+       "UEsToBeResetList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_UEsToBeResetList_tags_1,
+       sizeof(asn_DEF_UEsToBeResetList_tags_1)
+               /sizeof(asn_DEF_UEsToBeResetList_tags_1[0]), /* 1 */
+       asn_DEF_UEsToBeResetList_tags_1,        /* Same as above */
+       sizeof(asn_DEF_UEsToBeResetList_tags_1)
+               /sizeof(asn_DEF_UEsToBeResetList_tags_1[0]), /* 1 */
+       { &asn_OER_type_UEsToBeResetList_constr_1, &asn_PER_type_UEsToBeResetList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_UEsToBeResetList_1,
+       1,      /* Single element */
+       &asn_SPC_UEsToBeResetList_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/UL-GBR-PRB-usage.c b/e2ap/lib/UL-GBR-PRB-usage.c
new file mode 100644 (file)
index 0000000..728a068
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UL-GBR-PRB-usage.h"
+
+int
+UL_GBR_PRB_usage_constraint(const 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 >= 0 && value <= 100)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_UL_GBR_PRB_usage_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..100) */,
+       -1};
+asn_per_constraints_t asn_PER_type_UL_GBR_PRB_usage_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       7,  7,  0,  100 }      /* (0..100) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_UL_GBR_PRB_usage_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_UL_GBR_PRB_usage = {
+       "UL-GBR-PRB-usage",
+       "UL-GBR-PRB-usage",
+       &asn_OP_NativeInteger,
+       asn_DEF_UL_GBR_PRB_usage_tags_1,
+       sizeof(asn_DEF_UL_GBR_PRB_usage_tags_1)
+               /sizeof(asn_DEF_UL_GBR_PRB_usage_tags_1[0]), /* 1 */
+       asn_DEF_UL_GBR_PRB_usage_tags_1,        /* Same as above */
+       sizeof(asn_DEF_UL_GBR_PRB_usage_tags_1)
+               /sizeof(asn_DEF_UL_GBR_PRB_usage_tags_1[0]), /* 1 */
+       { &asn_OER_type_UL_GBR_PRB_usage_constr_1, &asn_PER_type_UL_GBR_PRB_usage_constr_1, UL_GBR_PRB_usage_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/UL-HighInterferenceIndication.c b/e2ap/lib/UL-HighInterferenceIndication.c
new file mode 100644 (file)
index 0000000..308387c
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UL-HighInterferenceIndication.h"
+
+int
+UL_HighInterferenceIndication_constraint(const 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 >= 1 && size <= 110)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_UL_HighInterferenceIndication_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+asn_per_constraints_t asn_PER_type_UL_HighInterferenceIndication_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  7,  7,  1,  110 }  /* (SIZE(1..110,...)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_UL_HighInterferenceIndication_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_UL_HighInterferenceIndication = {
+       "UL-HighInterferenceIndication",
+       "UL-HighInterferenceIndication",
+       &asn_OP_BIT_STRING,
+       asn_DEF_UL_HighInterferenceIndication_tags_1,
+       sizeof(asn_DEF_UL_HighInterferenceIndication_tags_1)
+               /sizeof(asn_DEF_UL_HighInterferenceIndication_tags_1[0]), /* 1 */
+       asn_DEF_UL_HighInterferenceIndication_tags_1,   /* Same as above */
+       sizeof(asn_DEF_UL_HighInterferenceIndication_tags_1)
+               /sizeof(asn_DEF_UL_HighInterferenceIndication_tags_1[0]), /* 1 */
+       { &asn_OER_type_UL_HighInterferenceIndication_constr_1, &asn_PER_type_UL_HighInterferenceIndication_constr_1, UL_HighInterferenceIndication_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/UL-HighInterferenceIndicationInfo-Item.c b/e2ap/lib/UL-HighInterferenceIndicationInfo-Item.c
new file mode 100644 (file)
index 0000000..a67e8d0
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UL-HighInterferenceIndicationInfo-Item.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_UL_HighInterferenceIndicationInfo_Item_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UL_HighInterferenceIndicationInfo_Item, target_Cell_ID),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ECGI,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "target-Cell-ID"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UL_HighInterferenceIndicationInfo_Item, ul_interferenceindication),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UL_HighInterferenceIndication,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ul-interferenceindication"
+               },
+       { ATF_POINTER, 1, offsetof(struct UL_HighInterferenceIndicationInfo_Item, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P216,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_UL_HighInterferenceIndicationInfo_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_UL_HighInterferenceIndicationInfo_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UL_HighInterferenceIndicationInfo_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* target-Cell-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ul-interferenceindication */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UL_HighInterferenceIndicationInfo_Item_specs_1 = {
+       sizeof(struct UL_HighInterferenceIndicationInfo_Item),
+       offsetof(struct UL_HighInterferenceIndicationInfo_Item, _asn_ctx),
+       asn_MAP_UL_HighInterferenceIndicationInfo_Item_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_UL_HighInterferenceIndicationInfo_Item_oms_1,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UL_HighInterferenceIndicationInfo_Item = {
+       "UL-HighInterferenceIndicationInfo-Item",
+       "UL-HighInterferenceIndicationInfo-Item",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UL_HighInterferenceIndicationInfo_Item_tags_1,
+       sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_Item_tags_1)
+               /sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_Item_tags_1[0]), /* 1 */
+       asn_DEF_UL_HighInterferenceIndicationInfo_Item_tags_1,  /* Same as above */
+       sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_Item_tags_1)
+               /sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_Item_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UL_HighInterferenceIndicationInfo_Item_1,
+       3,      /* Elements count */
+       &asn_SPC_UL_HighInterferenceIndicationInfo_Item_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/UL-HighInterferenceIndicationInfo.c b/e2ap/lib/UL-HighInterferenceIndicationInfo.c
new file mode 100644 (file)
index 0000000..3f0316c
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UL-HighInterferenceIndicationInfo.h"
+
+#include "UL-HighInterferenceIndicationInfo-Item.h"
+static asn_oer_constraints_t asn_OER_type_UL_HighInterferenceIndicationInfo_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..256)) */};
+asn_per_constraints_t asn_PER_type_UL_HighInterferenceIndicationInfo_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       8,  8,  1,  256 }      /* (SIZE(1..256)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_UL_HighInterferenceIndicationInfo_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_UL_HighInterferenceIndicationInfo_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UL_HighInterferenceIndicationInfo_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_UL_HighInterferenceIndicationInfo_specs_1 = {
+       sizeof(struct UL_HighInterferenceIndicationInfo),
+       offsetof(struct UL_HighInterferenceIndicationInfo, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_UL_HighInterferenceIndicationInfo = {
+       "UL-HighInterferenceIndicationInfo",
+       "UL-HighInterferenceIndicationInfo",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_UL_HighInterferenceIndicationInfo_tags_1,
+       sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_tags_1)
+               /sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_tags_1[0]), /* 1 */
+       asn_DEF_UL_HighInterferenceIndicationInfo_tags_1,       /* Same as above */
+       sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_tags_1)
+               /sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_tags_1[0]), /* 1 */
+       { &asn_OER_type_UL_HighInterferenceIndicationInfo_constr_1, &asn_PER_type_UL_HighInterferenceIndicationInfo_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_UL_HighInterferenceIndicationInfo_1,
+       1,      /* Single element */
+       &asn_SPC_UL_HighInterferenceIndicationInfo_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/UL-InterferenceOverloadIndication-Item.c b/e2ap/lib/UL-InterferenceOverloadIndication-Item.c
new file mode 100644 (file)
index 0000000..cbb97f5
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UL-InterferenceOverloadIndication-Item.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_UL_InterferenceOverloadIndication_Item_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_UL_InterferenceOverloadIndication_Item_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_UL_InterferenceOverloadIndication_Item_value2enum_1[] = {
+       { 0,    17,     "high-interference" },
+       { 1,    19,     "medium-interference" },
+       { 2,    16,     "low-interference" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_UL_InterferenceOverloadIndication_Item_enum2value_1[] = {
+       0,      /* high-interference(0) */
+       2,      /* low-interference(2) */
+       1       /* medium-interference(1) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_UL_InterferenceOverloadIndication_Item_specs_1 = {
+       asn_MAP_UL_InterferenceOverloadIndication_Item_value2enum_1,    /* "tag" => N; sorted by tag */
+       asn_MAP_UL_InterferenceOverloadIndication_Item_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_UL_InterferenceOverloadIndication_Item_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_UL_InterferenceOverloadIndication_Item = {
+       "UL-InterferenceOverloadIndication-Item",
+       "UL-InterferenceOverloadIndication-Item",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_UL_InterferenceOverloadIndication_Item_tags_1,
+       sizeof(asn_DEF_UL_InterferenceOverloadIndication_Item_tags_1)
+               /sizeof(asn_DEF_UL_InterferenceOverloadIndication_Item_tags_1[0]), /* 1 */
+       asn_DEF_UL_InterferenceOverloadIndication_Item_tags_1,  /* Same as above */
+       sizeof(asn_DEF_UL_InterferenceOverloadIndication_Item_tags_1)
+               /sizeof(asn_DEF_UL_InterferenceOverloadIndication_Item_tags_1[0]), /* 1 */
+       { &asn_OER_type_UL_InterferenceOverloadIndication_Item_constr_1, &asn_PER_type_UL_InterferenceOverloadIndication_Item_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_UL_InterferenceOverloadIndication_Item_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/UL-InterferenceOverloadIndication.c b/e2ap/lib/UL-InterferenceOverloadIndication.c
new file mode 100644 (file)
index 0000000..42afb59
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UL-InterferenceOverloadIndication.h"
+
+static asn_oer_constraints_t asn_OER_type_UL_InterferenceOverloadIndication_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..110)) */};
+asn_per_constraints_t asn_PER_type_UL_InterferenceOverloadIndication_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       7,  7,  1,  110 }      /* (SIZE(1..110)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_UL_InterferenceOverloadIndication_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+               0,
+               &asn_DEF_UL_InterferenceOverloadIndication_Item,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UL_InterferenceOverloadIndication_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_UL_InterferenceOverloadIndication_specs_1 = {
+       sizeof(struct UL_InterferenceOverloadIndication),
+       offsetof(struct UL_InterferenceOverloadIndication, _asn_ctx),
+       1,      /* XER encoding is XMLValueList */
+};
+asn_TYPE_descriptor_t asn_DEF_UL_InterferenceOverloadIndication = {
+       "UL-InterferenceOverloadIndication",
+       "UL-InterferenceOverloadIndication",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_UL_InterferenceOverloadIndication_tags_1,
+       sizeof(asn_DEF_UL_InterferenceOverloadIndication_tags_1)
+               /sizeof(asn_DEF_UL_InterferenceOverloadIndication_tags_1[0]), /* 1 */
+       asn_DEF_UL_InterferenceOverloadIndication_tags_1,       /* Same as above */
+       sizeof(asn_DEF_UL_InterferenceOverloadIndication_tags_1)
+               /sizeof(asn_DEF_UL_InterferenceOverloadIndication_tags_1[0]), /* 1 */
+       { &asn_OER_type_UL_InterferenceOverloadIndication_constr_1, &asn_PER_type_UL_InterferenceOverloadIndication_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_UL_InterferenceOverloadIndication_1,
+       1,      /* Single element */
+       &asn_SPC_UL_InterferenceOverloadIndication_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/UL-Total-PRB-usage.c b/e2ap/lib/UL-Total-PRB-usage.c
new file mode 100644 (file)
index 0000000..cfb9888
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UL-Total-PRB-usage.h"
+
+int
+UL_Total_PRB_usage_constraint(const 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 >= 0 && value <= 100)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_UL_Total_PRB_usage_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..100) */,
+       -1};
+asn_per_constraints_t asn_PER_type_UL_Total_PRB_usage_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       7,  7,  0,  100 }      /* (0..100) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_UL_Total_PRB_usage_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_UL_Total_PRB_usage = {
+       "UL-Total-PRB-usage",
+       "UL-Total-PRB-usage",
+       &asn_OP_NativeInteger,
+       asn_DEF_UL_Total_PRB_usage_tags_1,
+       sizeof(asn_DEF_UL_Total_PRB_usage_tags_1)
+               /sizeof(asn_DEF_UL_Total_PRB_usage_tags_1[0]), /* 1 */
+       asn_DEF_UL_Total_PRB_usage_tags_1,      /* Same as above */
+       sizeof(asn_DEF_UL_Total_PRB_usage_tags_1)
+               /sizeof(asn_DEF_UL_Total_PRB_usage_tags_1[0]), /* 1 */
+       { &asn_OER_type_UL_Total_PRB_usage_constr_1, &asn_PER_type_UL_Total_PRB_usage_constr_1, UL_Total_PRB_usage_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/UL-UE-Configuration.c b/e2ap/lib/UL-UE-Configuration.c
new file mode 100644 (file)
index 0000000..ad59cae
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UL-UE-Configuration.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_UL_UE_Configuration_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_UL_UE_Configuration_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_UL_UE_Configuration_value2enum_1[] = {
+       { 0,    7,      "no-data" },
+       { 1,    6,      "shared" },
+       { 2,    4,      "only" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_UL_UE_Configuration_enum2value_1[] = {
+       0,      /* no-data(0) */
+       2,      /* only(2) */
+       1       /* shared(1) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_UL_UE_Configuration_specs_1 = {
+       asn_MAP_UL_UE_Configuration_value2enum_1,       /* "tag" => N; sorted by tag */
+       asn_MAP_UL_UE_Configuration_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_UL_UE_Configuration_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_UL_UE_Configuration = {
+       "UL-UE-Configuration",
+       "UL-UE-Configuration",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_UL_UE_Configuration_tags_1,
+       sizeof(asn_DEF_UL_UE_Configuration_tags_1)
+               /sizeof(asn_DEF_UL_UE_Configuration_tags_1[0]), /* 1 */
+       asn_DEF_UL_UE_Configuration_tags_1,     /* Same as above */
+       sizeof(asn_DEF_UL_UE_Configuration_tags_1)
+               /sizeof(asn_DEF_UL_UE_Configuration_tags_1[0]), /* 1 */
+       { &asn_OER_type_UL_UE_Configuration_constr_1, &asn_PER_type_UL_UE_Configuration_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_UL_UE_Configuration_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/UL-non-GBR-PRB-usage.c b/e2ap/lib/UL-non-GBR-PRB-usage.c
new file mode 100644 (file)
index 0000000..1492000
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UL-non-GBR-PRB-usage.h"
+
+int
+UL_non_GBR_PRB_usage_constraint(const 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 >= 0 && value <= 100)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_UL_non_GBR_PRB_usage_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..100) */,
+       -1};
+asn_per_constraints_t asn_PER_type_UL_non_GBR_PRB_usage_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       7,  7,  0,  100 }      /* (0..100) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_UL_non_GBR_PRB_usage_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_UL_non_GBR_PRB_usage = {
+       "UL-non-GBR-PRB-usage",
+       "UL-non-GBR-PRB-usage",
+       &asn_OP_NativeInteger,
+       asn_DEF_UL_non_GBR_PRB_usage_tags_1,
+       sizeof(asn_DEF_UL_non_GBR_PRB_usage_tags_1)
+               /sizeof(asn_DEF_UL_non_GBR_PRB_usage_tags_1[0]), /* 1 */
+       asn_DEF_UL_non_GBR_PRB_usage_tags_1,    /* Same as above */
+       sizeof(asn_DEF_UL_non_GBR_PRB_usage_tags_1)
+               /sizeof(asn_DEF_UL_non_GBR_PRB_usage_tags_1[0]), /* 1 */
+       { &asn_OER_type_UL_non_GBR_PRB_usage_constr_1, &asn_PER_type_UL_non_GBR_PRB_usage_constr_1, UL_non_GBR_PRB_usage_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/UL-scheduling-PDCCH-CCE-usage.c b/e2ap/lib/UL-scheduling-PDCCH-CCE-usage.c
new file mode 100644 (file)
index 0000000..f90c33c
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UL-scheduling-PDCCH-CCE-usage.h"
+
+int
+UL_scheduling_PDCCH_CCE_usage_constraint(const 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 >= 0 && value <= 100)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_UL_scheduling_PDCCH_CCE_usage_constr_1 CC_NOTUSED = {
+       { 1, 1 }        /* (0..100) */,
+       -1};
+static asn_per_constraints_t asn_PER_type_UL_scheduling_PDCCH_CCE_usage_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED,       7,  7,  0,  100 }      /* (0..100) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_UL_scheduling_PDCCH_CCE_usage_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_UL_scheduling_PDCCH_CCE_usage = {
+       "UL-scheduling-PDCCH-CCE-usage",
+       "UL-scheduling-PDCCH-CCE-usage",
+       &asn_OP_NativeInteger,
+       asn_DEF_UL_scheduling_PDCCH_CCE_usage_tags_1,
+       sizeof(asn_DEF_UL_scheduling_PDCCH_CCE_usage_tags_1)
+               /sizeof(asn_DEF_UL_scheduling_PDCCH_CCE_usage_tags_1[0]), /* 1 */
+       asn_DEF_UL_scheduling_PDCCH_CCE_usage_tags_1,   /* Same as above */
+       sizeof(asn_DEF_UL_scheduling_PDCCH_CCE_usage_tags_1)
+               /sizeof(asn_DEF_UL_scheduling_PDCCH_CCE_usage_tags_1[0]), /* 1 */
+       { &asn_OER_type_UL_scheduling_PDCCH_CCE_usage_constr_1, &asn_PER_type_UL_scheduling_PDCCH_CCE_usage_constr_1, UL_scheduling_PDCCH_CCE_usage_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/ULConfiguration.c b/e2ap/lib/ULConfiguration.c
new file mode 100644 (file)
index 0000000..d139c0f
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ULConfiguration.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ULConfiguration_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ULConfiguration, uL_PDCP),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UL_UE_Configuration,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uL-PDCP"
+               },
+       { ATF_POINTER, 1, offsetof(struct ULConfiguration, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P215,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ULConfiguration_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_ULConfiguration_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ULConfiguration_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-PDCP */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ULConfiguration_specs_1 = {
+       sizeof(struct ULConfiguration),
+       offsetof(struct ULConfiguration, _asn_ctx),
+       asn_MAP_ULConfiguration_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_ULConfiguration_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ULConfiguration = {
+       "ULConfiguration",
+       "ULConfiguration",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ULConfiguration_tags_1,
+       sizeof(asn_DEF_ULConfiguration_tags_1)
+               /sizeof(asn_DEF_ULConfiguration_tags_1[0]), /* 1 */
+       asn_DEF_ULConfiguration_tags_1, /* Same as above */
+       sizeof(asn_DEF_ULConfiguration_tags_1)
+               /sizeof(asn_DEF_ULConfiguration_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ULConfiguration_1,
+       2,      /* Elements count */
+       &asn_SPC_ULConfiguration_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/ULOnlySharing.c b/e2ap/lib/ULOnlySharing.c
new file mode 100644 (file)
index 0000000..5665793
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ULOnlySharing.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ULOnlySharing_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ULOnlySharing, uLResourceBitmapULOnlySharing),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_DataTrafficResources,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uLResourceBitmapULOnlySharing"
+               },
+       { ATF_POINTER, 1, offsetof(struct ULOnlySharing, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P217,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ULOnlySharing_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_ULOnlySharing_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ULOnlySharing_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uLResourceBitmapULOnlySharing */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ULOnlySharing_specs_1 = {
+       sizeof(struct ULOnlySharing),
+       offsetof(struct ULOnlySharing, _asn_ctx),
+       asn_MAP_ULOnlySharing_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_ULOnlySharing_oms_1,    /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ULOnlySharing = {
+       "ULOnlySharing",
+       "ULOnlySharing",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ULOnlySharing_tags_1,
+       sizeof(asn_DEF_ULOnlySharing_tags_1)
+               /sizeof(asn_DEF_ULOnlySharing_tags_1[0]), /* 1 */
+       asn_DEF_ULOnlySharing_tags_1,   /* Same as above */
+       sizeof(asn_DEF_ULOnlySharing_tags_1)
+               /sizeof(asn_DEF_ULOnlySharing_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ULOnlySharing_1,
+       2,      /* Elements count */
+       &asn_SPC_ULOnlySharing_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/ULResourceBitmapULandDLSharing.c b/e2ap/lib/ULResourceBitmapULandDLSharing.c
new file mode 100644 (file)
index 0000000..2c6717f
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ULResourceBitmapULandDLSharing.h"
+
+int
+ULResourceBitmapULandDLSharing_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+                       asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+       const DataTrafficResources_t *st = (const DataTrafficResources_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 >= 6 && size <= 17600)) {
+               /* 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 DataTrafficResources,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ULResourceBitmapULandDLSharing_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(6..17600)) */};
+asn_per_constraints_t asn_PER_type_ULResourceBitmapULandDLSharing_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       15,  15,  6,  17600 }  /* (SIZE(6..17600)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_ULResourceBitmapULandDLSharing_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ULResourceBitmapULandDLSharing = {
+       "ULResourceBitmapULandDLSharing",
+       "ULResourceBitmapULandDLSharing",
+       &asn_OP_BIT_STRING,
+       asn_DEF_ULResourceBitmapULandDLSharing_tags_1,
+       sizeof(asn_DEF_ULResourceBitmapULandDLSharing_tags_1)
+               /sizeof(asn_DEF_ULResourceBitmapULandDLSharing_tags_1[0]), /* 1 */
+       asn_DEF_ULResourceBitmapULandDLSharing_tags_1,  /* Same as above */
+       sizeof(asn_DEF_ULResourceBitmapULandDLSharing_tags_1)
+               /sizeof(asn_DEF_ULResourceBitmapULandDLSharing_tags_1[0]), /* 1 */
+       { &asn_OER_type_ULResourceBitmapULandDLSharing_constr_1, &asn_PER_type_ULResourceBitmapULandDLSharing_constr_1, ULResourceBitmapULandDLSharing_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/ULResourcesULandDLSharing.c b/e2ap/lib/ULResourcesULandDLSharing.c
new file mode 100644 (file)
index 0000000..f9921db
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ULResourcesULandDLSharing.h"
+
+static asn_oer_constraints_t asn_OER_type_ULResourcesULandDLSharing_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_ULResourcesULandDLSharing_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ULResourcesULandDLSharing_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ULResourcesULandDLSharing, choice.unchanged),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NULL,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "unchanged"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ULResourcesULandDLSharing, choice.changed),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ULResourceBitmapULandDLSharing,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "changed"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_ULResourcesULandDLSharing_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* unchanged */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* changed */
+};
+asn_CHOICE_specifics_t asn_SPC_ULResourcesULandDLSharing_specs_1 = {
+       sizeof(struct ULResourcesULandDLSharing),
+       offsetof(struct ULResourcesULandDLSharing, _asn_ctx),
+       offsetof(struct ULResourcesULandDLSharing, present),
+       sizeof(((struct ULResourcesULandDLSharing *)0)->present),
+       asn_MAP_ULResourcesULandDLSharing_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_ULResourcesULandDLSharing = {
+       "ULResourcesULandDLSharing",
+       "ULResourcesULandDLSharing",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_ULResourcesULandDLSharing_constr_1, &asn_PER_type_ULResourcesULandDLSharing_constr_1, CHOICE_constraint },
+       asn_MBR_ULResourcesULandDLSharing_1,
+       2,      /* Elements count */
+       &asn_SPC_ULResourcesULandDLSharing_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/ULandDLSharing.c b/e2ap/lib/ULandDLSharing.c
new file mode 100644 (file)
index 0000000..2a58949
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "ULandDLSharing.h"
+
+#include "ProtocolExtensionContainer.h"
+asn_TYPE_member_t asn_MBR_ULandDLSharing_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct ULandDLSharing, uLResourcesULandDLSharing),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_ULResourcesULandDLSharing,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "uLResourcesULandDLSharing"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct ULandDLSharing, dLResourcesULandDLSharing),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_DLResourcesULandDLSharing,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "dLResourcesULandDLSharing"
+               },
+       { ATF_POINTER, 1, offsetof(struct ULandDLSharing, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P214,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_ULandDLSharing_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_ULandDLSharing_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ULandDLSharing_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uLResourcesULandDLSharing */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dLResourcesULandDLSharing */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ULandDLSharing_specs_1 = {
+       sizeof(struct ULandDLSharing),
+       offsetof(struct ULandDLSharing, _asn_ctx),
+       asn_MAP_ULandDLSharing_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_ULandDLSharing_oms_1,   /* Optional members */
+       1, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ULandDLSharing = {
+       "ULandDLSharing",
+       "ULandDLSharing",
+       &asn_OP_SEQUENCE,
+       asn_DEF_ULandDLSharing_tags_1,
+       sizeof(asn_DEF_ULandDLSharing_tags_1)
+               /sizeof(asn_DEF_ULandDLSharing_tags_1[0]), /* 1 */
+       asn_DEF_ULandDLSharing_tags_1,  /* Same as above */
+       sizeof(asn_DEF_ULandDLSharing_tags_1)
+               /sizeof(asn_DEF_ULandDLSharing_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_ULandDLSharing_1,
+       3,      /* Elements count */
+       &asn_SPC_ULandDLSharing_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/UnsuccessfulOutcome.c b/e2ap/lib/UnsuccessfulOutcome.c
new file mode 100644 (file)
index 0000000..5629012
--- /dev/null
@@ -0,0 +1,767 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Descriptions"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UnsuccessfulOutcome.h"
+
+static const long asn_VAL_1_id_handoverPreparation = 0;
+static const long asn_VAL_1_reject = 0;
+static const long asn_VAL_2_id_reset = 7;
+static const long asn_VAL_2_reject = 0;
+static const long asn_VAL_3_id_x2Setup = 6;
+static const long asn_VAL_3_reject = 0;
+static const long asn_VAL_4_id_resourceStatusReportingInitiation = 9;
+static const long asn_VAL_4_reject = 0;
+static const long asn_VAL_5_id_eNBConfigurationUpdate = 8;
+static const long asn_VAL_5_reject = 0;
+static const long asn_VAL_6_id_mobilitySettingsChange = 12;
+static const long asn_VAL_6_reject = 0;
+static const long asn_VAL_7_id_cellActivation = 15;
+static const long asn_VAL_7_reject = 0;
+static const long asn_VAL_8_id_seNBAdditionPreparation = 19;
+static const long asn_VAL_8_reject = 0;
+static const long asn_VAL_9_id_meNBinitiatedSeNBModificationPreparation = 21;
+static const long asn_VAL_9_reject = 0;
+static const long asn_VAL_10_id_seNBinitiatedSeNBModification = 22;
+static const long asn_VAL_10_reject = 0;
+static const long asn_VAL_11_id_seNBinitiatedSeNBRelease = 24;
+static const long asn_VAL_11_reject = 0;
+static const long asn_VAL_12_id_x2Removal = 18;
+static const long asn_VAL_12_reject = 0;
+static const long asn_VAL_13_id_retrieveUEContext = 26;
+static const long asn_VAL_13_reject = 0;
+static const long asn_VAL_14_id_sgNBAdditionPreparation = 27;
+static const long asn_VAL_14_reject = 0;
+static const long asn_VAL_15_id_meNBinitiatedSgNBModificationPreparation = 29;
+static const long asn_VAL_15_reject = 0;
+static const long asn_VAL_16_id_sgNBinitiatedSgNBModification = 30;
+static const long asn_VAL_16_reject = 0;
+static const long asn_VAL_17_id_meNBinitiatedSgNBRelease = 31;
+static const long asn_VAL_17_ignore = 1;
+static const long asn_VAL_18_id_sgNBinitiatedSgNBRelease = 32;
+static const long asn_VAL_18_reject = 0;
+static const long asn_VAL_19_id_sgNBChange = 34;
+static const long asn_VAL_19_reject = 0;
+static const long asn_VAL_20_id_endcX2Setup = 36;
+static const long asn_VAL_20_reject = 0;
+static const long asn_VAL_21_id_endcConfigurationUpdate = 37;
+static const long asn_VAL_21_reject = 0;
+static const long asn_VAL_22_id_endcCellActivation = 39;
+static const long asn_VAL_22_reject = 0;
+static const long asn_VAL_23_id_endcPartialReset = 40;
+static const long asn_VAL_23_reject = 0;
+static const long asn_VAL_24_id_eUTRANRCellResourceCoordination = 41;
+static const long asn_VAL_24_reject = 0;
+static const long asn_VAL_25_id_endcX2Removal = 43;
+static const long asn_VAL_25_reject = 0;
+static const long asn_VAL_26_id_snStatusTransfer = 4;
+static const long asn_VAL_26_ignore = 1;
+static const long asn_VAL_27_id_uEContextRelease = 5;
+static const long asn_VAL_27_ignore = 1;
+static const long asn_VAL_28_id_handoverCancel = 1;
+static const long asn_VAL_28_ignore = 1;
+static const long asn_VAL_29_id_errorIndication = 3;
+static const long asn_VAL_29_ignore = 1;
+static const long asn_VAL_30_id_resourceStatusReporting = 10;
+static const long asn_VAL_30_ignore = 1;
+static const long asn_VAL_31_id_loadIndication = 2;
+static const long asn_VAL_31_ignore = 1;
+static const long asn_VAL_32_id_privateMessage = 11;
+static const long asn_VAL_32_ignore = 1;
+static const long asn_VAL_33_id_rLFIndication = 13;
+static const long asn_VAL_33_ignore = 1;
+static const long asn_VAL_34_id_handoverReport = 14;
+static const long asn_VAL_34_ignore = 1;
+static const long asn_VAL_35_id_x2Release = 16;
+static const long asn_VAL_35_reject = 0;
+static const long asn_VAL_36_id_x2APMessageTransfer = 17;
+static const long asn_VAL_36_reject = 0;
+static const long asn_VAL_37_id_seNBReconfigurationCompletion = 20;
+static const long asn_VAL_37_ignore = 1;
+static const long asn_VAL_38_id_meNBinitiatedSeNBRelease = 23;
+static const long asn_VAL_38_ignore = 1;
+static const long asn_VAL_39_id_seNBCounterCheck = 25;
+static const long asn_VAL_39_reject = 0;
+static const long asn_VAL_40_id_sgNBReconfigurationCompletion = 28;
+static const long asn_VAL_40_ignore = 1;
+static const long asn_VAL_41_id_sgNBCounterCheck = 33;
+static const long asn_VAL_41_reject = 0;
+static const long asn_VAL_42_id_rRCTransfer = 35;
+static const long asn_VAL_42_reject = 0;
+static const long asn_VAL_43_id_secondaryRATDataUsageReport = 38;
+static const long asn_VAL_43_reject = 0;
+static const long asn_VAL_44_id_SgNBActivityNotification = 42;
+static const long asn_VAL_44_reject = 0;
+static const long asn_VAL_45_id_dataForwardingAddressIndication = 44;
+static const long asn_VAL_45_ignore = 1;
+static const long asn_VAL_46_id_gNBStatusIndication = 45;
+static const long asn_VAL_46_ignore = 1;
+static const asn_ioc_cell_t asn_IOS_X2AP_ELEMENTARY_PROCEDURES_1_rows[] = {
+       { "&InitiatingMessage", aioc__type, &asn_DEF_HandoverRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_HandoverRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_HandoverPreparationFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_handoverPreparation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_reset },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_X2SetupRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_X2SetupResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_X2SetupFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_x2Setup },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResourceStatusResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ResourceStatusFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_resourceStatusReportingInitiation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENBConfigurationUpdate },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENBConfigurationUpdateAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENBConfigurationUpdateFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_eNBConfigurationUpdate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_MobilityChangeRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_MobilityChangeAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_MobilityChangeFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_mobilitySettingsChange },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_CellActivationRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_CellActivationResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_CellActivationFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_cellActivation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBAdditionRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SeNBAdditionRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SeNBAdditionRequestReject },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_seNBAdditionPreparation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBModificationRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationRequestReject },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_meNBinitiatedSeNBModificationPreparation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBModificationRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationConfirm },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationRefuse },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_seNBinitiatedSeNBModification },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBReleaseRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SeNBReleaseConfirm },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_seNBinitiatedSeNBRelease },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_X2RemovalRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_X2RemovalResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_X2RemovalFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_x2Removal },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RetrieveUEContextRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_RetrieveUEContextResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RetrieveUEContextFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_13_id_retrieveUEContext },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBAdditionRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBAdditionRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SgNBAdditionRequestReject },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_14_id_sgNBAdditionPreparation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBModificationRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationRequestReject },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_15_id_meNBinitiatedSgNBModificationPreparation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBModificationRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationConfirm },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationRefuse },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_16_id_sgNBinitiatedSgNBModification },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBReleaseRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBReleaseRequestAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SgNBReleaseRequestReject },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_17_id_meNBinitiatedSgNBRelease },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBReleaseRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBReleaseConfirm },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_18_id_sgNBinitiatedSgNBRelease },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBChangeRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_SgNBChangeConfirm },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_SgNBChangeRefuse },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_19_id_sgNBChange },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCX2SetupRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2SetupResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2SetupFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_20_id_endcX2Setup },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCConfigurationUpdate },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCConfigurationUpdateAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCConfigurationUpdateFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_21_id_endcConfigurationUpdate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCCellActivationRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCCellActivationResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCCellActivationFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_22_id_endcCellActivation },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCPartialResetRequired },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCPartialResetConfirm },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_23_id_endcPartialReset },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_EUTRANRCellResourceCoordinationRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_EUTRANRCellResourceCoordinationResponse },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_24_id_eUTRANRCellResourceCoordination },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCX2RemovalRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2RemovalResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2RemovalFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_25_id_endcX2Removal },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SNStatusTransfer },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_26_id_snStatusTransfer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextRelease },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_27_id_uEContextRelease },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_HandoverCancel },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_28_id_handoverCancel },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_29_id_errorIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusUpdate },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_30_id_resourceStatusReporting },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_LoadInformation },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_31_id_loadIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_PrivateMessage },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_32_id_privateMessage },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RLFIndication },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_33_id_rLFIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_HandoverReport },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_34_id_handoverReport },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_X2Release },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_35_id_x2Release },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_X2APMessageTransfer },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_36_id_x2APMessageTransfer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBReconfigurationComplete },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_37_id_seNBReconfigurationCompletion },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBReleaseRequest },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_38_id_meNBinitiatedSeNBRelease },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SeNBCounterCheckRequest },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_39_id_seNBCounterCheck },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBReconfigurationComplete },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_40_id_sgNBReconfigurationCompletion },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBCounterCheckRequest },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_41_id_sgNBCounterCheck },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RRCTransfer },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_42_id_rRCTransfer },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SecondaryRATDataUsageReport },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_43_id_secondaryRATDataUsageReport },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_SgNBActivityNotification },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_44_id_SgNBActivityNotification },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_DataForwardingAddressIndication },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_45_id_dataForwardingAddressIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_GNBStatusIndication },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_46_id_gNBStatusIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_ignore }
+};
+static const asn_ioc_set_t asn_IOS_X2AP_ELEMENTARY_PROCEDURES_1[] = {
+       { 46, 5, asn_IOS_X2AP_ELEMENTARY_PROCEDURES_1_rows }
+};
+static int
+memb_procedureCode_constraint_1(const 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 >= 0 && value <= 255)) {
+               /* 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_type_selector_result_t
+select_UnsuccessfulOutcome_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2AP_ELEMENTARY_PROCEDURES_1;
+       size_t constraining_column = 3; /* &procedureCode */
+       size_t for_column = 4; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_UnsuccessfulOutcome_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_X2AP_ELEMENTARY_PROCEDURES_1;
+       size_t constraining_column = 3; /* &procedureCode */
+       size_t for_column = 2; /* &UnsuccessfulOutcome */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_oer_constraints_t asn_OER_memb_procedureCode_constr_2 CC_NOTUSED = {
+       { 1, 1 }        /* (0..255) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       8,  8,  0,  255 }      /* (0..255) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_value_4[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.HandoverPreparationFailure),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_HandoverPreparationFailure,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "HandoverPreparationFailure"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.X2SetupFailure),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_X2SetupFailure,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "X2SetupFailure"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.ResourceStatusFailure),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ResourceStatusFailure,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ResourceStatusFailure"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.ENBConfigurationUpdateFailure),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENBConfigurationUpdateFailure,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ENBConfigurationUpdateFailure"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.MobilityChangeFailure),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_MobilityChangeFailure,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "MobilityChangeFailure"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.CellActivationFailure),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_CellActivationFailure,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "CellActivationFailure"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.SeNBAdditionRequestReject),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBAdditionRequestReject,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBAdditionRequestReject"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.SeNBModificationRequestReject),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBModificationRequestReject,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBModificationRequestReject"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.SeNBModificationRefuse),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SeNBModificationRefuse,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SeNBModificationRefuse"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.X2RemovalFailure),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_X2RemovalFailure,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "X2RemovalFailure"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RetrieveUEContextFailure),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RetrieveUEContextFailure,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RetrieveUEContextFailure"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.SgNBAdditionRequestReject),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBAdditionRequestReject,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBAdditionRequestReject"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.SgNBModificationRequestReject),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBModificationRequestReject,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBModificationRequestReject"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.SgNBModificationRefuse),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBModificationRefuse,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBModificationRefuse"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.SgNBReleaseRequestReject),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBReleaseRequestReject,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBReleaseRequestReject"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.SgNBChangeRefuse),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_SgNBChangeRefuse,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "SgNBChangeRefuse"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.ENDCX2SetupFailure),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCX2SetupFailure,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ENDCX2SetupFailure"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.ENDCConfigurationUpdateFailure),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCConfigurationUpdateFailure,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ENDCConfigurationUpdateFailure"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.ENDCCellActivationFailure),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCCellActivationFailure,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ENDCCellActivationFailure"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.ENDCX2RemovalFailure),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_ENDCX2RemovalFailure,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "ENDCX2RemovalFailure"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 19 }, /* HandoverPreparationFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 18 }, /* X2SetupFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 17 }, /* ResourceStatusFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 16 }, /* ENBConfigurationUpdateFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 15 }, /* MobilityChangeFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 14 }, /* CellActivationFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 13 }, /* SeNBAdditionRequestReject */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 12 }, /* SeNBModificationRequestReject */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 11 }, /* SeNBModificationRefuse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 10 }, /* X2RemovalFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 9 }, /* RetrieveUEContextFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -11, 8 }, /* SgNBAdditionRequestReject */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -12, 7 }, /* SgNBModificationRequestReject */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 13, -13, 6 }, /* SgNBModificationRefuse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 14, -14, 5 }, /* SgNBReleaseRequestReject */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 15, -15, 4 }, /* SgNBChangeRefuse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 16, -16, 3 }, /* ENDCX2SetupFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 17, -17, 2 }, /* ENDCConfigurationUpdateFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 18, -18, 1 }, /* ENDCCellActivationFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 19, -19, 0 } /* ENDCX2RemovalFailure */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = {
+       sizeof(struct UnsuccessfulOutcome__value),
+       offsetof(struct UnsuccessfulOutcome__value, _asn_ctx),
+       offsetof(struct UnsuccessfulOutcome__value, present),
+       sizeof(((struct UnsuccessfulOutcome__value *)0)->present),
+       asn_MAP_value_tag2el_4,
+       20,     /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_4 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_4,
+       20,     /* Elements count */
+       &asn_SPC_value_specs_4  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, procedureCode),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProcedureCode,
+               0,
+               { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2,  memb_procedureCode_constraint_1 },
+               0, 0, /* No default value */
+               "procedureCode"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_UnsuccessfulOutcome_criticality_type,
+               { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3,  memb_criticality_constraint_1 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_4,
+               select_UnsuccessfulOutcome_value_type,
+               { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4,  memb_value_constraint_1 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UnsuccessfulOutcome_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcome_specs_1 = {
+       sizeof(struct UnsuccessfulOutcome),
+       offsetof(struct UnsuccessfulOutcome, _asn_ctx),
+       asn_MAP_UnsuccessfulOutcome_tag2el_1,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcome = {
+       "UnsuccessfulOutcome",
+       "UnsuccessfulOutcome",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UnsuccessfulOutcome_tags_1,
+       sizeof(asn_DEF_UnsuccessfulOutcome_tags_1)
+               /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */
+       asn_DEF_UnsuccessfulOutcome_tags_1,     /* Same as above */
+       sizeof(asn_DEF_UnsuccessfulOutcome_tags_1)
+               /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UnsuccessfulOutcome_1,
+       3,      /* Elements count */
+       &asn_SPC_UnsuccessfulOutcome_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/UnsuccessfulOutcomeE2.c b/e2ap/lib/UnsuccessfulOutcomeE2.c
new file mode 100644 (file)
index 0000000..3db4e5d
--- /dev/null
@@ -0,0 +1,327 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-PDU-Descriptions"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UnsuccessfulOutcomeE2.h"
+
+static const long asn_VAL_1_id_ricSubscription = 201;
+static const long asn_VAL_1_reject = 0;
+static const long asn_VAL_2_id_ricSubscriptionDelete = 202;
+static const long asn_VAL_2_reject = 0;
+static const long asn_VAL_3_id_ricServiceUpdate = 203;
+static const long asn_VAL_3_reject = 0;
+static const long asn_VAL_4_id_ricControl = 204;
+static const long asn_VAL_4_reject = 0;
+static const long asn_VAL_5_id_ricIndication = 205;
+static const long asn_VAL_5_ignore = 1;
+static const long asn_VAL_6_id_ricServiceQuery = 206;
+static const long asn_VAL_6_ignore = 1;
+static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = {
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_ricSubscription },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_ricSubscriptionDelete },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_ricServiceUpdate },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest },
+       { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge },
+       { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_ricControl },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_ricIndication },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_ignore },
+       { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery },
+       { "&SuccessfulOutcome",  },
+       { "&UnsuccessfulOutcome",  },
+       { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_ricServiceQuery },
+       { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_ignore }
+};
+static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = {
+       { 6, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows }
+};
+static int
+memb_procedureCode_constraint_1(const 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 >= 0 && value <= 255)) {
+               /* 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_type_selector_result_t
+select_UnsuccessfulOutcomeE2_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1;
+       size_t constraining_column = 3; /* &procedureCode */
+       size_t for_column = 4; /* &criticality */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcomeE2, procedureCode));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_criticality_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_UnsuccessfulOutcomeE2_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+       asn_type_selector_result_t result = {0, 0};
+       const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1;
+       size_t constraining_column = 3; /* &procedureCode */
+       size_t for_column = 2; /* &UnsuccessfulOutcome */
+       size_t row, presence_index = 0;
+       const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcomeE2, procedureCode));
+       
+       for(row=0; row < itable->rows_count; row++) {
+           const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+           const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+       
+           if(type_cell->cell_kind == aioc__undefined)
+               continue;
+       
+           presence_index++;
+           if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+               result.type_descriptor = type_cell->type_descriptor;
+               result.presence_index = presence_index;
+               break;
+           }
+       }
+       
+       return result;
+}
+
+static int
+memb_value_constraint_1(const 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 */
+       }
+       
+       return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_oer_constraints_t asn_OER_memb_procedureCode_constr_2 CC_NOTUSED = {
+       { 1, 1 }        /* (0..255) */,
+       -1};
+static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED,       8,  8,  0,  255 }      /* (0..255) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_value_4[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcomeE2__value, choice.RICsubscriptionFailure),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICsubscriptionFailure,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICsubscriptionFailure"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcomeE2__value, choice.RICsubscriptionDeleteFailure),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICsubscriptionDeleteFailure,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICsubscriptionDeleteFailure"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcomeE2__value, choice.RICserviceUpdateFailure),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICserviceUpdateFailure,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICserviceUpdateFailure"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcomeE2__value, choice.RICcontrolFailure),
+               (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+               0,
+               &asn_DEF_RICcontrolFailure,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "RICcontrolFailure"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 3 }, /* RICsubscriptionFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 2 }, /* RICsubscriptionDeleteFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 1 }, /* RICserviceUpdateFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 0 } /* RICcontrolFailure */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = {
+       sizeof(struct UnsuccessfulOutcomeE2__value),
+       offsetof(struct UnsuccessfulOutcomeE2__value, _asn_ctx),
+       offsetof(struct UnsuccessfulOutcomeE2__value, present),
+       sizeof(((struct UnsuccessfulOutcomeE2__value *)0)->present),
+       asn_MAP_value_tag2el_4,
+       4,      /* Count of tags in the map */
+       0, 0,
+       -1      /* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_4 = {
+       "value",
+       "value",
+       &asn_OP_OPEN_TYPE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { 0, 0, OPEN_TYPE_constraint },
+       asn_MBR_value_4,
+       4,      /* Elements count */
+       &asn_SPC_value_specs_4  /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_UnsuccessfulOutcomeE2_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcomeE2, procedureCode),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProcedureCode,
+               0,
+               { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2,  memb_procedureCode_constraint_1 },
+               0, 0, /* No default value */
+               "procedureCode"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcomeE2, criticality),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_Criticality,
+               select_UnsuccessfulOutcomeE2_criticality_type,
+               { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3,  memb_criticality_constraint_1 },
+               0, 0, /* No default value */
+               "criticality"
+               },
+       { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcomeE2, value),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_value_4,
+               select_UnsuccessfulOutcomeE2_value_type,
+               { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4,  memb_value_constraint_1 },
+               0, 0, /* No default value */
+               "value"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_UnsuccessfulOutcomeE2_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UnsuccessfulOutcomeE2_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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcomeE2_specs_1 = {
+       sizeof(struct UnsuccessfulOutcomeE2),
+       offsetof(struct UnsuccessfulOutcomeE2, _asn_ctx),
+       asn_MAP_UnsuccessfulOutcomeE2_tag2el_1,
+       3,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       -1,     /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcomeE2 = {
+       "UnsuccessfulOutcomeE2",
+       "UnsuccessfulOutcomeE2",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UnsuccessfulOutcomeE2_tags_1,
+       sizeof(asn_DEF_UnsuccessfulOutcomeE2_tags_1)
+               /sizeof(asn_DEF_UnsuccessfulOutcomeE2_tags_1[0]), /* 1 */
+       asn_DEF_UnsuccessfulOutcomeE2_tags_1,   /* Same as above */
+       sizeof(asn_DEF_UnsuccessfulOutcomeE2_tags_1)
+               /sizeof(asn_DEF_UnsuccessfulOutcomeE2_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UnsuccessfulOutcomeE2_1,
+       3,      /* Elements count */
+       &asn_SPC_UnsuccessfulOutcomeE2_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/UsableABSInformation.c b/e2ap/lib/UsableABSInformation.c
new file mode 100644 (file)
index 0000000..b4bb95b
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UsableABSInformation.h"
+
+#include "UsableABSInformationFDD.h"
+#include "UsableABSInformationTDD.h"
+static asn_oer_constraints_t asn_OER_type_UsableABSInformation_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_UsableABSInformation_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_UsableABSInformation_1[] = {
+       { ATF_POINTER, 0, offsetof(struct UsableABSInformation, choice.fdd),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UsableABSInformationFDD,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "fdd"
+               },
+       { ATF_POINTER, 0, offsetof(struct UsableABSInformation, choice.tdd),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UsableABSInformationTDD,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "tdd"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_UsableABSInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fdd */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tdd */
+};
+asn_CHOICE_specifics_t asn_SPC_UsableABSInformation_specs_1 = {
+       sizeof(struct UsableABSInformation),
+       offsetof(struct UsableABSInformation, _asn_ctx),
+       offsetof(struct UsableABSInformation, present),
+       sizeof(((struct UsableABSInformation *)0)->present),
+       asn_MAP_UsableABSInformation_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_UsableABSInformation = {
+       "UsableABSInformation",
+       "UsableABSInformation",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_UsableABSInformation_constr_1, &asn_PER_type_UsableABSInformation_constr_1, CHOICE_constraint },
+       asn_MBR_UsableABSInformation_1,
+       2,      /* Elements count */
+       &asn_SPC_UsableABSInformation_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/UsableABSInformationFDD.c b/e2ap/lib/UsableABSInformationFDD.c
new file mode 100644 (file)
index 0000000..62455b1
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UsableABSInformationFDD.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_usable_abs_pattern_info_constraint_1(const 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 == 40)) {
+               /* 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_oer_constraints_t asn_OER_memb_usable_abs_pattern_info_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       40      /* (SIZE(40..40)) */};
+static asn_per_constraints_t asn_PER_memb_usable_abs_pattern_info_constr_2 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  40,  40 }      /* (SIZE(40..40)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_UsableABSInformationFDD_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UsableABSInformationFDD, usable_abs_pattern_info),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_usable_abs_pattern_info_constr_2, &asn_PER_memb_usable_abs_pattern_info_constr_2,  memb_usable_abs_pattern_info_constraint_1 },
+               0, 0, /* No default value */
+               "usable-abs-pattern-info"
+               },
+       { ATF_POINTER, 1, offsetof(struct UsableABSInformationFDD, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P218,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_UsableABSInformationFDD_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_UsableABSInformationFDD_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UsableABSInformationFDD_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* usable-abs-pattern-info */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UsableABSInformationFDD_specs_1 = {
+       sizeof(struct UsableABSInformationFDD),
+       offsetof(struct UsableABSInformationFDD, _asn_ctx),
+       asn_MAP_UsableABSInformationFDD_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_UsableABSInformationFDD_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UsableABSInformationFDD = {
+       "UsableABSInformationFDD",
+       "UsableABSInformationFDD",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UsableABSInformationFDD_tags_1,
+       sizeof(asn_DEF_UsableABSInformationFDD_tags_1)
+               /sizeof(asn_DEF_UsableABSInformationFDD_tags_1[0]), /* 1 */
+       asn_DEF_UsableABSInformationFDD_tags_1, /* Same as above */
+       sizeof(asn_DEF_UsableABSInformationFDD_tags_1)
+               /sizeof(asn_DEF_UsableABSInformationFDD_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UsableABSInformationFDD_1,
+       2,      /* Elements count */
+       &asn_SPC_UsableABSInformationFDD_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/UsableABSInformationTDD.c b/e2ap/lib/UsableABSInformationTDD.c
new file mode 100644 (file)
index 0000000..6bb4d20
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UsableABSInformationTDD.h"
+
+#include "ProtocolExtensionContainer.h"
+static int
+memb_usaable_abs_pattern_info_constraint_1(const 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 >= 1 && size <= 70)) {
+               /* 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_oer_constraints_t asn_OER_memb_usaable_abs_pattern_info_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+static asn_per_constraints_t asn_PER_memb_usaable_abs_pattern_info_constr_2 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  7,  7,  1,  70 }   /* (SIZE(1..70,...)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_UsableABSInformationTDD_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct UsableABSInformationTDD, usaable_abs_pattern_info),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_usaable_abs_pattern_info_constr_2, &asn_PER_memb_usaable_abs_pattern_info_constr_2,  memb_usaable_abs_pattern_info_constraint_1 },
+               0, 0, /* No default value */
+               "usaable-abs-pattern-info"
+               },
+       { ATF_POINTER, 1, offsetof(struct UsableABSInformationTDD, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P219,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_UsableABSInformationTDD_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_UsableABSInformationTDD_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UsableABSInformationTDD_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* usaable-abs-pattern-info */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UsableABSInformationTDD_specs_1 = {
+       sizeof(struct UsableABSInformationTDD),
+       offsetof(struct UsableABSInformationTDD, _asn_ctx),
+       asn_MAP_UsableABSInformationTDD_tag2el_1,
+       2,      /* Count of tags in the map */
+       asn_MAP_UsableABSInformationTDD_oms_1,  /* Optional members */
+       1, 0,   /* Root/Additions */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UsableABSInformationTDD = {
+       "UsableABSInformationTDD",
+       "UsableABSInformationTDD",
+       &asn_OP_SEQUENCE,
+       asn_DEF_UsableABSInformationTDD_tags_1,
+       sizeof(asn_DEF_UsableABSInformationTDD_tags_1)
+               /sizeof(asn_DEF_UsableABSInformationTDD_tags_1[0]), /* 1 */
+       asn_DEF_UsableABSInformationTDD_tags_1, /* Same as above */
+       sizeof(asn_DEF_UsableABSInformationTDD_tags_1)
+               /sizeof(asn_DEF_UsableABSInformationTDD_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_UsableABSInformationTDD_1,
+       2,      /* Elements count */
+       &asn_SPC_UsableABSInformationTDD_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/UserPlaneTrafficActivityReport.c b/e2ap/lib/UserPlaneTrafficActivityReport.c
new file mode 100644 (file)
index 0000000..91a96d3
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "UserPlaneTrafficActivityReport.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_UserPlaneTrafficActivityReport_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_UserPlaneTrafficActivityReport_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_UserPlaneTrafficActivityReport_value2enum_1[] = {
+       { 0,    8,      "inactive" },
+       { 1,    12,     "re-activated" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_UserPlaneTrafficActivityReport_enum2value_1[] = {
+       0,      /* inactive(0) */
+       1       /* re-activated(1) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_UserPlaneTrafficActivityReport_specs_1 = {
+       asn_MAP_UserPlaneTrafficActivityReport_value2enum_1,    /* "tag" => N; sorted by tag */
+       asn_MAP_UserPlaneTrafficActivityReport_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_UserPlaneTrafficActivityReport_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_UserPlaneTrafficActivityReport = {
+       "UserPlaneTrafficActivityReport",
+       "UserPlaneTrafficActivityReport",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_UserPlaneTrafficActivityReport_tags_1,
+       sizeof(asn_DEF_UserPlaneTrafficActivityReport_tags_1)
+               /sizeof(asn_DEF_UserPlaneTrafficActivityReport_tags_1[0]), /* 1 */
+       asn_DEF_UserPlaneTrafficActivityReport_tags_1,  /* Same as above */
+       sizeof(asn_DEF_UserPlaneTrafficActivityReport_tags_1)
+               /sizeof(asn_DEF_UserPlaneTrafficActivityReport_tags_1[0]), /* 1 */
+       { &asn_OER_type_UserPlaneTrafficActivityReport_constr_1, &asn_PER_type_UserPlaneTrafficActivityReport_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_UserPlaneTrafficActivityReport_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/V2XServicesAuthorized.c b/e2ap/lib/V2XServicesAuthorized.c
new file mode 100644 (file)
index 0000000..37835ec
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "V2XServicesAuthorized.h"
+
+#include "ProtocolExtensionContainer.h"
+static asn_TYPE_member_t asn_MBR_V2XServicesAuthorized_1[] = {
+       { ATF_POINTER, 3, offsetof(struct V2XServicesAuthorized, vehicleUE),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_VehicleUE,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "vehicleUE"
+               },
+       { ATF_POINTER, 2, offsetof(struct V2XServicesAuthorized, pedestrianUE),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PedestrianUE,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pedestrianUE"
+               },
+       { ATF_POINTER, 1, offsetof(struct V2XServicesAuthorized, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P220,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_V2XServicesAuthorized_oms_1[] = { 0, 1, 2 };
+static const ber_tlv_tag_t asn_DEF_V2XServicesAuthorized_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_V2XServicesAuthorized_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleUE */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pedestrianUE */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_V2XServicesAuthorized_specs_1 = {
+       sizeof(struct V2XServicesAuthorized),
+       offsetof(struct V2XServicesAuthorized, _asn_ctx),
+       asn_MAP_V2XServicesAuthorized_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_V2XServicesAuthorized_oms_1,    /* Optional members */
+       3, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_V2XServicesAuthorized = {
+       "V2XServicesAuthorized",
+       "V2XServicesAuthorized",
+       &asn_OP_SEQUENCE,
+       asn_DEF_V2XServicesAuthorized_tags_1,
+       sizeof(asn_DEF_V2XServicesAuthorized_tags_1)
+               /sizeof(asn_DEF_V2XServicesAuthorized_tags_1[0]), /* 1 */
+       asn_DEF_V2XServicesAuthorized_tags_1,   /* Same as above */
+       sizeof(asn_DEF_V2XServicesAuthorized_tags_1)
+               /sizeof(asn_DEF_V2XServicesAuthorized_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_V2XServicesAuthorized_1,
+       3,      /* Elements count */
+       &asn_SPC_V2XServicesAuthorized_specs_1  /* Additional specs */
+};
+
diff --git a/e2ap/lib/VehicleUE.c b/e2ap/lib/VehicleUE.c
new file mode 100644 (file)
index 0000000..a40c92f
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "VehicleUE.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_VehicleUE_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_VehicleUE_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_VehicleUE_value2enum_1[] = {
+       { 0,    10,     "authorized" },
+       { 1,    14,     "not-authorized" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_VehicleUE_enum2value_1[] = {
+       0,      /* authorized(0) */
+       1       /* not-authorized(1) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_VehicleUE_specs_1 = {
+       asn_MAP_VehicleUE_value2enum_1, /* "tag" => N; sorted by tag */
+       asn_MAP_VehicleUE_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_VehicleUE_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_VehicleUE = {
+       "VehicleUE",
+       "VehicleUE",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_VehicleUE_tags_1,
+       sizeof(asn_DEF_VehicleUE_tags_1)
+               /sizeof(asn_DEF_VehicleUE_tags_1[0]), /* 1 */
+       asn_DEF_VehicleUE_tags_1,       /* Same as above */
+       sizeof(asn_DEF_VehicleUE_tags_1)
+               /sizeof(asn_DEF_VehicleUE_tags_1[0]), /* 1 */
+       { &asn_OER_type_VehicleUE_constr_1, &asn_PER_type_VehicleUE_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_VehicleUE_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/WLANMeasConfig.c b/e2ap/lib/WLANMeasConfig.c
new file mode 100644 (file)
index 0000000..372498e
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "WLANMeasConfig.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_WLANMeasConfig_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_WLANMeasConfig_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_WLANMeasConfig_value2enum_1[] = {
+       { 0,    5,      "setup" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_WLANMeasConfig_enum2value_1[] = {
+       0       /* setup(0) */
+       /* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_WLANMeasConfig_specs_1 = {
+       asn_MAP_WLANMeasConfig_value2enum_1,    /* "tag" => N; sorted by tag */
+       asn_MAP_WLANMeasConfig_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_WLANMeasConfig_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_WLANMeasConfig = {
+       "WLANMeasConfig",
+       "WLANMeasConfig",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_WLANMeasConfig_tags_1,
+       sizeof(asn_DEF_WLANMeasConfig_tags_1)
+               /sizeof(asn_DEF_WLANMeasConfig_tags_1[0]), /* 1 */
+       asn_DEF_WLANMeasConfig_tags_1,  /* Same as above */
+       sizeof(asn_DEF_WLANMeasConfig_tags_1)
+               /sizeof(asn_DEF_WLANMeasConfig_tags_1[0]), /* 1 */
+       { &asn_OER_type_WLANMeasConfig_constr_1, &asn_PER_type_WLANMeasConfig_constr_1, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_WLANMeasConfig_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/WLANMeasConfigNameList.c b/e2ap/lib/WLANMeasConfigNameList.c
new file mode 100644 (file)
index 0000000..fd0bc2c
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "WLANMeasConfigNameList.h"
+
+static asn_oer_constraints_t asn_OER_type_WLANMeasConfigNameList_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..4)) */};
+asn_per_constraints_t asn_PER_type_WLANMeasConfigNameList_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       2,  2,  1,  4 }        /* (SIZE(1..4)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_WLANMeasConfigNameList_1[] = {
+       { ATF_POINTER, 0, 0,
+               (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
+               0,
+               &asn_DEF_WLANName,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               ""
+               },
+};
+static const ber_tlv_tag_t asn_DEF_WLANMeasConfigNameList_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_WLANMeasConfigNameList_specs_1 = {
+       sizeof(struct WLANMeasConfigNameList),
+       offsetof(struct WLANMeasConfigNameList, _asn_ctx),
+       0,      /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_WLANMeasConfigNameList = {
+       "WLANMeasConfigNameList",
+       "WLANMeasConfigNameList",
+       &asn_OP_SEQUENCE_OF,
+       asn_DEF_WLANMeasConfigNameList_tags_1,
+       sizeof(asn_DEF_WLANMeasConfigNameList_tags_1)
+               /sizeof(asn_DEF_WLANMeasConfigNameList_tags_1[0]), /* 1 */
+       asn_DEF_WLANMeasConfigNameList_tags_1,  /* Same as above */
+       sizeof(asn_DEF_WLANMeasConfigNameList_tags_1)
+               /sizeof(asn_DEF_WLANMeasConfigNameList_tags_1[0]), /* 1 */
+       { &asn_OER_type_WLANMeasConfigNameList_constr_1, &asn_PER_type_WLANMeasConfigNameList_constr_1, SEQUENCE_OF_constraint },
+       asn_MBR_WLANMeasConfigNameList_1,
+       1,      /* Single element */
+       &asn_SPC_WLANMeasConfigNameList_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/WLANMeasurementConfiguration.c b/e2ap/lib/WLANMeasurementConfiguration.c
new file mode 100644 (file)
index 0000000..66d3b40
--- /dev/null
@@ -0,0 +1,192 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "WLANMeasurementConfiguration.h"
+
+#include "WLANMeasConfigNameList.h"
+#include "ProtocolExtensionContainer.h"
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_wlan_rssi_constr_4 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_wlan_rssi_constr_4 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_wlan_rtt_constr_7 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_wlan_rtt_constr_7 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_wlan_rssi_value2enum_4[] = {
+       { 0,    4,      "true" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_wlan_rssi_enum2value_4[] = {
+       0       /* true(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_wlan_rssi_specs_4 = {
+       asn_MAP_wlan_rssi_value2enum_4, /* "tag" => N; sorted by tag */
+       asn_MAP_wlan_rssi_enum2value_4, /* 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_wlan_rssi_tags_4[] = {
+       (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_wlan_rssi_4 = {
+       "wlan-rssi",
+       "wlan-rssi",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_wlan_rssi_tags_4,
+       sizeof(asn_DEF_wlan_rssi_tags_4)
+               /sizeof(asn_DEF_wlan_rssi_tags_4[0]) - 1, /* 1 */
+       asn_DEF_wlan_rssi_tags_4,       /* Same as above */
+       sizeof(asn_DEF_wlan_rssi_tags_4)
+               /sizeof(asn_DEF_wlan_rssi_tags_4[0]), /* 2 */
+       { &asn_OER_type_wlan_rssi_constr_4, &asn_PER_type_wlan_rssi_constr_4, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_wlan_rssi_specs_4      /* Additional specs */
+};
+
+static const asn_INTEGER_enum_map_t asn_MAP_wlan_rtt_value2enum_7[] = {
+       { 0,    4,      "true" }
+       /* This list is extensible */
+};
+static const unsigned int asn_MAP_wlan_rtt_enum2value_7[] = {
+       0       /* true(0) */
+       /* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_wlan_rtt_specs_7 = {
+       asn_MAP_wlan_rtt_value2enum_7,  /* "tag" => N; sorted by tag */
+       asn_MAP_wlan_rtt_enum2value_7,  /* 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_wlan_rtt_tags_7[] = {
+       (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+       (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_wlan_rtt_7 = {
+       "wlan-rtt",
+       "wlan-rtt",
+       &asn_OP_NativeEnumerated,
+       asn_DEF_wlan_rtt_tags_7,
+       sizeof(asn_DEF_wlan_rtt_tags_7)
+               /sizeof(asn_DEF_wlan_rtt_tags_7[0]) - 1, /* 1 */
+       asn_DEF_wlan_rtt_tags_7,        /* Same as above */
+       sizeof(asn_DEF_wlan_rtt_tags_7)
+               /sizeof(asn_DEF_wlan_rtt_tags_7[0]), /* 2 */
+       { &asn_OER_type_wlan_rtt_constr_7, &asn_PER_type_wlan_rtt_constr_7, NativeEnumerated_constraint },
+       0, 0,   /* Defined elsewhere */
+       &asn_SPC_wlan_rtt_specs_7       /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_WLANMeasurementConfiguration_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct WLANMeasurementConfiguration, wlanMeasConfig),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_WLANMeasConfig,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "wlanMeasConfig"
+               },
+       { ATF_POINTER, 4, offsetof(struct WLANMeasurementConfiguration, wlanMeasConfigNameList),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_WLANMeasConfigNameList,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "wlanMeasConfigNameList"
+               },
+       { ATF_POINTER, 3, offsetof(struct WLANMeasurementConfiguration, wlan_rssi),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_wlan_rssi_4,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "wlan-rssi"
+               },
+       { ATF_POINTER, 2, offsetof(struct WLANMeasurementConfiguration, wlan_rtt),
+               (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_wlan_rtt_7,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "wlan-rtt"
+               },
+       { ATF_POINTER, 1, offsetof(struct WLANMeasurementConfiguration, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P222,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_WLANMeasurementConfiguration_oms_1[] = { 1, 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_WLANMeasurementConfiguration_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_WLANMeasurementConfiguration_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wlanMeasConfig */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* wlanMeasConfigNameList */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* wlan-rssi */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* wlan-rtt */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_WLANMeasurementConfiguration_specs_1 = {
+       sizeof(struct WLANMeasurementConfiguration),
+       offsetof(struct WLANMeasurementConfiguration, _asn_ctx),
+       asn_MAP_WLANMeasurementConfiguration_tag2el_1,
+       5,      /* Count of tags in the map */
+       asn_MAP_WLANMeasurementConfiguration_oms_1,     /* Optional members */
+       4, 0,   /* Root/Additions */
+       5,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_WLANMeasurementConfiguration = {
+       "WLANMeasurementConfiguration",
+       "WLANMeasurementConfiguration",
+       &asn_OP_SEQUENCE,
+       asn_DEF_WLANMeasurementConfiguration_tags_1,
+       sizeof(asn_DEF_WLANMeasurementConfiguration_tags_1)
+               /sizeof(asn_DEF_WLANMeasurementConfiguration_tags_1[0]), /* 1 */
+       asn_DEF_WLANMeasurementConfiguration_tags_1,    /* Same as above */
+       sizeof(asn_DEF_WLANMeasurementConfiguration_tags_1)
+               /sizeof(asn_DEF_WLANMeasurementConfiguration_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_WLANMeasurementConfiguration_1,
+       5,      /* Elements count */
+       &asn_SPC_WLANMeasurementConfiguration_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/WLANName.c b/e2ap/lib/WLANName.c
new file mode 100644 (file)
index 0000000..d923a95
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "WLANName.h"
+
+int
+WLANName_constraint(const 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 >= 1 && size <= 32)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_WLANName_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(1..32)) */};
+asn_per_constraints_t asn_PER_type_WLANName_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       5,  5,  1,  32 }       /* (SIZE(1..32)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_WLANName_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_WLANName = {
+       "WLANName",
+       "WLANName",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_WLANName_tags_1,
+       sizeof(asn_DEF_WLANName_tags_1)
+               /sizeof(asn_DEF_WLANName_tags_1[0]), /* 1 */
+       asn_DEF_WLANName_tags_1,        /* Same as above */
+       sizeof(asn_DEF_WLANName_tags_1)
+               /sizeof(asn_DEF_WLANName_tags_1[0]), /* 1 */
+       { &asn_OER_type_WLANName_constr_1, &asn_PER_type_WLANName_constr_1, WLANName_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/WT-UE-XwAP-ID.c b/e2ap/lib/WT-UE-XwAP-ID.c
new file mode 100644 (file)
index 0000000..825511d
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "WT-UE-XwAP-ID.h"
+
+int
+WT_UE_XwAP_ID_constraint(const 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 == 3)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_WT_UE_XwAP_ID_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       3       /* (SIZE(3..3)) */};
+asn_per_constraints_t asn_PER_type_WT_UE_XwAP_ID_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  3,  3 }        /* (SIZE(3..3)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_WT_UE_XwAP_ID_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_WT_UE_XwAP_ID = {
+       "WT-UE-XwAP-ID",
+       "WT-UE-XwAP-ID",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_WT_UE_XwAP_ID_tags_1,
+       sizeof(asn_DEF_WT_UE_XwAP_ID_tags_1)
+               /sizeof(asn_DEF_WT_UE_XwAP_ID_tags_1[0]), /* 1 */
+       asn_DEF_WT_UE_XwAP_ID_tags_1,   /* Same as above */
+       sizeof(asn_DEF_WT_UE_XwAP_ID_tags_1)
+               /sizeof(asn_DEF_WT_UE_XwAP_ID_tags_1[0]), /* 1 */
+       { &asn_OER_type_WT_UE_XwAP_ID_constr_1, &asn_PER_type_WT_UE_XwAP_ID_constr_1, WT_UE_XwAP_ID_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/WTID-Long-Type2.c b/e2ap/lib/WTID-Long-Type2.c
new file mode 100644 (file)
index 0000000..a61b1b3
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "WTID-Long-Type2.h"
+
+int
+WTID_Long_Type2_constraint(const 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 == 48)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_WTID_Long_Type2_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       48      /* (SIZE(48..48)) */};
+asn_per_constraints_t asn_PER_type_WTID_Long_Type2_constr_1 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  48,  48 }      /* (SIZE(48..48)) */,
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_WTID_Long_Type2_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_WTID_Long_Type2 = {
+       "WTID-Long-Type2",
+       "WTID-Long-Type2",
+       &asn_OP_BIT_STRING,
+       asn_DEF_WTID_Long_Type2_tags_1,
+       sizeof(asn_DEF_WTID_Long_Type2_tags_1)
+               /sizeof(asn_DEF_WTID_Long_Type2_tags_1[0]), /* 1 */
+       asn_DEF_WTID_Long_Type2_tags_1, /* Same as above */
+       sizeof(asn_DEF_WTID_Long_Type2_tags_1)
+               /sizeof(asn_DEF_WTID_Long_Type2_tags_1[0]), /* 1 */
+       { &asn_OER_type_WTID_Long_Type2_constr_1, &asn_PER_type_WTID_Long_Type2_constr_1, WTID_Long_Type2_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_BIT_STRING_specs       /* Additional specs */
+};
+
diff --git a/e2ap/lib/WTID-Type1.c b/e2ap/lib/WTID-Type1.c
new file mode 100644 (file)
index 0000000..eb15287
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "WTID-Type1.h"
+
+static int
+memb_shortWTID_constraint_1(const 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 == 24)) {
+               /* 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_oer_constraints_t asn_OER_memb_shortWTID_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       24      /* (SIZE(24..24)) */};
+static asn_per_constraints_t asn_PER_memb_shortWTID_constr_3 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_CONSTRAINED,       0,  0,  24,  24 }      /* (SIZE(24..24)) */,
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_WTID_Type1_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct WTID_Type1, pLMN_Identity),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_PLMN_Identity,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "pLMN-Identity"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct WTID_Type1, shortWTID),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_BIT_STRING,
+               0,
+               { &asn_OER_memb_shortWTID_constr_3, &asn_PER_memb_shortWTID_constr_3,  memb_shortWTID_constraint_1 },
+               0, 0, /* No default value */
+               "shortWTID"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_WTID_Type1_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_WTID_Type1_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* shortWTID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_WTID_Type1_specs_1 = {
+       sizeof(struct WTID_Type1),
+       offsetof(struct WTID_Type1, _asn_ctx),
+       asn_MAP_WTID_Type1_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       2,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_WTID_Type1 = {
+       "WTID-Type1",
+       "WTID-Type1",
+       &asn_OP_SEQUENCE,
+       asn_DEF_WTID_Type1_tags_1,
+       sizeof(asn_DEF_WTID_Type1_tags_1)
+               /sizeof(asn_DEF_WTID_Type1_tags_1[0]), /* 1 */
+       asn_DEF_WTID_Type1_tags_1,      /* Same as above */
+       sizeof(asn_DEF_WTID_Type1_tags_1)
+               /sizeof(asn_DEF_WTID_Type1_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_WTID_Type1_1,
+       2,      /* Elements count */
+       &asn_SPC_WTID_Type1_specs_1     /* Additional specs */
+};
+
diff --git a/e2ap/lib/WTID.c b/e2ap/lib/WTID.c
new file mode 100644 (file)
index 0000000..5f375da
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "WTID.h"
+
+#include "WTID-Type1.h"
+static asn_oer_constraints_t asn_OER_type_WTID_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_WTID_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_WTID_1[] = {
+       { ATF_POINTER, 0, offsetof(struct WTID, choice.wTID_Type1),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_WTID_Type1,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "wTID-Type1"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct WTID, choice.wTID_Type2),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_WTID_Long_Type2,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "wTID-Type2"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_WTID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wTID-Type1 */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* wTID-Type2 */
+};
+asn_CHOICE_specifics_t asn_SPC_WTID_specs_1 = {
+       sizeof(struct WTID),
+       offsetof(struct WTID, _asn_ctx),
+       offsetof(struct WTID, present),
+       sizeof(((struct WTID *)0)->present),
+       asn_MAP_WTID_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_WTID = {
+       "WTID",
+       "WTID",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_WTID_constr_1, &asn_PER_type_WTID_constr_1, CHOICE_constraint },
+       asn_MBR_WTID_1,
+       2,      /* Elements count */
+       &asn_SPC_WTID_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/WidebandCQI.c b/e2ap/lib/WidebandCQI.c
new file mode 100644 (file)
index 0000000..e9947c6
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "WidebandCQI.h"
+
+#include "WidebandCQICodeword1.h"
+#include "ProtocolExtensionContainer.h"
+static int
+memb_widebandCQICodeword0_constraint_1(const 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 >= 0 && value <= 15)) {
+               /* 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_oer_constraints_t asn_OER_memb_widebandCQICodeword0_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_widebandCQICodeword0_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  15 }   /* (0..15,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_WidebandCQI_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct WidebandCQI, widebandCQICodeword0),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_widebandCQICodeword0_constr_2, &asn_PER_memb_widebandCQICodeword0_constr_2,  memb_widebandCQICodeword0_constraint_1 },
+               0, 0, /* No default value */
+               "widebandCQICodeword0"
+               },
+       { ATF_POINTER, 2, offsetof(struct WidebandCQI, widebandCQICodeword1),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               +1,     /* EXPLICIT tag at current level */
+               &asn_DEF_WidebandCQICodeword1,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "widebandCQICodeword1"
+               },
+       { ATF_POINTER, 1, offsetof(struct WidebandCQI, iE_Extensions),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolExtensionContainer_9566P221,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "iE-Extensions"
+               },
+};
+static const int asn_MAP_WidebandCQI_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_WidebandCQI_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_WidebandCQI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* widebandCQICodeword0 */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* widebandCQICodeword1 */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+asn_SEQUENCE_specifics_t asn_SPC_WidebandCQI_specs_1 = {
+       sizeof(struct WidebandCQI),
+       offsetof(struct WidebandCQI, _asn_ctx),
+       asn_MAP_WidebandCQI_tag2el_1,
+       3,      /* Count of tags in the map */
+       asn_MAP_WidebandCQI_oms_1,      /* Optional members */
+       2, 0,   /* Root/Additions */
+       3,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_WidebandCQI = {
+       "WidebandCQI",
+       "WidebandCQI",
+       &asn_OP_SEQUENCE,
+       asn_DEF_WidebandCQI_tags_1,
+       sizeof(asn_DEF_WidebandCQI_tags_1)
+               /sizeof(asn_DEF_WidebandCQI_tags_1[0]), /* 1 */
+       asn_DEF_WidebandCQI_tags_1,     /* Same as above */
+       sizeof(asn_DEF_WidebandCQI_tags_1)
+               /sizeof(asn_DEF_WidebandCQI_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_WidebandCQI_1,
+       3,      /* Elements count */
+       &asn_SPC_WidebandCQI_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/WidebandCQICodeword1.c b/e2ap/lib/WidebandCQICodeword1.c
new file mode 100644 (file)
index 0000000..99b6191
--- /dev/null
@@ -0,0 +1,131 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "WidebandCQICodeword1.h"
+
+static int
+memb_four_bitCQI_constraint_1(const 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 >= 0 && value <= 15)) {
+               /* 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_three_bitSpatialDifferentialCQI_constraint_1(const 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 >= 0 && value <= 7)) {
+               /* 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_oer_constraints_t asn_OER_memb_four_bitCQI_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_four_bitCQI_constr_2 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  15 }   /* (0..15,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_three_bitSpatialDifferentialCQI_constr_3 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_memb_three_bitSpatialDifferentialCQI_constr_3 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  7 }    /* (0..7,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_WidebandCQICodeword1_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+asn_per_constraints_t asn_PER_type_WidebandCQICodeword1_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_WidebandCQICodeword1_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct WidebandCQICodeword1, choice.four_bitCQI),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_four_bitCQI_constr_2, &asn_PER_memb_four_bitCQI_constr_2,  memb_four_bitCQI_constraint_1 },
+               0, 0, /* No default value */
+               "four-bitCQI"
+               },
+       { ATF_NOFLAGS, 0, offsetof(struct WidebandCQICodeword1, choice.three_bitSpatialDifferentialCQI),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_NativeInteger,
+               0,
+               { &asn_OER_memb_three_bitSpatialDifferentialCQI_constr_3, &asn_PER_memb_three_bitSpatialDifferentialCQI_constr_3,  memb_three_bitSpatialDifferentialCQI_constraint_1 },
+               0, 0, /* No default value */
+               "three-bitSpatialDifferentialCQI"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_WidebandCQICodeword1_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* four-bitCQI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* three-bitSpatialDifferentialCQI */
+};
+asn_CHOICE_specifics_t asn_SPC_WidebandCQICodeword1_specs_1 = {
+       sizeof(struct WidebandCQICodeword1),
+       offsetof(struct WidebandCQICodeword1, _asn_ctx),
+       offsetof(struct WidebandCQICodeword1, present),
+       sizeof(((struct WidebandCQICodeword1 *)0)->present),
+       asn_MAP_WidebandCQICodeword1_tag2el_1,
+       2,      /* Count of tags in the map */
+       0, 0,
+       2       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_WidebandCQICodeword1 = {
+       "WidebandCQICodeword1",
+       "WidebandCQICodeword1",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_WidebandCQICodeword1_constr_1, &asn_PER_type_WidebandCQICodeword1_constr_1, CHOICE_constraint },
+       asn_MBR_WidebandCQICodeword1_1,
+       2,      /* Elements count */
+       &asn_SPC_WidebandCQICodeword1_specs_1   /* Additional specs */
+};
+
diff --git a/e2ap/lib/X2AP-Message.c b/e2ap/lib/X2AP-Message.c
new file mode 100644 (file)
index 0000000..b89f8cb
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "X2AP-Message.h"
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_X2AP_Message_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_X2AP_Message = {
+       "X2AP-Message",
+       "X2AP-Message",
+       &asn_OP_OCTET_STRING,
+       asn_DEF_X2AP_Message_tags_1,
+       sizeof(asn_DEF_X2AP_Message_tags_1)
+               /sizeof(asn_DEF_X2AP_Message_tags_1[0]), /* 1 */
+       asn_DEF_X2AP_Message_tags_1,    /* Same as above */
+       sizeof(asn_DEF_X2AP_Message_tags_1)
+               /sizeof(asn_DEF_X2AP_Message_tags_1[0]), /* 1 */
+       { 0, 0, OCTET_STRING_constraint },
+       0, 0,   /* No members */
+       &asn_SPC_OCTET_STRING_specs     /* Additional specs */
+};
+
diff --git a/e2ap/lib/X2AP-PDU.c b/e2ap/lib/X2AP-PDU.c
new file mode 100644 (file)
index 0000000..0107a5d
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Descriptions"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "X2AP-PDU.h"
+
+#include "InitiatingMessage.h"
+#include "SuccessfulOutcome.h"
+#include "UnsuccessfulOutcome.h"
+static asn_oer_constraints_t asn_OER_type_X2AP_PDU_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_X2AP_PDU_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_X2AP_PDU_1[] = {
+       { ATF_POINTER, 0, offsetof(struct X2AP_PDU, choice.initiatingMessage),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_InitiatingMessage,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "initiatingMessage"
+               },
+       { ATF_POINTER, 0, offsetof(struct X2AP_PDU, choice.successfulOutcome),
+               (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_SuccessfulOutcome,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "successfulOutcome"
+               },
+       { ATF_POINTER, 0, offsetof(struct X2AP_PDU, choice.unsuccessfulOutcome),
+               (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_UnsuccessfulOutcome,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "unsuccessfulOutcome"
+               },
+};
+static const asn_TYPE_tag2member_t asn_MAP_X2AP_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 */
+};
+static asn_CHOICE_specifics_t asn_SPC_X2AP_PDU_specs_1 = {
+       sizeof(struct X2AP_PDU),
+       offsetof(struct X2AP_PDU, _asn_ctx),
+       offsetof(struct X2AP_PDU, present),
+       sizeof(((struct X2AP_PDU *)0)->present),
+       asn_MAP_X2AP_PDU_tag2el_1,
+       3,      /* Count of tags in the map */
+       0, 0,
+       3       /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_X2AP_PDU = {
+       "X2AP-PDU",
+       "X2AP-PDU",
+       &asn_OP_CHOICE,
+       0,      /* No effective tags (pointer) */
+       0,      /* No effective tags (count) */
+       0,      /* No tags (pointer) */
+       0,      /* No tags (count) */
+       { &asn_OER_type_X2AP_PDU_constr_1, &asn_PER_type_X2AP_PDU_constr_1, CHOICE_constraint },
+       asn_MBR_X2AP_PDU_1,
+       3,      /* Elements count */
+       &asn_SPC_X2AP_PDU_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/X2APMessageTransfer.c b/e2ap/lib/X2APMessageTransfer.c
new file mode 100644 (file)
index 0000000..66dca87
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "X2APMessageTransfer.h"
+
+asn_TYPE_member_t asn_MBR_X2APMessageTransfer_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2APMessageTransfer, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P43,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_X2APMessageTransfer_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_X2APMessageTransfer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_X2APMessageTransfer_specs_1 = {
+       sizeof(struct X2APMessageTransfer),
+       offsetof(struct X2APMessageTransfer, _asn_ctx),
+       asn_MAP_X2APMessageTransfer_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_X2APMessageTransfer = {
+       "X2APMessageTransfer",
+       "X2APMessageTransfer",
+       &asn_OP_SEQUENCE,
+       asn_DEF_X2APMessageTransfer_tags_1,
+       sizeof(asn_DEF_X2APMessageTransfer_tags_1)
+               /sizeof(asn_DEF_X2APMessageTransfer_tags_1[0]), /* 1 */
+       asn_DEF_X2APMessageTransfer_tags_1,     /* Same as above */
+       sizeof(asn_DEF_X2APMessageTransfer_tags_1)
+               /sizeof(asn_DEF_X2APMessageTransfer_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_X2APMessageTransfer_1,
+       1,      /* Elements count */
+       &asn_SPC_X2APMessageTransfer_specs_1    /* Additional specs */
+};
+
diff --git a/e2ap/lib/X2BenefitValue.c b/e2ap/lib/X2BenefitValue.c
new file mode 100644 (file)
index 0000000..4d9fe0d
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "X2BenefitValue.h"
+
+int
+X2BenefitValue_constraint(const 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 >= 1 && value <= 8)) {
+               /* 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 asn_oer_constraints_t asn_OER_type_X2BenefitValue_constr_1 CC_NOTUSED = {
+       { 0, 0 },
+       -1};
+static asn_per_constraints_t asn_PER_type_X2BenefitValue_constr_1 CC_NOTUSED = {
+       { APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  1,  8 }    /* (1..8,...) */,
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_X2BenefitValue_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_X2BenefitValue = {
+       "X2BenefitValue",
+       "X2BenefitValue",
+       &asn_OP_NativeInteger,
+       asn_DEF_X2BenefitValue_tags_1,
+       sizeof(asn_DEF_X2BenefitValue_tags_1)
+               /sizeof(asn_DEF_X2BenefitValue_tags_1[0]), /* 1 */
+       asn_DEF_X2BenefitValue_tags_1,  /* Same as above */
+       sizeof(asn_DEF_X2BenefitValue_tags_1)
+               /sizeof(asn_DEF_X2BenefitValue_tags_1[0]), /* 1 */
+       { &asn_OER_type_X2BenefitValue_constr_1, &asn_PER_type_X2BenefitValue_constr_1, X2BenefitValue_constraint },
+       0, 0,   /* No members */
+       0       /* No specifics */
+};
+
diff --git a/e2ap/lib/X2Release.c b/e2ap/lib/X2Release.c
new file mode 100644 (file)
index 0000000..632dba9
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "X2Release.h"
+
+asn_TYPE_member_t asn_MBR_X2Release_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2Release, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P42,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_X2Release_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_X2Release_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_X2Release_specs_1 = {
+       sizeof(struct X2Release),
+       offsetof(struct X2Release, _asn_ctx),
+       asn_MAP_X2Release_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_X2Release = {
+       "X2Release",
+       "X2Release",
+       &asn_OP_SEQUENCE,
+       asn_DEF_X2Release_tags_1,
+       sizeof(asn_DEF_X2Release_tags_1)
+               /sizeof(asn_DEF_X2Release_tags_1[0]), /* 1 */
+       asn_DEF_X2Release_tags_1,       /* Same as above */
+       sizeof(asn_DEF_X2Release_tags_1)
+               /sizeof(asn_DEF_X2Release_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_X2Release_1,
+       1,      /* Elements count */
+       &asn_SPC_X2Release_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/X2RemovalFailure.c b/e2ap/lib/X2RemovalFailure.c
new file mode 100644 (file)
index 0000000..65948c7
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "X2RemovalFailure.h"
+
+asn_TYPE_member_t asn_MBR_X2RemovalFailure_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2RemovalFailure, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P60,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_X2RemovalFailure_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_X2RemovalFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_X2RemovalFailure_specs_1 = {
+       sizeof(struct X2RemovalFailure),
+       offsetof(struct X2RemovalFailure, _asn_ctx),
+       asn_MAP_X2RemovalFailure_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_X2RemovalFailure = {
+       "X2RemovalFailure",
+       "X2RemovalFailure",
+       &asn_OP_SEQUENCE,
+       asn_DEF_X2RemovalFailure_tags_1,
+       sizeof(asn_DEF_X2RemovalFailure_tags_1)
+               /sizeof(asn_DEF_X2RemovalFailure_tags_1[0]), /* 1 */
+       asn_DEF_X2RemovalFailure_tags_1,        /* Same as above */
+       sizeof(asn_DEF_X2RemovalFailure_tags_1)
+               /sizeof(asn_DEF_X2RemovalFailure_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_X2RemovalFailure_1,
+       1,      /* Elements count */
+       &asn_SPC_X2RemovalFailure_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/X2RemovalRequest.c b/e2ap/lib/X2RemovalRequest.c
new file mode 100644 (file)
index 0000000..91d9c36
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "X2RemovalRequest.h"
+
+asn_TYPE_member_t asn_MBR_X2RemovalRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2RemovalRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P58,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_X2RemovalRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_X2RemovalRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_X2RemovalRequest_specs_1 = {
+       sizeof(struct X2RemovalRequest),
+       offsetof(struct X2RemovalRequest, _asn_ctx),
+       asn_MAP_X2RemovalRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_X2RemovalRequest = {
+       "X2RemovalRequest",
+       "X2RemovalRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_X2RemovalRequest_tags_1,
+       sizeof(asn_DEF_X2RemovalRequest_tags_1)
+               /sizeof(asn_DEF_X2RemovalRequest_tags_1[0]), /* 1 */
+       asn_DEF_X2RemovalRequest_tags_1,        /* Same as above */
+       sizeof(asn_DEF_X2RemovalRequest_tags_1)
+               /sizeof(asn_DEF_X2RemovalRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_X2RemovalRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_X2RemovalRequest_specs_1       /* Additional specs */
+};
+
diff --git a/e2ap/lib/X2RemovalResponse.c b/e2ap/lib/X2RemovalResponse.c
new file mode 100644 (file)
index 0000000..c7175d9
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "X2RemovalResponse.h"
+
+asn_TYPE_member_t asn_MBR_X2RemovalResponse_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2RemovalResponse, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P59,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_X2RemovalResponse_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_X2RemovalResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_X2RemovalResponse_specs_1 = {
+       sizeof(struct X2RemovalResponse),
+       offsetof(struct X2RemovalResponse, _asn_ctx),
+       asn_MAP_X2RemovalResponse_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_X2RemovalResponse = {
+       "X2RemovalResponse",
+       "X2RemovalResponse",
+       &asn_OP_SEQUENCE,
+       asn_DEF_X2RemovalResponse_tags_1,
+       sizeof(asn_DEF_X2RemovalResponse_tags_1)
+               /sizeof(asn_DEF_X2RemovalResponse_tags_1[0]), /* 1 */
+       asn_DEF_X2RemovalResponse_tags_1,       /* Same as above */
+       sizeof(asn_DEF_X2RemovalResponse_tags_1)
+               /sizeof(asn_DEF_X2RemovalResponse_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_X2RemovalResponse_1,
+       1,      /* Elements count */
+       &asn_SPC_X2RemovalResponse_specs_1      /* Additional specs */
+};
+
diff --git a/e2ap/lib/X2SetupFailure.c b/e2ap/lib/X2SetupFailure.c
new file mode 100644 (file)
index 0000000..ab9e2a2
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "X2SetupFailure.h"
+
+asn_TYPE_member_t asn_MBR_X2SetupFailure_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupFailure, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P26,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_X2SetupFailure_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_X2SetupFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_X2SetupFailure_specs_1 = {
+       sizeof(struct X2SetupFailure),
+       offsetof(struct X2SetupFailure, _asn_ctx),
+       asn_MAP_X2SetupFailure_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_X2SetupFailure = {
+       "X2SetupFailure",
+       "X2SetupFailure",
+       &asn_OP_SEQUENCE,
+       asn_DEF_X2SetupFailure_tags_1,
+       sizeof(asn_DEF_X2SetupFailure_tags_1)
+               /sizeof(asn_DEF_X2SetupFailure_tags_1[0]), /* 1 */
+       asn_DEF_X2SetupFailure_tags_1,  /* Same as above */
+       sizeof(asn_DEF_X2SetupFailure_tags_1)
+               /sizeof(asn_DEF_X2SetupFailure_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_X2SetupFailure_1,
+       1,      /* Elements count */
+       &asn_SPC_X2SetupFailure_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/X2SetupRequest.c b/e2ap/lib/X2SetupRequest.c
new file mode 100644 (file)
index 0000000..617cea4
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "X2SetupRequest.h"
+
+asn_TYPE_member_t asn_MBR_X2SetupRequest_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupRequest, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P24,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_X2SetupRequest_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_X2SetupRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_X2SetupRequest_specs_1 = {
+       sizeof(struct X2SetupRequest),
+       offsetof(struct X2SetupRequest, _asn_ctx),
+       asn_MAP_X2SetupRequest_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_X2SetupRequest = {
+       "X2SetupRequest",
+       "X2SetupRequest",
+       &asn_OP_SEQUENCE,
+       asn_DEF_X2SetupRequest_tags_1,
+       sizeof(asn_DEF_X2SetupRequest_tags_1)
+               /sizeof(asn_DEF_X2SetupRequest_tags_1[0]), /* 1 */
+       asn_DEF_X2SetupRequest_tags_1,  /* Same as above */
+       sizeof(asn_DEF_X2SetupRequest_tags_1)
+               /sizeof(asn_DEF_X2SetupRequest_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_X2SetupRequest_1,
+       1,      /* Elements count */
+       &asn_SPC_X2SetupRequest_specs_1 /* Additional specs */
+};
+
diff --git a/e2ap/lib/X2SetupResponse.c b/e2ap/lib/X2SetupResponse.c
new file mode 100644 (file)
index 0000000..31d6f26
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-PDU-Contents"
+ *     found in "Spec/e2ap-v031ex.asn"
+ *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ */
+
+#include "X2SetupResponse.h"
+
+asn_TYPE_member_t asn_MBR_X2SetupResponse_1[] = {
+       { ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse, protocolIEs),
+               (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+               -1,     /* IMPLICIT tag at current level */
+               &asn_DEF_ProtocolIE_Container_9515P25,
+               0,
+               { 0, 0, 0 },
+               0, 0, /* No default value */
+               "protocolIEs"
+               },
+};
+static const ber_tlv_tag_t asn_DEF_X2SetupResponse_tags_1[] = {
+       (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_X2SetupResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+asn_SEQUENCE_specifics_t asn_SPC_X2SetupResponse_specs_1 = {
+       sizeof(struct X2SetupResponse),
+       offsetof(struct X2SetupResponse, _asn_ctx),
+       asn_MAP_X2SetupResponse_tag2el_1,
+       1,      /* Count of tags in the map */
+       0, 0, 0,        /* Optional elements (not needed) */
+       1,      /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_X2SetupResponse = {
+       "X2SetupResponse",
+       "X2SetupResponse",
+       &asn_OP_SEQUENCE,
+       asn_DEF_X2SetupResponse_tags_1,
+       sizeof(asn_DEF_X2SetupResponse_tags_1)
+               /sizeof(asn_DEF_X2SetupResponse_tags_1[0]), /* 1 */
+       asn_DEF_X2SetupResponse_tags_1, /* Same as above */
+       sizeof(asn_DEF_X2SetupResponse_tags_1)
+               /sizeof(asn_DEF_X2SetupResponse_tags_1[0]), /* 1 */
+       { 0, 0, SEQUENCE_constraint },
+       asn_MBR_X2SetupResponse_1,
+       1,      /* Elements count */
+       &asn_SPC_X2SetupResponse_specs_1        /* Additional specs */
+};
+
diff --git a/e2ap/lib/asn_SEQUENCE_OF.c b/e2ap/lib/asn_SEQUENCE_OF.c
new file mode 100644 (file)
index 0000000..ec952fc
--- /dev/null
@@ -0,0 +1,41 @@
+/*-
+ * Copyright (c) 2003, 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <asn_SEQUENCE_OF.h>
+
+typedef A_SEQUENCE_OF(void) asn_sequence;
+
+void
+asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free) {
+       asn_sequence *as = (asn_sequence *)asn_sequence_of_x;
+
+       if(as) {
+               void *ptr;
+               int n;
+
+               if(number < 0 || number >= as->count)
+                       return; /* Nothing to delete */
+
+               if(_do_free && as->free) {
+                       ptr = as->array[number];
+               } else {
+                       ptr = 0;
+               }
+
+               /*
+                * Shift all elements to the left to hide the gap.
+                */
+               --as->count;
+               for(n = number; n < as->count; n++)
+                       as->array[n] = as->array[n+1];
+
+               /*
+                * Invoke the third-party function only when the state
+                * of the parent structure is consistent.
+                */
+               if(ptr) as->free(ptr);
+       }
+}
+
diff --git a/e2ap/lib/asn_SET_OF.c b/e2ap/lib/asn_SET_OF.c
new file mode 100644 (file)
index 0000000..944f2cb
--- /dev/null
@@ -0,0 +1,88 @@
+/*-
+ * Copyright (c) 2003, 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <asn_SET_OF.h>
+#include <errno.h>
+
+/*
+ * Add another element into the set.
+ */
+int
+asn_set_add(void *asn_set_of_x, void *ptr) {
+       asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x);
+
+       if(as == 0 || ptr == 0) {
+               errno = EINVAL;         /* Invalid arguments */
+               return -1;
+       }
+
+       /*
+        * Make sure there's enough space to insert an element.
+        */
+       if(as->count == as->size) {
+               int _newsize = as->size ? (as->size << 1) : 4;
+               void *_new_arr;
+               _new_arr = REALLOC(as->array, _newsize * sizeof(as->array[0]));
+               if(_new_arr) {
+                       as->array = (void **)_new_arr;
+                       as->size = _newsize;
+               } else {
+                       /* ENOMEM */
+                       return -1;
+               }
+       }
+
+       as->array[as->count++] = ptr;
+
+       return 0;
+}
+
+void
+asn_set_del(void *asn_set_of_x, int number, int _do_free) {
+       asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x);
+
+       if(as) {
+               void *ptr;
+               if(number < 0 || number >= as->count)
+                       return;
+
+               if(_do_free && as->free) {
+                       ptr = as->array[number];
+               } else {
+                       ptr = 0;
+               }
+
+               as->array[number] = as->array[--as->count];
+
+               /*
+                * Invoke the third-party function only when the state
+                * of the parent structure is consistent.
+                */
+               if(ptr) as->free(ptr);
+       }
+}
+
+/*
+ * Free the contents of the set, do not free the set itself.
+ */
+void
+asn_set_empty(void *asn_set_of_x) {
+       asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x);
+
+       if(as) {
+               if(as->array) {
+                       if(as->free) {
+                               while(as->count--)
+                                       as->free(as->array[as->count]);
+                       }
+                       FREEMEM(as->array);
+                       as->array = 0;
+               }
+               as->count = 0;
+               as->size = 0;
+       }
+
+}
+
diff --git a/e2ap/lib/asn_application.c b/e2ap/lib/asn_application.c
new file mode 100644 (file)
index 0000000..2bff460
--- /dev/null
@@ -0,0 +1,481 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <asn_application.h>
+#include <errno.h>
+
+static asn_enc_rval_t asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx,
+                                          enum asn_transfer_syntax syntax,
+                                          const asn_TYPE_descriptor_t *td,
+                                          const void *sptr,
+                                          asn_app_consume_bytes_f *callback,
+                                          void *callback_key);
+
+
+struct callback_count_bytes_key {
+    asn_app_consume_bytes_f *callback;
+    void *callback_key;
+    size_t computed_size;
+};
+
+/*
+ * Encoder which just counts bytes that come through it.
+ */
+static int
+callback_count_bytes_cb(const void *data, size_t size, void *keyp) {
+    struct callback_count_bytes_key *key = keyp;
+    int ret;
+
+    ret = key->callback(data, size, key->callback_key);
+    if(ret >= 0) {
+        key->computed_size += size;
+    }
+
+    return ret;
+}
+
+struct overrun_encoder_key {
+    void *buffer;
+    size_t buffer_size;
+    size_t computed_size;
+};
+
+struct dynamic_encoder_key {
+    void *buffer;
+    size_t buffer_size;
+    size_t computed_size;
+};
+
+struct callback_failure_catch_key {
+    asn_app_consume_bytes_f *callback;
+    void *callback_key;
+    int callback_failed;
+};
+
+/*
+ * Encoder which doesn't stop counting bytes
+ * even if it reaches the end of the buffer.
+ */
+static int
+overrun_encoder_cb(const void *data, size_t size, void *keyp) {
+    struct overrun_encoder_key *key = keyp;
+
+    if(key->computed_size + size > key->buffer_size) {
+        /*
+         * Avoid accident on the next call:
+         * stop adding bytes to the buffer.
+         */
+        key->buffer_size = 0;
+    } else {
+        memcpy((char *)key->buffer + key->computed_size, data, size);
+    }
+    key->computed_size += size;
+
+    return 0;
+}
+
+/*
+ * Encoder which dynamically allocates output, and continues
+ * to count even if allocation failed.
+ */
+static int
+dynamic_encoder_cb(const void *data, size_t size, void *keyp) {
+    struct dynamic_encoder_key *key = keyp;
+
+    if(key->buffer) {
+        if(key->computed_size + size >= key->buffer_size) {
+            void *p;
+            size_t new_size = key->buffer_size;
+
+            do {
+                new_size *= 2;
+            } while(new_size <= key->computed_size + size);
+
+            p = REALLOC(key->buffer, new_size);
+            if(p) {
+                key->buffer = p;
+                key->buffer_size = new_size;
+            } else {
+                FREEMEM(key->buffer);
+                key->buffer = 0;
+                key->buffer_size = 0;
+                key->computed_size += size;
+                return 0;
+            }
+        }
+        memcpy((char *)key->buffer + key->computed_size, data, size);
+    }
+
+    key->computed_size += size;
+
+    return 0;
+}
+
+/*
+ * Encoder which help convert the application level encoder failure into EIO.
+ */
+static int
+callback_failure_catch_cb(const void *data, size_t size, void *keyp) {
+    struct callback_failure_catch_key *key = keyp;
+    int ret;
+
+    ret = key->callback(data, size, key->callback_key);
+    if(ret < 0) {
+        key->callback_failed = 1;
+    }
+
+    return ret;
+}
+
+asn_enc_rval_t
+asn_encode(const asn_codec_ctx_t *opt_codec_ctx,
+           enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td,
+           const void *sptr, asn_app_consume_bytes_f *callback, void *callback_key) {
+    struct callback_failure_catch_key cb_key;
+    asn_enc_rval_t er = {0,0,0};
+
+    if(!callback) {
+        errno = EINVAL;
+        ASN__ENCODE_FAILED;
+    }
+
+    cb_key.callback = callback;
+    cb_key.callback_key = callback_key;
+    cb_key.callback_failed = 0;
+
+    er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr,
+                             callback_failure_catch_cb, &cb_key);
+    if(cb_key.callback_failed) {
+        assert(er.encoded == -1);
+        assert(errno == EBADF);
+        errno = EIO;
+    }
+
+    return er;
+}
+
+asn_enc_rval_t
+asn_encode_to_buffer(const asn_codec_ctx_t *opt_codec_ctx,
+                     enum asn_transfer_syntax syntax,
+                     const asn_TYPE_descriptor_t *td, const void *sptr,
+                     void *buffer, size_t buffer_size) {
+    struct overrun_encoder_key buf_key;
+    asn_enc_rval_t er = {0,0,0};
+
+    if(buffer_size > 0 && !buffer) {
+        errno = EINVAL;
+        ASN__ENCODE_FAILED;
+    }
+
+    buf_key.buffer = buffer;
+    buf_key.buffer_size = buffer_size;
+    buf_key.computed_size = 0;
+
+    er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr,
+                             overrun_encoder_cb, &buf_key);
+
+    if(er.encoded >= 0 && (size_t)er.encoded != buf_key.computed_size) {
+        ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE
+                  " yet produced %" ASN_PRI_SIZE " bytes",
+                  er.encoded, buf_key.computed_size);
+        assert(er.encoded < 0 || (size_t)er.encoded == buf_key.computed_size);
+    }
+
+    return er;
+}
+
+asn_encode_to_new_buffer_result_t
+asn_encode_to_new_buffer(const asn_codec_ctx_t *opt_codec_ctx,
+                         enum asn_transfer_syntax syntax,
+                         const asn_TYPE_descriptor_t *td, const void *sptr) {
+    struct dynamic_encoder_key buf_key;
+    asn_encode_to_new_buffer_result_t res;
+
+    buf_key.buffer_size = 16;
+    buf_key.buffer = MALLOC(buf_key.buffer_size);
+    buf_key.computed_size = 0;
+
+    res.result = asn_encode_internal(opt_codec_ctx, syntax, td, sptr,
+                                     dynamic_encoder_cb, &buf_key);
+
+    if(res.result.encoded >= 0
+       && (size_t)res.result.encoded != buf_key.computed_size) {
+        ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE
+                  " yet produced %" ASN_PRI_SIZE " bytes",
+                  res.result.encoded, buf_key.computed_size);
+        assert(res.result.encoded < 0
+               || (size_t)res.result.encoded == buf_key.computed_size);
+    }
+
+    res.buffer = buf_key.buffer;
+
+    /* 0-terminate just in case. */
+    if(res.buffer) {
+        assert(buf_key.computed_size < buf_key.buffer_size);
+        ((char *)res.buffer)[buf_key.computed_size] = '\0';
+    }
+
+    return res;
+}
+
+static asn_enc_rval_t
+asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx,
+                    enum asn_transfer_syntax syntax,
+                    const asn_TYPE_descriptor_t *td, const void *sptr,
+                    asn_app_consume_bytes_f *callback, void *callback_key) {
+    asn_enc_rval_t er = {0,0,0};
+    enum xer_encoder_flags_e xer_flags = XER_F_CANONICAL;
+
+    (void)opt_codec_ctx; /* Parameters are not checked on encode yet. */
+
+    if(!td || !sptr) {
+        errno = EINVAL;
+        ASN__ENCODE_FAILED;
+    }
+
+    switch(syntax) {
+    case ATS_NONSTANDARD_PLAINTEXT:
+        if(td->op->print_struct) {
+            struct callback_count_bytes_key cb_key;
+            cb_key.callback = callback;
+            cb_key.callback_key = callback_key;
+            cb_key.computed_size = 0;
+            if(td->op->print_struct(td, sptr, 1, callback_count_bytes_cb,
+                                    &cb_key)
+                   < 0
+               || callback_count_bytes_cb("\n", 1, &cb_key) < 0) {
+                errno = EBADF; /* Structure has incorrect form. */
+                er.encoded = -1;
+                er.failed_type = td;
+                er.structure_ptr = sptr;
+            } else {
+                er.encoded = cb_key.computed_size;
+                er.failed_type = 0;
+                er.structure_ptr = 0;
+            }
+        } else {
+            errno = ENOENT; /* Transfer syntax is not defined for this type. */
+            ASN__ENCODE_FAILED;
+        }
+        break;
+
+    case ATS_RANDOM:
+        errno = ENOENT; /* Randomization doesn't make sense on output. */
+        ASN__ENCODE_FAILED;
+
+    case ATS_BER:
+        /* BER is a superset of DER. */
+        /* Fall through. */
+    case ATS_DER:
+        if(td->op->der_encoder) {
+            er = der_encode(td, sptr, callback, callback_key);
+            if(er.encoded == -1) {
+                if(er.failed_type && er.failed_type->op->der_encoder) {
+                    errno = EBADF;  /* Structure has incorrect form. */
+                } else {
+                    errno = ENOENT; /* DER is not defined for this type. */
+                }
+            }
+        } else {
+            errno = ENOENT; /* Transfer syntax is not defined for this type. */
+            ASN__ENCODE_FAILED;
+        }
+        break;
+    case ATS_CER:
+        errno = ENOENT; /* Transfer syntax is not defined for any type. */
+        ASN__ENCODE_FAILED;
+
+#ifdef  ASN_DISABLE_OER_SUPPORT
+    case ATS_BASIC_OER:
+    case ATS_CANONICAL_OER:
+        errno = ENOENT; /* PER is not defined. */
+        ASN__ENCODE_FAILED;
+        break;
+#else /* ASN_DISABLE_OER_SUPPORT */
+    case ATS_BASIC_OER:
+        /* CANONICAL-OER is a superset of BASIC-OER. */
+        /* Fall through. */
+    case ATS_CANONICAL_OER:
+        if(td->op->oer_encoder) {
+            er = oer_encode(td, sptr, callback, callback_key);
+            if(er.encoded == -1) {
+                if(er.failed_type && er.failed_type->op->oer_encoder) {
+                    errno = EBADF;  /* Structure has incorrect form. */
+                } else {
+                    errno = ENOENT; /* OER is not defined for this type. */
+                }
+            }
+        } else {
+            errno = ENOENT; /* Transfer syntax is not defined for this type. */
+            ASN__ENCODE_FAILED;
+        }
+        break;
+#endif /* ASN_DISABLE_OER_SUPPORT */
+
+#ifdef  ASN_DISABLE_PER_SUPPORT
+    case ATS_UNALIGNED_BASIC_PER:
+    case ATS_UNALIGNED_CANONICAL_PER:
+    case ATS_ALIGNED_BASIC_PER:
+    case ATS_ALIGNED_CANONICAL_PER:
+        errno = ENOENT; /* PER is not defined. */
+        ASN__ENCODE_FAILED;
+        break;
+#else /* ASN_DISABLE_PER_SUPPORT */
+    case ATS_UNALIGNED_BASIC_PER:
+        /* CANONICAL-UPER is a superset of BASIC-UPER. */
+        /* Fall through. */
+    case ATS_UNALIGNED_CANONICAL_PER:
+        if(td->op->uper_encoder) {
+            er = uper_encode(td, 0, sptr, callback, callback_key);
+            if(er.encoded == -1) {
+                if(er.failed_type && er.failed_type->op->uper_encoder) {
+                    errno = EBADF;  /* Structure has incorrect form. */
+                } else {
+                    errno = ENOENT; /* UPER is not defined for this type. */
+                }
+            } else {
+                ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded);
+                if(er.encoded == 0) {
+                    /* Enforce "Complete Encoding" of X.691 #11.1 */
+                    if(callback("\0", 1, callback_key) < 0) {
+                        errno = EBADF;
+                        ASN__ENCODE_FAILED;
+                    }
+                    er.encoded = 8; /* Exactly 8 zero bits is added. */
+                }
+                /* Convert bits into bytes */
+                er.encoded = (er.encoded + 7) >> 3;
+            }
+        } else {
+            errno = ENOENT; /* Transfer syntax is not defined for this type. */
+            ASN__ENCODE_FAILED;
+        }
+        break;
+    case ATS_ALIGNED_BASIC_PER:
+        /* CANONICAL-APER is a superset of BASIC-APER. */
+        /* Fall through. */
+    case ATS_ALIGNED_CANONICAL_PER:
+        if(td->op->aper_encoder) {
+            er = aper_encode(td, 0, sptr, callback, callback_key);
+            if(er.encoded == -1) {
+                if(er.failed_type && er.failed_type->op->aper_encoder) {
+                    errno = EBADF;  /* Structure has incorrect form. */
+                } else {
+                    errno = ENOENT; /* APER is not defined for this type. */
+                }
+            } else {
+                ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded);
+                if(er.encoded == 0) {
+                    /* Enforce "Complete Encoding" of X.691 #11.1 */
+                    if(callback("\0", 1, callback_key) < 0) {
+                        errno = EBADF;
+                        ASN__ENCODE_FAILED;
+                    }
+                    er.encoded = 8; /* Exactly 8 zero bits is added. */
+                }
+                /* Convert bits into bytes */
+                er.encoded = (er.encoded + 7) >> 3;
+            }
+        } else {
+            errno = ENOENT; /* Transfer syntax is not defined for this type. */
+            ASN__ENCODE_FAILED;
+        }
+        break;
+#endif  /* ASN_DISABLE_PER_SUPPORT */
+
+    case ATS_BASIC_XER:
+        /* CANONICAL-XER is a superset of BASIC-XER. */
+        xer_flags &= ~XER_F_CANONICAL;
+        xer_flags |= XER_F_BASIC;
+        /* Fall through. */
+    case ATS_CANONICAL_XER:
+        if(td->op->xer_encoder) {
+            er = xer_encode(td, sptr, xer_flags, callback, callback_key);
+            if(er.encoded == -1) {
+                if(er.failed_type && er.failed_type->op->xer_encoder) {
+                    errno = EBADF;  /* Structure has incorrect form. */
+                } else {
+                    errno = ENOENT; /* XER is not defined for this type. */
+                }
+            }
+        } else {
+            errno = ENOENT; /* Transfer syntax is not defined for this type. */
+            ASN__ENCODE_FAILED;
+        }
+        break;
+
+    default:
+        errno = ENOENT;
+        ASN__ENCODE_FAILED;
+    }
+
+    return er;
+}
+
+asn_dec_rval_t
+asn_decode(const asn_codec_ctx_t *opt_codec_ctx,
+           enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td,
+           void **sptr, const void *buffer, size_t size) {
+    if(!td || !td->op || !sptr || (size && !buffer)) {
+        ASN__DECODE_FAILED;
+    }
+
+    switch(syntax) {
+    case ATS_CER:
+    case ATS_NONSTANDARD_PLAINTEXT:
+    default:
+        errno = ENOENT;
+        ASN__DECODE_FAILED;
+
+    case ATS_RANDOM:
+        if(!td->op->random_fill) {
+            ASN__DECODE_FAILED;
+        } else {
+            if(asn_random_fill(td, sptr, 16000) == 0) {
+                asn_dec_rval_t ret = {RC_OK, 0};
+                return ret;
+            } else {
+                ASN__DECODE_FAILED;
+            }
+        }
+        break;
+
+    case ATS_DER:
+    case ATS_BER:
+        return ber_decode(opt_codec_ctx, td, sptr, buffer, size);
+
+    case ATS_BASIC_OER:
+    case ATS_CANONICAL_OER:
+#ifdef  ASN_DISABLE_OER_SUPPORT
+        errno = ENOENT;
+        ASN__DECODE_FAILED;
+#else
+        return oer_decode(opt_codec_ctx, td, sptr, buffer, size);
+#endif
+
+    case ATS_UNALIGNED_BASIC_PER:
+    case ATS_UNALIGNED_CANONICAL_PER:
+#ifdef  ASN_DISABLE_PER_SUPPORT
+        errno = ENOENT;
+        ASN__DECODE_FAILED;
+#else
+        return uper_decode_complete(opt_codec_ctx, td, sptr, buffer, size);
+#endif
+
+    case ATS_ALIGNED_BASIC_PER:
+    case ATS_ALIGNED_CANONICAL_PER:
+#ifdef  ASN_DISABLE_PER_SUPPORT
+        errno = ENOENT;
+        ASN__DECODE_FAILED;
+#else
+        return aper_decode_complete(opt_codec_ctx, td, sptr, buffer, size);
+#endif
+
+    case ATS_BASIC_XER:
+    case ATS_CANONICAL_XER:
+        return xer_decode(opt_codec_ctx, td, sptr, buffer, size);
+    }
+}
+
diff --git a/e2ap/lib/asn_bit_data.c b/e2ap/lib/asn_bit_data.c
new file mode 100644 (file)
index 0000000..fe4b89b
--- /dev/null
@@ -0,0 +1,333 @@
+/*
+ * Copyright (c) 2005-2017 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_system.h>
+#include <asn_internal.h>
+#include <asn_bit_data.h>
+
+/*
+ * Create a contiguous non-refillable bit data structure.
+ * Can be freed by FREEMEM().
+ */
+asn_bit_data_t *
+asn_bit_data_new_contiguous(const void *data, size_t size_bits) {
+    size_t size_bytes = (size_bits + 7) / 8;
+    asn_bit_data_t *pd;
+    uint8_t *bytes;
+
+    /* Get the extensions map */
+    pd = CALLOC(1, sizeof(*pd) + size_bytes + 1);
+    if(!pd) {
+        return NULL;
+    }
+    bytes = (void *)(((char *)pd) + sizeof(*pd));
+    memcpy(bytes, data, size_bytes);
+    bytes[size_bytes] = 0;
+    pd->buffer = bytes;
+    pd->nboff = 0;
+    pd->nbits = size_bits;
+
+    return pd;
+}
+
+
+char *
+asn_bit_data_string(asn_bit_data_t *pd) {
+       static char buf[2][32];
+       static int n;
+       n = (n+1) % 2;
+    snprintf(buf[n], sizeof(buf[n]),
+             "{m=%" ASN_PRI_SIZE " span %" ASN_PRI_SIZE "[%" ASN_PRI_SIZE
+             "..%" ASN_PRI_SIZE "] (%" ASN_PRI_SIZE ")}",
+             pd->moved, ((uintptr_t)(pd->buffer) & 0xf), pd->nboff, pd->nbits,
+             pd->nbits - pd->nboff);
+    return buf[n];
+}
+
+void
+asn_get_undo(asn_bit_data_t *pd, int nbits) {
+       if((ssize_t)pd->nboff < nbits) {
+               assert((ssize_t)pd->nboff < nbits);
+       } else {
+               pd->nboff -= nbits;
+               pd->moved -= nbits;
+       }
+}
+
+/*
+ * Extract a small number of bits (<= 31) from the specified PER data pointer.
+ */
+int32_t
+asn_get_few_bits(asn_bit_data_t *pd, int nbits) {
+       size_t off;     /* Next after last bit offset */
+       ssize_t nleft;  /* Number of bits left in this stream */
+       uint32_t accum;
+       const uint8_t *buf;
+
+       if(nbits < 0)
+               return -1;
+
+       nleft = pd->nbits - pd->nboff;
+       if(nbits > nleft) {
+               int32_t tailv, vhead;
+               if(!pd->refill || nbits > 31) return -1;
+               /* Accumulate unused bytes before refill */
+               ASN_DEBUG("Obtain the rest %d bits (want %d)",
+                       (int)nleft, (int)nbits);
+               tailv = asn_get_few_bits(pd, nleft);
+               if(tailv < 0) return -1;
+               /* Refill (replace pd contents with new data) */
+               if(pd->refill(pd))
+                       return -1;
+               nbits -= nleft;
+               vhead = asn_get_few_bits(pd, nbits);
+               /* Combine the rest of previous pd with the head of new one */
+               tailv = (tailv << nbits) | vhead;  /* Could == -1 */
+               return tailv;
+       }
+
+       /*
+        * Normalize position indicator.
+        */
+       if(pd->nboff >= 8) {
+               pd->buffer += (pd->nboff >> 3);
+               pd->nbits  -= (pd->nboff & ~0x07);
+               pd->nboff  &= 0x07;
+       }
+       pd->moved += nbits;
+       pd->nboff += nbits;
+       off = pd->nboff;
+       buf = pd->buffer;
+
+       /*
+        * Extract specified number of bits.
+        */
+       if(off <= 8)
+               accum = nbits ? (buf[0]) >> (8 - off) : 0;
+       else if(off <= 16)
+               accum = ((buf[0] << 8) + buf[1]) >> (16 - off);
+       else if(off <= 24)
+               accum = ((buf[0] << 16) + (buf[1] << 8) + buf[2]) >> (24 - off);
+       else if(off <= 31)
+               accum = (((uint32_t)buf[0] << 24) + (buf[1] << 16)
+                       + (buf[2] << 8) + (buf[3])) >> (32 - off);
+       else if(nbits <= 31) {
+               asn_bit_data_t tpd = *pd;
+               /* Here are we with our 31-bits limit plus 1..7 bits offset. */
+               asn_get_undo(&tpd, nbits);
+               /* The number of available bits in the stream allow
+                * for the following operations to take place without
+                * invoking the ->refill() function */
+               accum  = asn_get_few_bits(&tpd, nbits - 24) << 24;
+               accum |= asn_get_few_bits(&tpd, 24);
+       } else {
+               asn_get_undo(pd, nbits);
+               return -1;
+       }
+
+       accum &= (((uint32_t)1 << nbits) - 1);
+
+       ASN_DEBUG("  [PER got %2d<=%2d bits => span %d %+ld[%d..%d]:%02x (%d) => 0x%x]",
+               (int)nbits, (int)nleft,
+               (int)pd->moved,
+               (((long)pd->buffer) & 0xf),
+               (int)pd->nboff, (int)pd->nbits,
+               ((pd->buffer != NULL)?pd->buffer[0]:0),
+               (int)(pd->nbits - pd->nboff),
+               (int)accum);
+
+       return accum;
+}
+
+/*
+ * Extract a large number of bits from the specified PER data pointer.
+ */
+int
+asn_get_many_bits(asn_bit_data_t *pd, uint8_t *dst, int alright, int nbits) {
+       int32_t value;
+
+       if(alright && (nbits & 7)) {
+               /* Perform right alignment of a first few bits */
+               value = asn_get_few_bits(pd, nbits & 0x07);
+               if(value < 0) return -1;
+               *dst++ = value; /* value is already right-aligned */
+               nbits &= ~7;
+       }
+
+       while(nbits) {
+               if(nbits >= 24) {
+                       value = asn_get_few_bits(pd, 24);
+                       if(value < 0) return -1;
+                       *(dst++) = value >> 16;
+                       *(dst++) = value >> 8;
+                       *(dst++) = value;
+                       nbits -= 24;
+               } else {
+                       value = asn_get_few_bits(pd, nbits);
+                       if(value < 0) return -1;
+                       if(nbits & 7) { /* implies left alignment */
+                               value <<= 8 - (nbits & 7),
+                               nbits += 8 - (nbits & 7);
+                               if(nbits > 24)
+                                       *dst++ = value >> 24;
+                       }
+                       if(nbits > 16)
+                               *dst++ = value >> 16;
+                       if(nbits > 8)
+                               *dst++ = value >> 8;
+                       *dst++ = value;
+                       break;
+               }
+       }
+
+       return 0;
+}
+
+/*
+ * Put a small number of bits (<= 31).
+ */
+int
+asn_put_few_bits(asn_bit_outp_t *po, uint32_t bits, int obits) {
+       size_t off;     /* Next after last bit offset */
+       size_t omsk;    /* Existing last byte meaningful bits mask */
+       uint8_t *buf;
+
+       if(obits <= 0 || obits >= 32) return obits ? -1 : 0;
+
+       ASN_DEBUG("[PER put %d bits %x to %p+%d bits]",
+                       obits, (int)bits, (void *)po->buffer, (int)po->nboff);
+
+       /*
+        * Normalize position indicator.
+        */
+       if(po->nboff >= 8) {
+               po->buffer += (po->nboff >> 3);
+               po->nbits  -= (po->nboff & ~0x07);
+               po->nboff  &= 0x07;
+       }
+
+       /*
+        * Flush whole-bytes output, if necessary.
+        */
+       if(po->nboff + obits > po->nbits) {
+               size_t complete_bytes;
+               if(!po->buffer) po->buffer = po->tmpspace;
+               complete_bytes = (po->buffer - po->tmpspace);
+               ASN_DEBUG("[PER output %ld complete + %ld]",
+                       (long)complete_bytes, (long)po->flushed_bytes);
+               if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0)
+                       return -1;
+               if(po->nboff)
+                       po->tmpspace[0] = po->buffer[0];
+               po->buffer = po->tmpspace;
+               po->nbits = 8 * sizeof(po->tmpspace);
+               po->flushed_bytes += complete_bytes;
+       }
+
+       /*
+        * Now, due to sizeof(tmpspace), we are guaranteed large enough space.
+        */
+       buf = po->buffer;
+       omsk = ~((1 << (8 - po->nboff)) - 1);
+       off = (po->nboff + obits);
+
+       /* Clear data of debris before meaningful bits */
+       bits &= (((uint32_t)1 << obits) - 1);
+
+       ASN_DEBUG("[PER out %d %u/%x (t=%d,o=%d) %x&%x=%x]", obits,
+               (int)bits, (int)bits,
+               (int)po->nboff, (int)off,
+               buf[0], (int)(omsk&0xff),
+               (int)(buf[0] & omsk));
+
+       if(off <= 8)    /* Completely within 1 byte */
+               po->nboff = off,
+               bits <<= (8 - off),
+               buf[0] = (buf[0] & omsk) | bits;
+       else if(off <= 16)
+               po->nboff = off,
+               bits <<= (16 - off),
+               buf[0] = (buf[0] & omsk) | (bits >> 8),
+               buf[1] = bits;
+       else if(off <= 24)
+               po->nboff = off,
+               bits <<= (24 - off),
+               buf[0] = (buf[0] & omsk) | (bits >> 16),
+               buf[1] = bits >> 8,
+               buf[2] = bits;
+       else if(off <= 31)
+               po->nboff = off,
+               bits <<= (32 - off),
+               buf[0] = (buf[0] & omsk) | (bits >> 24),
+               buf[1] = bits >> 16,
+               buf[2] = bits >> 8,
+               buf[3] = bits;
+       else {
+               if(asn_put_few_bits(po, bits >> (obits - 24), 24)) return -1;
+               if(asn_put_few_bits(po, bits, obits - 24)) return -1;
+       }
+
+       ASN_DEBUG("[PER out %u/%x => %02x buf+%ld]",
+               (int)bits, (int)bits, buf[0],
+               (long)(po->buffer - po->tmpspace));
+
+       return 0;
+}
+
+
+/*
+ * Output a large number of bits.
+ */
+int
+asn_put_many_bits(asn_bit_outp_t *po, const uint8_t *src, int nbits) {
+
+       while(nbits) {
+               uint32_t value;
+
+               if(nbits >= 24) {
+                       value = (src[0] << 16) | (src[1] << 8) | src[2];
+                       src += 3;
+                       nbits -= 24;
+                       if(asn_put_few_bits(po, value, 24))
+                               return -1;
+               } else {
+                       value = src[0];
+                       if(nbits > 8)
+                               value = (value << 8) | src[1];
+                       if(nbits > 16)
+                               value = (value << 8) | src[2];
+                       if(nbits & 0x07)
+                               value >>= (8 - (nbits & 0x07));
+                       if(asn_put_few_bits(po, value, nbits))
+                               return -1;
+                       break;
+               }
+       }
+
+       return 0;
+}
+
+
+int
+asn_put_aligned_flush(asn_bit_outp_t *po) {
+    uint32_t unused_bits = (0x7 & (8 - (po->nboff & 0x07)));
+    size_t complete_bytes =
+        (po->buffer ? po->buffer - po->tmpspace : 0) + ((po->nboff + 7) >> 3);
+
+    if(unused_bits) {
+        po->buffer[po->nboff >> 3] &= ~0u << unused_bits;
+    }
+
+    if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) {
+        return -1;
+    } else {
+        po->buffer = po->tmpspace;
+        po->nboff = 0;
+        po->nbits = 8 * sizeof(po->tmpspace);
+        po->flushed_bytes += complete_bytes;
+        return 0;
+    }
+}
+
diff --git a/e2ap/lib/asn_codecs_prim.c b/e2ap/lib/asn_codecs_prim.c
new file mode 100644 (file)
index 0000000..fc24247
--- /dev/null
@@ -0,0 +1,317 @@
+/*-
+ * Copyright (c) 2003, 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <asn_codecs_prim.h>
+#include <errno.h>
+
+/*
+ * Decode an always-primitive type.
+ */
+asn_dec_rval_t
+ber_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx,
+                     const asn_TYPE_descriptor_t *td, void **sptr,
+                     const void *buf_ptr, size_t size, int tag_mode) {
+    ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr;
+       asn_dec_rval_t rval;
+       ber_tlv_len_t length = 0; /* =0 to avoid [incorrect] warning. */
+
+       /*
+        * If the structure is not there, allocate it.
+        */
+       if(st == NULL) {
+               st = (ASN__PRIMITIVE_TYPE_t *)CALLOC(1, sizeof(*st));
+               if(st == NULL) ASN__DECODE_FAILED;
+               *sptr = (void *)st;
+       }
+
+       ASN_DEBUG("Decoding %s as plain primitive (tm=%d)",
+               td->name, tag_mode);
+
+       /*
+        * Check tags and extract value length.
+        */
+       rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size,
+                       tag_mode, 0, &length, 0);
+       if(rval.code != RC_OK)
+               return rval;
+
+       ASN_DEBUG("%s length is %d bytes", td->name, (int)length);
+
+       /*
+        * Make sure we have this length.
+        */
+       buf_ptr = ((const char *)buf_ptr) + rval.consumed;
+       size -= rval.consumed;
+       if(length > (ber_tlv_len_t)size) {
+               rval.code = RC_WMORE;
+               rval.consumed = 0;
+               return rval;
+       }
+
+       st->size = (int)length;
+       /* The following better be optimized away. */
+       if(sizeof(st->size) != sizeof(length)
+                       && (ber_tlv_len_t)st->size != length) {
+               st->size = 0;
+               ASN__DECODE_FAILED;
+       }
+
+       st->buf = (uint8_t *)MALLOC(length + 1);
+       if(!st->buf) {
+               st->size = 0;
+               ASN__DECODE_FAILED;
+       }
+
+       memcpy(st->buf, buf_ptr, length);
+       st->buf[length] = '\0';         /* Just in case */
+
+       rval.code = RC_OK;
+       rval.consumed += length;
+
+       ASN_DEBUG("Took %ld/%ld bytes to encode %s",
+               (long)rval.consumed,
+               (long)length, td->name);
+
+       return rval;
+}
+
+/*
+ * Encode an always-primitive type using DER.
+ */
+asn_enc_rval_t
+der_encode_primitive(const asn_TYPE_descriptor_t *td, const void *sptr,
+                     int tag_mode, ber_tlv_tag_t tag,
+                     asn_app_consume_bytes_f *cb, void *app_key) {
+       asn_enc_rval_t erval = {0,0,0};
+       const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr;
+
+       ASN_DEBUG("%s %s as a primitive type (tm=%d)",
+               cb?"Encoding":"Estimating", td->name, tag_mode);
+
+       erval.encoded = der_write_tags(td, st->size, tag_mode, 0, tag,
+               cb, app_key);
+       ASN_DEBUG("%s wrote tags %d", td->name, (int)erval.encoded);
+       if(erval.encoded == -1) {
+               erval.failed_type = td;
+               erval.structure_ptr = sptr;
+               return erval;
+       }
+
+       if(cb && st->buf) {
+               if(cb(st->buf, st->size, app_key) < 0) {
+                       erval.encoded = -1;
+                       erval.failed_type = td;
+                       erval.structure_ptr = sptr;
+                       return erval;
+               }
+       } else {
+               assert(st->buf || st->size == 0);
+       }
+
+       erval.encoded += st->size;
+       ASN__ENCODED_OK(erval);
+}
+
+void
+ASN__PRIMITIVE_TYPE_free(const asn_TYPE_descriptor_t *td, void *sptr,
+                         enum asn_struct_free_method method) {
+    ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)sptr;
+
+       if(!td || !sptr)
+               return;
+
+       ASN_DEBUG("Freeing %s as a primitive type", td->name);
+
+       if(st->buf)
+               FREEMEM(st->buf);
+
+    switch(method) {
+    case ASFM_FREE_EVERYTHING:
+        FREEMEM(sptr);
+        break;
+    case ASFM_FREE_UNDERLYING:
+        break;
+    case ASFM_FREE_UNDERLYING_AND_RESET:
+        memset(sptr, 0, sizeof(ASN__PRIMITIVE_TYPE_t));
+        break;
+    }
+}
+
+
+/*
+ * Local internal type passed around as an argument.
+ */
+struct xdp_arg_s {
+    const asn_TYPE_descriptor_t *type_descriptor;
+    void *struct_key;
+       xer_primitive_body_decoder_f *prim_body_decoder;
+       int decoded_something;
+       int want_more;
+};
+
+/*
+ * Since some kinds of primitive values can be encoded using value-specific
+ * tags (<MINUS-INFINITY>, <enum-element>, etc), the primitive decoder must
+ * be supplied with such tags to parse them as needed.
+ */
+static int
+xer_decode__unexpected_tag(void *key, const void *chunk_buf, size_t chunk_size) {
+       struct xdp_arg_s *arg = (struct xdp_arg_s *)key;
+       enum xer_pbd_rval bret;
+
+       /*
+        * The chunk_buf is guaranteed to start at '<'.
+        */
+       assert(chunk_size && ((const char *)chunk_buf)[0] == 0x3c);
+
+       /*
+        * Decoding was performed once already. Prohibit doing it again.
+        */
+       if(arg->decoded_something)
+               return -1;
+
+       bret = arg->prim_body_decoder(arg->type_descriptor,
+               arg->struct_key, chunk_buf, chunk_size);
+       switch(bret) {
+       case XPBD_SYSTEM_FAILURE:
+       case XPBD_DECODER_LIMIT:
+       case XPBD_BROKEN_ENCODING:
+               break;
+       case XPBD_BODY_CONSUMED:
+               /* Tag decoded successfully */
+               arg->decoded_something = 1;
+               /* Fall through */
+       case XPBD_NOT_BODY_IGNORE:      /* Safe to proceed further */
+               return 0;
+       }
+
+       return -1;
+}
+
+static ssize_t
+xer_decode__primitive_body(void *key, const void *chunk_buf, size_t chunk_size, int have_more) {
+       struct xdp_arg_s *arg = (struct xdp_arg_s *)key;
+       enum xer_pbd_rval bret;
+       size_t lead_wsp_size;
+
+       if(arg->decoded_something) {
+               if(xer_whitespace_span(chunk_buf, chunk_size) == chunk_size) {
+                       /*
+                        * Example:
+                        * "<INTEGER>123<!--/--> </INTEGER>"
+                        *                      ^- chunk_buf position.
+                        */
+                       return chunk_size;
+               }
+               /*
+                * Decoding was done once already. Prohibit doing it again.
+                */
+               return -1;
+       }
+
+       if(!have_more) {
+               /*
+                * If we've received something like "1", we can't really
+                * tell whether it is really `1` or `123`, until we know
+                * that there is no more data coming.
+                * The have_more argument will be set to 1 once something
+                * like this is available to the caller of this callback:
+                * "1<tag_start..."
+                */
+               arg->want_more = 1;
+               return -1;
+       }
+
+       lead_wsp_size = xer_whitespace_span(chunk_buf, chunk_size);
+       chunk_buf = (const char *)chunk_buf + lead_wsp_size;
+       chunk_size -= lead_wsp_size;
+
+       bret = arg->prim_body_decoder(arg->type_descriptor,
+               arg->struct_key, chunk_buf, chunk_size);
+       switch(bret) {
+       case XPBD_SYSTEM_FAILURE:
+       case XPBD_DECODER_LIMIT:
+       case XPBD_BROKEN_ENCODING:
+               break;
+       case XPBD_BODY_CONSUMED:
+               /* Tag decoded successfully */
+               arg->decoded_something = 1;
+               /* Fall through */
+       case XPBD_NOT_BODY_IGNORE:      /* Safe to proceed further */
+               return lead_wsp_size + chunk_size;
+       }
+
+       return -1;
+}
+
+
+asn_dec_rval_t
+xer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx,
+                     const asn_TYPE_descriptor_t *td, void **sptr,
+                     size_t struct_size, const char *opt_mname,
+                     const void *buf_ptr, size_t size,
+                     xer_primitive_body_decoder_f *prim_body_decoder) {
+    const char *xml_tag = opt_mname ? opt_mname : td->xml_tag;
+       asn_struct_ctx_t s_ctx;
+       struct xdp_arg_s s_arg;
+       asn_dec_rval_t rc;
+
+       /*
+        * Create the structure if does not exist.
+        */
+       if(!*sptr) {
+               *sptr = CALLOC(1, struct_size);
+               if(!*sptr) ASN__DECODE_FAILED;
+       }
+
+       memset(&s_ctx, 0, sizeof(s_ctx));
+       s_arg.type_descriptor = td;
+       s_arg.struct_key = *sptr;
+       s_arg.prim_body_decoder = prim_body_decoder;
+       s_arg.decoded_something = 0;
+       s_arg.want_more = 0;
+
+       rc = xer_decode_general(opt_codec_ctx, &s_ctx, &s_arg,
+               xml_tag, buf_ptr, size,
+               xer_decode__unexpected_tag, xer_decode__primitive_body);
+       switch(rc.code) {
+       case RC_OK:
+               if(!s_arg.decoded_something) {
+                       char ch;
+                       ASN_DEBUG("Primitive body is not recognized, "
+                               "supplying empty one");
+                       /*
+                        * Decoding opportunity has come and gone.
+                        * Where's the result?
+                        * Try to feed with empty body, see if it eats it.
+                        */
+                       if(prim_body_decoder(s_arg.type_descriptor,
+                               s_arg.struct_key, &ch, 0)
+                                       != XPBD_BODY_CONSUMED) {
+                               /*
+                                * This decoder does not like empty stuff.
+                                */
+                               ASN__DECODE_FAILED;
+                       }
+               }
+               break;
+       case RC_WMORE:
+               /*
+                * Redo the whole thing later.
+                * We don't have a context to save intermediate parsing state.
+                */
+               rc.consumed = 0;
+               break;
+       case RC_FAIL:
+               rc.consumed = 0;
+               if(s_arg.want_more)
+                       rc.code = RC_WMORE;
+               else
+                       ASN__DECODE_FAILED;
+               break;
+       }
+       return rc;
+}
+
diff --git a/e2ap/lib/asn_internal.c b/e2ap/lib/asn_internal.c
new file mode 100644 (file)
index 0000000..1aff95f
--- /dev/null
@@ -0,0 +1,48 @@
+#include <asn_internal.h>
+
+ssize_t
+asn__format_to_callback(int (*cb)(const void *, size_t, void *key), void *key,
+                        const char *fmt, ...) {
+    char scratch[64];
+    char *buf = scratch;
+    size_t buf_size = sizeof(scratch);
+    int wrote;
+    int cb_ret;
+
+    do {
+        va_list args;
+        va_start(args, fmt);
+
+        wrote = vsnprintf(buf, buf_size, fmt, args);
+        if(wrote < (ssize_t)buf_size) {
+            if(wrote < 0) {
+                if(buf != scratch) FREEMEM(buf);
+               va_end(args);
+                return -1;
+            }
+            break;
+        }
+
+        buf_size <<= 1;
+        if(buf == scratch) {
+            buf = MALLOC(buf_size);
+            if(!buf) return -1;
+        } else {
+            void *p = REALLOC(buf, buf_size);
+            if(!p) {
+                FREEMEM(buf);
+                return -1;
+            }
+            buf = p;
+        }
+    } while(1);
+
+    cb_ret = cb(buf, wrote, key);
+    if(buf != scratch) FREEMEM(buf);
+    if(cb_ret < 0) {
+        return -1;
+    }
+
+    return wrote;
+}
+
diff --git a/e2ap/lib/asn_random_fill.c b/e2ap/lib/asn_random_fill.c
new file mode 100644 (file)
index 0000000..819cf70
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <asn_random_fill.h>
+#include <constr_TYPE.h>
+
+int
+asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr,
+                size_t length) {
+
+    if(td && td->op->random_fill) {
+        asn_random_fill_result_t res =
+            td->op->random_fill(td, struct_ptr, 0, length);
+        return (res.code == ARFILL_OK) ? 0 : -1;
+    } else {
+        return -1;
+    }
+}
+
+static uintmax_t
+asn__intmax_range(intmax_t lb, intmax_t ub) {
+    assert(lb <= ub);
+    if((ub < 0) == (lb < 0)) {
+        return ub - lb;
+    } else if(lb < 0) {
+        return 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1));
+    } else {
+        assert(!"Unreachable");
+        return 0;
+    }
+}
+
+intmax_t
+asn_random_between(intmax_t lb, intmax_t rb) {
+    if(lb == rb) {
+        return lb;
+    } else {
+        const uintmax_t intmax_max = ((~(uintmax_t)0) >> 1);
+        uintmax_t range = asn__intmax_range(lb, rb);
+        uintmax_t value = 0;
+        uintmax_t got_entropy = 0;
+
+        assert(RAND_MAX > 0xffffff);    /* Seen 7ffffffd! */
+        assert(range < intmax_max);
+
+        for(; got_entropy < range;) {
+            got_entropy = (got_entropy << 24) | 0xffffff;
+            value = (value << 24) | (random() % 0xffffff);
+        }
+
+        return lb + (intmax_t)(value % (range + 1));
+    }
+}
diff --git a/e2ap/lib/ber_decoder.c b/e2ap/lib/ber_decoder.c
new file mode 100644 (file)
index 0000000..75d6016
--- /dev/null
@@ -0,0 +1,283 @@
+/*-
+ * Copyright (c) 2003, 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+
+#undef ADVANCE
+#define        ADVANCE(num_bytes)      do {                                    \
+               size_t num = num_bytes;                                 \
+               ptr = ((const char *)ptr) + num;                        \
+               size -= num;                                            \
+               consumed_myself += num;                                 \
+       } while(0)
+#undef RETURN
+#define        RETURN(_code)   do {                                            \
+               asn_dec_rval_t rval;                                    \
+               rval.code = _code;                                      \
+               if(opt_ctx) opt_ctx->step = step; /* Save context */    \
+               if(_code == RC_OK || opt_ctx)                           \
+                       rval.consumed = consumed_myself;                \
+               else                                                    \
+                       rval.consumed = 0;      /* Context-free */      \
+               return rval;                                            \
+       } while(0)
+
+/*
+ * The BER decoder of any type.
+ */
+asn_dec_rval_t
+ber_decode(const asn_codec_ctx_t *opt_codec_ctx,
+           const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr,
+           const void *ptr, size_t size) {
+    asn_codec_ctx_t s_codec_ctx;
+
+       /*
+        * Stack checker requires that the codec context
+        * must be allocated on the stack.
+        */
+       if(opt_codec_ctx) {
+               if(opt_codec_ctx->max_stack_size) {
+                       s_codec_ctx = *opt_codec_ctx;
+                       opt_codec_ctx = &s_codec_ctx;
+               }
+       } else {
+               /* If context is not given, be security-conscious anyway */
+               memset(&s_codec_ctx, 0, sizeof(s_codec_ctx));
+               s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX;
+               opt_codec_ctx = &s_codec_ctx;
+       }
+
+       /*
+        * Invoke type-specific decoder.
+        */
+       return type_descriptor->op->ber_decoder(opt_codec_ctx, type_descriptor,
+               struct_ptr,     /* Pointer to the destination structure */
+               ptr, size,      /* Buffer and its size */
+               0               /* Default tag mode is 0 */
+               );
+}
+
+/*
+ * Check the set of <TL<TL<TL...>>> tags matches the definition.
+ */
+asn_dec_rval_t
+ber_check_tags(const asn_codec_ctx_t *opt_codec_ctx,
+               const asn_TYPE_descriptor_t *td, asn_struct_ctx_t *opt_ctx,
+               const void *ptr, size_t size, int tag_mode, int last_tag_form,
+               ber_tlv_len_t *last_length, int *opt_tlv_form) {
+    ssize_t consumed_myself = 0;
+       ssize_t tag_len;
+       ssize_t len_len;
+       ber_tlv_tag_t tlv_tag;
+       ber_tlv_len_t tlv_len;
+       ber_tlv_len_t limit_len = -1;
+       int expect_00_terminators = 0;
+       int tlv_constr = -1;    /* If CHOICE, opt_tlv_form is not given */
+       int step = opt_ctx ? opt_ctx->step : 0; /* Where we left previously */
+       int tagno;
+
+       /*
+        * Make sure we didn't exceed the maximum stack size.
+        */
+       if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx))
+               RETURN(RC_FAIL);
+
+       /*
+        * So what does all this implicit skip stuff mean?
+        * Imagine two types,
+        *      A ::= [5] IMPLICIT      T
+        *      B ::= [2] EXPLICIT      T
+        * Where T is defined as
+        *      T ::= [4] IMPLICIT SEQUENCE { ... }
+        * 
+        * Let's say, we are starting to decode type A, given the
+        * following TLV stream: <5> <0>. What does this mean?
+        * It means that the type A contains type T which is,
+        * in turn, empty.
+        * Remember though, that we are still in A. We cannot
+        * just pass control to the type T decoder. Why? Because
+        * the type T decoder expects <4> <0>, not <5> <0>.
+        * So, we must make sure we are going to receive <5> while
+        * still in A, then pass control to the T decoder, indicating
+        * that the tag <4> was implicitly skipped. The decoder of T
+        * hence will be prepared to treat <4> as valid tag, and decode
+        * it appropriately.
+        */
+
+       tagno = step    /* Continuing where left previously */
+               + (tag_mode==1?-1:0)
+               ;
+       ASN_DEBUG("ber_check_tags(%s, size=%ld, tm=%d, step=%d, tagno=%d)",
+               td->name, (long)size, tag_mode, step, tagno);
+       /* assert(td->tags_count >= 1) May not be the case for CHOICE or ANY */
+
+       if(tag_mode == 0 && tagno == (int)td->tags_count) {
+               /*
+                * This must be the _untagged_ ANY type,
+                * which outermost tag isn't known in advance.
+                * Fetch the tag and length separately.
+                */
+               tag_len = ber_fetch_tag(ptr, size, &tlv_tag);
+               switch(tag_len) {
+               case -1: RETURN(RC_FAIL);
+               case 0: RETURN(RC_WMORE);
+               }
+               tlv_constr = BER_TLV_CONSTRUCTED(ptr);
+               len_len = ber_fetch_length(tlv_constr,
+                       (const char *)ptr + tag_len, size - tag_len, &tlv_len);
+               switch(len_len) {
+               case -1: RETURN(RC_FAIL);
+               case 0: RETURN(RC_WMORE);
+               }
+               ASN_DEBUG("Advancing %ld in ANY case",
+                       (long)(tag_len + len_len));
+               ADVANCE(tag_len + len_len);
+       } else {
+               assert(tagno < (int)td->tags_count);    /* At least one loop */
+       }
+       for((void)tagno; tagno < (int)td->tags_count; tagno++, step++) {
+
+               /*
+                * Fetch and process T from TLV.
+                */
+               tag_len = ber_fetch_tag(ptr, size, &tlv_tag);
+                       ASN_DEBUG("Fetching tag from {%p,%ld}: "
+                               "len %ld, step %d, tagno %d got %s",
+                               ptr, (long)size,
+                               (long)tag_len, step, tagno,
+                               ber_tlv_tag_string(tlv_tag));
+               switch(tag_len) {
+               case -1: RETURN(RC_FAIL);
+               case 0: RETURN(RC_WMORE);
+               }
+
+               tlv_constr = BER_TLV_CONSTRUCTED(ptr);
+
+               /*
+                * If {I}, don't check anything.
+                * If {I,B,C}, check B and C unless we're at I.
+                */
+               if(tag_mode != 0 && step == 0) {
+                       /*
+                        * We don't expect tag to match here.
+                        * It's just because we don't know how the tag
+                        * is supposed to look like.
+                        */
+               } else {
+                   assert(tagno >= 0); /* Guaranteed by the code above */
+                   if(tlv_tag != td->tags[tagno]) {
+                       /*
+                        * Unexpected tag. Too bad.
+                        */
+                       ASN_DEBUG("Expected: %s, "
+                               "expectation failed (tn=%d, tm=%d)",
+                               ber_tlv_tag_string(td->tags[tagno]),
+                               tagno, tag_mode
+                       );
+                       RETURN(RC_FAIL);
+                   }
+               }
+
+               /*
+                * Attention: if there are more tags expected,
+                * ensure that the current tag is presented
+                * in constructed form (it contains other tags!).
+                * If this one is the last one, check that the tag form
+                * matches the one given in descriptor.
+                */
+               if(tagno < ((int)td->tags_count - 1)) {
+                       if(tlv_constr == 0) {
+                               ASN_DEBUG("tlv_constr = %d, expfail",
+                                       tlv_constr);
+                               RETURN(RC_FAIL);
+                       }
+               } else {
+                       if(last_tag_form != tlv_constr
+                       && last_tag_form != -1) {
+                               ASN_DEBUG("last_tag_form %d != %d",
+                                       last_tag_form, tlv_constr);
+                               RETURN(RC_FAIL);
+                       }
+               }
+
+               /*
+                * Fetch and process L from TLV.
+                */
+               len_len = ber_fetch_length(tlv_constr,
+                       (const char *)ptr + tag_len, size - tag_len, &tlv_len);
+               ASN_DEBUG("Fetching len = %ld", (long)len_len);
+               switch(len_len) {
+               case -1: RETURN(RC_FAIL);
+               case 0: RETURN(RC_WMORE);
+               }
+
+               /*
+                * FIXME
+                * As of today, the chain of tags
+                * must either contain several indefinite length TLVs,
+                * or several definite length ones.
+                * No mixing is allowed.
+                */
+               if(tlv_len == -1) {
+                       /*
+                        * Indefinite length.
+                        */
+                       if(limit_len == -1) {
+                               expect_00_terminators++;
+                       } else {
+                               ASN_DEBUG("Unexpected indefinite length "
+                                       "in a chain of definite lengths");
+                               RETURN(RC_FAIL);
+                       }
+                       ADVANCE(tag_len + len_len);
+                       continue;
+               } else {
+                       if(expect_00_terminators) {
+                               ASN_DEBUG("Unexpected definite length "
+                                       "in a chain of indefinite lengths");
+                               RETURN(RC_FAIL);
+                       }
+               }
+
+               /*
+                * Check that multiple TLVs specify ever decreasing length,
+                * which is consistent.
+                */
+               if(limit_len == -1) {
+                       limit_len    = tlv_len + tag_len + len_len;
+                       if(limit_len < 0) {
+                               /* Too great tlv_len value? */
+                               RETURN(RC_FAIL);
+                       }
+               } else if(limit_len != tlv_len + tag_len + len_len) {
+                       /*
+                        * Inner TLV specifies length which is inconsistent
+                        * with the outer TLV's length value.
+                        */
+                       ASN_DEBUG("Outer TLV is %ld and inner is %ld",
+                               (long)limit_len, (long)tlv_len);
+                       RETURN(RC_FAIL);
+               }
+
+               ADVANCE(tag_len + len_len);
+
+               limit_len -= (tag_len + len_len);
+               if((ssize_t)size > limit_len) {
+                       /*
+                        * Make sure that we won't consume more bytes
+                        * from the parent frame than the inferred limit.
+                        */
+                       size = limit_len;
+               }
+       }
+
+       if(opt_tlv_form)
+               *opt_tlv_form = tlv_constr;
+       if(expect_00_terminators)
+               *last_length = -expect_00_terminators;
+       else
+               *last_length = tlv_len;
+
+       RETURN(RC_OK);
+}
diff --git a/e2ap/lib/ber_tlv_length.c b/e2ap/lib/ber_tlv_length.c
new file mode 100644 (file)
index 0000000..0a0deec
--- /dev/null
@@ -0,0 +1,168 @@
+/*-
+ * Copyright (c) 2003, 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <ber_tlv_length.h>
+#include <ber_tlv_tag.h>
+
+ssize_t
+ber_fetch_length(int _is_constructed, const void *bufptr, size_t size,
+               ber_tlv_len_t *len_r) {
+       const uint8_t *buf = (const uint8_t *)bufptr;
+       unsigned oct;
+
+       if(size == 0)
+               return 0;       /* Want more */
+
+       oct = *(const uint8_t *)buf;
+       if((oct & 0x80) == 0) {
+               /*
+                * Short definite length.
+                */
+               *len_r = oct;   /* & 0x7F */
+               return 1;
+       } else {
+               ber_tlv_len_t len;
+               size_t skipped;
+
+               if(_is_constructed && oct == 0x80) {
+                       *len_r = -1;    /* Indefinite length */
+                       return 1;
+               }
+
+               if(oct == 0xff) {
+                       /* Reserved in standard for future use. */
+                       return -1;
+               }
+
+               oct &= 0x7F;    /* Leave only the 7 LS bits */
+               for(len = 0, buf++, skipped = 1;
+                       oct && (++skipped <= size); buf++, oct--) {
+
+                       /* Verify that we won't overflow. */
+                       if(!(len >> ((8 * sizeof(len)) - (8+1)))) {
+                               len = (len << 8) | *buf;
+                       } else {
+                               /* Too large length value. */
+                               return -1;
+                       }
+               }
+
+               if(oct == 0) {
+                       if(len < 0 || len > RSSIZE_MAX) {
+                               /* Length value out of sane range. */
+                               return -1;
+                       }
+
+                       *len_r = len;
+                       return skipped;
+               }
+
+               return 0;       /* Want more */
+       }
+
+}
+
+ssize_t
+ber_skip_length(const asn_codec_ctx_t *opt_codec_ctx,
+               int _is_constructed, const void *ptr, size_t size) {
+       ber_tlv_len_t vlen;     /* Length of V in TLV */
+       ssize_t tl;             /* Length of L in TLV */
+       ssize_t ll;             /* Length of L in TLV */
+       size_t skip;
+
+       /*
+        * Make sure we didn't exceed the maximum stack size.
+        */
+       if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx))
+               return -1;
+
+       /*
+        * Determine the size of L in TLV.
+        */
+       ll = ber_fetch_length(_is_constructed, ptr, size, &vlen);
+       if(ll <= 0) return ll;
+
+       /*
+        * Definite length.
+        */
+       if(vlen >= 0) {
+               skip = ll + vlen;
+               if(skip > size)
+                       return 0;       /* Want more */
+               return skip;
+       }
+
+       /*
+        * Indefinite length!
+        */
+       ASN_DEBUG("Skipping indefinite length");
+       for(skip = ll, ptr = ((const char *)ptr) + ll, size -= ll;;) {
+               ber_tlv_tag_t tag;
+
+               /* Fetch the tag */
+               tl = ber_fetch_tag(ptr, size, &tag);
+               if(tl <= 0) return tl;
+
+               ll = ber_skip_length(opt_codec_ctx,
+                       BER_TLV_CONSTRUCTED(ptr),
+                       ((const char *)ptr) + tl, size - tl);
+               if(ll <= 0) return ll;
+
+               skip += tl + ll;
+
+               /*
+                * This may be the end of the indefinite length structure,
+                * two consecutive 0 octets.
+                * Check if it is true.
+                */
+               if(((const uint8_t *)ptr)[0] == 0
+               && ((const uint8_t *)ptr)[1] == 0)
+                       return skip;
+
+               ptr = ((const char *)ptr) + tl + ll;
+               size -= tl + ll;
+       }
+
+       /* UNREACHABLE */
+}
+
+size_t
+der_tlv_length_serialize(ber_tlv_len_t len, void *bufp, size_t size) {
+       size_t required_size;   /* Size of len encoding */
+       uint8_t *buf = (uint8_t *)bufp;
+       uint8_t *end;
+       int i;
+
+       if(len <= 127) {
+               /* Encoded in 1 octet */
+               if(size) *buf = (uint8_t)len;
+               return 1;
+       }
+
+       /*
+        * Compute the size of the subsequent bytes.
+        */
+       for(required_size = 1, i = 8; i < 8 * (int)sizeof(len); i += 8) {
+               if(len >> i)
+                       required_size++;
+               else
+                       break;
+       }
+
+       if(size <= required_size)
+               return required_size + 1;
+
+       *buf++ = (uint8_t)(0x80 | required_size);  /* Length of the encoding */
+
+       /*
+        * Produce the len encoding, space permitting.
+        */
+       end = buf + required_size;
+       for(i -= 8; buf < end; i -= 8, buf++)
+               *buf = (uint8_t)(len >> i);
+
+       return required_size + 1;
+}
+
diff --git a/e2ap/lib/ber_tlv_tag.c b/e2ap/lib/ber_tlv_tag.c
new file mode 100644 (file)
index 0000000..4a7d732
--- /dev/null
@@ -0,0 +1,144 @@
+/*-
+ * Copyright (c) 2003, 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <ber_tlv_tag.h>
+#include <errno.h>
+
+ssize_t
+ber_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) {
+       ber_tlv_tag_t val;
+       ber_tlv_tag_t tclass;
+       size_t skipped;
+
+       if(size == 0)
+               return 0;
+
+       val = *(const uint8_t *)ptr;
+       tclass = (val >> 6);
+       if((val &= 0x1F) != 0x1F) {
+               /*
+                * Simple form: everything encoded in a single octet.
+                * Tag Class is encoded using two least significant bits.
+                */
+               *tag_r = (val << 2) | tclass;
+               return 1;
+       }
+
+       /*
+        * Each octet contains 7 bits of useful information.
+        * The MSB is 0 if it is the last octet of the tag.
+        */
+       for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2;
+                       skipped <= size;
+                               ptr = ((const char *)ptr) + 1, skipped++) {
+               unsigned int oct = *(const uint8_t *)ptr;
+               if(oct & 0x80) {
+                       val = (val << 7) | (oct & 0x7F);
+                       /*
+                        * Make sure there are at least 9 bits spare
+                        * at the MS side of a value.
+                        */
+                       if(val >> ((8 * sizeof(val)) - 9)) {
+                               /*
+                                * We would not be able to accomodate
+                                * any more tag bits.
+                                */
+                               return -1;
+                       }
+               } else {
+                       val = (val << 7) | oct;
+                       *tag_r = (val << 2) | tclass;
+                       return skipped;
+               }
+       }
+
+       return 0;       /* Want more */
+}
+
+
+ssize_t
+ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *f) {
+       char buf[sizeof("[APPLICATION ]") + 32];
+       ssize_t ret;
+
+       ret = ber_tlv_tag_snprint(tag, buf, sizeof(buf));
+       if(ret >= (ssize_t)sizeof(buf) || ret < 2) {
+               errno = EPERM;
+               return -1;
+       }
+
+       return fwrite(buf, 1, ret, f);
+}
+
+ssize_t
+ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t size) {
+       const char *type = 0;
+       int ret;
+
+       switch(tag & 0x3) {
+       case ASN_TAG_CLASS_UNIVERSAL:   type = "UNIVERSAL ";    break;
+       case ASN_TAG_CLASS_APPLICATION: type = "APPLICATION ";  break;
+       case ASN_TAG_CLASS_CONTEXT:     type = "";              break;
+       case ASN_TAG_CLASS_PRIVATE:     type = "PRIVATE ";      break;
+       }
+
+       ret = snprintf(buf, size, "[%s%u]", type, ((unsigned)tag) >> 2);
+       if(ret <= 0 && size) buf[0] = '\0';     /* against broken libc's */
+
+       return ret;
+}
+
+char *
+ber_tlv_tag_string(ber_tlv_tag_t tag) {
+       static char buf[sizeof("[APPLICATION ]") + 32];
+
+       (void)ber_tlv_tag_snprint(tag, buf, sizeof(buf));
+
+       return buf;
+}
+
+
+size_t
+ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufp, size_t size) {
+       int tclass = BER_TAG_CLASS(tag);
+       ber_tlv_tag_t tval = BER_TAG_VALUE(tag);
+       uint8_t *buf = (uint8_t *)bufp;
+       uint8_t *end;
+       size_t required_size;
+       size_t i;
+
+       if(tval <= 30) {
+               /* Encoded in 1 octet */
+               if(size) buf[0] = (tclass << 6) | tval;
+               return 1;
+       } else if(size) {
+               *buf++ = (tclass << 6) | 0x1F;
+               size--;
+       }
+
+       /*
+        * Compute the size of the subsequent bytes.
+        */
+       for(required_size = 1, i = 7; i < 8 * sizeof(tval); i += 7) {
+               if(tval >> i)
+                       required_size++;
+               else
+                       break;
+       }
+
+       if(size < required_size)
+               return required_size + 1;
+
+       /*
+        * Fill in the buffer, space permitting.
+        */
+       end = buf + required_size - 1;
+       for(i -= 7; buf < end; i -= 7, buf++)
+               *buf = 0x80 | ((tval >> i) & 0x7F);
+       *buf = (tval & 0x7F);   /* Last octet without high bit */
+
+       return required_size + 1;
+}
+
diff --git a/e2ap/lib/constr_CHOICE.c b/e2ap/lib/constr_CHOICE.c
new file mode 100644 (file)
index 0000000..613e6ea
--- /dev/null
@@ -0,0 +1,1511 @@
+/*
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <constr_CHOICE.h>
+#include <per_opentype.h>
+
+/*
+ * Number of bytes left for this structure.
+ * (ctx->left) indicates the number of bytes _transferred_ for the structure.
+ * (size) contains the number of bytes in the buffer passed.
+ */
+#define        LEFT    ((size<(size_t)ctx->left)?size:(size_t)ctx->left)
+
+/*
+ * If the subprocessor function returns with an indication that it wants
+ * more data, it may well be a fatal decoding problem, because the
+ * size is constrained by the <TLV>'s L, even if the buffer size allows
+ * reading more data.
+ * For example, consider the buffer containing the following TLVs:
+ * <T:5><L:1><V> <T:6>...
+ * The TLV length clearly indicates that one byte is expected in V, but
+ * if the V processor returns with "want more data" even if the buffer
+ * contains way more data than the V processor have seen.
+ */
+#define        SIZE_VIOLATION  (ctx->left >= 0 && (size_t)ctx->left <= size)
+
+/*
+ * This macro "eats" the part of the buffer which is definitely "consumed",
+ * i.e. was correctly converted into local representation or rightfully skipped.
+ */
+#undef ADVANCE
+#define        ADVANCE(num_bytes)      do {            \
+               size_t num = num_bytes;         \
+               ptr = ((const char *)ptr) + num;\
+               size -= num;                    \
+               if(ctx->left >= 0)              \
+                       ctx->left -= num;       \
+               consumed_myself += num;         \
+       } while(0)
+
+/*
+ * Switch to the next phase of parsing.
+ */
+#undef NEXT_PHASE
+#define        NEXT_PHASE(ctx) do {                    \
+               ctx->phase++;                   \
+               ctx->step = 0;                  \
+       } while(0)
+
+/*
+ * Return a standardized complex structure.
+ */
+#undef RETURN
+#define        RETURN(_code)   do {                    \
+               rval.code = _code;              \
+               rval.consumed = consumed_myself;\
+               return rval;                    \
+       } while(0)
+
+/*
+ * See the definitions.
+ */
+static unsigned _fetch_present_idx(const void *struct_ptr, unsigned off,
+                                   unsigned size);
+static void _set_present_idx(void *sptr, unsigned offset, unsigned size,
+                             unsigned pres);
+static const void *_get_member_ptr(const asn_TYPE_descriptor_t *,
+                                   const void *sptr, asn_TYPE_member_t **elm,
+                                   unsigned *present);
+
+/*
+ * Tags are canonically sorted in the tag to member table.
+ */
+static int
+_search4tag(const void *ap, const void *bp) {
+       const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap;
+       const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp;
+
+       int a_class = BER_TAG_CLASS(a->el_tag);
+       int b_class = BER_TAG_CLASS(b->el_tag);
+
+       if(a_class == b_class) {
+               ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag);
+               ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag);
+
+               if(a_value == b_value)
+                       return 0;
+               else if(a_value < b_value)
+                       return -1;
+               else
+                       return 1;
+       } else if(a_class < b_class) {
+               return -1;
+       } else {
+               return 1;
+       }
+}
+
+/*
+ * The decoder of the CHOICE type.
+ */
+asn_dec_rval_t
+CHOICE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx,
+                  const asn_TYPE_descriptor_t *td, void **struct_ptr,
+                  const void *ptr, size_t size, int tag_mode) {
+    /*
+        * Bring closer parts of structure description.
+        */
+       const asn_CHOICE_specifics_t *specs =
+               (const asn_CHOICE_specifics_t *)td->specifics;
+       asn_TYPE_member_t *elements = td->elements;
+
+       /*
+        * Parts of the structure being constructed.
+        */
+       void *st = *struct_ptr; /* Target structure. */
+       asn_struct_ctx_t *ctx;  /* Decoder context */
+
+       ber_tlv_tag_t tlv_tag;  /* T from TLV */
+       ssize_t tag_len;        /* Length of TLV's T */
+       asn_dec_rval_t rval;    /* Return code from subparsers */
+
+       ssize_t consumed_myself = 0;    /* Consumed bytes from ptr */
+
+       ASN_DEBUG("Decoding %s as CHOICE", td->name);
+
+       /*
+        * Create the target structure if it is not present already.
+        */
+       if(st == 0) {
+               st = *struct_ptr = CALLOC(1, specs->struct_size);
+               if(st == 0) {
+                       RETURN(RC_FAIL);
+               }
+       }
+
+       /*
+        * Restore parsing context.
+        */
+       ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset);
+       
+       /*
+        * Start to parse where left previously
+        */
+       switch(ctx->phase) {
+       case 0:
+               /*
+                * PHASE 0.
+                * Check that the set of tags associated with given structure
+                * perfectly fits our expectations.
+                */
+
+               if(tag_mode || td->tags_count) {
+                       rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size,
+                               tag_mode, -1, &ctx->left, 0);
+                       if(rval.code != RC_OK) {
+                               ASN_DEBUG("%s tagging check failed: %d",
+                                       td->name, rval.code);
+                               return rval;
+                       }
+
+                       if(ctx->left >= 0) {
+                               /* ?Substracted below! */
+                               ctx->left += rval.consumed;
+                       }
+                       ADVANCE(rval.consumed);
+               } else {
+                       ctx->left = -1;
+               }
+
+               NEXT_PHASE(ctx);
+
+               ASN_DEBUG("Structure consumes %ld bytes, buffer %ld",
+                       (long)ctx->left, (long)size);
+
+               /* Fall through */
+       case 1:
+               /*
+                * Fetch the T from TLV.
+                */
+               tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag);
+               ASN_DEBUG("In %s CHOICE tag length %d", td->name, (int)tag_len);
+               switch(tag_len) {
+               case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE);
+                       /* Fall through */
+               case -1: RETURN(RC_FAIL);
+               }
+
+               do {
+                       const asn_TYPE_tag2member_t *t2m;
+                       asn_TYPE_tag2member_t key;
+
+                       key.el_tag = tlv_tag;
+                       t2m = (const asn_TYPE_tag2member_t *)bsearch(&key,
+                                       specs->tag2el, specs->tag2el_count,
+                                       sizeof(specs->tag2el[0]), _search4tag);
+                       if(t2m) {
+                               /*
+                                * Found the element corresponding to the tag.
+                                */
+                               NEXT_PHASE(ctx);
+                               ctx->step = t2m->el_no;
+                               break;
+                       } else if(specs->ext_start == -1) {
+                               ASN_DEBUG("Unexpected tag %s "
+                                       "in non-extensible CHOICE %s",
+                                       ber_tlv_tag_string(tlv_tag), td->name);
+                               RETURN(RC_FAIL);
+                       } else {
+                               /* Skip this tag */
+                               ssize_t skip;
+
+                               ASN_DEBUG("Skipping unknown tag %s",
+                                       ber_tlv_tag_string(tlv_tag));
+
+                               skip = ber_skip_length(opt_codec_ctx,
+                                       BER_TLV_CONSTRUCTED(ptr),
+                                       (const char *)ptr + tag_len,
+                                       LEFT - tag_len);
+
+                               switch(skip) {
+                               case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE);
+                                       /* Fall through */
+                               case -1: RETURN(RC_FAIL);
+                               }
+
+                               ADVANCE(skip + tag_len);
+                               RETURN(RC_OK);
+                       }
+               } while(0);
+
+       case 2:
+               /*
+                * PHASE 2.
+                * Read in the element.
+                */
+           do {
+               asn_TYPE_member_t *elm;/* CHOICE's element */
+               void *memb_ptr;         /* Pointer to the member */
+               void **memb_ptr2;       /* Pointer to that pointer */
+
+               elm = &elements[ctx->step];
+
+               /*
+                * Compute the position of the member inside a structure,
+                * and also a type of containment (it may be contained
+                * as pointer or using inline inclusion).
+                */
+               if(elm->flags & ATF_POINTER) {
+                       /* Member is a pointer to another structure */
+                       memb_ptr2 = (void **)((char *)st + elm->memb_offset);
+               } else {
+                       /*
+                        * A pointer to a pointer
+                        * holding the start of the structure
+                        */
+                       memb_ptr = (char *)st + elm->memb_offset;
+                       memb_ptr2 = &memb_ptr;
+               }
+               /* Set presence to be able to free it properly at any time */
+               _set_present_idx(st, specs->pres_offset,
+                               specs->pres_size, ctx->step + 1);
+               /*
+                * Invoke the member fetch routine according to member's type
+                */
+               rval = elm->type->op->ber_decoder(opt_codec_ctx, elm->type,
+                               memb_ptr2, ptr, LEFT, elm->tag_mode);
+               switch(rval.code) {
+               case RC_OK:
+                       break;
+               case RC_WMORE: /* More data expected */
+                       if(!SIZE_VIOLATION) {
+                               ADVANCE(rval.consumed);
+                               RETURN(RC_WMORE);
+                       }
+                       RETURN(RC_FAIL);
+               case RC_FAIL: /* Fatal error */
+                       RETURN(rval.code);
+               } /* switch(rval) */
+               
+               ADVANCE(rval.consumed);
+         } while(0);
+
+               NEXT_PHASE(ctx);
+
+               /* Fall through */
+       case 3:
+               ASN_DEBUG("CHOICE %s Leftover: %ld, size = %ld, tm=%d, tc=%d",
+                       td->name, (long)ctx->left, (long)size,
+                       tag_mode, td->tags_count);
+
+               if(ctx->left > 0) {
+                       /*
+                        * The type must be fully decoded
+                        * by the CHOICE member-specific decoder.
+                        */
+                       RETURN(RC_FAIL);
+               }
+
+               if(ctx->left == -1
+               && !(tag_mode || td->tags_count)) {
+                       /*
+                        * This is an untagged CHOICE.
+                        * It doesn't contain nothing
+                        * except for the member itself, including all its tags.
+                        * The decoding is completed.
+                        */
+                       NEXT_PHASE(ctx);
+                       break;
+               }
+
+               /*
+                * Read in the "end of data chunks"'s.
+                */
+               while(ctx->left < 0) {
+                       ssize_t tl;
+
+                       tl = ber_fetch_tag(ptr, LEFT, &tlv_tag);
+                       switch(tl) {
+                       case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE);
+                               /* Fall through */
+                       case -1: RETURN(RC_FAIL);
+                       }
+
+                       /*
+                        * Expected <0><0>...
+                        */
+                       if(((const uint8_t *)ptr)[0] == 0) {
+                               if(LEFT < 2) {
+                                       if(SIZE_VIOLATION)
+                                               RETURN(RC_FAIL);
+                                       else
+                                               RETURN(RC_WMORE);
+                               } else if(((const uint8_t *)ptr)[1] == 0) {
+                                       /*
+                                        * Correctly finished with <0><0>.
+                                        */
+                                       ADVANCE(2);
+                                       ctx->left++;
+                                       continue;
+                               }
+                       } else {
+                               ASN_DEBUG("Unexpected continuation in %s",
+                                       td->name);
+                               RETURN(RC_FAIL);
+                       }
+
+                       /* UNREACHABLE */
+               }
+
+               NEXT_PHASE(ctx);
+       case 4:
+               /* No meaningful work here */
+               break;
+       }
+       
+       RETURN(RC_OK);
+}
+
+asn_enc_rval_t
+CHOICE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr,
+                  int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb,
+                  void *app_key) {
+    const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics;
+       asn_TYPE_member_t *elm; /* CHOICE element */
+       asn_enc_rval_t erval = {0,0,0};
+       const void *memb_ptr;
+       size_t computed_size = 0;
+       unsigned present;
+
+       if(!sptr) ASN__ENCODE_FAILED;
+
+       ASN_DEBUG("%s %s as CHOICE",
+               cb?"Encoding":"Estimating", td->name);
+
+       present = _fetch_present_idx(sptr,
+               specs->pres_offset, specs->pres_size);
+
+       /*
+        * If the structure was not initialized, it cannot be encoded:
+        * can't deduce what to encode in the choice type.
+        */
+       if(present == 0 || present > td->elements_count) {
+               if(present == 0 && td->elements_count == 0) {
+                       /* The CHOICE is empty?! */
+                       erval.encoded = 0;
+                       ASN__ENCODED_OK(erval);
+               }
+               ASN__ENCODE_FAILED;
+       }
+
+       /*
+        * Seek over the present member of the structure.
+        */
+       elm = &td->elements[present-1];
+       if(elm->flags & ATF_POINTER) {
+        memb_ptr =
+            *(const void *const *)((const char *)sptr + elm->memb_offset);
+        if(memb_ptr == 0) {
+                       if(elm->optional) {
+                               erval.encoded = 0;
+                               ASN__ENCODED_OK(erval);
+                       }
+                       /* Mandatory element absent */
+                       ASN__ENCODE_FAILED;
+               }
+       } else {
+        memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
+    }
+
+       /*
+        * If the CHOICE itself is tagged EXPLICIT:
+        * T ::= [2] EXPLICIT CHOICE { ... }
+        * Then emit the appropriate tags.
+        */
+       if(tag_mode == 1 || td->tags_count) {
+               /*
+                * For this, we need to pre-compute the member.
+                */
+               ssize_t ret;
+
+               /* Encode member with its tag */
+               erval = elm->type->op->der_encoder(elm->type, memb_ptr,
+                       elm->tag_mode, elm->tag, 0, 0);
+               if(erval.encoded == -1)
+                       return erval;
+
+               /* Encode CHOICE with parent or my own tag */
+               ret = der_write_tags(td, erval.encoded, tag_mode, 1, tag,
+                       cb, app_key);
+               if(ret == -1)
+                       ASN__ENCODE_FAILED;
+               computed_size += ret;
+       }
+
+       /*
+        * Encode the single underlying member.
+        */
+       erval = elm->type->op->der_encoder(elm->type, memb_ptr,
+               elm->tag_mode, elm->tag, cb, app_key);
+       if(erval.encoded == -1)
+               return erval;
+
+       ASN_DEBUG("Encoded CHOICE member in %ld bytes (+%ld)",
+               (long)erval.encoded, (long)computed_size);
+
+       erval.encoded += computed_size;
+
+       return erval;
+}
+
+ber_tlv_tag_t
+CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) {
+       const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics;
+       unsigned present;
+
+       assert(tag_mode == 0); (void)tag_mode;
+       assert(tag == 0); (void)tag;
+
+       /*
+        * Figure out which CHOICE element is encoded.
+        */
+       present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size);
+
+       if(present > 0 && present <= td->elements_count) {
+               const asn_TYPE_member_t *elm = &td->elements[present-1];
+               const void *memb_ptr;
+
+               if(elm->flags & ATF_POINTER) {
+                       memb_ptr = *(const void * const *)
+                                       ((const char *)ptr + elm->memb_offset);
+               } else {
+                       memb_ptr = (const void *)
+                                       ((const char *)ptr + elm->memb_offset);
+               }
+
+               return asn_TYPE_outmost_tag(elm->type, memb_ptr,
+                       elm->tag_mode, elm->tag);
+       } else {
+               return (ber_tlv_tag_t)-1;
+       }
+}
+
+int
+CHOICE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+                  asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+    const asn_CHOICE_specifics_t *specs =
+        (const asn_CHOICE_specifics_t *)td->specifics;
+    unsigned present;
+
+       if(!sptr) {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: value not given (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+
+       /*
+        * Figure out which CHOICE element is encoded.
+        */
+       present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size);
+       if(present > 0 && present <= td->elements_count) {
+               asn_TYPE_member_t *elm = &td->elements[present-1];
+               const void *memb_ptr;
+
+               if(elm->flags & ATF_POINTER) {
+                       memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset);
+                       if(!memb_ptr) {
+                               if(elm->optional)
+                                       return 0;
+                               ASN__CTFAIL(app_key, td, sptr,
+                                       "%s: mandatory CHOICE element %s absent (%s:%d)",
+                                       td->name, elm->name, __FILE__, __LINE__);
+                               return -1;
+                       }
+               } else {
+                       memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
+               }
+
+               if(elm->encoding_constraints.general_constraints) {
+                       return elm->encoding_constraints.general_constraints(elm->type, memb_ptr,
+                               ctfailcb, app_key);
+               } else {
+                       return elm->type->encoding_constraints.general_constraints(elm->type,
+                                       memb_ptr, ctfailcb, app_key);
+               }
+       } else {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: no CHOICE element given (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+}
+
+#undef XER_ADVANCE
+#define        XER_ADVANCE(num_bytes)  do {                    \
+               size_t num = num_bytes;                 \
+               buf_ptr = (const void *)(((const char *)buf_ptr) + num); \
+               size -= num;                            \
+               consumed_myself += num;                 \
+       } while(0)
+
+/*
+ * Decode the XER (XML) data.
+ */
+asn_dec_rval_t
+CHOICE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx,
+                  const asn_TYPE_descriptor_t *td, void **struct_ptr,
+                  const char *opt_mname, const void *buf_ptr, size_t size) {
+    /*
+        * Bring closer parts of structure description.
+        */
+       const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics;
+       const char *xml_tag = opt_mname ? opt_mname : td->xml_tag;
+
+       /*
+        * Parts of the structure being constructed.
+        */
+       void *st = *struct_ptr; /* Target structure. */
+       asn_struct_ctx_t *ctx;  /* Decoder context */
+
+       asn_dec_rval_t rval;            /* Return value of a decoder */
+       ssize_t consumed_myself = 0;    /* Consumed bytes from ptr */
+       size_t edx;                     /* Element index */
+
+       /*
+        * Create the target structure if it is not present already.
+        */
+       if(st == 0) {
+               st = *struct_ptr = CALLOC(1, specs->struct_size);
+               if(st == 0) RETURN(RC_FAIL);
+       }
+
+       /*
+        * Restore parsing context.
+        */
+       ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset);
+       if(ctx->phase == 0 && !*xml_tag)
+               ctx->phase = 1; /* Skip the outer tag checking phase */
+
+       /*
+        * Phases of XER/XML processing:
+        * Phase 0: Check that the opening tag matches our expectations.
+        * Phase 1: Processing body and reacting on closing tag.
+        * Phase 2: Processing inner type.
+        * Phase 3: Only waiting for closing tag.
+        * Phase 4: Skipping unknown extensions.
+        * Phase 5: PHASED OUT
+        */
+       for(edx = ctx->step; ctx->phase <= 4;) {
+               pxer_chunk_type_e ch_type;      /* XER chunk type */
+               ssize_t ch_size;                /* Chunk size */
+               xer_check_tag_e tcv;            /* Tag check value */
+               asn_TYPE_member_t *elm;
+
+               /*
+                * Go inside the member.
+                */
+               if(ctx->phase == 2) {
+                       asn_dec_rval_t tmprval;
+                       void *memb_ptr;         /* Pointer to the member */
+                       void **memb_ptr2;       /* Pointer to that pointer */
+                       unsigned old_present;
+
+                       elm = &td->elements[edx];
+
+                       if(elm->flags & ATF_POINTER) {
+                               /* Member is a pointer to another structure */
+                               memb_ptr2 = (void **)((char *)st
+                                       + elm->memb_offset);
+                       } else {
+                               memb_ptr = (char *)st + elm->memb_offset;
+                               memb_ptr2 = &memb_ptr;
+                       }
+
+                       /* Start/Continue decoding the inner member */
+                       tmprval = elm->type->op->xer_decoder(opt_codec_ctx,
+                                       elm->type, memb_ptr2, elm->name,
+                                       buf_ptr, size);
+                       XER_ADVANCE(tmprval.consumed);
+                       ASN_DEBUG("XER/CHOICE: itdf: [%s] code=%d",
+                               elm->type->name, tmprval.code);
+                       old_present = _fetch_present_idx(st,
+                               specs->pres_offset, specs->pres_size);
+                       assert(old_present == 0 || old_present == edx + 1);
+                       /* Record what we've got */
+                       _set_present_idx(st,
+                               specs->pres_offset, specs->pres_size, edx + 1);
+                       if(tmprval.code != RC_OK)
+                               RETURN(tmprval.code);
+                       ctx->phase = 3;
+                       /* Fall through */
+               }
+
+               /* No need to wait for closing tag; special mode. */
+               if(ctx->phase == 3 && !*xml_tag) {
+                       ctx->phase = 5; /* Phase out */
+                       RETURN(RC_OK);
+               }
+
+               /*
+                * Get the next part of the XML stream.
+                */
+               ch_size = xer_next_token(&ctx->context, buf_ptr, size, &ch_type);
+               if(ch_size == -1) {
+            RETURN(RC_FAIL);
+        } else {
+                       switch(ch_type) {
+                       case PXER_WMORE:
+                RETURN(RC_WMORE);
+                       case PXER_COMMENT:      /* Got XML comment */
+                       case PXER_TEXT:         /* Ignore free-standing text */
+                               XER_ADVANCE(ch_size);   /* Skip silently */
+                               continue;
+                       case PXER_TAG:
+                               break;  /* Check the rest down there */
+                       }
+               }
+
+               tcv = xer_check_tag(buf_ptr, ch_size, xml_tag);
+               ASN_DEBUG("XER/CHOICE checked [%c%c%c%c] vs [%s], tcv=%d",
+                       ch_size>0?((const uint8_t *)buf_ptr)[0]:'?',
+                       ch_size>1?((const uint8_t *)buf_ptr)[1]:'?',
+                       ch_size>2?((const uint8_t *)buf_ptr)[2]:'?',
+                       ch_size>3?((const uint8_t *)buf_ptr)[3]:'?',
+               xml_tag, tcv);
+
+               /* Skip the extensions section */
+               if(ctx->phase == 4) {
+                       ASN_DEBUG("skip_unknown(%d, %ld)",
+                               tcv, (long)ctx->left);
+                       switch(xer_skip_unknown(tcv, &ctx->left)) {
+                       case -1:
+                               ctx->phase = 5;
+                               RETURN(RC_FAIL);
+                       case 1:
+                               ctx->phase = 3;
+                               /* Fall through */
+                       case 0:
+                               XER_ADVANCE(ch_size);
+                               continue;
+                       case 2:
+                               ctx->phase = 3;
+                               break;
+                       }
+               }
+
+               switch(tcv) {
+               case XCT_BOTH:
+                       break;  /* No CHOICE? */
+               case XCT_CLOSING:
+                       if(ctx->phase != 3)
+                               break;
+                       XER_ADVANCE(ch_size);
+                       ctx->phase = 5; /* Phase out */
+                       RETURN(RC_OK);
+               case XCT_OPENING:
+                       if(ctx->phase == 0) {
+                               XER_ADVANCE(ch_size);
+                               ctx->phase = 1; /* Processing body phase */
+                               continue;
+                       }
+                       /* Fall through */
+               case XCT_UNKNOWN_OP:
+               case XCT_UNKNOWN_BO:
+
+                       if(ctx->phase != 1)
+                               break;  /* Really unexpected */
+
+                       /*
+                        * Search which inner member corresponds to this tag.
+                        */
+                       for(edx = 0; edx < td->elements_count; edx++) {
+                               elm = &td->elements[edx];
+                               tcv = xer_check_tag(buf_ptr,ch_size,elm->name);
+                               switch(tcv) {
+                               case XCT_BOTH:
+                               case XCT_OPENING:
+                                       /*
+                                        * Process this member.
+                                        */
+                                       ctx->step = edx;
+                                       ctx->phase = 2;
+                                       break;
+                               case XCT_UNKNOWN_OP:
+                               case XCT_UNKNOWN_BO:
+                                       continue;
+                               default:
+                                       edx = td->elements_count;
+                                       break;  /* Phase out */
+                               }
+                               break;
+                       }
+                       if(edx != td->elements_count)
+                               continue;
+
+                       /* It is expected extension */
+                       if(specs->ext_start != -1) {
+                               ASN_DEBUG("Got anticipated extension");
+                               /*
+                                * Check for (XCT_BOTH or XCT_UNKNOWN_BO)
+                                * By using a mask. Only record a pure
+                                * <opening> tags.
+                                */
+                               if(tcv & XCT_CLOSING) {
+                                       /* Found </extension> without body */
+                                       ctx->phase = 3; /* Terminating */
+                               } else {
+                                       ctx->left = 1;
+                                       ctx->phase = 4; /* Skip ...'s */
+                               }
+                               XER_ADVANCE(ch_size);
+                               continue;
+                       }
+
+                       /* Fall through */
+               default:
+                       break;
+               }
+
+               ASN_DEBUG("Unexpected XML tag [%c%c%c%c] in CHOICE [%s]"
+                       " (ph=%d, tag=%s)",
+                       ch_size>0?((const uint8_t *)buf_ptr)[0]:'?',
+                       ch_size>1?((const uint8_t *)buf_ptr)[1]:'?',
+                       ch_size>2?((const uint8_t *)buf_ptr)[2]:'?',
+                       ch_size>3?((const uint8_t *)buf_ptr)[3]:'?',
+                       td->name, ctx->phase, xml_tag);
+               break;
+       }
+
+       ctx->phase = 5; /* Phase out, just in case */
+       RETURN(RC_FAIL);
+}
+
+
+asn_enc_rval_t
+CHOICE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
+                  enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb,
+                  void *app_key) {
+       const asn_CHOICE_specifics_t *specs =
+               (const asn_CHOICE_specifics_t *)td->specifics;
+       asn_enc_rval_t er = {0,0,0};
+       unsigned present = 0;
+
+       if(!sptr)
+               ASN__ENCODE_FAILED;
+
+       /*
+        * Figure out which CHOICE element is encoded.
+        */
+       present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size);
+
+       if(present == 0 || present > td->elements_count) {
+               ASN__ENCODE_FAILED;
+       }  else {
+               asn_enc_rval_t tmper = {0,0,0};
+               asn_TYPE_member_t *elm = &td->elements[present-1];
+               const void *memb_ptr = NULL;
+               const char *mname = elm->name;
+               unsigned int mlen = strlen(mname);
+
+               if(elm->flags & ATF_POINTER) {
+            memb_ptr =
+                *(const void *const *)((const char *)sptr + elm->memb_offset);
+            if(!memb_ptr) ASN__ENCODE_FAILED;
+               } else {
+            memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
+        }
+
+        er.encoded = 0;
+
+               if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel);
+               ASN__CALLBACK3("<", 1, mname, mlen, ">", 1);
+
+               tmper = elm->type->op->xer_encoder(elm->type, memb_ptr,
+                               ilevel + 1, flags, cb, app_key);
+               if(tmper.encoded == -1) return tmper;
+               er.encoded += tmper.encoded;
+
+               ASN__CALLBACK3("</", 2, mname, mlen, ">", 1);
+       }
+
+       if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel - 1);
+
+       ASN__ENCODED_OK(er);
+cb_failed:
+       ASN__ENCODE_FAILED;
+}
+
+asn_dec_rval_t
+CHOICE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx,
+                   const asn_TYPE_descriptor_t *td,
+                   const asn_per_constraints_t *constraints, void **sptr,
+                   asn_per_data_t *pd) {
+    const asn_CHOICE_specifics_t *specs =
+        (const asn_CHOICE_specifics_t *)td->specifics;
+    asn_dec_rval_t rv;
+       const asn_per_constraint_t *ct;
+       asn_TYPE_member_t *elm; /* CHOICE's element */
+       void *memb_ptr;
+       void **memb_ptr2;
+       void *st = *sptr;
+       int value;
+
+       if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx))
+               ASN__DECODE_FAILED;
+
+       /*
+        * Create the target structure if it is not present already.
+        */
+       if(!st) {
+               st = *sptr = CALLOC(1, specs->struct_size);
+               if(!st) ASN__DECODE_FAILED;
+       }
+
+       if(constraints) ct = &constraints->value;
+       else if(td->encoding_constraints.per_constraints) ct = &td->encoding_constraints.per_constraints->value;
+       else ct = 0;
+
+       if(ct && ct->flags & APC_EXTENSIBLE) {
+               value = per_get_few_bits(pd, 1);
+               if(value < 0) ASN__DECODE_STARVED;
+               if(value) ct = 0;       /* Not restricted */
+       }
+
+       if(ct && ct->range_bits >= 0) {
+               value = per_get_few_bits(pd, ct->range_bits);
+               if(value < 0) ASN__DECODE_STARVED;
+               ASN_DEBUG("CHOICE %s got index %d in range %d",
+                       td->name, value, ct->range_bits);
+               if(value > ct->upper_bound)
+                       ASN__DECODE_FAILED;
+       } else {
+               if(specs->ext_start == -1)
+                       ASN__DECODE_FAILED;
+               value = uper_get_nsnnwn(pd);
+               if(value < 0) ASN__DECODE_STARVED;
+               value += specs->ext_start;
+               if((unsigned)value >= td->elements_count)
+                       ASN__DECODE_FAILED;
+       }
+
+       /* Adjust if canonical order is different from natural order */
+       if(specs->from_canonical_order) {
+        ASN_DEBUG("CHOICE presence from wire %d", value);
+               value = specs->from_canonical_order[value];
+        ASN_DEBUG("CHOICE presence index effective %d", value);
+    }
+
+       /* Set presence to be able to free it later */
+       _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1);
+
+       elm = &td->elements[value];
+       if(elm->flags & ATF_POINTER) {
+               /* Member is a pointer to another structure */
+               memb_ptr2 = (void **)((char *)st + elm->memb_offset);
+       } else {
+               memb_ptr = (char *)st + elm->memb_offset;
+               memb_ptr2 = &memb_ptr;
+       }
+       ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name);
+
+       if(ct && ct->range_bits >= 0) {
+               rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type,
+                       elm->encoding_constraints.per_constraints, memb_ptr2, pd);
+       } else {
+               rv = uper_open_type_get(opt_codec_ctx, elm->type,
+                       elm->encoding_constraints.per_constraints, memb_ptr2, pd);
+       }
+
+       if(rv.code != RC_OK)
+               ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d",
+                       elm->name, td->name, rv.code);
+       return rv;
+}
+
+asn_enc_rval_t
+CHOICE_encode_uper(const asn_TYPE_descriptor_t *td,
+                   const asn_per_constraints_t *constraints, const void *sptr,
+                   asn_per_outp_t *po) {
+       const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics;
+       asn_TYPE_member_t *elm; /* CHOICE's element */
+       const asn_per_constraint_t *ct;
+       const void *memb_ptr;
+       unsigned present;
+       int present_enc;
+
+       if(!sptr) ASN__ENCODE_FAILED;
+
+       ASN_DEBUG("Encoding %s as CHOICE", td->name);
+
+       if(constraints) ct = &constraints->value;
+       else if(td->encoding_constraints.per_constraints)
+               ct = &td->encoding_constraints.per_constraints->value;
+       else ct = 0;
+
+       present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size);
+
+       /*
+        * If the structure was not initialized properly, it cannot be encoded:
+        * can't deduce what to encode in the choice type.
+        */
+       if(present == 0 || present > td->elements_count)
+               ASN__ENCODE_FAILED;
+       else
+               present--;
+
+       ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present);
+
+    /* Adjust if canonical order is different from natural order */
+    if(specs->to_canonical_order)
+        present_enc = specs->to_canonical_order[present];
+    else
+        present_enc = present;
+
+    if(ct && ct->range_bits >= 0) {
+               if(present_enc < ct->lower_bound
+               || present_enc > ct->upper_bound) {
+                       if(ct->flags & APC_EXTENSIBLE) {
+                ASN_DEBUG(
+                    "CHOICE member %d (enc %d) is an extension (%ld..%ld)",
+                    present, present_enc, ct->lower_bound, ct->upper_bound);
+                if(per_put_few_bits(po, 1, 1))
+                                       ASN__ENCODE_FAILED;
+                       } else {
+                               ASN__ENCODE_FAILED;
+                       }
+                       ct = 0;
+               }
+       }
+       if(ct && ct->flags & APC_EXTENSIBLE) {
+        ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)",
+                  present, present_enc, ct->lower_bound, ct->upper_bound);
+        if(per_put_few_bits(po, 0, 1))
+                       ASN__ENCODE_FAILED;
+    }
+
+
+       elm = &td->elements[present];
+    ASN_DEBUG("CHOICE member \"%s\" %d (as %d)", elm->name, present,
+              present_enc);
+    if(elm->flags & ATF_POINTER) {
+               /* Member is a pointer to another structure */
+        memb_ptr =
+            *(const void *const *)((const char *)sptr + elm->memb_offset);
+        if(!memb_ptr) ASN__ENCODE_FAILED;
+       } else {
+        memb_ptr = (const char *)sptr + elm->memb_offset;
+    }
+
+    if(ct && ct->range_bits >= 0) {
+        if(per_put_few_bits(po, present_enc, ct->range_bits))
+            ASN__ENCODE_FAILED;
+
+        return elm->type->op->uper_encoder(
+            elm->type, elm->encoding_constraints.per_constraints, memb_ptr, po);
+    } else {
+        asn_enc_rval_t rval = {0,0,0};
+        if(specs->ext_start == -1) ASN__ENCODE_FAILED;
+        if(uper_put_nsnnwn(po, present_enc - specs->ext_start))
+            ASN__ENCODE_FAILED;
+        if(uper_open_type_put(elm->type,
+                              elm->encoding_constraints.per_constraints,
+                              memb_ptr, po))
+            ASN__ENCODE_FAILED;
+        rval.encoded = 0;
+        ASN__ENCODED_OK(rval);
+    }
+}
+
+asn_dec_rval_t
+CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
+                   const asn_TYPE_descriptor_t *td,
+                   const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) {
+       const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics;
+       asn_dec_rval_t rv;
+       const asn_per_constraint_t *ct;
+       asn_TYPE_member_t *elm; /* CHOICE's element */
+       void *memb_ptr;
+       void **memb_ptr2;
+       void *st = *sptr;
+       int value;
+
+       if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx))
+               ASN__DECODE_FAILED;
+
+       /*
+        * Create the target structure if it is not present already.
+        */
+       if(!st) {
+               st = *sptr = CALLOC(1, specs->struct_size);
+               if(!st) ASN__DECODE_FAILED;
+       }
+
+       if(constraints) ct = &constraints->value;
+       else if(td->encoding_constraints.per_constraints)
+               ct = &td->encoding_constraints.per_constraints->value;
+       else ct = 0;
+
+       if(ct && ct->flags & APC_EXTENSIBLE) {
+               value = per_get_few_bits(pd, 1);
+               if(value < 0) ASN__DECODE_STARVED;
+               if(value) ct = 0;       /* Not restricted */
+       }
+
+       if(ct && ct->range_bits >= 0) {
+               value = per_get_few_bits(pd, ct->range_bits);
+               if(value < 0) ASN__DECODE_STARVED;
+               ASN_DEBUG("CHOICE %s got index %d in range %d",
+                         td->name, value, ct->range_bits);
+               if(value > ct->upper_bound)
+                       ASN__DECODE_FAILED;
+       } else {
+               if(specs->ext_start == -1)
+                       ASN__DECODE_FAILED;
+               value = uper_get_nsnnwn(pd);
+               if(value < 0) ASN__DECODE_STARVED;
+               value += specs->ext_start;
+               if((unsigned)value >= td->elements_count)
+                       ASN__DECODE_FAILED;
+       }
+
+       /* Adjust if canonical order is different from natural order */
+       if(specs->from_canonical_order)
+               value = specs->from_canonical_order[value];
+
+       /* Set presence to be able to free it later */
+       _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1);
+
+       elm = &td->elements[value];
+       if(elm->flags & ATF_POINTER) {
+               /* Member is a pointer to another structure */
+               memb_ptr2 = (void **)((char *)st + elm->memb_offset);
+       } else {
+               memb_ptr = (char *)st + elm->memb_offset;
+               memb_ptr2 = &memb_ptr;
+       }
+       ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name);
+
+       if(ct && ct->range_bits >= 0) {
+               rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type,
+                                                elm->encoding_constraints.per_constraints, memb_ptr2, pd);
+       } else {
+               rv = uper_open_type_get(opt_codec_ctx, elm->type,
+                                       elm->encoding_constraints.per_constraints, memb_ptr2, pd);
+       }
+
+       if(rv.code != RC_OK)
+               ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d",
+                         elm->name, td->name, rv.code);
+       return rv;
+}
+
+asn_enc_rval_t
+CHOICE_encode_aper(const asn_TYPE_descriptor_t *td,
+                   const asn_per_constraints_t *constraints,
+                   const void *sptr, asn_per_outp_t *po) {
+       const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics;
+       const asn_TYPE_member_t *elm; /* CHOICE's element */
+       const asn_per_constraint_t *ct;
+       const void *memb_ptr;
+       int present;
+
+       if(!sptr) ASN__ENCODE_FAILED;
+
+       ASN_DEBUG("Encoding %s as CHOICE using ALIGNED PER", td->name);
+
+       if(constraints) ct = &constraints->value;
+       else if(td->encoding_constraints.per_constraints)
+               ct = &td->encoding_constraints.per_constraints->value;
+       else ct = 0;
+
+       present = _fetch_present_idx(sptr,
+                                    specs->pres_offset, specs->pres_size);
+
+       /*
+        * If the structure was not initialized properly, it cannot be encoded:
+        * can't deduce what to encode in the choice type.
+        */
+       if(present <= 0 || (unsigned)present > td->elements_count)
+               ASN__ENCODE_FAILED;
+       else
+               present--;
+
+       /* Adjust if canonical order is different from natural order */
+       if(specs->to_canonical_order)
+               present = specs->to_canonical_order[present];
+
+       ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present);
+
+       if(ct && ct->range_bits >= 0) {
+               if(present < ct->lower_bound
+                       || present > ct->upper_bound) {
+                       if(ct->flags & APC_EXTENSIBLE) {
+                               if(per_put_few_bits(po, 1, 1))
+                                       ASN__ENCODE_FAILED;
+                       } else {
+                               ASN__ENCODE_FAILED;
+                       }
+                       ct = 0;
+               }
+       }
+       if(ct && ct->flags & APC_EXTENSIBLE) {
+               if(per_put_few_bits(po, 0, 1))
+                       ASN__ENCODE_FAILED;
+       }
+
+       elm = &td->elements[present];
+       if(elm->flags & ATF_POINTER) {
+               /* Member is a pointer to another structure */
+               memb_ptr = *(const void *const *)((const char *)sptr + elm->memb_offset);
+               if(!memb_ptr) ASN__ENCODE_FAILED;
+       } else {
+               memb_ptr = (const char *)sptr + elm->memb_offset;
+       }
+
+       if(ct && ct->range_bits >= 0) {
+               if(per_put_few_bits(po, present, ct->range_bits))
+                       ASN__ENCODE_FAILED;
+
+               return elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints,
+                                                  memb_ptr, po);
+       } else {
+               asn_enc_rval_t rval = {0,0,0};
+               if(specs->ext_start == -1)
+                       ASN__ENCODE_FAILED;
+               if (ct) {
+                 if(aper_put_nsnnwn(po, ct->range_bits, present - specs->ext_start))
+                       ASN__ENCODE_FAILED;
+               }
+               if(aper_open_type_put(elm->type, elm->encoding_constraints.per_constraints,
+                                     memb_ptr, po))
+                       ASN__ENCODE_FAILED;
+               rval.encoded = 0;
+               ASN__ENCODED_OK(rval);
+       }
+}
+
+int
+CHOICE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
+             asn_app_consume_bytes_f *cb, void *app_key) {
+    const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics;
+       unsigned present;
+
+       if(!sptr) return (cb("<absent>", 8, app_key) < 0) ? -1 : 0;
+
+       /*
+        * Figure out which CHOICE element is encoded.
+        */
+       present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size);
+
+       /*
+        * Print that element.
+        */
+       if(present > 0 && present <= td->elements_count) {
+               asn_TYPE_member_t *elm = &td->elements[present-1];
+               const void *memb_ptr;
+
+               if(elm->flags & ATF_POINTER) {
+                       memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset);
+                       if(!memb_ptr) return (cb("<absent>", 8, app_key) < 0) ? -1 : 0;
+               } else {
+                       memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
+               }
+
+               /* Print member's name and stuff */
+               if(0) {
+                       if(cb(elm->name, strlen(elm->name), app_key) < 0
+                       || cb(": ", 2, app_key) < 0)
+                               return -1;
+               }
+
+               return elm->type->op->print_struct(elm->type, memb_ptr, ilevel,
+                       cb, app_key);
+       } else {
+               return (cb("<absent>", 8, app_key) < 0) ? -1 : 0;
+       }
+}
+
+void
+CHOICE_free(const asn_TYPE_descriptor_t *td, void *ptr,
+            enum asn_struct_free_method method) {
+    const asn_CHOICE_specifics_t *specs =
+        (const asn_CHOICE_specifics_t *)td->specifics;
+    unsigned present;
+
+       if(!td || !ptr)
+               return;
+
+       ASN_DEBUG("Freeing %s as CHOICE", td->name);
+
+       /*
+        * Figure out which CHOICE element is encoded.
+        */
+       present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size);
+
+       /*
+        * Free that element.
+        */
+       if(present > 0 && present <= td->elements_count) {
+               asn_TYPE_member_t *elm = &td->elements[present-1];
+               void *memb_ptr;
+
+               if(elm->flags & ATF_POINTER) {
+                       memb_ptr = *(void **)((char *)ptr + elm->memb_offset);
+                       if(memb_ptr)
+                               ASN_STRUCT_FREE(*elm->type, memb_ptr);
+               } else {
+                       memb_ptr = (void *)((char *)ptr + elm->memb_offset);
+                       ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr);
+               }
+       }
+
+    switch(method) {
+    case ASFM_FREE_EVERYTHING:
+        FREEMEM(ptr);
+        break;
+    case ASFM_FREE_UNDERLYING:
+        break;
+    case ASFM_FREE_UNDERLYING_AND_RESET:
+        memset(ptr, 0, specs->struct_size);
+        break;
+    }
+}
+
+
+/*
+ * The following functions functions offer protection against -fshort-enums,
+ * compatible with little- and big-endian machines.
+ * If assertion is triggered, either disable -fshort-enums, or add an entry
+ * here with the ->pres_size of your target stracture.
+ * Unless the target structure is packed, the ".present" member
+ * is guaranteed to be aligned properly. ASN.1 compiler itself does not
+ * produce packed code.
+ */
+static unsigned
+_fetch_present_idx(const void *struct_ptr, unsigned pres_offset,
+                   unsigned pres_size) {
+    const void *present_ptr;
+       unsigned present;
+
+       present_ptr = ((const char *)struct_ptr) + pres_offset;
+
+       switch(pres_size) {
+       case sizeof(int):       present = *(const unsigned int *)present_ptr; break;
+       case sizeof(short):     present = *(const unsigned short *)present_ptr; break;
+       case sizeof(char):      present = *(const unsigned char *)present_ptr; break;
+       default:
+               /* ANSI C mandates enum to be equivalent to integer */
+               assert(pres_size != sizeof(int));
+               return 0;       /* If not aborted, pass back safe value */
+       }
+
+       return present;
+}
+
+static void
+_set_present_idx(void *struct_ptr, unsigned pres_offset, unsigned pres_size,
+                 unsigned present) {
+    void *present_ptr;
+       present_ptr = ((char *)struct_ptr) + pres_offset;
+
+       switch(pres_size) {
+       case sizeof(int):       *(unsigned int *)present_ptr   = present; break;
+       case sizeof(short):     *(unsigned short *)present_ptr = present; break;
+       case sizeof(char):      *(unsigned char *)present_ptr  = present; break;
+       default:
+               /* ANSI C mandates enum to be equivalent to integer */
+               assert(pres_size != sizeof(int));
+       }
+}
+
+static const void *
+_get_member_ptr(const asn_TYPE_descriptor_t *td, const void *sptr,
+                asn_TYPE_member_t **elm_ptr, unsigned *present_out) {
+    const asn_CHOICE_specifics_t *specs =
+        (const asn_CHOICE_specifics_t *)td->specifics;
+    unsigned present;
+
+    if(!sptr) {
+        *elm_ptr = NULL;
+        *present_out = 0;
+        return NULL;
+    }
+
+    /*
+        * Figure out which CHOICE element is encoded.
+        */
+       present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size);
+    *present_out = present;
+
+    /*
+     * The presence index is intentionally 1-based to avoid
+     * treating zeroed structure as a valid one.
+     */
+       if(present > 0 && present <= td->elements_count) {
+        asn_TYPE_member_t *const elm = &td->elements[present - 1];
+        const void *memb_ptr;
+
+               if(elm->flags & ATF_POINTER) {
+            memb_ptr =
+                *(const void *const *)((const char *)sptr + elm->memb_offset);
+        } else {
+            memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
+        }
+        *elm_ptr = elm;
+        return memb_ptr;
+    } else {
+        *elm_ptr = NULL;
+        return NULL;
+    }
+
+}
+
+int
+CHOICE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) {
+    asn_TYPE_member_t *aelm;
+    asn_TYPE_member_t *belm;
+    unsigned apresent = 0;
+    unsigned bpresent = 0;
+    const void *amember = _get_member_ptr(td, aptr, &aelm, &apresent);
+    const void *bmember = _get_member_ptr(td, bptr, &belm, &bpresent);
+
+    if(amember && bmember) {
+        if(apresent == bpresent) {
+            assert(aelm == belm);
+            return aelm->type->op->compare_struct(aelm->type, amember, bmember);
+        } else if(apresent < bpresent) {
+            return -1;
+        } else {
+            return 1;
+        }
+    } else if(!amember) {
+        return -1;
+    } else {
+        return 1;
+    }
+}
+
+/*
+ * Return the 1-based choice variant presence index.
+ * Returns 0 in case of error.
+ */
+unsigned
+CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, const void *sptr) {
+    const asn_CHOICE_specifics_t *specs =
+        (const asn_CHOICE_specifics_t *)td->specifics;
+    return _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size);
+}
+
+/*
+ * Sets or resets the 1-based choice variant presence index.
+ * In case a previous index is not zero, the currently selected structure
+ * member is freed and zeroed-out first.
+ * Returns 0 on success and -1 on error.
+ */
+int
+CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, void *sptr,
+                            unsigned present) {
+    const asn_CHOICE_specifics_t *specs =
+        (const asn_CHOICE_specifics_t *)td->specifics;
+    unsigned old_present;
+
+    if(!sptr) {
+        return -1;
+    }
+
+    if(present > td->elements_count)
+        return -1;
+
+    old_present =
+        _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size);
+    if(present == old_present)
+        return 0;
+
+    if(old_present != 0) {
+        assert(old_present <= td->elements_count);
+        ASN_STRUCT_RESET(*td, sptr);
+    }
+
+    _set_present_idx(sptr, specs->pres_offset, specs->pres_size, present);
+
+    return 0;
+}
+
+
+asn_random_fill_result_t
+CHOICE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr,
+                   const asn_encoding_constraints_t *constr,
+                   size_t max_length) {
+    const asn_CHOICE_specifics_t *specs =
+        (const asn_CHOICE_specifics_t *)td->specifics;
+    asn_random_fill_result_t res;
+    asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0};
+    asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0};
+    const asn_TYPE_member_t *elm;
+    unsigned present;
+    void *memb_ptr;   /* Pointer to the member */
+    void **memb_ptr2; /* Pointer to that pointer */
+    void *st = *sptr;
+
+    if(max_length == 0) return result_skipped;
+
+    (void)constr;
+
+    if(st == NULL) {
+        st = CALLOC(1, specs->struct_size);
+        if(st == NULL) {
+            return result_failed;
+        }
+    }
+
+    present = asn_random_between(1, td->elements_count);
+    elm = &td->elements[present - 1];
+
+       if(elm->flags & ATF_POINTER) {
+               /* Member is a pointer to another structure */
+               memb_ptr2 = (void **)((char *)st + elm->memb_offset);
+       } else {
+               memb_ptr = (char *)st + elm->memb_offset;
+               memb_ptr2 = &memb_ptr;
+       }
+
+    res = elm->type->op->random_fill(elm->type, memb_ptr2,
+                                    &elm->encoding_constraints, max_length);
+    _set_present_idx(st, specs->pres_offset, specs->pres_size, present);
+    if(res.code == ARFILL_OK) {
+        *sptr = st;
+    } else {
+        if(st == *sptr) {
+            ASN_STRUCT_RESET(*td, st);
+        } else {
+            ASN_STRUCT_FREE(*td, st);
+        }
+    }
+
+    return res;
+}
+
+
+asn_TYPE_operation_t asn_OP_CHOICE = {
+       CHOICE_free,
+       CHOICE_print,
+       CHOICE_compare,
+       CHOICE_decode_ber,
+       CHOICE_encode_der,
+       CHOICE_decode_xer,
+       CHOICE_encode_xer,
+#ifdef ASN_DISABLE_OER_SUPPORT
+       0,
+       0,
+#else
+       CHOICE_decode_oer,
+       CHOICE_encode_oer,
+#endif  /* ASN_DISABLE_OER_SUPPORT */
+#ifdef ASN_DISABLE_PER_SUPPORT
+       0,
+       0,
+       0,
+       0,
+#else
+       CHOICE_decode_uper,
+       CHOICE_encode_uper,
+       CHOICE_decode_aper,
+       CHOICE_encode_aper,
+#endif /* ASN_DISABLE_PER_SUPPORT */
+       CHOICE_random_fill,
+       CHOICE_outmost_tag
+};
diff --git a/e2ap/lib/constr_CHOICE_oer.c b/e2ap/lib/constr_CHOICE_oer.c
new file mode 100644 (file)
index 0000000..a4c591c
--- /dev/null
@@ -0,0 +1,380 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN_DISABLE_OER_SUPPORT
+
+#include <asn_internal.h>
+#include <constr_CHOICE.h>
+#include <errno.h>
+
+/*
+ * Return a standardized complex structure.
+ */
+#undef  RETURN
+#define RETURN(_code)                    \
+    do {                                 \
+        asn_dec_rval_t rval;             \
+        rval.code = _code;               \
+        rval.consumed = consumed_myself; \
+        return rval;                     \
+    } while(0)
+
+#undef  ADVANCE
+#define ADVANCE(num_bytes)               \
+    do {                                 \
+        size_t num = num_bytes;          \
+        ptr = ((const char *)ptr) + num; \
+        size -= num;                     \
+        consumed_myself += num;          \
+    } while(0)
+
+/*
+ * Switch to the next phase of parsing.
+ */
+#undef  NEXT_PHASE
+#define NEXT_PHASE(ctx) \
+    do {                \
+        ctx->phase++;   \
+        ctx->step = 0;  \
+    } while(0)
+#undef  SET_PHASE
+#define SET_PHASE(ctx, value) \
+    do {                      \
+        ctx->phase = value;   \
+        ctx->step = 0;        \
+    } while(0)
+
+/*
+ * Tags are canonically sorted in the tag to member table.
+ */
+static int
+_search4tag(const void *ap, const void *bp) {
+    const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap;
+    const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp;
+
+    int a_class = BER_TAG_CLASS(a->el_tag);
+    int b_class = BER_TAG_CLASS(b->el_tag);
+
+    if(a_class == b_class) {
+        ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag);
+        ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag);
+
+        if(a_value == b_value)
+            return 0;
+        else if(a_value < b_value)
+            return -1;
+        else
+            return 1;
+    } else if(a_class < b_class) {
+        return -1;
+    } else {
+        return 1;
+    }
+}
+
+/*
+ * X.696 (08/2015) #8.7 Encoding of tags
+ */
+static ssize_t
+oer_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) {
+    ber_tlv_tag_t val;
+    ber_tlv_tag_t tclass;
+    size_t skipped;
+
+    if(size == 0)
+        return 0;
+
+    val = *(const uint8_t *)ptr;
+    tclass = (val >> 6);
+    if((val & 0x3F) != 0x3F) {
+        /* #8.7.1 */
+        *tag_r = ((val & 0x3F) << 2) | tclass;
+        return 1;
+    }
+
+    /*
+     * Each octet contains 7 bits of useful information.
+     * The MSB is 0 if it is the last octet of the tag.
+     */
+    for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; skipped <= size;
+        ptr = ((const char *)ptr) + 1, skipped++) {
+        unsigned int oct = *(const uint8_t *)ptr;
+        if(oct & 0x80) {
+            val = (val << 7) | (oct & 0x7F);
+            /*
+             * Make sure there are at least 9 bits spare
+             * at the MS side of a value.
+             */
+            if(val >> ((8 * sizeof(val)) - 9)) {
+                /*
+                 * We would not be able to accomodate
+                 * any more tag bits.
+                 */
+                return -1;
+            }
+        } else {
+            val = (val << 7) | oct;
+            *tag_r = (val << 2) | tclass;
+            return skipped;
+        }
+    }
+
+    return 0; /* Want more */
+}
+
+asn_dec_rval_t
+CHOICE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx,
+                  const asn_TYPE_descriptor_t *td,
+                  const asn_oer_constraints_t *constraints, void **struct_ptr,
+                  const void *ptr, size_t size) {
+    /*
+     * Bring closer parts of structure description.
+     */
+    const asn_CHOICE_specifics_t *specs =
+        (const asn_CHOICE_specifics_t *)td->specifics;
+    asn_TYPE_member_t *elements = td->elements;
+
+    /*
+     * Parts of the structure being constructed.
+     */
+    void *st = *struct_ptr; /* Target structure. */
+    asn_struct_ctx_t *ctx;  /* Decoder context */
+
+    ssize_t consumed_myself = 0; /* Consumed bytes from ptr */
+
+    (void)constraints;
+
+    ASN_DEBUG("Decoding %s as CHOICE", td->name);
+
+    /*
+     * Create the target structure if it is not present already.
+     */
+    if(st == 0) {
+        st = *struct_ptr = CALLOC(1, specs->struct_size);
+        if(st == 0) {
+            RETURN(RC_FAIL);
+        }
+    }
+
+    /*
+     * Restore parsing context.
+     */
+    ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset);
+    switch(ctx->phase) {
+    case 0: {
+        /*
+         * Discover the tag.
+         */
+        ber_tlv_tag_t tlv_tag; /* T from TLV */
+        ssize_t tag_len;       /* Length of TLV's T */
+
+        tag_len = oer_fetch_tag(ptr, size, &tlv_tag);
+        switch(tag_len) {
+        case 0:
+            ASN__DECODE_STARVED;
+        case -1:
+            ASN__DECODE_FAILED;
+        }
+
+        do {
+            const asn_TYPE_tag2member_t *t2m;
+            asn_TYPE_tag2member_t key = {0, 0, 0, 0};
+            key.el_tag = tlv_tag;
+
+            t2m = (const asn_TYPE_tag2member_t *)bsearch(
+                &key, specs->tag2el, specs->tag2el_count,
+                sizeof(specs->tag2el[0]), _search4tag);
+            if(t2m) {
+                /*
+                 * Found the element corresponding to the tag.
+                 */
+                NEXT_PHASE(ctx);
+                ctx->step = t2m->el_no;
+                break;
+            } else if(specs->ext_start == -1) {
+                ASN_DEBUG(
+                    "Unexpected tag %s "
+                    "in non-extensible CHOICE %s",
+                    ber_tlv_tag_string(tlv_tag), td->name);
+                RETURN(RC_FAIL);
+            } else {
+                /* Skip open type extension */
+                ASN_DEBUG(
+                    "Not implemented skipping open type extension for tag %s",
+                    ber_tlv_tag_string(tlv_tag));
+                RETURN(RC_FAIL);
+            }
+        } while(0);
+
+
+        ADVANCE(tag_len);
+    }
+        /* Fall through */
+    case 1: {
+        asn_TYPE_member_t *elm = &elements[ctx->step]; /* CHOICE's element */
+        void *memb_ptr;         /* Pointer to the member */
+        void **memb_ptr2;       /* Pointer to that pointer */
+        asn_dec_rval_t rval = {0,0};
+
+        /*
+         * Compute the position of the member inside a structure,
+         * and also a type of containment (it may be contained
+         * as pointer or using inline inclusion).
+         */
+        if(elm->flags & ATF_POINTER) {
+            /* Member is a pointer to another structure */
+            memb_ptr2 = (void **)((char *)st + elm->memb_offset);
+        } else {
+            /*
+             * A pointer to a pointer
+             * holding the start of the structure
+             */
+            memb_ptr = (char *)st + elm->memb_offset;
+            memb_ptr2 = &memb_ptr;
+        }
+
+        /* Set presence to be able to free it properly at any time */
+        (void)CHOICE_variant_set_presence(td, st, ctx->step + 1);
+
+        if(specs->ext_start >= 0 && specs->ext_start <= ctx->step) {
+            ssize_t got =
+                oer_open_type_get(opt_codec_ctx, elm->type,
+                                  elm->encoding_constraints.oer_constraints,
+                                  memb_ptr2, ptr, size);
+            if(got < 0) ASN__DECODE_FAILED;
+            if(got == 0) ASN__DECODE_STARVED;
+            rval.code = RC_OK;
+            rval.consumed = got;
+        } else {
+            rval = elm->type->op->oer_decoder(
+                opt_codec_ctx, elm->type,
+                elm->encoding_constraints.oer_constraints, memb_ptr2, ptr,
+                size);
+        }
+        rval.consumed += consumed_myself;
+        switch(rval.code) {
+        case RC_OK:
+            NEXT_PHASE(ctx);
+        case RC_WMORE:
+            break;
+        case RC_FAIL:
+            SET_PHASE(ctx, 3);  /* => 3 */
+        }
+        return rval;
+    }
+    case 2:
+        /* Already decoded everything */
+        RETURN(RC_OK);
+    case 3:
+        /* Failed to decode, after all */
+        RETURN(RC_FAIL);
+    }
+
+    RETURN(RC_FAIL);
+}
+
+/*
+ * X.696 (08/2015) #8.7 Encoding of tags
+ */
+static ssize_t
+oer_put_tag(ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) {
+    uint8_t tclass = BER_TAG_CLASS(tag);
+    ber_tlv_tag_t tval = BER_TAG_VALUE(tag);
+
+    if(tval < 0x3F) {
+        uint8_t b = (uint8_t)((tclass << 6) | tval);
+        if(cb(&b, 1, app_key) < 0) {
+            return -1;
+        }
+        return 1;
+    } else {
+        uint8_t buf[1 + 2 * sizeof(tval)];
+        uint8_t *b = &buf[sizeof(buf)-1]; /* Last addressable */
+        size_t encoded;
+        for(; ; tval >>= 7) {
+            if(tval >> 7) {
+                *b-- = 0x80 | (tval & 0x7f);
+            } else {
+                *b-- = tval & 0x7f;
+                break;
+            }
+        }
+        *b = (uint8_t)((tclass << 6) | 0x3F);
+        encoded = sizeof(buf) - (b - buf);
+        if(cb(b, encoded, app_key) < 0) {
+            return -1;
+        }
+        return encoded;
+    }
+
+}
+
+/*
+ * Encode as Canonical OER.
+ */
+asn_enc_rval_t
+CHOICE_encode_oer(const asn_TYPE_descriptor_t *td,
+                  const asn_oer_constraints_t *constraints, const void *sptr,
+                  asn_app_consume_bytes_f *cb, void *app_key) {
+    const asn_CHOICE_specifics_t *specs =
+        (const asn_CHOICE_specifics_t *)td->specifics;
+    asn_TYPE_member_t *elm; /* CHOICE element */
+    unsigned present;
+    const void *memb_ptr;
+    ber_tlv_tag_t tag;
+    ssize_t tag_len;
+    asn_enc_rval_t er = {0, 0, 0};
+
+    (void)constraints;
+
+    if(!sptr) ASN__ENCODE_FAILED;
+
+    ASN_DEBUG("OER %s encoding as CHOICE", td->name);
+
+    present = CHOICE_variant_get_presence(td, sptr);
+    if(present == 0 || present > td->elements_count) {
+        ASN_DEBUG("CHOICE %s member is not selected", td->name);
+        ASN__ENCODE_FAILED;
+    }
+
+    elm = &td->elements[present-1];
+    if(elm->flags & ATF_POINTER) {
+        memb_ptr =
+            *(const void *const *)((const char *)sptr + elm->memb_offset);
+        if(memb_ptr == 0) {
+            /* Mandatory element absent */
+            ASN__ENCODE_FAILED;
+        }
+    } else {
+        memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
+    }
+
+    tag = asn_TYPE_outmost_tag(elm->type, memb_ptr, elm->tag_mode, elm->tag);
+    if(tag == 0) {
+        ASN__ENCODE_FAILED;
+    }
+
+    tag_len = oer_put_tag(tag, cb, app_key);
+    if(tag_len < 0) {
+        ASN__ENCODE_FAILED;
+    }
+
+    if(specs->ext_start >= 0 && (unsigned)specs->ext_start <= (present-1)) {
+        ssize_t encoded = oer_open_type_put(elm->type,
+                               elm->encoding_constraints.oer_constraints,
+                               memb_ptr, cb, app_key);
+        if(encoded < 0) ASN__ENCODE_FAILED;
+        er.encoded = tag_len + encoded;
+    } else {
+        er = elm->type->op->oer_encoder(
+            elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb,
+            app_key);
+        if(er.encoded >= 0) er.encoded += tag_len;
+    }
+
+    return er;
+}
+
+#endif  /* ASN_DISABLE_OER_SUPPORT */
diff --git a/e2ap/lib/constr_SEQUENCE.c b/e2ap/lib/constr_SEQUENCE.c
new file mode 100644 (file)
index 0000000..43dcac7
--- /dev/null
@@ -0,0 +1,2059 @@
+/*
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <constr_SEQUENCE.h>
+#include <OPEN_TYPE.h>
+#include <per_opentype.h>
+
+/*
+ * Number of bytes left for this structure.
+ * (ctx->left) indicates the number of bytes _transferred_ for the structure.
+ * (size) contains the number of bytes in the buffer passed.
+ */
+#define        LEFT    ((size<(size_t)ctx->left)?size:(size_t)ctx->left)
+
+/*
+ * If the subprocessor function returns with an indication that it wants
+ * more data, it may well be a fatal decoding problem, because the
+ * size is constrained by the <TLV>'s L, even if the buffer size allows
+ * reading more data.
+ * For example, consider the buffer containing the following TLVs:
+ * <T:5><L:1><V> <T:6>...
+ * The TLV length clearly indicates that one byte is expected in V, but
+ * if the V processor returns with "want more data" even if the buffer
+ * contains way more data than the V processor have seen.
+ */
+#define        SIZE_VIOLATION  (ctx->left >= 0 && (size_t)ctx->left <= size)
+
+/*
+ * This macro "eats" the part of the buffer which is definitely "consumed",
+ * i.e. was correctly converted into local representation or rightfully skipped.
+ */
+#undef ADVANCE
+#define        ADVANCE(num_bytes)      do {            \
+               size_t num = num_bytes;         \
+               ptr = ((const char *)ptr) + num; \
+               size -= num;                    \
+               if(ctx->left >= 0)              \
+                       ctx->left -= num;       \
+               consumed_myself += num;         \
+       } while(0)
+
+/*
+ * Switch to the next phase of parsing.
+ */
+#undef NEXT_PHASE
+#undef PHASE_OUT
+#define        NEXT_PHASE(ctx) do {                    \
+               ctx->phase++;                   \
+               ctx->step = 0;                  \
+       } while(0)
+#define        PHASE_OUT(ctx)  do { ctx->phase = 10; } while(0)
+
+/*
+ * Return a standardized complex structure.
+ */
+#undef RETURN
+#define        RETURN(_code)   do {                    \
+               rval.code = _code;              \
+               rval.consumed = consumed_myself;\
+               return rval;                    \
+       } while(0)
+
+/*
+ * Check whether we are inside the extensions group.
+ */
+#define IN_EXTENSION_GROUP(specs, memb_idx) \
+    ((specs)->first_extension >= 0          \
+     && (unsigned)(specs)->first_extension <= (memb_idx))
+
+/*
+ * Tags are canonically sorted in the tag2element map.
+ */
+static int
+_t2e_cmp(const void *ap, const void *bp) {
+       const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap;
+       const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp;
+
+       int a_class = BER_TAG_CLASS(a->el_tag);
+       int b_class = BER_TAG_CLASS(b->el_tag);
+
+       if(a_class == b_class) {
+               ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag);
+               ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag);
+
+               if(a_value == b_value) {
+                       if(a->el_no > b->el_no)
+                               return 1;
+                       /*
+                        * Important: we do not check
+                        * for a->el_no <= b->el_no!
+                        */
+                       return 0;
+               } else if(a_value < b_value)
+                       return -1;
+               else
+                       return 1;
+       } else if(a_class < b_class) {
+               return -1;
+       } else {
+               return 1;
+       }
+}
+
+
+/*
+ * The decoder of the SEQUENCE type.
+ */
+asn_dec_rval_t
+SEQUENCE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx,
+                    const asn_TYPE_descriptor_t *td, void **struct_ptr,
+                    const void *ptr, size_t size, int tag_mode) {
+    /*
+        * Bring closer parts of structure description.
+        */
+       const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics;
+    const asn_TYPE_member_t *elements = td->elements;
+
+    /*
+        * Parts of the structure being constructed.
+        */
+       void *st = *struct_ptr; /* Target structure. */
+       asn_struct_ctx_t *ctx;  /* Decoder context */
+
+       ber_tlv_tag_t tlv_tag;  /* T from TLV */
+       asn_dec_rval_t rval;    /* Return code from subparsers */
+
+       ssize_t consumed_myself = 0;    /* Consumed bytes from ptr */
+       size_t edx;                     /* SEQUENCE element's index */
+
+       ASN_DEBUG("Decoding %s as SEQUENCE", td->name);
+       
+       /*
+        * Create the target structure if it is not present already.
+        */
+       if(st == 0) {
+               st = *struct_ptr = CALLOC(1, specs->struct_size);
+               if(st == 0) {
+                       RETURN(RC_FAIL);
+               }
+       }
+
+       /*
+        * Restore parsing context.
+        */
+       ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset);
+       
+       /*
+        * Start to parse where left previously
+        */
+       switch(ctx->phase) {
+       case 0:
+               /*
+                * PHASE 0.
+                * Check that the set of tags associated with given structure
+                * perfectly fits our expectations.
+                */
+
+               rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size,
+                       tag_mode, 1, &ctx->left, 0);
+               if(rval.code != RC_OK) {
+                       ASN_DEBUG("%s tagging check failed: %d",
+                               td->name, rval.code);
+                       return rval;
+               }
+
+               if(ctx->left >= 0)
+                       ctx->left += rval.consumed; /* ?Substracted below! */
+               ADVANCE(rval.consumed);
+
+               NEXT_PHASE(ctx);
+
+               ASN_DEBUG("Structure consumes %ld bytes, buffer %ld",
+                       (long)ctx->left, (long)size);
+
+               /* Fall through */
+       case 1:
+               /*
+                * PHASE 1.
+                * From the place where we've left it previously,
+                * try to decode the next member from the list of
+                * this structure's elements.
+                * (ctx->step) stores the member being processed
+                * between invocations and the microphase {0,1} of parsing
+                * that member:
+                *      step = (<member_number> * 2 + <microphase>).
+                */
+         for(edx = ((size_t)ctx->step >> 1); edx < td->elements_count;
+                       edx++, ctx->step = (ctx->step & ~1) + 2) {
+               void *memb_ptr;         /* Pointer to the member */
+               void **memb_ptr2;       /* Pointer to that pointer */
+               ssize_t tag_len;        /* Length of TLV's T */
+               size_t opt_edx_end;     /* Next non-optional element */
+               size_t n;
+               int use_bsearch;
+
+               if(ctx->step & 1)
+                       goto microphase2;
+
+               /*
+                * MICROPHASE 1: Synchronize decoding.
+                */
+               ASN_DEBUG("In %s SEQUENCE left %d, edx=%" ASN_PRI_SIZE " flags=%d"
+                               " opt=%d ec=%d",
+                       td->name, (int)ctx->left, edx,
+                       elements[edx].flags, elements[edx].optional,
+                       td->elements_count);
+
+        if(ctx->left == 0 /* No more stuff is expected */
+           && (
+                  /* Explicit OPTIONAL specification reaches the end */
+                  (edx + elements[edx].optional == td->elements_count) ||
+                  /* All extensions are optional */
+                  IN_EXTENSION_GROUP(specs, edx))) {
+            ASN_DEBUG("End of SEQUENCE %s", td->name);
+            /*
+             * Found the legitimate end of the structure.
+             */
+            PHASE_OUT(ctx);
+            RETURN(RC_OK);
+        }
+
+               /*
+                * Fetch the T from TLV.
+                */
+               tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag);
+               ASN_DEBUG("Current tag in %s SEQUENCE for element %" ASN_PRI_SIZE " "
+                       "(%s) is %s encoded in %d bytes, of frame %ld",
+                       td->name, edx, elements[edx].name,
+                       ber_tlv_tag_string(tlv_tag), (int)tag_len, (long)LEFT);
+               switch(tag_len) {
+               case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE);
+                       /* Fall through */
+               case -1: RETURN(RC_FAIL);
+               }
+
+        if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) {
+            if(LEFT < 2) {
+                if(SIZE_VIOLATION) {
+                    RETURN(RC_FAIL);
+                } else {
+                    RETURN(RC_WMORE);
+                }
+            } else if(((const uint8_t *)ptr)[1] == 0) {
+                ASN_DEBUG("edx = %" ASN_PRI_SIZE ", opt = %d, ec=%d", edx,
+                          elements[edx].optional, td->elements_count);
+                if((edx + elements[edx].optional == td->elements_count)
+                   || IN_EXTENSION_GROUP(specs, edx)) {
+                    /*
+                     * Yeah, baby! Found the terminator
+                     * of the indefinite length structure.
+                     */
+                    /*
+                     * Proceed to the canonical
+                     * finalization function.
+                     * No advancing is necessary.
+                     */
+                    goto phase3;
+                }
+            }
+        }
+
+               /*
+                * Find the next available type with this tag.
+                */
+               use_bsearch = 0;
+               opt_edx_end = edx + elements[edx].optional + 1;
+               if(opt_edx_end > td->elements_count)
+                       opt_edx_end = td->elements_count;       /* Cap */
+               else if(opt_edx_end - edx > 8) {
+                       /* Limit the scope of linear search... */
+                       opt_edx_end = edx + 8;
+                       use_bsearch = 1;
+                       /* ... and resort to bsearch() */
+               }
+               for(n = edx; n < opt_edx_end; n++) {
+                       if(BER_TAGS_EQUAL(tlv_tag, elements[n].tag)) {
+                               /*
+                                * Found element corresponding to the tag
+                                * being looked at.
+                                * Reposition over the right element.
+                                */
+                               edx = n;
+                               ctx->step = 1 + 2 * edx;        /* Remember! */
+                               goto microphase2;
+                       } else if(elements[n].flags & ATF_ANY_TYPE) {
+                               /*
+                                * This is the ANY type, which may bear
+                                * any flag whatsoever.
+                                */
+                               edx = n;
+                               ctx->step = 1 + 2 * edx;        /* Remember! */
+                               goto microphase2;
+                       } else if(elements[n].tag == (ber_tlv_tag_t)-1) {
+                               use_bsearch = 1;
+                               break;
+                       }
+               }
+               if(use_bsearch) {
+                       /*
+                        * Resort to a binary search over
+                        * sorted array of tags.
+                        */
+                       const asn_TYPE_tag2member_t *t2m;
+                       asn_TYPE_tag2member_t key = {0, 0, 0, 0};
+                       key.el_tag = tlv_tag;
+                       key.el_no = edx;
+                       t2m = (const asn_TYPE_tag2member_t *)bsearch(&key,
+                               specs->tag2el, specs->tag2el_count,
+                               sizeof(specs->tag2el[0]), _t2e_cmp);
+                       if(t2m) {
+                               const asn_TYPE_tag2member_t *best = 0;
+                               const asn_TYPE_tag2member_t *t2m_f, *t2m_l;
+                               size_t edx_max = edx + elements[edx].optional;
+                               /*
+                                * Rewind to the first element with that tag,
+                                * `cause bsearch() does not guarantee order.
+                                */
+                               t2m_f = t2m + t2m->toff_first;
+                               t2m_l = t2m + t2m->toff_last;
+                               for(t2m = t2m_f; t2m <= t2m_l; t2m++) {
+                                       if(t2m->el_no > edx_max) break;
+                                       if(t2m->el_no < edx) continue;
+                                       best = t2m;
+                               }
+                               if(best) {
+                                       edx = best->el_no;
+                                       ctx->step = 1 + 2 * edx;
+                                       goto microphase2;
+                               }
+                       }
+                       n = opt_edx_end;
+               }
+               if(n == opt_edx_end) {
+                       /*
+                        * If tag is unknown, it may be either
+                        * an unknown (thus, incorrect) tag,
+                        * or an extension (...),
+                        * or an end of the indefinite-length structure.
+                        */
+                       if(!IN_EXTENSION_GROUP(specs,
+                               edx + elements[edx].optional)) {
+                               ASN_DEBUG("Unexpected tag %s (at %" ASN_PRI_SIZE ")",
+                                       ber_tlv_tag_string(tlv_tag), edx);
+                               ASN_DEBUG("Expected tag %s (%s)%s",
+                                       ber_tlv_tag_string(elements[edx].tag),
+                                       elements[edx].name,
+                                       elements[edx].optional
+                                               ?" or alternatives":"");
+                               RETURN(RC_FAIL);
+                       } else {
+                               /* Skip this tag */
+                               ssize_t skip;
+                               edx += elements[edx].optional;
+
+                               ASN_DEBUG("Skipping unexpected %s (at %" ASN_PRI_SIZE ")",
+                                       ber_tlv_tag_string(tlv_tag), edx);
+                               skip = ber_skip_length(opt_codec_ctx,
+                                       BER_TLV_CONSTRUCTED(ptr),
+                                       (const char *)ptr + tag_len,
+                                       LEFT - tag_len);
+                               ASN_DEBUG("Skip length %d in %s",
+                                       (int)skip, td->name);
+                               switch(skip) {
+                               case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE);
+                                       /* Fall through */
+                               case -1: RETURN(RC_FAIL);
+                               }
+
+                               ADVANCE(skip + tag_len);
+                               ctx->step -= 2;
+                               edx--;
+                               continue;  /* Try again with the next tag */
+                       }
+               }
+
+               /*
+                * MICROPHASE 2: Invoke the member-specific decoder.
+                */
+               ctx->step |= 1;         /* Confirm entering next microphase */
+       microphase2:
+               ASN_DEBUG("Inside SEQUENCE %s MF2", td->name);
+               
+               /*
+                * Compute the position of the member inside a structure,
+                * and also a type of containment (it may be contained
+                * as pointer or using inline inclusion).
+                */
+               if(elements[edx].flags & ATF_POINTER) {
+                       /* Member is a pointer to another structure */
+                       memb_ptr2 = (void **)((char *)st + elements[edx].memb_offset);
+               } else {
+                       /*
+                        * A pointer to a pointer
+                        * holding the start of the structure
+                        */
+                       memb_ptr = (char *)st + elements[edx].memb_offset;
+                       memb_ptr2 = &memb_ptr;
+               }
+               /*
+                * Invoke the member fetch routine according to member's type
+                */
+               if(elements[edx].flags & ATF_OPEN_TYPE) {
+                       rval = OPEN_TYPE_ber_get(opt_codec_ctx, td, st, &elements[edx], ptr, LEFT);
+        } else {
+                       rval = elements[edx].type->op->ber_decoder(opt_codec_ctx,
+                                       elements[edx].type,
+                                       memb_ptr2, ptr, LEFT,
+                                       elements[edx].tag_mode);
+               }
+               ASN_DEBUG("In %s SEQUENCE decoded %" ASN_PRI_SIZE " %s of %d "
+                       "in %d bytes rval.code %d, size=%d",
+                       td->name, edx, elements[edx].type->name,
+                       (int)LEFT, (int)rval.consumed, rval.code, (int)size);
+               switch(rval.code) {
+               case RC_OK:
+                       break;
+               case RC_WMORE: /* More data expected */
+                       if(!SIZE_VIOLATION) {
+                               ADVANCE(rval.consumed);
+                               RETURN(RC_WMORE);
+                       }
+                       ASN_DEBUG("Size violation (c->l=%ld <= s=%ld)",
+                               (long)ctx->left, (long)size);
+                       /* Fall through */
+               case RC_FAIL: /* Fatal error */
+                       RETURN(RC_FAIL);
+               } /* switch(rval) */
+               
+               ADVANCE(rval.consumed);
+         }     /* for(all structure members) */
+
+       phase3:
+               ctx->phase = 3;
+        /* Fall through */
+       case 3: /* 00 and other tags expected */
+       case 4: /* only 00's expected */
+
+               ASN_DEBUG("SEQUENCE %s Leftover: %ld, size = %ld",
+                       td->name, (long)ctx->left, (long)size);
+
+               /*
+                * Skip everything until the end of the SEQUENCE.
+                */
+               while(ctx->left) {
+                       ssize_t tl, ll;
+
+                       tl = ber_fetch_tag(ptr, LEFT, &tlv_tag);
+                       switch(tl) {
+                       case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE);
+                               /* Fall through */
+                       case -1: RETURN(RC_FAIL);
+                       }
+
+                       /*
+                        * If expected <0><0>...
+                        */
+                       if(ctx->left < 0
+                               && ((const uint8_t *)ptr)[0] == 0) {
+                               if(LEFT < 2) {
+                                       if(SIZE_VIOLATION)
+                                               RETURN(RC_FAIL);
+                                       else
+                                               RETURN(RC_WMORE);
+                               } else if(((const uint8_t *)ptr)[1] == 0) {
+                                       /*
+                                        * Correctly finished with <0><0>.
+                                        */
+                                       ADVANCE(2);
+                                       ctx->left++;
+                                       ctx->phase = 4;
+                                       continue;
+                               }
+                       }
+
+                       if(!IN_EXTENSION_GROUP(specs, td->elements_count)
+                       || ctx->phase == 4) {
+                               ASN_DEBUG("Unexpected continuation "
+                                       "of a non-extensible type "
+                                       "%s (SEQUENCE): %s",
+                                       td->name,
+                                       ber_tlv_tag_string(tlv_tag));
+                               RETURN(RC_FAIL);
+                       }
+
+                       ll = ber_skip_length(opt_codec_ctx,
+                               BER_TLV_CONSTRUCTED(ptr),
+                               (const char *)ptr + tl, LEFT - tl);
+                       switch(ll) {
+                       case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE);
+                               /* Fall through */
+                       case -1: RETURN(RC_FAIL);
+                       }
+
+                       ADVANCE(tl + ll);
+               }
+
+               PHASE_OUT(ctx);
+       }
+       
+       RETURN(RC_OK);
+}
+
+
+/*
+ * The DER encoder of the SEQUENCE type.
+ */
+asn_enc_rval_t
+SEQUENCE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr,
+                    int tag_mode, ber_tlv_tag_t tag,
+                    asn_app_consume_bytes_f *cb, void *app_key) {
+    size_t computed_size = 0;
+       asn_enc_rval_t erval = {0,0,0};
+       ssize_t ret;
+       size_t edx;
+
+       ASN_DEBUG("%s %s as SEQUENCE",
+               cb?"Encoding":"Estimating", td->name);
+
+       /*
+        * Gather the length of the underlying members sequence.
+        */
+       for(edx = 0; edx < td->elements_count; edx++) {
+               asn_TYPE_member_t *elm = &td->elements[edx];
+
+               const void *memb_ptr;           /* Pointer to the member */
+        const void *const *memb_ptr2; /* Pointer to that pointer */
+
+        if(elm->flags & ATF_POINTER) {
+            memb_ptr2 =
+                (const void *const *)((const char *)sptr + elm->memb_offset);
+            if(!*memb_ptr2) {
+                               ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present",
+                                       elm->name, edx);
+                               if(elm->optional)
+                                       continue;
+                               /* Mandatory element is missing */
+                               ASN__ENCODE_FAILED;
+                       }
+               } else {
+            memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
+            memb_ptr2 = &memb_ptr;
+               }
+
+               /* Eliminate default values */
+               if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0)
+                       continue;
+
+               erval = elm->type->op->der_encoder(elm->type, *memb_ptr2,
+                       elm->tag_mode, elm->tag,
+                       0, 0);
+               if(erval.encoded == -1)
+                       return erval;
+               computed_size += erval.encoded;
+               ASN_DEBUG("Member %" ASN_PRI_SIZE " %s estimated %ld bytes",
+                       edx, elm->name, (long)erval.encoded);
+       }
+
+       /*
+        * Encode the TLV for the sequence itself.
+        */
+       ret = der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key);
+       ASN_DEBUG("Wrote tags: %ld (+%ld)", (long)ret, (long)computed_size);
+       if(ret == -1)
+               ASN__ENCODE_FAILED;
+       erval.encoded = computed_size + ret;
+
+       if(!cb) ASN__ENCODED_OK(erval);
+
+       /*
+        * Encode all members.
+        */
+       for(edx = 0; edx < td->elements_count; edx++) {
+               asn_TYPE_member_t *elm = &td->elements[edx];
+               asn_enc_rval_t tmperval = {0,0,0};
+        const void *memb_ptr;           /* Pointer to the member */
+        const void *const *memb_ptr2;   /* Pointer to that pointer */
+
+        if(elm->flags & ATF_POINTER) {
+            memb_ptr2 =
+                (const void *const *)((const char *)sptr + elm->memb_offset);
+            if(!*memb_ptr2) continue;
+               } else {
+            memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
+            memb_ptr2 = &memb_ptr;
+               }
+
+               /* Eliminate default values */
+        if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0)
+            continue;
+
+               tmperval = elm->type->op->der_encoder(elm->type, *memb_ptr2,
+                       elm->tag_mode, elm->tag, cb, app_key);
+               if(tmperval.encoded == -1)
+                       return tmperval;
+               computed_size -= tmperval.encoded;
+               ASN_DEBUG("Member %" ASN_PRI_SIZE " %s of SEQUENCE %s encoded in %ld bytes",
+                       edx, elm->name, td->name, (long)tmperval.encoded);
+       }
+
+       if(computed_size != 0)
+               /*
+                * Encoded size is not equal to the computed size.
+                */
+               ASN__ENCODE_FAILED;
+
+       ASN__ENCODED_OK(erval);
+}
+
+
+#undef XER_ADVANCE
+#define XER_ADVANCE(num_bytes)           \
+    do {                                 \
+        size_t num = (num_bytes);        \
+        ptr = ((const char *)ptr) + num; \
+        size -= num;                     \
+        consumed_myself += num;          \
+    } while(0)
+
+/*
+ * Decode the XER (XML) data.
+ */
+asn_dec_rval_t
+SEQUENCE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx,
+                    const asn_TYPE_descriptor_t *td, void **struct_ptr,
+                    const char *opt_mname, const void *ptr, size_t size) {
+    /*
+        * Bring closer parts of structure description.
+        */
+       const asn_SEQUENCE_specifics_t *specs
+               = (const asn_SEQUENCE_specifics_t *)td->specifics;
+       asn_TYPE_member_t *elements = td->elements;
+       const char *xml_tag = opt_mname ? opt_mname : td->xml_tag;
+
+       /*
+        * ... and parts of the structure being constructed.
+        */
+       void *st = *struct_ptr; /* Target structure. */
+       asn_struct_ctx_t *ctx;  /* Decoder context */
+
+       asn_dec_rval_t rval;            /* Return value from a decoder */
+       ssize_t consumed_myself = 0;    /* Consumed bytes from ptr */
+       size_t edx;                     /* Element index */
+
+       /*
+        * Create the target structure if it is not present already.
+        */
+       if(st == 0) {
+               st = *struct_ptr = CALLOC(1, specs->struct_size);
+               if(st == 0) RETURN(RC_FAIL);
+       }
+
+       /*
+        * Restore parsing context.
+        */
+       ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset);
+
+
+       /*
+        * Phases of XER/XML processing:
+        * Phase 0: Check that the opening tag matches our expectations.
+        * Phase 1: Processing body and reacting on closing tag.
+        * Phase 2: Processing inner type.
+        * Phase 3: Skipping unknown extensions.
+        * Phase 4: PHASED OUT
+        */
+       for(edx = ctx->step; ctx->phase <= 3;) {
+               pxer_chunk_type_e ch_type;      /* XER chunk type */
+               ssize_t ch_size;                /* Chunk size */
+               xer_check_tag_e tcv;            /* Tag check value */
+               asn_TYPE_member_t *elm;
+
+               /*
+                * Go inside the inner member of a sequence.
+                */
+               if(ctx->phase == 2) {
+                       asn_dec_rval_t tmprval;
+                       void *memb_ptr_dontuse;         /* Pointer to the member */
+                       void **memb_ptr2;       /* Pointer to that pointer */
+
+                       elm = &td->elements[edx];
+
+                       if(elm->flags & ATF_POINTER) {
+                               /* Member is a pointer to another structure */
+                               memb_ptr2 = (void **)((char *)st + elm->memb_offset);
+                       } else {
+                               memb_ptr_dontuse = (char *)st + elm->memb_offset;
+                               memb_ptr2 = &memb_ptr_dontuse;  /* Only use of memb_ptr_dontuse */
+                       }
+
+                       if(elm->flags & ATF_OPEN_TYPE) {
+                               tmprval = OPEN_TYPE_xer_get(opt_codec_ctx, td, st, elm, ptr, size);
+                       } else {
+                               /* Invoke the inner type decoder, m.b. multiple times */
+                               tmprval = elm->type->op->xer_decoder(opt_codec_ctx,
+                                               elm->type, memb_ptr2, elm->name,
+                                               ptr, size);
+                       }
+                       XER_ADVANCE(tmprval.consumed);
+                       if(tmprval.code != RC_OK)
+                               RETURN(tmprval.code);
+                       ctx->phase = 1; /* Back to body processing */
+                       ctx->step = ++edx;
+                       ASN_DEBUG("XER/SEQUENCE phase => %d, step => %d",
+                               ctx->phase, ctx->step);
+                       /* Fall through */
+               }
+
+               /*
+                * Get the next part of the XML stream.
+                */
+               ch_size = xer_next_token(&ctx->context, ptr, size,
+                       &ch_type);
+               if(ch_size == -1) {
+                   RETURN(RC_FAIL);
+               } else {
+                       switch(ch_type) {
+                       case PXER_WMORE:
+                               RETURN(RC_WMORE);
+                       case PXER_COMMENT:      /* Got XML comment */
+                       case PXER_TEXT:         /* Ignore free-standing text */
+                               XER_ADVANCE(ch_size);   /* Skip silently */
+                               continue;
+                       case PXER_TAG:
+                               break;  /* Check the rest down there */
+                       }
+               }
+
+               tcv = xer_check_tag(ptr, ch_size, xml_tag);
+               ASN_DEBUG("XER/SEQUENCE: tcv = %d, ph=%d [%s]",
+                       tcv, ctx->phase, xml_tag);
+
+               /* Skip the extensions section */
+               if(ctx->phase == 3) {
+                       switch(xer_skip_unknown(tcv, &ctx->left)) {
+                       case -1:
+                               ctx->phase = 4;
+                               RETURN(RC_FAIL);
+                       case 0:
+                               XER_ADVANCE(ch_size);
+                               continue;
+                       case 1:
+                               XER_ADVANCE(ch_size);
+                               ctx->phase = 1;
+                               continue;
+                       case 2:
+                               ctx->phase = 1;
+                               break;
+                       }
+               }
+
+               switch(tcv) {
+               case XCT_CLOSING:
+                       if(ctx->phase == 0) break;
+                       ctx->phase = 0;
+                       /* Fall through */
+               case XCT_BOTH:
+            if(ctx->phase == 0) {
+                if(edx >= td->elements_count ||
+                   /* Explicit OPTIONAL specs reaches the end */
+                   (edx + elements[edx].optional == td->elements_count) ||
+                   /* All extensions are optional */
+                   IN_EXTENSION_GROUP(specs, edx)) {
+                    XER_ADVANCE(ch_size);
+                                       ctx->phase = 4; /* Phase out */
+                                       RETURN(RC_OK);
+                               } else {
+                                       ASN_DEBUG("Premature end of XER SEQUENCE");
+                                       RETURN(RC_FAIL);
+                               }
+                       }
+                       /* Fall through */
+               case XCT_OPENING:
+                       if(ctx->phase == 0) {
+                               XER_ADVANCE(ch_size);
+                               ctx->phase = 1; /* Processing body phase */
+                               continue;
+                       }
+                       /* Fall through */
+               case XCT_UNKNOWN_OP:
+               case XCT_UNKNOWN_BO:
+
+                       ASN_DEBUG("XER/SEQUENCE: tcv=%d, ph=%d, edx=%" ASN_PRI_SIZE "",
+                               tcv, ctx->phase, edx);
+                       if(ctx->phase != 1) {
+                               break;  /* Really unexpected */
+                       }
+
+                       if(edx < td->elements_count) {
+                               /*
+                                * Search which member corresponds to this tag.
+                                */
+                               size_t n;
+                               size_t edx_end = edx + elements[edx].optional + 1;
+                               if(edx_end > td->elements_count)
+                                       edx_end = td->elements_count;
+                               for(n = edx; n < edx_end; n++) {
+                                       elm = &td->elements[n];
+                                       tcv = xer_check_tag(ptr, ch_size, elm->name);
+                                       switch(tcv) {
+                                       case XCT_BOTH:
+                                       case XCT_OPENING:
+                                               /*
+                                                * Process this member.
+                                                */
+                                               ctx->step = edx = n;
+                                               ctx->phase = 2;
+                                               break;
+                                       case XCT_UNKNOWN_OP:
+                                       case XCT_UNKNOWN_BO:
+                                               continue;
+                                       default:
+                                               n = edx_end;
+                                               break;  /* Phase out */
+                                       }
+                                       break;
+                               }
+                               if(n != edx_end)
+                                       continue;
+                       } else {
+                               ASN_DEBUG("Out of defined members: %" ASN_PRI_SIZE "/%u",
+                                       edx, td->elements_count);
+                       }
+
+                       /* It is expected extension */
+                       if(IN_EXTENSION_GROUP(specs,
+                               edx + (edx < td->elements_count
+                                       ? elements[edx].optional : 0))) {
+                               ASN_DEBUG("Got anticipated extension at %" ASN_PRI_SIZE "",
+                                       edx);
+                               /*
+                                * Check for (XCT_BOTH or XCT_UNKNOWN_BO)
+                                * By using a mask. Only record a pure
+                                * <opening> tags.
+                                */
+                               if(tcv & XCT_CLOSING) {
+                                       /* Found </extension> without body */
+                               } else {
+                                       ctx->left = 1;
+                                       ctx->phase = 3; /* Skip ...'s */
+                               }
+                               XER_ADVANCE(ch_size);
+                               continue;
+                       }
+
+                       /* Fall through */
+               default:
+                       break;
+               }
+
+               ASN_DEBUG("Unexpected XML tag in SEQUENCE [%c%c%c%c%c%c]",
+                       size>0?((const char *)ptr)[0]:'.',
+                       size>1?((const char *)ptr)[1]:'.',
+                       size>2?((const char *)ptr)[2]:'.',
+                       size>3?((const char *)ptr)[3]:'.',
+                       size>4?((const char *)ptr)[4]:'.',
+                       size>5?((const char *)ptr)[5]:'.');
+               break;
+       }
+
+       ctx->phase = 4; /* "Phase out" on hard failure */
+       RETURN(RC_FAIL);
+}
+
+asn_enc_rval_t
+SEQUENCE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr,
+                    int ilevel, enum xer_encoder_flags_e flags,
+                    asn_app_consume_bytes_f *cb, void *app_key) {
+    asn_enc_rval_t er = {0,0,0};
+    int xcan = (flags & XER_F_CANONICAL);
+    asn_TYPE_descriptor_t *tmp_def_val_td = 0;
+    void *tmp_def_val = 0;
+    size_t edx;
+
+    if(!sptr) ASN__ENCODE_FAILED;
+
+    er.encoded = 0;
+
+    for(edx = 0; edx < td->elements_count; edx++) {
+        asn_enc_rval_t tmper = {0,0,0};
+        asn_TYPE_member_t *elm = &td->elements[edx];
+        const void *memb_ptr;
+        const char *mname = elm->name;
+        unsigned int mlen = strlen(mname);
+
+        if(elm->flags & ATF_POINTER) {
+            memb_ptr =
+                *(const void *const *)((const char *)sptr + elm->memb_offset);
+            if(!memb_ptr) {
+                assert(tmp_def_val == 0);
+                if(elm->default_value_set) {
+                    if(elm->default_value_set(&tmp_def_val)) {
+                        ASN__ENCODE_FAILED;
+                    } else {
+                        memb_ptr = tmp_def_val;
+                        tmp_def_val_td = elm->type;
+                    }
+                } else if(elm->optional) {
+                    continue;
+                } else {
+                    /* Mandatory element is missing */
+                    ASN__ENCODE_FAILED;
+                }
+            }
+        } else {
+            memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
+        }
+
+        if(!xcan) ASN__TEXT_INDENT(1, ilevel);
+        ASN__CALLBACK3("<", 1, mname, mlen, ">", 1);
+
+        /* Print the member itself */
+        tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1,
+                                           flags, cb, app_key);
+        if(tmp_def_val) {
+            ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val);
+            tmp_def_val = 0;
+        }
+        if(tmper.encoded == -1) return tmper;
+        er.encoded += tmper.encoded;
+
+        ASN__CALLBACK3("</", 2, mname, mlen, ">", 1);
+    }
+
+    if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1);
+
+    ASN__ENCODED_OK(er);
+cb_failed:
+    if(tmp_def_val) ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val);
+    ASN__ENCODE_FAILED;
+}
+
+int
+SEQUENCE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
+               asn_app_consume_bytes_f *cb, void *app_key) {
+    size_t edx;
+       int ret;
+
+       if(!sptr) return (cb("<absent>", 8, app_key) < 0) ? -1 : 0;
+
+       /* Dump preamble */
+       if(cb(td->name, strlen(td->name), app_key) < 0
+       || cb(" ::= {", 6, app_key) < 0)
+               return -1;
+
+       for(edx = 0; edx < td->elements_count; edx++) {
+               asn_TYPE_member_t *elm = &td->elements[edx];
+               const void *memb_ptr;
+
+               if(elm->flags & ATF_POINTER) {
+                       memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset);
+                       if(!memb_ptr) {
+                               if(elm->optional) continue;
+                               /* Print <absent> line */
+                               /* Fall through */
+                       }
+               } else {
+                       memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
+               }
+
+               /* Indentation */
+               _i_INDENT(1);
+
+               /* Print the member's name and stuff */
+               if(cb(elm->name, strlen(elm->name), app_key) < 0
+               || cb(": ", 2, app_key) < 0)
+                       return -1;
+
+               /* Print the member itself */
+               ret = elm->type->op->print_struct(elm->type, memb_ptr, ilevel + 1,
+                       cb, app_key);
+               if(ret) return ret;
+       }
+
+       ilevel--;
+       _i_INDENT(1);
+
+       return (cb("}", 1, app_key) < 0) ? -1 : 0;
+}
+
+void
+SEQUENCE_free(const asn_TYPE_descriptor_t *td, void *sptr,
+              enum asn_struct_free_method method) {
+    size_t edx;
+    const asn_SEQUENCE_specifics_t *specs =
+        (const asn_SEQUENCE_specifics_t *)td->specifics;
+    asn_struct_ctx_t *ctx; /* Decoder context */
+
+       if(!td || !sptr)
+               return;
+
+       ASN_DEBUG("Freeing %s as SEQUENCE", td->name);
+
+       for(edx = 0; edx < td->elements_count; edx++) {
+               asn_TYPE_member_t *elm = &td->elements[edx];
+               void *memb_ptr;
+               if(elm->flags & ATF_POINTER) {
+                       memb_ptr = *(void **)((char *)sptr + elm->memb_offset);
+                       if(memb_ptr)
+                               ASN_STRUCT_FREE(*elm->type, memb_ptr);
+               } else {
+                       memb_ptr = (void *)((char *)sptr + elm->memb_offset);
+                       ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr);
+               }
+       }
+
+       /* Clean parsing context */
+       ctx = (asn_struct_ctx_t *)((char *)sptr + specs->ctx_offset);
+       FREEMEM(ctx->ptr);
+
+    switch(method) {
+    case ASFM_FREE_EVERYTHING:
+        FREEMEM(sptr);
+        break;
+    case ASFM_FREE_UNDERLYING:
+        break;
+    case ASFM_FREE_UNDERLYING_AND_RESET:
+        memset(
+            sptr, 0,
+            ((const asn_SEQUENCE_specifics_t *)(td->specifics))->struct_size);
+        break;
+    }
+}
+
+int
+SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+                    asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+    size_t edx;
+
+       if(!sptr) {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: value not given (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+
+       /*
+        * Iterate over structure members and check their validity.
+        */
+       for(edx = 0; edx < td->elements_count; edx++) {
+               asn_TYPE_member_t *elm = &td->elements[edx];
+               const void *memb_ptr;
+
+               if(elm->flags & ATF_POINTER) {
+                       memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset);
+                       if(!memb_ptr) {
+                               if(elm->optional)
+                                       continue;
+                               ASN__CTFAIL(app_key, td, sptr,
+                               "%s: mandatory element %s absent (%s:%d)",
+                               td->name, elm->name, __FILE__, __LINE__);
+                               return -1;
+                       }
+               } else {
+                       memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
+               }
+
+               if(elm->encoding_constraints.general_constraints) {
+                       int ret = elm->encoding_constraints.general_constraints(elm->type, memb_ptr,
+                               ctfailcb, app_key);
+                       if(ret) return ret;
+               } else {
+                       return elm->type->encoding_constraints.general_constraints(elm->type,
+                               memb_ptr, ctfailcb, app_key);
+               }
+       }
+
+       return 0;
+}
+
+#ifndef ASN_DISABLE_PER_SUPPORT
+
+asn_dec_rval_t
+SEQUENCE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx,
+                     const asn_TYPE_descriptor_t *td,
+                     const asn_per_constraints_t *constraints, void **sptr,
+                     asn_per_data_t *pd) {
+    const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics;
+       void *st = *sptr;       /* Target structure. */
+       int extpresent;         /* Extension additions are present */
+       uint8_t *opres;         /* Presence of optional root members */
+       asn_per_data_t opmd;
+       asn_dec_rval_t rv;
+       size_t edx;
+
+       (void)constraints;
+
+       if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx))
+               ASN__DECODE_FAILED;
+
+       if(!st) {
+               st = *sptr = CALLOC(1, specs->struct_size);
+               if(!st) ASN__DECODE_FAILED;
+       }
+
+       ASN_DEBUG("Decoding %s as SEQUENCE (UPER)", td->name);
+
+       /* Handle extensions */
+       if(specs->first_extension < 0) {
+               extpresent = 0;
+       } else {
+               extpresent = per_get_few_bits(pd, 1);
+               if(extpresent < 0) ASN__DECODE_STARVED;
+       }
+
+       /* Prepare a place and read-in the presence bitmap */
+       memset(&opmd, 0, sizeof(opmd));
+       if(specs->roms_count) {
+               opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1);
+               if(!opres) ASN__DECODE_FAILED;
+               /* Get the presence map */
+               if(per_get_many_bits(pd, opres, 0, specs->roms_count)) {
+                       FREEMEM(opres);
+                       ASN__DECODE_STARVED;
+               }
+               opmd.buffer = opres;
+               opmd.nbits = specs->roms_count;
+               ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)",
+                       td->name, specs->roms_count, *opres);
+       } else {
+               opres = 0;
+       }
+
+       /*
+        * Get the sequence ROOT elements.
+        */
+    for(edx = 0;
+        edx < (specs->first_extension < 0 ? td->elements_count
+                                          : (size_t)specs->first_extension);
+        edx++) {
+        asn_TYPE_member_t *elm = &td->elements[edx];
+               void *memb_ptr;         /* Pointer to the member */
+               void **memb_ptr2;       /* Pointer to that pointer */
+
+               assert(!IN_EXTENSION_GROUP(specs, edx));
+
+               /* Fetch the pointer to this member */
+               if(elm->flags & ATF_POINTER) {
+                       memb_ptr2 = (void **)((char *)st + elm->memb_offset);
+               } else {
+                       memb_ptr = (char *)st + elm->memb_offset;
+                       memb_ptr2 = &memb_ptr;
+               }
+
+               /* Deal with optionality */
+               if(elm->optional) {
+                       int present = per_get_few_bits(&opmd, 1);
+                       ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)",
+                               td->name, elm->name, present,
+                               (int)opmd.nboff, (int)opmd.nbits);
+                       if(present == 0) {
+                               /* This element is not present */
+                               if(elm->default_value_set) {
+                                       /* Fill-in DEFAULT */
+                                       if(elm->default_value_set(memb_ptr2)) {
+                                               FREEMEM(opres);
+                                               ASN__DECODE_FAILED;
+                                       }
+                                       ASN_DEBUG("Filled-in default");
+                               }
+                               /* The member is just not present */
+                               continue;
+                       }
+                       /* Fall through */
+               }
+
+               /* Fetch the member from the stream */
+               ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name);
+
+               if(elm->flags & ATF_OPEN_TYPE) {
+                       rv = OPEN_TYPE_uper_get(opt_codec_ctx, td, st, elm, pd);
+               } else {
+                       rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type,
+                                       elm->encoding_constraints.per_constraints, memb_ptr2, pd);
+               }
+               if(rv.code != RC_OK) {
+                       ASN_DEBUG("Failed decode %s in %s",
+                               elm->name, td->name);
+                       FREEMEM(opres);
+                       return rv;
+               }
+       }
+
+       /* Optionality map is not needed anymore */
+       FREEMEM(opres);
+
+       /*
+        * Deal with extensions.
+        */
+       if(extpresent) {
+               ssize_t bmlength;
+               uint8_t *epres;         /* Presence of extension members */
+               asn_per_data_t epmd;
+
+               bmlength = uper_get_nslength(pd);
+               if(bmlength < 0) ASN__DECODE_STARVED;
+
+               ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name);
+
+               epres = (uint8_t *)MALLOC((bmlength + 15) >> 3);
+               if(!epres) ASN__DECODE_STARVED;
+
+               /* Get the extensions map */
+               if(per_get_many_bits(pd, epres, 0, bmlength)) {
+                       FREEMEM(epres);
+                       ASN__DECODE_STARVED;
+               }
+
+               memset(&epmd, 0, sizeof(epmd));
+               epmd.buffer = epres;
+               epmd.nbits = bmlength;
+               ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)",
+                       td->name, (long)bmlength, *epres);
+
+           /* Go over extensions and read them in */
+        for(edx = specs->first_extension; edx < td->elements_count; edx++) {
+            asn_TYPE_member_t *elm = &td->elements[edx];
+            void *memb_ptr;   /* Pointer to the member */
+            void **memb_ptr2; /* Pointer to that pointer */
+            int present;
+
+            /* Fetch the pointer to this member */
+            if(elm->flags & ATF_POINTER) {
+                memb_ptr2 = (void **)((char *)st + elm->memb_offset);
+            } else {
+                memb_ptr = (void *)((char *)st + elm->memb_offset);
+                memb_ptr2 = &memb_ptr;
+            }
+
+            present = per_get_few_bits(&epmd, 1);
+            if(present <= 0) {
+                if(present < 0) break; /* No more extensions */
+                continue;
+            }
+
+            ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name,
+                      *memb_ptr2);
+            rv = uper_open_type_get(opt_codec_ctx, elm->type,
+                                    elm->encoding_constraints.per_constraints,
+                                    memb_ptr2, pd);
+            if(rv.code != RC_OK) {
+                FREEMEM(epres);
+                return rv;
+            }
+           }
+
+               /* Skip over overflow extensions which aren't present
+                * in this system's version of the protocol */
+               for(;;) {
+                       ASN_DEBUG("Getting overflow extensions");
+                       switch(per_get_few_bits(&epmd, 1)) {
+                       case -1: break;
+                       case 0: continue;
+                       default:
+                               if(uper_open_type_skip(opt_codec_ctx, pd)) {
+                                       FREEMEM(epres);
+                                       ASN__DECODE_STARVED;
+                               }
+                ASN_DEBUG("Skipped overflow extension");
+                continue;
+                       }
+                       break;
+               }
+
+               FREEMEM(epres);
+       }
+
+    if(specs->first_extension >= 0) {
+        unsigned i;
+        /* Fill DEFAULT members in extensions */
+        for(i = specs->roms_count; i < specs->roms_count + specs->aoms_count;
+            i++) {
+            asn_TYPE_member_t *elm;
+            void **memb_ptr2; /* Pointer to member pointer */
+
+            edx = specs->oms[i];
+            elm = &td->elements[edx];
+
+            if(!elm->default_value_set) continue;
+
+            /* Fetch the pointer to this member */
+            if(elm->flags & ATF_POINTER) {
+                memb_ptr2 = (void **)((char *)st + elm->memb_offset);
+                if(*memb_ptr2) continue;
+            } else {
+                continue; /* Extensions are all optionals */
+            }
+
+            /* Set default value */
+            if(elm->default_value_set(memb_ptr2)) {
+                ASN__DECODE_FAILED;
+            }
+        }
+    }
+
+       rv.consumed = 0;
+       rv.code = RC_OK;
+       return rv;
+}
+
+static int
+SEQUENCE__handle_extensions(const asn_TYPE_descriptor_t *td, const void *sptr,
+                            asn_per_outp_t *po1, asn_per_outp_t *po2) {
+    const asn_SEQUENCE_specifics_t *specs =
+        (const asn_SEQUENCE_specifics_t *)td->specifics;
+    int exts_present = 0;
+    int exts_count = 0;
+    size_t edx;
+
+    if(specs->first_extension < 0) {
+        return 0;
+    }
+
+    /* Find out which extensions are present */
+    for(edx = specs->first_extension; edx < td->elements_count; edx++) {
+        asn_TYPE_member_t *elm = &td->elements[edx];
+        const void *memb_ptr;         /* Pointer to the member */
+        const void *const *memb_ptr2; /* Pointer to that pointer */
+        int present;
+
+        /* Fetch the pointer to this member */
+        if(elm->flags & ATF_POINTER) {
+            memb_ptr2 =
+                (const void *const *)((const char *)sptr + elm->memb_offset);
+            present = (*memb_ptr2 != 0);
+        } else {
+            memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
+            memb_ptr2 = &memb_ptr;
+                       present = 1;
+               }
+
+        ASN_DEBUG("checking %s:%s (@%" ASN_PRI_SIZE ") present => %d", elm->name,
+                  elm->type->name, edx, present);
+        exts_count++;
+        exts_present += present;
+
+        /* Encode as presence marker */
+        if(po1 && per_put_few_bits(po1, present, 1)) {
+            return -1;
+        }
+        /* Encode as open type field */
+        if(po2 && present
+           && uper_open_type_put(elm->type,
+                                 elm->encoding_constraints.per_constraints,
+                                 *memb_ptr2, po2))
+            return -1;
+    }
+
+    return exts_present ? exts_count : 0;
+}
+
+asn_enc_rval_t
+SEQUENCE_encode_uper(const asn_TYPE_descriptor_t *td,
+                     const asn_per_constraints_t *constraints, const void *sptr,
+                     asn_per_outp_t *po) {
+    const asn_SEQUENCE_specifics_t *specs
+               = (const asn_SEQUENCE_specifics_t *)td->specifics;
+       asn_enc_rval_t er = {0,0,0};
+       int n_extensions;
+       size_t edx;
+       size_t i;
+
+       (void)constraints;
+
+       if(!sptr)
+               ASN__ENCODE_FAILED;
+
+       er.encoded = 0;
+
+       ASN_DEBUG("Encoding %s as SEQUENCE (UPER)", td->name);
+
+       /*
+        * X.691#18.1 Whether structure is extensible
+        * and whether to encode extensions
+        */
+    if(specs->first_extension < 0) {
+        n_extensions = 0; /* There are no extensions to encode */
+    } else {
+        n_extensions = SEQUENCE__handle_extensions(td, sptr, 0, 0);
+        if(n_extensions < 0) ASN__ENCODE_FAILED;
+        if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) {
+            ASN__ENCODE_FAILED;
+        }
+    }
+
+       /* Encode a presence bitmap */
+       for(i = 0; i < specs->roms_count; i++) {
+               asn_TYPE_member_t *elm;
+               const void *memb_ptr;           /* Pointer to the member */
+        const void *const *memb_ptr2; /* Pointer to that pointer */
+        int present;
+
+               edx = specs->oms[i];
+               elm = &td->elements[edx];
+
+               /* Fetch the pointer to this member */
+               if(elm->flags & ATF_POINTER) {
+            memb_ptr2 =
+                (const void *const *)((const char *)sptr + elm->memb_offset);
+            present = (*memb_ptr2 != 0);
+               } else {
+            memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
+            memb_ptr2 = &memb_ptr;
+                       present = 1;
+               }
+
+               /* Eliminate default values */
+        if(present && elm->default_value_cmp
+           && elm->default_value_cmp(*memb_ptr2) == 0)
+            present = 0;
+
+               ASN_DEBUG("Element %s %s %s->%s is %s",
+                       elm->flags & ATF_POINTER ? "ptr" : "inline",
+                       elm->default_value_cmp ? "def" : "wtv",
+                       td->name, elm->name, present ? "present" : "absent");
+               if(per_put_few_bits(po, present, 1))
+                       ASN__ENCODE_FAILED;
+       }
+
+       /*
+        * Encode the sequence ROOT elements.
+        */
+    ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension,
+              td->elements_count);
+       for(edx = 0;
+               edx < ((specs->first_extension < 0) ? td->elements_count
+                                            : (size_t)specs->first_extension);
+               edx++) {
+               asn_TYPE_member_t *elm = &td->elements[edx];
+               const void *memb_ptr;         /* Pointer to the member */
+               const void *const *memb_ptr2; /* Pointer to that pointer */
+
+               ASN_DEBUG("About to encode %s", elm->type->name);
+
+               /* Fetch the pointer to this member */
+               if(elm->flags & ATF_POINTER) {
+            memb_ptr2 =
+                (const void *const *)((const char *)sptr + elm->memb_offset);
+            if(!*memb_ptr2) {
+                               ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present",
+                                       elm->name, edx);
+                               if(elm->optional)
+                                       continue;
+                               /* Mandatory element is missing */
+                               ASN__ENCODE_FAILED;
+                       }
+               } else {
+            memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
+            memb_ptr2 = &memb_ptr;
+               }
+
+               /* Eliminate default values */
+               if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0)
+                       continue;
+
+        ASN_DEBUG("Encoding %s->%s:%s", td->name, elm->name, elm->type->name);
+        er = elm->type->op->uper_encoder(
+            elm->type, elm->encoding_constraints.per_constraints, *memb_ptr2,
+            po);
+        if(er.encoded == -1) return er;
+    }
+
+       /* No extensions to encode */
+       if(!n_extensions) ASN__ENCODED_OK(er);
+
+       ASN_DEBUG("Length of extensions %d bit-map", n_extensions);
+       /* #18.8. Write down the presence bit-map length. */
+       if(uper_put_nslength(po, n_extensions))
+               ASN__ENCODE_FAILED;
+
+       ASN_DEBUG("Bit-map of %d elements", n_extensions);
+       /* #18.7. Encoding the extensions presence bit-map. */
+       /* TODO: act upon NOTE in #18.7 for canonical PER */
+       if(SEQUENCE__handle_extensions(td, sptr, po, 0) != n_extensions)
+               ASN__ENCODE_FAILED;
+
+       ASN_DEBUG("Writing %d extensions", n_extensions);
+       /* #18.9. Encode extensions as open type fields. */
+       if(SEQUENCE__handle_extensions(td, sptr, 0, po) != n_extensions)
+               ASN__ENCODE_FAILED;
+
+       ASN__ENCODED_OK(er);
+}
+
+asn_dec_rval_t
+SEQUENCE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
+                     const asn_TYPE_descriptor_t *td,
+                     const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) {
+       const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics;
+       void *st = *sptr;       /* Target structure. */
+       int extpresent;         /* Extension additions are present */
+       uint8_t *opres;         /* Presence of optional root members */
+       asn_per_data_t opmd;
+       asn_dec_rval_t rv;
+       size_t edx;
+
+       (void)constraints;
+
+       if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx))
+               ASN__DECODE_FAILED;
+
+       if(!st) {
+               st = *sptr = CALLOC(1, specs->struct_size);
+               if(!st) ASN__DECODE_FAILED;
+       }
+
+       ASN_DEBUG("Decoding %s as SEQUENCE (APER)", td->name);
+
+       /* Handle extensions */
+       if(specs->first_extension < 0) {
+               extpresent = 0;
+       } else {
+               extpresent = per_get_few_bits(pd, 1);
+               if(extpresent < 0) ASN__DECODE_STARVED;
+       }
+
+       /* Prepare a place and read-in the presence bitmap */
+       memset(&opmd, 0, sizeof(opmd));
+       if(specs->roms_count) {
+               opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1);
+               if(!opres) ASN__DECODE_FAILED;
+               /* Get the presence map */
+               if(per_get_many_bits(pd, opres, 0, specs->roms_count)) {
+                       FREEMEM(opres);
+                       ASN__DECODE_STARVED;
+               }
+               opmd.buffer = opres;
+               opmd.nbits = specs->roms_count;
+               ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)",
+                         td->name, specs->roms_count, *opres);
+       } else {
+               opres = 0;
+       }
+
+       /*
+        * Get the sequence ROOT elements.
+        */
+       for(edx = 0; edx < td->elements_count; edx++) {
+               asn_TYPE_member_t *elm = &td->elements[edx];
+               void *memb_ptr;         /* Pointer to the member */
+               void **memb_ptr2;       /* Pointer to that pointer */
+#if 0
+               int padding;
+#endif
+
+               if(IN_EXTENSION_GROUP(specs, edx))
+                       continue;
+
+               /* Fetch the pointer to this member */
+               if(elm->flags & ATF_POINTER) {
+                       memb_ptr2 = (void **)((char *)st + elm->memb_offset);
+               } else {
+                       memb_ptr = (char *)st + elm->memb_offset;
+                       memb_ptr2 = &memb_ptr;
+               }
+#if 0
+               /* Get Padding */
+               padding = (8 - (pd->moved % 8)) % 8;
+               if(padding > 0)
+                       ASN_DEBUG("For element %s,offset= %ld Padding bits = %d", td->name, pd->moved, padding);
+#if 0 /* old way of removing padding */
+               per_get_few_bits(pd, padding);
+#else /* Experimental fix proposed by @mhanna123 */
+               if(edx != (td->elements_count-1))
+                       per_get_few_bits(pd, padding);
+               else {
+                       if(specs->roms_count && (padding > 0))
+                               ASN_DEBUG(">>>>> not skipping padding of %d bits for element:%ld out of %d", padding, edx, td->elements_count);
+                       else
+                               per_get_few_bits(pd, padding);
+               }
+#endif /* dealing with padding */
+#endif
+               /* Deal with optionality */
+               if(elm->optional) {
+                       int present = per_get_few_bits(&opmd, 1);
+                       ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)",
+                                 td->name, elm->name, present,
+                                 (int)opmd.nboff, (int)opmd.nbits);
+                       if(present == 0) {
+                               /* This element is not present */
+                               if(elm->default_value_set) {
+                                       /* Fill-in DEFAULT */
+                                       if(elm->default_value_set(memb_ptr2)) {
+                                               FREEMEM(opres);
+                                               ASN__DECODE_FAILED;
+                                       }
+                                       ASN_DEBUG("Filled-in default");
+                               }
+                               /* The member is just not present */
+                               continue;
+                       }
+                       /* Fall through */
+               }
+
+               /* Fetch the member from the stream */
+               ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name);
+
+               if(elm->flags & ATF_OPEN_TYPE) {
+                       rv = OPEN_TYPE_aper_get(opt_codec_ctx, td, st, elm, pd);
+               } else {
+                       rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type,
+                                       elm->encoding_constraints.per_constraints, memb_ptr2, pd);
+               }
+               if(rv.code != RC_OK) {
+                       ASN_DEBUG("Failed decode %s in %s",
+                                 elm->name, td->name);
+                       FREEMEM(opres);
+                       return rv;
+               }
+       }
+
+       /* Optionality map is not needed anymore */
+       FREEMEM(opres);
+
+       /*
+        * Deal with extensions.
+        */
+       if(extpresent) {
+               ssize_t bmlength;
+               uint8_t *epres;         /* Presence of extension members */
+               asn_per_data_t epmd;
+
+               bmlength = aper_get_nslength(pd);
+               if(bmlength < 0) ASN__DECODE_STARVED;
+
+               ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name);
+
+               epres = (uint8_t *)MALLOC((bmlength + 15) >> 3);
+               if(!epres) ASN__DECODE_STARVED;
+
+               /* Get the extensions map */
+               if(per_get_many_bits(pd, epres, 0, bmlength))
+                       ASN__DECODE_STARVED;
+
+               memset(&epmd, 0, sizeof(epmd));
+               epmd.buffer = epres;
+               epmd.nbits = bmlength;
+               ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)",
+                         td->name, bmlength, *epres);
+
+               /* Go over extensions and read them in */
+               for(edx = specs->first_extension; edx < td->elements_count; edx++) {
+                       asn_TYPE_member_t *elm = &td->elements[edx];
+                       void *memb_ptr;         /* Pointer to the member */
+                       void **memb_ptr2;       /* Pointer to that pointer */
+                       int present;
+
+                       if(!IN_EXTENSION_GROUP(specs, edx)) {
+                               ASN_DEBUG("%ld is not extension", edx);
+                               continue;
+                       }
+
+                       /* Fetch the pointer to this member */
+                       if(elm->flags & ATF_POINTER) {
+                               memb_ptr2 = (void **)((char *)st + elm->memb_offset);
+                       } else {
+                               memb_ptr = (void *)((char *)st + elm->memb_offset);
+                               memb_ptr2 = &memb_ptr;
+                       }
+
+                       present = per_get_few_bits(&epmd, 1);
+                       if(present <= 0) {
+                               if(present < 0) break;  /* No more extensions */
+                               continue;
+                       }
+
+                       ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, *memb_ptr2);
+                       rv = aper_open_type_get(opt_codec_ctx, elm->type,
+                                               elm->encoding_constraints.per_constraints, memb_ptr2, pd);
+                       if(rv.code != RC_OK) {
+                               FREEMEM(epres);
+                               return rv;
+                       }
+               }
+
+               /* Skip over overflow extensions which aren't present
+                * in this system's version of the protocol */
+               for(;;) {
+                       ASN_DEBUG("Getting overflow extensions");
+                       switch(per_get_few_bits(&epmd, 1)) {
+                       case -1:
+                               break;
+                       case 0:
+                               continue;
+                       default:
+                               if(aper_open_type_skip(opt_codec_ctx, pd)) {
+                                       FREEMEM(epres);
+                                       ASN__DECODE_STARVED;
+                               }
+                       }
+                       break;
+               }
+
+               FREEMEM(epres);
+       }
+
+       /* Fill DEFAULT members in extensions */
+       for(edx = specs->roms_count; edx < specs->roms_count
+               + specs->aoms_count; edx++) {
+               asn_TYPE_member_t *elm = &td->elements[edx];
+               void **memb_ptr2;       /* Pointer to member pointer */
+
+               if(!elm->default_value_set) continue;
+
+               /* Fetch the pointer to this member */
+               if(elm->flags & ATF_POINTER) {
+                       memb_ptr2 = (void **)((char *)st
+                                             + elm->memb_offset);
+                       if(*memb_ptr2) continue;
+               } else {
+                       continue;       /* Extensions are all optionals */
+               }
+
+               /* Set default value */
+               if(elm->default_value_set(memb_ptr2)) {
+                       ASN__DECODE_FAILED;
+               }
+       }
+
+       rv.consumed = 0;
+       rv.code = RC_OK;
+       return rv;
+}
+
+static int
+SEQUENCE_handle_extensions_aper(const asn_TYPE_descriptor_t *td,
+                                const void *sptr,
+                                asn_per_outp_t *po1, asn_per_outp_t *po2) {
+       const asn_SEQUENCE_specifics_t *specs
+           = (const asn_SEQUENCE_specifics_t *)td->specifics;
+       int exts_present = 0;
+       int exts_count = 0;
+       size_t edx;
+
+       if(specs->first_extension < 0) {
+               return 0;
+       }
+
+       /* Find out which extensions are present */
+       for(edx = specs->first_extension; edx < td->elements_count; edx++) {
+               asn_TYPE_member_t *elm = &td->elements[edx];
+               const void *memb_ptr;           /* Pointer to the member */
+               const void * const *memb_ptr2;  /* Pointer to that pointer */
+               int present;
+
+               if(!IN_EXTENSION_GROUP(specs, edx)) {
+                       ASN_DEBUG("%s (@%ld) is not extension", elm->type->name, edx);
+                       continue;
+               }
+
+               /* Fetch the pointer to this member */
+               if(elm->flags & ATF_POINTER) {
+                       memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset);
+                       present = (*memb_ptr2 != 0);
+               } else {
+                       memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
+                       memb_ptr2 = &memb_ptr;
+                       present = 1;
+               }
+
+               ASN_DEBUG("checking %s (@%ld) present => %d",
+                         elm->type->name, edx, present);
+               exts_count++;
+               exts_present += present;
+
+               /* Encode as presence marker */
+               if(po1 && per_put_few_bits(po1, present, 1))
+                       return -1;
+               /* Encode as open type field */
+               if(po2 && present && aper_open_type_put(elm->type,
+                                                       elm->encoding_constraints.per_constraints, *memb_ptr2, po2))
+                       return -1;
+
+       }
+
+       return exts_present ? exts_count : 0;
+}
+
+asn_enc_rval_t
+SEQUENCE_encode_aper(const asn_TYPE_descriptor_t *td,
+                     const asn_per_constraints_t *constraints,
+                     const void *sptr, asn_per_outp_t *po) {
+       const asn_SEQUENCE_specifics_t *specs
+           = (const asn_SEQUENCE_specifics_t *)td->specifics;
+       asn_enc_rval_t er = {0,0,0};
+       int n_extensions;
+       size_t edx;
+       size_t i;
+
+       (void)constraints;
+
+       if(!sptr)
+               ASN__ENCODE_FAILED;
+
+       er.encoded = 0;
+
+       ASN_DEBUG("Encoding %s as SEQUENCE (APER)", td->name);
+
+       /*
+        * X.691#18.1 Whether structure is extensible
+        * and whether to encode extensions
+        */
+       if(specs->first_extension < 0) {
+               n_extensions = 0; /* There are no extensions to encode */
+       } else {
+               n_extensions = SEQUENCE_handle_extensions_aper(td, sptr, 0, 0);
+               if(n_extensions < 0) ASN__ENCODE_FAILED;
+               if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) {
+                       ASN__ENCODE_FAILED;
+               }
+       }
+
+       /* Encode a presence bitmap */
+       for(i = 0; i < specs->roms_count; i++) {
+               asn_TYPE_member_t *elm;
+               const void *memb_ptr;    /* Pointer to the member */
+               const void * const *memb_ptr2;       /* Pointer to that pointer */
+               int present;
+
+               edx = specs->oms[i];
+               elm = &td->elements[edx];
+
+               /* Fetch the pointer to this member */
+               if(elm->flags & ATF_POINTER) {
+                       memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset);
+                       present = (*memb_ptr2 != 0);
+               } else {
+                       memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
+                       memb_ptr2 = &memb_ptr;
+                       present = 1;
+               }
+
+               /* Eliminate default values */
+               if(present && elm->default_value_cmp
+                       && elm->default_value_cmp(memb_ptr2) == 1)
+                       present = 0;
+
+               ASN_DEBUG("Element %s %s %s->%s is %s",
+                         elm->flags & ATF_POINTER ? "ptr" : "inline",
+                         elm->default_value_cmp ? "def" : "wtv",
+                         td->name, elm->name, present ? "present" : "absent");
+               if(per_put_few_bits(po, present, 1))
+                       ASN__ENCODE_FAILED;
+       }
+
+       /*
+        * Encode the sequence ROOT elements.
+        */
+       ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension,
+              td->elements_count);
+       for(edx = 0;
+               edx < ((specs->first_extension < 0) ? td->elements_count
+                                            : (size_t)specs->first_extension);
+               edx++) {
+               asn_TYPE_member_t *elm = &td->elements[edx];
+               const void *memb_ptr;          /* Pointer to the member */
+               const void * const *memb_ptr2; /* Pointer to that pointer */
+
+               if(IN_EXTENSION_GROUP(specs, edx))
+                       continue;
+
+               ASN_DEBUG("About to encode %s", elm->type->name);
+
+               /* Fetch the pointer to this member */
+               if(elm->flags & ATF_POINTER) {
+                       memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset);
+                       if(!*memb_ptr2) {
+                               ASN_DEBUG("Element %s %ld not present",
+                                         elm->name, edx);
+                               if(elm->optional)
+                                       continue;
+                               /* Mandatory element is missing */
+                               ASN__ENCODE_FAILED;
+                       }
+               } else {
+                       memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
+                       memb_ptr2 = &memb_ptr;
+               }
+
+               /* Eliminate default values */
+               if(elm->default_value_cmp && elm->default_value_cmp(memb_ptr2) == 1)
+                       continue;
+
+               ASN_DEBUG("Encoding %s->%s", td->name, elm->name);
+               er = elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints,
+                                                *memb_ptr2, po);
+               if(er.encoded == -1)
+                       return er;
+       }
+
+       /* No extensions to encode */
+       if(!n_extensions) ASN__ENCODED_OK(er);
+
+       ASN_DEBUG("Length of %d bit-map", n_extensions);
+       /* #18.8. Write down the presence bit-map length. */
+       if(aper_put_nslength(po, n_extensions))
+               ASN__ENCODE_FAILED;
+
+       ASN_DEBUG("Bit-map of %d elements", n_extensions);
+       /* #18.7. Encoding the extensions presence bit-map. */
+       /* TODO: act upon NOTE in #18.7 for canonical PER */
+       if(SEQUENCE_handle_extensions_aper(td, sptr, po, 0) != n_extensions)
+               ASN__ENCODE_FAILED;
+
+       ASN_DEBUG("Writing %d extensions", n_extensions);
+       /* #18.9. Encode extensions as open type fields. */
+       if(SEQUENCE_handle_extensions_aper(td, sptr, 0, po) != n_extensions)
+               ASN__ENCODE_FAILED;
+
+       ASN__ENCODED_OK(er);
+}
+
+#endif  /* ASN_DISABLE_PER_SUPPORT */
+
+int
+SEQUENCE_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
+                 const void *bptr) {
+    size_t edx;
+
+       for(edx = 0; edx < td->elements_count; edx++) {
+               asn_TYPE_member_t *elm = &td->elements[edx];
+               const void *amemb;
+               const void *bmemb;
+        int ret;
+
+               if(elm->flags & ATF_POINTER) {
+            amemb =
+                *(const void *const *)((const char *)aptr + elm->memb_offset);
+            bmemb =
+                *(const void *const *)((const char *)bptr + elm->memb_offset);
+            if(!amemb) {
+                if(!bmemb) continue;
+                if(elm->default_value_cmp
+                   && elm->default_value_cmp(bmemb) == 0) {
+                    /* A is absent, but B is present and equal to DEFAULT */
+                    continue;
+                }
+                return -1;
+            } else if(!bmemb) {
+                if(elm->default_value_cmp
+                   && elm->default_value_cmp(amemb) == 0) {
+                    /* B is absent, but A is present and equal to DEFAULT */
+                    continue;
+                }
+                return 1;
+            }
+               } else {
+            amemb = (const void *)((const char *)aptr + elm->memb_offset);
+            bmemb = (const void *)((const char *)bptr + elm->memb_offset);
+               }
+
+        ret = elm->type->op->compare_struct(elm->type, amemb, bmemb);
+        if(ret != 0) return ret;
+    }
+
+    return 0;
+}
+
+asn_TYPE_operation_t asn_OP_SEQUENCE = {
+       SEQUENCE_free,
+       SEQUENCE_print,
+       SEQUENCE_compare,
+       SEQUENCE_decode_ber,
+       SEQUENCE_encode_der,
+       SEQUENCE_decode_xer,
+       SEQUENCE_encode_xer,
+#ifdef ASN_DISABLE_OER_SUPPORT
+       0,
+       0,
+#else
+       SEQUENCE_decode_oer,
+       SEQUENCE_encode_oer,
+#endif  /* ASN_DISABLE_OER_SUPPORT */
+#ifdef ASN_DISABLE_PER_SUPPORT
+       0,
+       0,
+       0,
+       0,
+#else
+       SEQUENCE_decode_uper,
+       SEQUENCE_encode_uper,
+       SEQUENCE_decode_aper,
+       SEQUENCE_encode_aper,
+#endif /* ASN_DISABLE_PER_SUPPORT */
+       SEQUENCE_random_fill,
+       0       /* Use generic outmost tag fetcher */
+};
+
+
+asn_random_fill_result_t
+SEQUENCE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr,
+                   const asn_encoding_constraints_t *constr,
+                   size_t max_length) {
+    const asn_SEQUENCE_specifics_t *specs =
+        (const asn_SEQUENCE_specifics_t *)td->specifics;
+    asn_random_fill_result_t result_ok = {ARFILL_OK, 0};
+    asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0};
+    asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0};
+    void *st = *sptr;
+    size_t edx;
+
+    if(max_length == 0) return result_skipped;
+
+    (void)constr;
+
+    if(st == NULL) {
+        st = CALLOC(1, specs->struct_size);
+        if(st == NULL) {
+            return result_failed;
+        }
+    }
+
+    for(edx = 0; edx < td->elements_count; edx++) {
+        const asn_TYPE_member_t *elm = &td->elements[edx];
+        void *memb_ptr;   /* Pointer to the member */
+        void **memb_ptr2; /* Pointer to that pointer */
+        asn_random_fill_result_t tmpres;
+
+        if(elm->optional && asn_random_between(0, 4) == 2) {
+            /* Sometimes decide not to fill the optional value */
+            continue;
+        }
+
+        if(elm->flags & ATF_POINTER) {
+            /* Member is a pointer to another structure */
+            memb_ptr2 = (void **)((char *)st + elm->memb_offset);
+        } else {
+            memb_ptr = (char *)st + elm->memb_offset;
+            memb_ptr2 = &memb_ptr;
+        }
+
+        tmpres = elm->type->op->random_fill(
+            elm->type, memb_ptr2, &elm->encoding_constraints,
+            max_length > result_ok.length ? max_length - result_ok.length : 0);
+        switch(tmpres.code) {
+        case ARFILL_OK:
+            result_ok.length += tmpres.length;
+            continue;
+        case ARFILL_SKIPPED:
+            assert(!(elm->flags & ATF_POINTER) || *memb_ptr2 == NULL);
+            continue;
+        case ARFILL_FAILED:
+            if(st == *sptr) {
+                ASN_STRUCT_RESET(*td, st);
+            } else {
+                ASN_STRUCT_FREE(*td, st);
+            }
+            return tmpres;
+        }
+    }
+
+    *sptr = st;
+
+    return result_ok;
+}
+
diff --git a/e2ap/lib/constr_SEQUENCE_OF.c b/e2ap/lib/constr_SEQUENCE_OF.c
new file mode 100644 (file)
index 0000000..10f18cf
--- /dev/null
@@ -0,0 +1,358 @@
+/*-
+ * Copyright (c) 2003, 2004, 2006 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <constr_SEQUENCE_OF.h>
+#include <asn_SEQUENCE_OF.h>
+
+/*
+ * The DER encoder of the SEQUENCE OF type.
+ */
+asn_enc_rval_t
+SEQUENCE_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *ptr,
+                       int tag_mode, ber_tlv_tag_t tag,
+                       asn_app_consume_bytes_f *cb, void *app_key) {
+    asn_TYPE_member_t *elm = td->elements;
+       const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(ptr);
+       size_t computed_size = 0;
+       ssize_t encoding_size = 0;
+       asn_enc_rval_t erval = {0,0,0};
+       int edx;
+
+       ASN_DEBUG("Estimating size of SEQUENCE OF %s", td->name);
+
+       /*
+        * Gather the length of the underlying members sequence.
+        */
+       for(edx = 0; edx < list->count; edx++) {
+               void *memb_ptr = list->array[edx];
+               if(!memb_ptr) continue;
+               erval = elm->type->op->der_encoder(elm->type, memb_ptr,
+                       0, elm->tag,
+                       0, 0);
+               if(erval.encoded == -1)
+                       return erval;
+               computed_size += erval.encoded;
+       }
+
+       /*
+        * Encode the TLV for the sequence itself.
+        */
+       encoding_size = der_write_tags(td, computed_size, tag_mode, 1, tag,
+               cb, app_key);
+       if(encoding_size == -1) {
+               erval.encoded = -1;
+               erval.failed_type = td;
+               erval.structure_ptr = ptr;
+               return erval;
+       }
+
+       computed_size += encoding_size;
+       if(!cb) {
+               erval.encoded = computed_size;
+               ASN__ENCODED_OK(erval);
+       }
+
+       ASN_DEBUG("Encoding members of SEQUENCE OF %s", td->name);
+
+       /*
+        * Encode all members.
+        */
+       for(edx = 0; edx < list->count; edx++) {
+               void *memb_ptr = list->array[edx];
+               if(!memb_ptr) continue;
+               erval = elm->type->op->der_encoder(elm->type, memb_ptr,
+                       0, elm->tag,
+                       cb, app_key);
+               if(erval.encoded == -1)
+                       return erval;
+               encoding_size += erval.encoded;
+       }
+
+       if(computed_size != (size_t)encoding_size) {
+               /*
+                * Encoded size is not equal to the computed size.
+                */
+               erval.encoded = -1;
+               erval.failed_type = td;
+               erval.structure_ptr = ptr;
+       } else {
+               erval.encoded = computed_size;
+               erval.structure_ptr = 0;
+               erval.failed_type = 0;
+       }
+
+       return erval;
+}
+
+asn_enc_rval_t
+SEQUENCE_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr,
+                       int ilevel, enum xer_encoder_flags_e flags,
+                       asn_app_consume_bytes_f *cb, void *app_key) {
+    asn_enc_rval_t er = {0,0,0};
+    const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics;
+    const asn_TYPE_member_t *elm = td->elements;
+    const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(sptr);
+    const char *mname = specs->as_XMLValueList
+                            ? 0
+                            : ((*elm->name) ? elm->name : elm->type->xml_tag);
+    size_t mlen = mname ? strlen(mname) : 0;
+    int xcan = (flags & XER_F_CANONICAL);
+    int i;
+
+    if(!sptr) ASN__ENCODE_FAILED;
+
+    er.encoded = 0;
+
+    for(i = 0; i < list->count; i++) {
+        asn_enc_rval_t tmper = {0,0,0};
+        void *memb_ptr = list->array[i];
+        if(!memb_ptr) continue;
+
+        if(mname) {
+            if(!xcan) ASN__TEXT_INDENT(1, ilevel);
+            ASN__CALLBACK3("<", 1, mname, mlen, ">", 1);
+        }
+
+        tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1,
+                                           flags, cb, app_key);
+        if(tmper.encoded == -1) return tmper;
+        er.encoded += tmper.encoded;
+        if(tmper.encoded == 0 && specs->as_XMLValueList) {
+            const char *name = elm->type->xml_tag;
+            size_t len = strlen(name);
+            if(!xcan) ASN__TEXT_INDENT(1, ilevel + 1);
+            ASN__CALLBACK3("<", 1, name, len, "/>", 2);
+        }
+
+        if(mname) {
+            ASN__CALLBACK3("</", 2, mname, mlen, ">", 1);
+        }
+    }
+
+    if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1);
+
+    ASN__ENCODED_OK(er);
+cb_failed:
+    ASN__ENCODE_FAILED;
+}
+
+#ifndef ASN_DISABLE_PER_SUPPORT
+
+asn_enc_rval_t
+SEQUENCE_OF_encode_uper(const asn_TYPE_descriptor_t *td,
+                        const asn_per_constraints_t *constraints,
+                        const void *sptr, asn_per_outp_t *po) {
+    const asn_anonymous_sequence_ *list;
+       const asn_per_constraint_t *ct;
+       asn_enc_rval_t er = {0,0,0};
+       const asn_TYPE_member_t *elm = td->elements;
+       size_t encoded_edx;
+
+       if(!sptr) ASN__ENCODE_FAILED;
+    list = _A_CSEQUENCE_FROM_VOID(sptr);
+
+    er.encoded = 0;
+
+       ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count);
+
+    if(constraints) ct = &constraints->size;
+    else if(td->encoding_constraints.per_constraints)
+        ct = &td->encoding_constraints.per_constraints->size;
+    else ct = 0;
+
+    /* If extensible constraint, check if size is in root */
+    if(ct) {
+        int not_in_root =
+            (list->count < ct->lower_bound || list->count > ct->upper_bound);
+        ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound,
+                  ct->flags & APC_EXTENSIBLE ? "ext" : "fix");
+        if(ct->flags & APC_EXTENSIBLE) {
+            /* Declare whether size is in extension root */
+            if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED;
+            if(not_in_root) ct = 0;
+        } else if(not_in_root && ct->effective_bits >= 0) {
+            ASN__ENCODE_FAILED;
+        }
+
+    }
+
+    if(ct && ct->effective_bits >= 0) {
+        /* X.691, #19.5: No length determinant */
+        if(per_put_few_bits(po, list->count - ct->lower_bound,
+                            ct->effective_bits))
+            ASN__ENCODE_FAILED;
+    } else if(list->count == 0) {
+        /* When the list is empty add only the length determinant
+         * X.691, #20.6 and #11.9.4.1
+         */
+        if (uper_put_length(po, 0, 0)) {
+            ASN__ENCODE_FAILED;
+        }
+        ASN__ENCODED_OK(er);
+    }
+
+    for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) {
+        ssize_t may_encode;
+        size_t edx;
+        int need_eom = 0;
+
+        if(ct && ct->effective_bits >= 0) {
+            may_encode = list->count;
+        } else {
+            may_encode =
+                uper_put_length(po, list->count - encoded_edx, &need_eom);
+            if(may_encode < 0) ASN__ENCODE_FAILED;
+        }
+
+        for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) {
+            void *memb_ptr = list->array[edx];
+            if(!memb_ptr) ASN__ENCODE_FAILED;
+            er = elm->type->op->uper_encoder(
+                elm->type, elm->encoding_constraints.per_constraints, memb_ptr,
+                po);
+            if(er.encoded == -1) ASN__ENCODE_FAILED;
+        }
+
+        if(need_eom && uper_put_length(po, 0, 0))
+            ASN__ENCODE_FAILED; /* End of Message length */
+
+        encoded_edx += may_encode;
+    }
+
+       ASN__ENCODED_OK(er);
+}
+
+asn_enc_rval_t
+SEQUENCE_OF_encode_aper(const asn_TYPE_descriptor_t *td,
+                        const asn_per_constraints_t *constraints,
+                        const void *sptr, asn_per_outp_t *po) {
+       const asn_anonymous_sequence_ *list;
+       const asn_per_constraint_t *ct;
+       asn_enc_rval_t er = {0,0,0};
+       asn_TYPE_member_t *elm = td->elements;
+       int seq;
+
+       if(!sptr) ASN__ENCODE_FAILED;
+       list = _A_CSEQUENCE_FROM_VOID(sptr);
+
+       er.encoded = 0;
+
+       ASN_DEBUG("Encoding %s as SEQUENCE OF size (%d) using ALIGNED PER", td->name, list->count);
+
+       if(constraints) ct = &constraints->size;
+       else if(td->encoding_constraints.per_constraints)
+               ct = &td->encoding_constraints.per_constraints->size;
+       else ct = 0;
+
+       /* If extensible constraint, check if size is in root */
+       if(ct) {
+               int not_in_root = (list->count < ct->lower_bound
+                               || list->count > ct->upper_bound);
+               ASN_DEBUG("lb %ld ub %ld %s",
+                       ct->lower_bound, ct->upper_bound,
+                       ct->flags & APC_EXTENSIBLE ? "ext" : "fix");
+               if(ct->flags & APC_EXTENSIBLE) {
+                       /* Declare whether size is in extension root */
+                       if(per_put_few_bits(po, not_in_root, 1))
+                               ASN__ENCODE_FAILED;
+                       if(not_in_root) ct = 0;
+               } else if(not_in_root && ct->effective_bits >= 0)
+                       ASN__ENCODE_FAILED;
+       }
+
+       if(ct && ct->effective_bits >= 0) {
+               /* X.691, #19.5: No length determinant */
+/*              if(per_put_few_bits(po, list->count - ct->lower_bound,
+                                ct->effective_bits))
+                        ASN__ENCODE_FAILED;
+*/
+               if (aper_put_length(po, ct->upper_bound - ct->lower_bound + 1, list->count - ct->lower_bound) < 0)
+                       ASN__ENCODE_FAILED;
+       }
+
+       for(seq = -1; seq < list->count;) {
+               ssize_t mayEncode;
+               if(seq < 0) seq = 0;
+               if(ct && ct->effective_bits >= 0) {
+                       mayEncode = list->count;
+               } else {
+                       mayEncode = aper_put_length(po, -1, list->count - seq);
+                       if(mayEncode < 0) ASN__ENCODE_FAILED;
+               }
+
+               while(mayEncode--) {
+                       void *memb_ptr = list->array[seq++];
+                       if(!memb_ptr) ASN__ENCODE_FAILED;
+                       er = elm->type->op->aper_encoder(elm->type,
+                               elm->encoding_constraints.per_constraints, memb_ptr, po);
+                       if(er.encoded == -1)
+                               ASN__ENCODE_FAILED;
+               }
+       }
+
+       ASN__ENCODED_OK(er);
+}
+#endif  /* ASN_DISABLE_PER_SUPPORT */
+
+int
+SEQUENCE_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
+               const void *bptr) {
+    const asn_anonymous_sequence_ *a = _A_CSEQUENCE_FROM_VOID(aptr);
+    const asn_anonymous_sequence_ *b = _A_CSEQUENCE_FROM_VOID(bptr);
+    ssize_t idx;
+
+    if(a && b) {
+        ssize_t common_length = (a->count < b->count ? a->count : b->count);
+        for(idx = 0; idx < common_length; idx++) {
+            int ret = td->elements->type->op->compare_struct(
+                td->elements->type, a->array[idx], b->array[idx]);
+            if(ret) return ret;
+        }
+
+        if(idx < b->count) /* more elements in b */
+            return -1;    /* a is shorter, so put it first */
+        if(idx < a->count) return 1;
+
+    } else if(!a) {
+        return -1;
+    } else if(!b) {
+        return 1;
+    }
+
+    return 0;
+}
+
+
+asn_TYPE_operation_t asn_OP_SEQUENCE_OF = {
+       SEQUENCE_OF_free,
+       SEQUENCE_OF_print,
+       SEQUENCE_OF_compare,
+       SEQUENCE_OF_decode_ber,
+       SEQUENCE_OF_encode_der,
+       SEQUENCE_OF_decode_xer,
+       SEQUENCE_OF_encode_xer,
+#ifdef ASN_DISABLE_OER_SUPPORT
+       0,
+       0,
+#else
+       SEQUENCE_OF_decode_oer, /* Same as SET OF decoder. */
+       SEQUENCE_OF_encode_oer, /* Same as SET OF encoder */
+#endif  /* ASN_DISABLE_OER_SUPPORT */
+#ifdef ASN_DISABLE_PER_SUPPORT
+       0,
+       0,
+       0,
+       0,
+#else
+       SEQUENCE_OF_decode_uper, /* Same as SET OF decoder */
+       SEQUENCE_OF_encode_uper,
+       SEQUENCE_OF_decode_aper,
+       SEQUENCE_OF_encode_aper,
+#endif /* ASN_DISABLE_PER_SUPPORT */
+       SEQUENCE_OF_random_fill,
+       0       /* Use generic outmost tag fetcher */
+};
+
diff --git a/e2ap/lib/constr_SEQUENCE_oer.c b/e2ap/lib/constr_SEQUENCE_oer.c
new file mode 100644 (file)
index 0000000..ecb589c
--- /dev/null
@@ -0,0 +1,561 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN_DISABLE_OER_SUPPORT
+
+#include <asn_internal.h>
+#include <constr_SEQUENCE.h>
+#include <OPEN_TYPE.h>
+#include <errno.h>
+
+/*
+ * This macro "eats" the part of the buffer which is definitely "consumed",
+ * i.e. was correctly converted into local representation or rightfully skipped.
+ */
+#undef  ADVANCE
+#define ADVANCE(num_bytes)                   \
+    do {                                     \
+        size_t num = num_bytes;              \
+        ptr = ((const char *)ptr) + num;     \
+        size -= num;                         \
+        consumed_myself += num;              \
+    } while(0)
+
+/*
+ * Switch to the next phase of parsing.
+ */
+#undef  NEXT_PHASE
+#undef PHASE_OUT
+#define NEXT_PHASE(ctx) \
+    do {                \
+        ctx->phase++;   \
+        ctx->step = 0;  \
+    } while(0)
+
+/*
+ * Check whether we are inside the extensions group.
+ */
+#define IN_EXTENSION_GROUP(specs, memb_idx) \
+    ((specs)->first_extension >= 0          \
+     && (unsigned)(specs)->first_extension <= (memb_idx))
+
+#define IN_ROOT_GROUP_PRED(edx)                            \
+    edx < (specs->first_extension < 0 ? td->elements_count \
+                                      : (size_t)specs->first_extension)
+
+#define FOR_IN_ROOT_GROUP(edx) for(edx = 0; IN_ROOT_GROUP_PRED(edx); edx++)
+
+/*
+ * Return a standardized complex structure.
+ */
+#undef  RETURN
+#define RETURN(_code)   do {                    \
+                rval.code = _code;              \
+                rval.consumed = consumed_myself;\
+                return rval;                    \
+        } while(0)
+
+/*
+ * Return pointer to a member.
+ */
+static void **
+element_ptrptr(void *struct_ptr, asn_TYPE_member_t *elm, void **tmp_save_ptr) {
+    if(elm->flags & ATF_POINTER) {
+        /* Member is a pointer to another structure */
+        return (void **)((char *)struct_ptr + elm->memb_offset);
+    } else {
+        assert(tmp_save_ptr);
+        *tmp_save_ptr = (void *)((char *)struct_ptr + elm->memb_offset);
+        return tmp_save_ptr;
+    }
+}
+
+static const void *
+element_ptr(const void *struct_ptr, const asn_TYPE_member_t *elm) {
+    if(elm->flags & ATF_POINTER) {
+        /* Member is a pointer to another structure */
+        return *(const void *const *)((const char *)struct_ptr
+                                      + elm->memb_offset);
+    } else {
+        return (const void *)((const char *)struct_ptr + elm->memb_offset);
+    }
+}
+
+asn_dec_rval_t
+SEQUENCE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx,
+                    const asn_TYPE_descriptor_t *td,
+                    const asn_oer_constraints_t *constraints, void **struct_ptr,
+                    const void *ptr, size_t size) {
+    const asn_SEQUENCE_specifics_t *specs =
+        (const asn_SEQUENCE_specifics_t *)td->specifics;
+    asn_dec_rval_t rval = {RC_OK, 0};
+    void *st = *struct_ptr; /* Target structure */
+    asn_struct_ctx_t *ctx; /* Decoder context */
+    size_t consumed_myself = 0; /* Consumed bytes from ptr. */
+
+    (void)constraints;
+
+    if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx))
+        ASN__DECODE_FAILED;
+
+    /*
+     * Create the target structure if it is not present already.
+     */
+    if(st == 0) {
+        st = *struct_ptr = CALLOC(1, specs->struct_size);
+        if(st == 0) {
+            RETURN(RC_FAIL);
+        }
+    }
+
+    /*
+     * Restore parsing context.
+     */
+    ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset);
+
+    /*
+     * Start to parse where left previously.
+     */
+    switch(ctx->phase) {
+    case 0: {
+        /*
+         * Fetch preamble.
+         */
+        asn_bit_data_t *preamble;
+        int has_extensions_bit = (specs->first_extension >= 0);
+        size_t preamble_bits = (has_extensions_bit + specs->roms_count);
+        size_t preamble_bytes = ((7 + preamble_bits) >> 3);
+
+        ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 0", td->name);
+
+        ASN_DEBUG(
+            "Expecting preamble bits %" ASN_PRI_SIZE " for %s (including %d extension bits)",
+            preamble_bits, td->name, has_extensions_bit);
+
+        if(preamble_bytes > size) {
+            ASN__DECODE_STARVED;
+        }
+
+        preamble = asn_bit_data_new_contiguous(ptr, preamble_bits);
+        if(!preamble) {
+            RETURN(RC_FAIL);
+        }
+        preamble->nboff = has_extensions_bit;
+        ctx->ptr = preamble;
+        ADVANCE(preamble_bytes);
+    }
+        NEXT_PHASE(ctx);
+        /* FALL THROUGH */
+    case 1: {
+        /* Decode components of the extension root */
+        asn_bit_data_t *preamble = ctx->ptr;
+        size_t edx;
+
+        ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 1 (Root)", td->name);
+
+        assert(preamble);
+
+        for(edx = (ctx->step >> 1); IN_ROOT_GROUP_PRED(edx);
+            edx++, ctx->step = (ctx->step & ~1) + 2) {
+            asn_TYPE_member_t *elm = &td->elements[edx];
+
+            ASN_DEBUG("Decoding %s->%s", td->name, elm->name);
+
+            assert(!IN_EXTENSION_GROUP(specs, edx));
+
+            if(ctx->step & 1) {
+                goto microphase2_decode_continues;
+            }
+
+
+            if(elm->optional) {
+                int32_t present = asn_get_few_bits(preamble, 1);
+                if(present < 0) {
+                    ASN_DEBUG("Presence map ended prematurely: %d", present);
+                    RETURN(RC_FAIL);
+                } else if(present == 0) {
+                    if(elm->default_value_set) {
+                        /* Fill-in DEFAULT */
+                        void *tmp;
+                        if(elm->default_value_set(
+                               element_ptrptr(st, elm, &tmp))) {
+                            RETURN(RC_FAIL);
+                        }
+                    }
+                    /* The member is not present. */
+                    continue;
+                }
+                /* Present OPTIONAL or DEFAULT component. */
+            }
+
+            /*
+             * MICROPHASE 2: Invoke the member-specific decoder.
+             */
+            ctx->step |= 1; /* Confirm entering next microphase */
+        microphase2_decode_continues:
+            if(elm->flags & ATF_OPEN_TYPE) {
+                rval = OPEN_TYPE_oer_get(opt_codec_ctx, td, st, elm, ptr, size);
+            } else {
+                void *save_memb_ptr; /* Temporary reference. */
+                void **memb_ptr2;  /* Pointer to a pointer to a memmber */
+
+                memb_ptr2 = element_ptrptr(st, elm, &save_memb_ptr);
+
+                rval = elm->type->op->oer_decoder(
+                    opt_codec_ctx, elm->type,
+                    elm->encoding_constraints.oer_constraints, memb_ptr2, ptr,
+                    size);
+            }
+            switch(rval.code) {
+            case RC_OK:
+                ADVANCE(rval.consumed);
+                break;
+            case RC_WMORE:
+                ASN_DEBUG("More bytes needed at element %s \"%s\"", td->name,
+                          elm->name);
+                ADVANCE(rval.consumed);
+                RETURN(RC_WMORE);
+            case RC_FAIL:
+                ASN_DEBUG("Decoding failed at element %s \"%s\"", td->name,
+                          elm->name);
+                RETURN(RC_FAIL);
+            }
+        } /* for(all root members) */
+
+    }
+        NEXT_PHASE(ctx);
+        /* FALL THROUGH */
+    case 2:
+        assert(ctx->ptr);
+        {
+        /* Cleanup preamble. */
+        asn_bit_data_t *preamble = ctx->ptr;
+        asn_bit_data_t *extadds;
+        int has_extensions_bit = (specs->first_extension >= 0);
+        int extensions_present =
+            has_extensions_bit
+            && (preamble->buffer == NULL
+                || (((const uint8_t *)preamble->buffer)[0] & 0x80));
+        uint8_t unused_bits;
+        size_t len = 0;
+        ssize_t len_len;
+
+        ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 2", td->name);
+
+        preamble->buffer = 0; /* Will do extensions_present==1 next time. */
+
+        if(!extensions_present) {
+            ctx->phase = 10;
+            RETURN(RC_OK);
+        }
+
+        /*
+         * X.696 (08/2015) #16.1 (c), #16.4
+         * Read in the extension addition presence bitmap.
+         */
+
+        len_len = oer_fetch_length(ptr, size, &len);
+        if(len_len > 0) {
+            ADVANCE(len_len);
+        } else if(len_len < 0) {
+            RETURN(RC_FAIL);
+        } else {
+            RETURN(RC_WMORE);
+        }
+
+        if(len == 0) {
+            /* 16.4.1-2 */
+            RETURN(RC_FAIL);
+        } else if(len > size) {
+            RETURN(RC_WMORE);
+        }
+
+        /* Account for unused bits */
+        unused_bits = 0x7 & *(const uint8_t *)ptr;
+        ADVANCE(1);
+        len--;
+        if(unused_bits && len == 0) {
+            RETURN(RC_FAIL);
+        }
+
+        /* Get the extensions map */
+        extadds = asn_bit_data_new_contiguous(ptr, len * 8 - unused_bits);
+        if(!extadds) {
+            RETURN(RC_FAIL);
+        }
+        FREEMEM(preamble);
+        ctx->ptr = extadds;
+        ADVANCE(len);
+    }
+        NEXT_PHASE(ctx);
+        ctx->step =
+            (specs->first_extension < 0 ? td->elements_count
+                                        : (size_t)specs->first_extension);
+        /* Fall through */
+    case 3:
+        ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 3 (Extensions)", td->name);
+        for(; ctx->step < (signed)td->elements_count; ctx->step++) {
+            asn_bit_data_t *extadds = ctx->ptr;
+            size_t edx = ctx->step;
+            asn_TYPE_member_t *elm = &td->elements[edx];
+            void *tmp_memb_ptr;
+            void **memb_ptr2 = element_ptrptr(st, elm, &tmp_memb_ptr);
+
+            switch(asn_get_few_bits(extadds, 1)) {
+            case -1:
+                /*
+                 * Not every one of our extensions is known to the remote side.
+                 * Continue filling in their defaults though.
+                 */
+                /* Fall through */
+            case 0:
+                /* Fill-in DEFAULT */
+                if(elm->default_value_set
+                   && elm->default_value_set(memb_ptr2)) {
+                    RETURN(RC_FAIL);
+                }
+                continue;
+            case 1: {
+                /* Read OER open type */
+                ssize_t ot_size =
+                    oer_open_type_get(opt_codec_ctx, elm->type,
+                                      elm->encoding_constraints.oer_constraints,
+                                      memb_ptr2, ptr, size);
+                assert(ot_size <= (ssize_t)size);
+                if(ot_size > 0) {
+                    ADVANCE(ot_size);
+                } else if(ot_size < 0) {
+                    RETURN(RC_FAIL);
+                } else {
+                    /* Roll back open type parsing */
+                    asn_get_undo(extadds, 1);
+                    RETURN(RC_WMORE);
+                }
+                break;
+            }
+            default:
+                RETURN(RC_FAIL);
+            }
+        }
+
+        NEXT_PHASE(ctx);
+        /* Fall through */
+    case 4:
+        ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 4", td->name);
+        /* Read in the rest of Open Types while ignoring them */
+        for(;;) {
+            asn_bit_data_t *extadds = ctx->ptr;
+            switch(asn_get_few_bits(extadds, 1)) {
+            case 0:
+                continue;
+            case 1: {
+                ssize_t skipped = oer_open_type_skip(ptr, size);
+                if(skipped > 0) {
+                    ADVANCE(skipped);
+                } else if(skipped < 0) {
+                    RETURN(RC_FAIL);
+                } else {
+                    asn_get_undo(extadds, 1);
+                    RETURN(RC_WMORE);
+                }
+                continue;
+            }
+            case -1:
+                /* No more Open Type encoded components */
+                break;
+            default:
+                RETURN(RC_FAIL);
+            }
+            break;
+        }
+    }
+
+    RETURN(RC_OK);
+}
+
+/*
+ * Encode as Canonical OER.
+ */
+asn_enc_rval_t
+SEQUENCE_encode_oer(const asn_TYPE_descriptor_t *td,
+                    const asn_oer_constraints_t *constraints, const void *sptr,
+                    asn_app_consume_bytes_f *cb, void *app_key) {
+    const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics;
+    size_t computed_size = 0;
+    int has_extensions_bit = (specs->first_extension >= 0);
+    size_t preamble_bits = (has_extensions_bit + specs->roms_count);
+    uint32_t has_extensions = 0;
+    size_t edx;
+    int ret;
+
+    (void)constraints;
+
+    if(preamble_bits) {
+        asn_bit_outp_t preamble;
+
+        memset(&preamble, 0, sizeof(preamble));
+        preamble.output = cb;
+        preamble.op_key = app_key;
+
+        if(has_extensions_bit) {
+            for(edx = specs->first_extension; edx < td->elements_count; edx++) {
+                asn_TYPE_member_t *elm = &td->elements[edx];
+                const void *memb_ptr = element_ptr(sptr, elm);
+                if(memb_ptr) {
+                    if(elm->default_value_cmp
+                       && elm->default_value_cmp(memb_ptr) == 0) {
+                        /* Do not encode default values in extensions */
+                    } else {
+                        has_extensions = 1;
+                        break;
+                    }
+                }
+            }
+            ret = asn_put_few_bits(&preamble, has_extensions, 1);
+            assert(ret == 0);
+            if(ret < 0) {
+                ASN__ENCODE_FAILED;
+            }
+        }
+
+        /*
+         * Encode optional components bitmap.
+         */
+        if(specs->roms_count) {
+            FOR_IN_ROOT_GROUP(edx) {
+                asn_TYPE_member_t *elm = &td->elements[edx];
+
+                if(IN_EXTENSION_GROUP(specs, edx)) break;
+
+                if(elm->optional) {
+                    const void *memb_ptr = element_ptr(sptr, elm);
+                    uint32_t has_component = memb_ptr != NULL;
+                    if(has_component && elm->default_value_cmp
+                       && elm->default_value_cmp(memb_ptr) == 0) {
+                        has_component = 0;
+                    }
+                    ret = asn_put_few_bits(&preamble, has_component, 1);
+                    if(ret < 0) {
+                        ASN__ENCODE_FAILED;
+                    }
+                }
+            }
+        }
+
+        asn_put_aligned_flush(&preamble);
+        computed_size += preamble.flushed_bytes;
+    }   /* if(preamble_bits) */
+
+    /*
+     * Put root components and extensions root.
+     */
+    for(edx = 0; edx < td->elements_count; edx++) {
+        asn_TYPE_member_t *elm = &td->elements[edx];
+        asn_enc_rval_t er = {0,0,0};
+        const void *memb_ptr;
+
+        if(IN_EXTENSION_GROUP(specs, edx)) break;
+
+        memb_ptr = element_ptr(sptr, elm);
+        if(memb_ptr) {
+            if(elm->default_value_cmp
+               && elm->default_value_cmp(memb_ptr) == 0) {
+                /* Skip default values in encoding */
+                continue;
+            }
+        } else {
+            if(elm->optional) continue;
+            /* Mandatory element is missing */
+            ASN__ENCODE_FAILED;
+        }
+        if(!elm->type->op->oer_encoder) {
+            ASN_DEBUG("OER encoder is not defined for type %s", elm->type->name);
+            ASN__ENCODE_FAILED;
+        }
+        er = elm->type->op->oer_encoder(
+            elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb,
+            app_key);
+        if(er.encoded == -1) {
+            ASN_DEBUG("... while encoding %s member \"%s\"\n", td->name,
+                      elm->name);
+            return er;
+        }
+        computed_size += er.encoded;
+    }
+
+    /*
+     * Before encode extensions, encode extensions additions presense bitmap
+     # X.696 (08/2015) #16.4.
+     */
+    if(has_extensions) {
+        asn_bit_outp_t extadds;
+
+        /* Special case allowing us to use exactly one byte for #8.6 */
+        size_t aoms_length_bits = specs->aoms_count;
+        size_t aoms_length_bytes = (7 + aoms_length_bits) >> 3;
+        uint8_t unused_bits = 0x07 & (8 - (aoms_length_bits & 0x07));
+
+        assert(1 + aoms_length_bytes <= 127);
+
+        memset(&extadds, 0, sizeof(extadds));
+        extadds.output = cb;
+        extadds.op_key = app_key;
+
+        /* #8.6 length determinant */
+        ret = asn_put_few_bits(&extadds, (1 + aoms_length_bytes), 8);
+        if(ret < 0) ASN__ENCODE_FAILED;
+
+        /* Number of unused bytes, #16.4.2 */
+        ret = asn_put_few_bits(&extadds, unused_bits, 8);
+        if(ret < 0) ASN__ENCODE_FAILED;
+
+        /* Encode presence bitmap #16.4.3 */
+        for(edx = specs->first_extension; edx < td->elements_count; edx++) {
+            asn_TYPE_member_t *elm = &td->elements[edx];
+            const void *memb_ptr = element_ptr(sptr, elm);
+            if(memb_ptr && elm->default_value_cmp
+               && elm->default_value_cmp(memb_ptr) == 0) {
+                memb_ptr = 0;   /* Do not encode default value. */
+            }
+            ret |= asn_put_few_bits(&extadds, memb_ptr ? 1 : 0, 1);
+        }
+        if(ret < 0) ASN__ENCODE_FAILED;
+
+        asn_put_aligned_flush(&extadds);
+        computed_size += extadds.flushed_bytes;
+
+        /* Now, encode extensions */
+        for(edx = specs->first_extension; edx < td->elements_count; edx++) {
+            asn_TYPE_member_t *elm = &td->elements[edx];
+            const void *memb_ptr = element_ptr(sptr, elm);
+
+            if(memb_ptr) {
+                if(elm->default_value_cmp
+                   && elm->default_value_cmp(memb_ptr) == 0) {
+                    /* Do not encode default value. */
+                } else {
+                    ssize_t wrote = oer_open_type_put(
+                        elm->type, elm->encoding_constraints.oer_constraints,
+                        memb_ptr, cb, app_key);
+                    if(wrote == -1) {
+                        ASN__ENCODE_FAILED;
+                    }
+                    computed_size += wrote;
+                }
+            } else if(!elm->optional) {
+                ASN__ENCODE_FAILED;
+            }
+        }
+    }   /* if(has_extensions) */
+
+
+    {
+        asn_enc_rval_t er = {0, 0, 0};
+        er.encoded = computed_size;
+        ASN__ENCODED_OK(er);
+    }
+}
+
+#endif  /* ASN_DISABLE_OER_SUPPORT */
diff --git a/e2ap/lib/constr_SET_OF.c b/e2ap/lib/constr_SET_OF.c
new file mode 100644 (file)
index 0000000..bf1dc27
--- /dev/null
@@ -0,0 +1,1441 @@
+/*
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <constr_SET_OF.h>
+#include <asn_SET_OF.h>
+
+/*
+ * Number of bytes left for this structure.
+ * (ctx->left) indicates the number of bytes _transferred_ for the structure.
+ * (size) contains the number of bytes in the buffer passed.
+ */
+#define        LEFT    ((size<(size_t)ctx->left)?size:(size_t)ctx->left)
+
+/*
+ * If the subprocessor function returns with an indication that it wants
+ * more data, it may well be a fatal decoding problem, because the
+ * size is constrained by the <TLV>'s L, even if the buffer size allows
+ * reading more data.
+ * For example, consider the buffer containing the following TLVs:
+ * <T:5><L:1><V> <T:6>...
+ * The TLV length clearly indicates that one byte is expected in V, but
+ * if the V processor returns with "want more data" even if the buffer
+ * contains way more data than the V processor have seen.
+ */
+#define        SIZE_VIOLATION  (ctx->left >= 0 && (size_t)ctx->left <= size)
+
+/*
+ * This macro "eats" the part of the buffer which is definitely "consumed",
+ * i.e. was correctly converted into local representation or rightfully skipped.
+ */
+#undef ADVANCE
+#define        ADVANCE(num_bytes)      do {            \
+               size_t num = num_bytes;         \
+               ptr = ((const char *)ptr) + num;\
+               size -= num;                    \
+               if(ctx->left >= 0)              \
+                       ctx->left -= num;       \
+               consumed_myself += num;         \
+       } while(0)
+
+/*
+ * Switch to the next phase of parsing.
+ */
+#undef NEXT_PHASE
+#undef PHASE_OUT
+#define        NEXT_PHASE(ctx) do {                    \
+               ctx->phase++;                   \
+               ctx->step = 0;                  \
+       } while(0)
+#define        PHASE_OUT(ctx)  do { ctx->phase = 10; } while(0)
+
+/*
+ * Return a standardized complex structure.
+ */
+#undef RETURN
+#define        RETURN(_code)   do {                    \
+               rval.code = _code;              \
+               rval.consumed = consumed_myself;\
+               return rval;                    \
+       } while(0)
+
+/*
+ * The decoder of the SET OF type.
+ */
+asn_dec_rval_t
+SET_OF_decode_ber(const asn_codec_ctx_t *opt_codec_ctx,
+                  const asn_TYPE_descriptor_t *td, void **struct_ptr,
+                  const void *ptr, size_t size, int tag_mode) {
+    /*
+        * Bring closer parts of structure description.
+        */
+       const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics;
+    const asn_TYPE_member_t *elm = td->elements; /* Single one */
+
+    /*
+        * Parts of the structure being constructed.
+        */
+       void *st = *struct_ptr; /* Target structure. */
+       asn_struct_ctx_t *ctx;  /* Decoder context */
+
+       ber_tlv_tag_t tlv_tag;  /* T from TLV */
+       asn_dec_rval_t rval;    /* Return code from subparsers */
+
+       ssize_t consumed_myself = 0;    /* Consumed bytes from ptr */
+
+       ASN_DEBUG("Decoding %s as SET OF", td->name);
+       
+       /*
+        * Create the target structure if it is not present already.
+        */
+       if(st == 0) {
+               st = *struct_ptr = CALLOC(1, specs->struct_size);
+               if(st == 0) {
+                       RETURN(RC_FAIL);
+               }
+       }
+
+       /*
+        * Restore parsing context.
+        */
+       ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset);
+       
+       /*
+        * Start to parse where left previously
+        */
+       switch(ctx->phase) {
+       case 0:
+               /*
+                * PHASE 0.
+                * Check that the set of tags associated with given structure
+                * perfectly fits our expectations.
+                */
+
+               rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size,
+                       tag_mode, 1, &ctx->left, 0);
+               if(rval.code != RC_OK) {
+                       ASN_DEBUG("%s tagging check failed: %d",
+                               td->name, rval.code);
+                       return rval;
+               }
+
+               if(ctx->left >= 0)
+                       ctx->left += rval.consumed; /* ?Substracted below! */
+               ADVANCE(rval.consumed);
+
+               ASN_DEBUG("Structure consumes %ld bytes, "
+                       "buffer %ld", (long)ctx->left, (long)size);
+
+               NEXT_PHASE(ctx);
+               /* Fall through */
+       case 1:
+               /*
+                * PHASE 1.
+                * From the place where we've left it previously,
+                * try to decode the next item.
+                */
+         for(;; ctx->step = 0) {
+               ssize_t tag_len;        /* Length of TLV's T */
+
+               if(ctx->step & 1)
+                       goto microphase2;
+
+               /*
+                * MICROPHASE 1: Synchronize decoding.
+                */
+
+               if(ctx->left == 0) {
+                       ASN_DEBUG("End of SET OF %s", td->name);
+                       /*
+                        * No more things to decode.
+                        * Exit out of here.
+                        */
+                       PHASE_OUT(ctx);
+                       RETURN(RC_OK);
+               }
+
+               /*
+                * Fetch the T from TLV.
+                */
+               tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag);
+               switch(tag_len) {
+               case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE);
+                       /* Fall through */
+               case -1: RETURN(RC_FAIL);
+               }
+
+               if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) {
+                       if(LEFT < 2) {
+                               if(SIZE_VIOLATION)
+                                       RETURN(RC_FAIL);
+                               else
+                                       RETURN(RC_WMORE);
+                       } else if(((const uint8_t *)ptr)[1] == 0) {
+                               /*
+                                * Found the terminator of the
+                                * indefinite length structure.
+                                */
+                               break;
+                       }
+               }
+
+               /* Outmost tag may be unknown and cannot be fetched/compared */
+               if(elm->tag != (ber_tlv_tag_t)-1) {
+                   if(BER_TAGS_EQUAL(tlv_tag, elm->tag)) {
+                       /*
+                        * The new list member of expected type has arrived.
+                        */
+                   } else {
+                       ASN_DEBUG("Unexpected tag %s fixed SET OF %s",
+                               ber_tlv_tag_string(tlv_tag), td->name);
+                       ASN_DEBUG("%s SET OF has tag %s",
+                               td->name, ber_tlv_tag_string(elm->tag));
+                       RETURN(RC_FAIL);
+                   }
+               }
+
+               /*
+                * MICROPHASE 2: Invoke the member-specific decoder.
+                */
+               ctx->step |= 1;         /* Confirm entering next microphase */
+       microphase2:
+               
+               /*
+                * Invoke the member fetch routine according to member's type
+                */
+               rval = elm->type->op->ber_decoder(opt_codec_ctx,
+                               elm->type, &ctx->ptr, ptr, LEFT, 0);
+               ASN_DEBUG("In %s SET OF %s code %d consumed %d",
+                       td->name, elm->type->name,
+                       rval.code, (int)rval.consumed);
+               switch(rval.code) {
+               case RC_OK:
+                       {
+                               asn_anonymous_set_ *list = _A_SET_FROM_VOID(st);
+                               if(ASN_SET_ADD(list, ctx->ptr) != 0)
+                                       RETURN(RC_FAIL);
+                               else
+                                       ctx->ptr = 0;
+                       }
+                       break;
+               case RC_WMORE: /* More data expected */
+                       if(!SIZE_VIOLATION) {
+                               ADVANCE(rval.consumed);
+                               RETURN(RC_WMORE);
+                       }
+                       /* Fall through */
+               case RC_FAIL: /* Fatal error */
+                       ASN_STRUCT_FREE(*elm->type, ctx->ptr);
+                       ctx->ptr = 0;
+                       RETURN(RC_FAIL);
+               } /* switch(rval) */
+               
+               ADVANCE(rval.consumed);
+         }     /* for(all list members) */
+
+               NEXT_PHASE(ctx);
+       case 2:
+               /*
+                * Read in all "end of content" TLVs.
+                */
+               while(ctx->left < 0) {
+                       if(LEFT < 2) {
+                               if(LEFT > 0 && ((const char *)ptr)[0] != 0) {
+                                       /* Unexpected tag */
+                                       RETURN(RC_FAIL);
+                               } else {
+                                       RETURN(RC_WMORE);
+                               }
+                       }
+                       if(((const char *)ptr)[0] == 0
+                       && ((const char *)ptr)[1] == 0) {
+                               ADVANCE(2);
+                               ctx->left++;
+                       } else {
+                               RETURN(RC_FAIL);
+                       }
+               }
+
+               PHASE_OUT(ctx);
+       }
+       
+       RETURN(RC_OK);
+}
+
+/*
+ * Internally visible buffer holding a single encoded element.
+ */
+struct _el_buffer {
+       uint8_t *buf;
+       size_t length;
+       size_t allocated_size;
+    unsigned bits_unused;
+};
+/* Append bytes to the above structure */
+static int _el_addbytes(const void *buffer, size_t size, void *el_buf_ptr) {
+    struct _el_buffer *el_buf = (struct _el_buffer *)el_buf_ptr;
+
+    if(el_buf->length + size > el_buf->allocated_size) {
+        size_t new_size = el_buf->allocated_size ? el_buf->allocated_size : 8;
+        void *p;
+
+        do {
+            new_size <<= 2;
+        } while(el_buf->length + size > new_size);
+
+        p = REALLOC(el_buf->buf, new_size);
+        if(p) {
+            el_buf->buf = p;
+            el_buf->allocated_size = new_size;
+        } else {
+            return -1;
+        }
+    }
+
+    memcpy(el_buf->buf + el_buf->length, buffer, size);
+
+    el_buf->length += size;
+    return 0;
+}
+
+static void assert_unused_bits(const struct _el_buffer* p) {
+    if(p->length) {
+        assert((p->buf[p->length-1] & ~(0xff << p->bits_unused)) == 0);
+    } else {
+        assert(p->bits_unused == 0);
+    }
+}
+
+static int _el_buf_cmp(const void *ap, const void *bp) {
+    const struct _el_buffer *a = (const struct _el_buffer *)ap;
+    const struct _el_buffer *b = (const struct _el_buffer *)bp;
+    size_t common_len;
+    int ret = 0;
+
+    if(a->length < b->length)
+        common_len = a->length;
+    else
+        common_len = b->length;
+
+    if (a->buf && b->buf) {
+        ret = memcmp(a->buf, b->buf, common_len);
+    }
+    if(ret == 0) {
+        if(a->length < b->length)
+            ret = -1;
+        else if(a->length > b->length)
+            ret = 1;
+        /* Ignore unused bits. */
+        assert_unused_bits(a);
+        assert_unused_bits(b);
+    }
+
+    return ret;
+}
+
+static void
+SET_OF__encode_sorted_free(struct _el_buffer *el_buf, size_t count) {
+    size_t i;
+
+    for(i = 0; i < count; i++) {
+        FREEMEM(el_buf[i].buf);
+    }
+
+    FREEMEM(el_buf);
+}
+
+enum SET_OF__encode_method {
+    SOES_DER,   /* Distinguished Encoding Rules */
+    SOES_CUPER  /* Canonical Unaligned Packed Encoding Rules */
+};
+
+static struct _el_buffer *
+SET_OF__encode_sorted(const asn_TYPE_member_t *elm,
+                      const asn_anonymous_set_ *list,
+                      enum SET_OF__encode_method method) {
+    struct _el_buffer *encoded_els;
+    int edx;
+
+    encoded_els =
+        (struct _el_buffer *)CALLOC(list->count, sizeof(encoded_els[0]));
+    if(encoded_els == NULL) {
+        return NULL;
+    }
+
+       /*
+        * Encode all members.
+        */
+    for(edx = 0; edx < list->count; edx++) {
+        const void *memb_ptr = list->array[edx];
+        struct _el_buffer *encoding_el = &encoded_els[edx];
+        asn_enc_rval_t erval = {0,0,0};
+
+        if(!memb_ptr) break;
+
+        /*
+                * Encode the member into the prepared space.
+                */
+        switch(method) {
+        case SOES_DER:
+            erval = elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag,
+                                               _el_addbytes, encoding_el);
+            break;
+        case SOES_CUPER:
+            erval = uper_encode(elm->type,
+                                elm->encoding_constraints.per_constraints,
+                                memb_ptr, _el_addbytes, encoding_el);
+            if(erval.encoded != -1) {
+                size_t extra_bits = erval.encoded % 8;
+                assert(encoding_el->length == (size_t)(erval.encoded + 7) / 8);
+                encoding_el->bits_unused = (8 - extra_bits) & 0x7;
+            }
+            break;
+        default:
+            assert(!"Unreachable");
+            break;
+        }
+        if(erval.encoded < 0) break;
+       }
+
+    if(edx == list->count) {
+        /*
+         * Sort the encoded elements according to their encoding.
+         */
+        qsort(encoded_els, list->count, sizeof(encoded_els[0]), _el_buf_cmp);
+
+        return encoded_els;
+    } else {
+        SET_OF__encode_sorted_free(encoded_els, edx);
+        return NULL;
+    }
+}
+
+
+/*
+ * The DER encoder of the SET OF type.
+ */
+asn_enc_rval_t
+SET_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr,
+                  int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb,
+                  void *app_key) {
+    const asn_TYPE_member_t *elm = td->elements;
+    const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr);
+    size_t computed_size = 0;
+    ssize_t encoding_size = 0;
+    struct _el_buffer *encoded_els;
+    int edx;
+
+       ASN_DEBUG("Estimating size for SET OF %s", td->name);
+
+    /*
+     * Gather the length of the underlying members sequence.
+     */
+    for(edx = 0; edx < list->count; edx++) {
+        void *memb_ptr = list->array[edx];
+        asn_enc_rval_t erval = {0,0,0};
+
+        if(!memb_ptr) ASN__ENCODE_FAILED;
+
+        erval =
+            elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, 0, 0);
+        if(erval.encoded == -1) return erval;
+        computed_size += erval.encoded;
+       }
+
+
+    /*
+     * Encode the TLV for the sequence itself.
+     */
+    encoding_size =
+        der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key);
+    if(encoding_size < 0) {
+        ASN__ENCODE_FAILED;
+    }
+    computed_size += encoding_size;
+
+    if(!cb || list->count == 0) {
+        asn_enc_rval_t erval = {0,0,0};
+        erval.encoded = computed_size;
+        ASN__ENCODED_OK(erval);
+    }
+
+    ASN_DEBUG("Encoding members of %s SET OF", td->name);
+
+    /*
+     * DER mandates dynamic sorting of the SET OF elements
+     * according to their encodings. Build an array of the
+     * encoded elements.
+     */
+    encoded_els = SET_OF__encode_sorted(elm, list, SOES_DER);
+
+    /*
+     * Report encoded elements to the application.
+     * Dispose of temporary sorted members table.
+     */
+    for(edx = 0; edx < list->count; edx++) {
+        struct _el_buffer *encoded_el = &encoded_els[edx];
+        /* Report encoded chunks to the application */
+        if(cb(encoded_el->buf, encoded_el->length, app_key) < 0) {
+            break;
+        } else {
+            encoding_size += encoded_el->length;
+        }
+    }
+
+    SET_OF__encode_sorted_free(encoded_els, list->count);
+
+    if(edx == list->count) {
+        asn_enc_rval_t erval = {0,0,0};
+        assert(computed_size == (size_t)encoding_size);
+        erval.encoded = computed_size;
+        ASN__ENCODED_OK(erval);
+    } else {
+        ASN__ENCODE_FAILED;
+    }
+}
+
+#undef XER_ADVANCE
+#define        XER_ADVANCE(num_bytes)  do {                    \
+               size_t num = num_bytes;                 \
+               buf_ptr = ((const char *)buf_ptr) + num;\
+               size -= num;                            \
+               consumed_myself += num;                 \
+       } while(0)
+
+/*
+ * Decode the XER (XML) data.
+ */
+asn_dec_rval_t
+SET_OF_decode_xer(const asn_codec_ctx_t *opt_codec_ctx,
+                  const asn_TYPE_descriptor_t *td, void **struct_ptr,
+                  const char *opt_mname, const void *buf_ptr, size_t size) {
+    /*
+        * Bring closer parts of structure description.
+        */
+       const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics;
+       const asn_TYPE_member_t *element = td->elements;
+       const char *elm_tag;
+       const char *xml_tag = opt_mname ? opt_mname : td->xml_tag;
+
+       /*
+        * ... and parts of the structure being constructed.
+        */
+       void *st = *struct_ptr; /* Target structure. */
+       asn_struct_ctx_t *ctx;  /* Decoder context */
+
+       asn_dec_rval_t rval = {RC_OK, 0};/* Return value from a decoder */
+       ssize_t consumed_myself = 0;    /* Consumed bytes from ptr */
+
+       /*
+        * Create the target structure if it is not present already.
+        */
+       if(st == 0) {
+               st = *struct_ptr = CALLOC(1, specs->struct_size);
+               if(st == 0) RETURN(RC_FAIL);
+       }
+
+       /* Which tag is expected for the downstream */
+       if(specs->as_XMLValueList) {
+               elm_tag = (specs->as_XMLValueList == 1) ? 0 : "";
+       } else {
+               elm_tag = (*element->name)
+                               ? element->name : element->type->xml_tag;
+       }
+
+       /*
+        * Restore parsing context.
+        */
+       ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset);
+
+       /*
+        * Phases of XER/XML processing:
+        * Phase 0: Check that the opening tag matches our expectations.
+        * Phase 1: Processing body and reacting on closing tag.
+        * Phase 2: Processing inner type.
+        */
+       for(; ctx->phase <= 2;) {
+               pxer_chunk_type_e ch_type;      /* XER chunk type */
+               ssize_t ch_size;                /* Chunk size */
+               xer_check_tag_e tcv;            /* Tag check value */
+
+               /*
+                * Go inside the inner member of a set.
+                */
+               if(ctx->phase == 2) {
+                       asn_dec_rval_t tmprval = {RC_OK, 0};
+
+                       /* Invoke the inner type decoder, m.b. multiple times */
+                       ASN_DEBUG("XER/SET OF element [%s]", elm_tag);
+                       tmprval = element->type->op->xer_decoder(opt_codec_ctx,
+                                       element->type, &ctx->ptr, elm_tag,
+                                       buf_ptr, size);
+                       if(tmprval.code == RC_OK) {
+                               asn_anonymous_set_ *list = _A_SET_FROM_VOID(st);
+                               if(ASN_SET_ADD(list, ctx->ptr) != 0)
+                                       RETURN(RC_FAIL);
+                               ctx->ptr = 0;
+                               XER_ADVANCE(tmprval.consumed);
+                       } else {
+                               XER_ADVANCE(tmprval.consumed);
+                               RETURN(tmprval.code);
+                       }
+                       ctx->phase = 1; /* Back to body processing */
+                       ASN_DEBUG("XER/SET OF phase => %d", ctx->phase);
+                       /* Fall through */
+               }
+
+               /*
+                * Get the next part of the XML stream.
+                */
+               ch_size = xer_next_token(&ctx->context,
+                       buf_ptr, size, &ch_type);
+               if(ch_size == -1) {
+            RETURN(RC_FAIL);
+        } else {
+                       switch(ch_type) {
+            case PXER_WMORE:
+                RETURN(RC_WMORE);
+                       case PXER_COMMENT:      /* Got XML comment */
+                       case PXER_TEXT:         /* Ignore free-standing text */
+                               XER_ADVANCE(ch_size);   /* Skip silently */
+                               continue;
+                       case PXER_TAG:
+                               break;  /* Check the rest down there */
+                       }
+               }
+
+               tcv = xer_check_tag(buf_ptr, ch_size, xml_tag);
+               ASN_DEBUG("XER/SET OF: tcv = %d, ph=%d t=%s",
+                       tcv, ctx->phase, xml_tag);
+               switch(tcv) {
+               case XCT_CLOSING:
+                       if(ctx->phase == 0) break;
+                       ctx->phase = 0;
+                       /* Fall through */
+               case XCT_BOTH:
+                       if(ctx->phase == 0) {
+                               /* No more things to decode */
+                               XER_ADVANCE(ch_size);
+                               ctx->phase = 3; /* Phase out */
+                               RETURN(RC_OK);
+                       }
+                       /* Fall through */
+               case XCT_OPENING:
+                       if(ctx->phase == 0) {
+                               XER_ADVANCE(ch_size);
+                               ctx->phase = 1; /* Processing body phase */
+                               continue;
+                       }
+                       /* Fall through */
+               case XCT_UNKNOWN_OP:
+               case XCT_UNKNOWN_BO:
+
+                       ASN_DEBUG("XER/SET OF: tcv=%d, ph=%d", tcv, ctx->phase);
+                       if(ctx->phase == 1) {
+                               /*
+                                * Process a single possible member.
+                                */
+                               ctx->phase = 2;
+                               continue;
+                       }
+                       /* Fall through */
+               default:
+                       break;
+               }
+
+               ASN_DEBUG("Unexpected XML tag in SET OF");
+               break;
+       }
+
+       ctx->phase = 3; /* "Phase out" on hard failure */
+       RETURN(RC_FAIL);
+}
+
+
+
+typedef struct xer_tmp_enc_s {
+       void *buffer;
+       size_t offset;
+       size_t size;
+} xer_tmp_enc_t;
+static int
+SET_OF_encode_xer_callback(const void *buffer, size_t size, void *key) {
+       xer_tmp_enc_t *t = (xer_tmp_enc_t *)key;
+       if(t->offset + size >= t->size) {
+               size_t newsize = (t->size << 2) + size;
+               void *p = REALLOC(t->buffer, newsize);
+               if(!p) return -1;
+               t->buffer = p;
+               t->size = newsize;
+       }
+       memcpy((char *)t->buffer + t->offset, buffer, size);
+       t->offset += size;
+       return 0;
+}
+static int
+SET_OF_xer_order(const void *aptr, const void *bptr) {
+       const xer_tmp_enc_t *a = (const xer_tmp_enc_t *)aptr;
+       const xer_tmp_enc_t *b = (const xer_tmp_enc_t *)bptr;
+       size_t minlen = a->offset;
+       int ret;
+       if(b->offset < minlen) minlen = b->offset;
+       /* Well-formed UTF-8 has this nice lexicographical property... */
+       ret = memcmp(a->buffer, b->buffer, minlen);
+       if(ret != 0) return ret;
+       if(a->offset == b->offset)
+               return 0;
+       if(a->offset == minlen)
+               return -1;
+       return 1;
+}
+
+
+asn_enc_rval_t
+SET_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
+                  enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb,
+                  void *app_key) {
+    asn_enc_rval_t er = {0,0,0};
+       const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics;
+       const asn_TYPE_member_t *elm = td->elements;
+    const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr);
+    const char *mname = specs->as_XMLValueList
+               ? 0 : ((*elm->name) ? elm->name : elm->type->xml_tag);
+       size_t mlen = mname ? strlen(mname) : 0;
+       int xcan = (flags & XER_F_CANONICAL);
+       xer_tmp_enc_t *encs = 0;
+       size_t encs_count = 0;
+       void *original_app_key = app_key;
+       asn_app_consume_bytes_f *original_cb = cb;
+       int i;
+
+       if(!sptr) ASN__ENCODE_FAILED;
+
+       if(xcan) {
+               encs = (xer_tmp_enc_t *)MALLOC(list->count * sizeof(encs[0]));
+               if(!encs) ASN__ENCODE_FAILED;
+               cb = SET_OF_encode_xer_callback;
+       }
+
+       er.encoded = 0;
+
+       for(i = 0; i < list->count; i++) {
+               asn_enc_rval_t tmper = {0,0,0};
+
+               void *memb_ptr = list->array[i];
+               if(!memb_ptr) continue;
+
+               if(encs) {
+                       memset(&encs[encs_count], 0, sizeof(encs[0]));
+                       app_key = &encs[encs_count];
+                       encs_count++;
+               }
+
+               if(mname) {
+                       if(!xcan) ASN__TEXT_INDENT(1, ilevel);
+                       ASN__CALLBACK3("<", 1, mname, mlen, ">", 1);
+               }
+
+               if(!xcan && specs->as_XMLValueList == 1)
+                       ASN__TEXT_INDENT(1, ilevel + 1);
+               tmper = elm->type->op->xer_encoder(elm->type, memb_ptr,
+                               ilevel + (specs->as_XMLValueList != 2),
+                               flags, cb, app_key);
+               if(tmper.encoded == -1) return tmper;
+               er.encoded += tmper.encoded;
+               if(tmper.encoded == 0 && specs->as_XMLValueList) {
+                       const char *name = elm->type->xml_tag;
+                       size_t len = strlen(name);
+                       ASN__CALLBACK3("<", 1, name, len, "/>", 2);
+               }
+
+               if(mname) {
+                       ASN__CALLBACK3("</", 2, mname, mlen, ">", 1);
+               }
+
+       }
+
+       if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1);
+
+       if(encs) {
+               xer_tmp_enc_t *enc = encs;
+               xer_tmp_enc_t *end = encs + encs_count;
+               ssize_t control_size = 0;
+
+               er.encoded = 0;
+               cb = original_cb;
+               app_key = original_app_key;
+               qsort(encs, encs_count, sizeof(encs[0]), SET_OF_xer_order);
+
+               for(; enc < end; enc++) {
+                       ASN__CALLBACK(enc->buffer, enc->offset);
+                       FREEMEM(enc->buffer);
+                       enc->buffer = 0;
+                       control_size += enc->offset;
+               }
+               assert(control_size == er.encoded);
+       }
+
+       goto cleanup;
+cb_failed:
+       ASN__ENCODE_FAILED;
+cleanup:
+       if(encs) {
+               size_t n;
+               for(n = 0; n < encs_count; n++) {
+                       FREEMEM(encs[n].buffer);
+               }
+               FREEMEM(encs);
+       }
+       ASN__ENCODED_OK(er);
+}
+
+int
+SET_OF_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
+             asn_app_consume_bytes_f *cb, void *app_key) {
+    asn_TYPE_member_t *elm = td->elements;
+       const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr);
+       int ret;
+       int i;
+
+       if(!sptr) return (cb("<absent>", 8, app_key) < 0) ? -1 : 0;
+
+       /* Dump preamble */
+       if(cb(td->name, strlen(td->name), app_key) < 0
+       || cb(" ::= {", 6, app_key) < 0)
+               return -1;
+
+       for(i = 0; i < list->count; i++) {
+               const void *memb_ptr = list->array[i];
+               if(!memb_ptr) continue;
+
+               _i_INDENT(1);
+
+               ret = elm->type->op->print_struct(elm->type, memb_ptr,
+                       ilevel + 1, cb, app_key);
+               if(ret) return ret;
+       }
+
+       ilevel--;
+       _i_INDENT(1);
+
+       return (cb("}", 1, app_key) < 0) ? -1 : 0;
+}
+
+void
+SET_OF_free(const asn_TYPE_descriptor_t *td, void *ptr,
+            enum asn_struct_free_method method) {
+    if(td && ptr) {
+               const asn_SET_OF_specifics_t *specs;
+               asn_TYPE_member_t *elm = td->elements;
+               asn_anonymous_set_ *list = _A_SET_FROM_VOID(ptr);
+               asn_struct_ctx_t *ctx;  /* Decoder context */
+               int i;
+
+               /*
+                * Could not use set_of_empty() because of (*free)
+                * incompatibility.
+                */
+               for(i = 0; i < list->count; i++) {
+                       void *memb_ptr = list->array[i];
+                       if(memb_ptr)
+                       ASN_STRUCT_FREE(*elm->type, memb_ptr);
+               }
+               list->count = 0;        /* No meaningful elements left */
+
+               asn_set_empty(list);    /* Remove (list->array) */
+
+               specs = (const asn_SET_OF_specifics_t *)td->specifics;
+               ctx = (asn_struct_ctx_t *)((char *)ptr + specs->ctx_offset);
+               if(ctx->ptr) {
+                       ASN_STRUCT_FREE(*elm->type, ctx->ptr);
+                       ctx->ptr = 0;
+               }
+
+        switch(method) {
+        case ASFM_FREE_EVERYTHING:
+            FREEMEM(ptr);
+            break;
+        case ASFM_FREE_UNDERLYING:
+            break;
+        case ASFM_FREE_UNDERLYING_AND_RESET:
+            memset(ptr, 0, specs->struct_size);
+            break;
+        }
+    }
+}
+
+int
+SET_OF_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+                  asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+    const asn_TYPE_member_t *elm = td->elements;
+       asn_constr_check_f *constr;
+       const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr);
+       int i;
+
+       if(!sptr) {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: value not given (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+
+       constr = elm->encoding_constraints.general_constraints;
+       if(!constr) constr = elm->type->encoding_constraints.general_constraints;
+
+       /*
+        * Iterate over the members of an array.
+        * Validate each in turn, until one fails.
+        */
+       for(i = 0; i < list->count; i++) {
+               const void *memb_ptr = list->array[i];
+               int ret;
+
+               if(!memb_ptr) continue;
+
+               ret = constr(elm->type, memb_ptr, ctfailcb, app_key);
+               if(ret) return ret;
+       }
+
+       return 0;
+}
+
+#ifndef ASN_DISABLE_PER_SUPPORT
+
+asn_dec_rval_t
+SET_OF_decode_uper(const asn_codec_ctx_t *opt_codec_ctx,
+                   const asn_TYPE_descriptor_t *td,
+                   const asn_per_constraints_t *constraints, void **sptr,
+                   asn_per_data_t *pd) {
+    asn_dec_rval_t rv = {RC_OK, 0};
+       const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics;
+    const asn_TYPE_member_t *elm = td->elements; /* Single one */
+    void *st = *sptr;
+       asn_anonymous_set_ *list;
+       const asn_per_constraint_t *ct;
+       int repeat = 0;
+       ssize_t nelems;
+
+       if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx))
+               ASN__DECODE_FAILED;
+
+       /*
+        * Create the target structure if it is not present already.
+        */
+       if(!st) {
+               st = *sptr = CALLOC(1, specs->struct_size);
+               if(!st) ASN__DECODE_FAILED;
+       }                                                                       
+       list = _A_SET_FROM_VOID(st);
+
+       /* Figure out which constraints to use */
+       if(constraints) ct = &constraints->size;
+       else if(td->encoding_constraints.per_constraints)
+               ct = &td->encoding_constraints.per_constraints->size;
+       else ct = 0;
+
+       if(ct && ct->flags & APC_EXTENSIBLE) {
+               int value = per_get_few_bits(pd, 1);
+               if(value < 0) ASN__DECODE_STARVED;
+               if(value) ct = 0;       /* Not restricted! */
+       }
+
+       if(ct && ct->effective_bits >= 0) {
+               /* X.691, #19.5: No length determinant */
+               nelems = per_get_few_bits(pd, ct->effective_bits);
+               ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s",
+                       (long)nelems, ct->lower_bound, td->name);
+               if(nelems < 0)  ASN__DECODE_STARVED;
+               nelems += ct->lower_bound;
+       } else {
+               nelems = -1;
+       }
+
+       do {
+               int i;
+               if(nelems < 0) {
+                       nelems = uper_get_length(pd, -1, 0, &repeat);
+            ASN_DEBUG("Got to decode %" ASN_PRI_SSIZE " elements (eff %d)",
+                      nelems, (int)(ct ? ct->effective_bits : -1));
+            if(nelems < 0) ASN__DECODE_STARVED;
+               }
+
+               for(i = 0; i < nelems; i++) {
+                       void *ptr = 0;
+                       ASN_DEBUG("SET OF %s decoding", elm->type->name);
+                       rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type,
+                               elm->encoding_constraints.per_constraints, &ptr, pd);
+                       ASN_DEBUG("%s SET OF %s decoded %d, %p",
+                               td->name, elm->type->name, rv.code, ptr);
+                       if(rv.code == RC_OK) {
+                               if(ASN_SET_ADD(list, ptr) == 0) {
+                    if(rv.consumed == 0 && nelems > 200) {
+                        /* Protect from SET OF NULL compression bombs. */
+                        ASN__DECODE_FAILED;
+                    }
+                                       continue;
+                }
+                               ASN_DEBUG("Failed to add element into %s",
+                                       td->name);
+                               /* Fall through */
+                               rv.code = RC_FAIL;
+                       } else {
+                               ASN_DEBUG("Failed decoding %s of %s (SET OF)",
+                                       elm->type->name, td->name);
+                       }
+                       if(ptr) ASN_STRUCT_FREE(*elm->type, ptr);
+                       return rv;
+               }
+
+               nelems = -1;    /* Allow uper_get_length() */
+       } while(repeat);
+
+       ASN_DEBUG("Decoded %s as SET OF", td->name);
+
+       rv.code = RC_OK;
+       rv.consumed = 0;
+       return rv;
+}
+
+asn_enc_rval_t
+SET_OF_encode_uper(const asn_TYPE_descriptor_t *td,
+                   const asn_per_constraints_t *constraints, const void *sptr,
+                   asn_per_outp_t *po) {
+    const asn_anonymous_set_ *list;
+    const asn_per_constraint_t *ct;
+    const asn_TYPE_member_t *elm = td->elements;
+    struct _el_buffer *encoded_els;
+    asn_enc_rval_t er = {0,0,0};
+    size_t encoded_edx;
+
+    if(!sptr) ASN__ENCODE_FAILED;
+
+    list = _A_CSET_FROM_VOID(sptr);
+
+    er.encoded = 0;
+
+    ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count);
+
+    if(constraints) ct = &constraints->size;
+    else if(td->encoding_constraints.per_constraints)
+        ct = &td->encoding_constraints.per_constraints->size;
+    else ct = 0;
+
+    /* If extensible constraint, check if size is in root */
+    if(ct) {
+        int not_in_root =
+            (list->count < ct->lower_bound || list->count > ct->upper_bound);
+        ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound,
+                  ct->flags & APC_EXTENSIBLE ? "ext" : "fix");
+        if(ct->flags & APC_EXTENSIBLE) {
+            /* Declare whether size is in extension root */
+            if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED;
+            if(not_in_root) ct = 0;
+        } else if(not_in_root && ct->effective_bits >= 0) {
+            ASN__ENCODE_FAILED;
+        }
+
+    }
+
+    if(ct && ct->effective_bits >= 0) {
+        /* X.691, #19.5: No length determinant */
+        if(per_put_few_bits(po, list->count - ct->lower_bound,
+                            ct->effective_bits))
+            ASN__ENCODE_FAILED;
+    } else if(list->count == 0) {
+        /* When the list is empty add only the length determinant
+         * X.691, #20.6 and #11.9.4.1
+         */
+        if (uper_put_length(po, 0, 0)) {
+            ASN__ENCODE_FAILED;
+        }
+        ASN__ENCODED_OK(er);
+    }
+
+
+    /*
+     * Canonical UPER #22.1 mandates dynamic sorting of the SET OF elements
+     * according to their encodings. Build an array of the encoded elements.
+     */
+    encoded_els = SET_OF__encode_sorted(elm, list, SOES_CUPER);
+
+    for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) {
+        ssize_t may_encode;
+        size_t edx;
+        int need_eom = 0;
+
+        if(ct && ct->effective_bits >= 0) {
+            may_encode = list->count;
+        } else {
+            may_encode =
+                uper_put_length(po, list->count - encoded_edx, &need_eom);
+            if(may_encode < 0) ASN__ENCODE_FAILED;
+        }
+
+        for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) {
+            const struct _el_buffer *el = &encoded_els[edx];
+            if(asn_put_many_bits(po, el->buf,
+                                 (8 * el->length) - el->bits_unused) < 0) {
+                break;
+            }
+        }
+
+        if(need_eom && uper_put_length(po, 0, 0))
+            ASN__ENCODE_FAILED; /* End of Message length */
+
+        encoded_edx += may_encode;
+    }
+
+    SET_OF__encode_sorted_free(encoded_els, list->count);
+
+    if((ssize_t)encoded_edx == list->count) {
+        ASN__ENCODED_OK(er);
+    } else {
+        ASN__ENCODE_FAILED;
+    }
+}
+
+asn_dec_rval_t
+SET_OF_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
+                   const asn_TYPE_descriptor_t *td,
+                   const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) {
+       asn_dec_rval_t rv = {RC_OK, 0};
+       const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics;
+       const asn_TYPE_member_t *elm = td->elements; /* Single one */
+       void *st = *sptr;
+       asn_anonymous_set_ *list;
+       const asn_per_constraint_t *ct;
+       int repeat = 0;
+       ssize_t nelems;
+
+       if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx))
+               ASN__DECODE_FAILED;
+
+       /*
+        * Create the target structure if it is not present already.
+        */
+       if(!st) {
+               st = *sptr = CALLOC(1, specs->struct_size);
+               if(!st) ASN__DECODE_FAILED;
+       }
+       list = _A_SET_FROM_VOID(st);
+
+       /* Figure out which constraints to use */
+       if(constraints) ct = &constraints->size;
+       else if(td->encoding_constraints.per_constraints)
+               ct = &td->encoding_constraints.per_constraints->size;
+       else ct = 0;
+
+       if(ct && ct->flags & APC_EXTENSIBLE) {
+               int value = per_get_few_bits(pd, 1);
+               if(value < 0) ASN__DECODE_STARVED;
+               if(value) ct = 0;       /* Not restricted! */
+       }
+
+       if(ct && ct->effective_bits >= 0) {
+               /* X.691, #19.5: No length determinant */
+               nelems = aper_get_nsnnwn(pd, ct->upper_bound - ct->lower_bound + 1);
+               ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s",
+                         (long)nelems, ct->lower_bound, td->name);
+               if(nelems < 0)  ASN__DECODE_STARVED;
+               nelems += ct->lower_bound;
+       } else {
+               nelems = -1;
+       }
+
+       do {
+               int i;
+               if(nelems < 0) {
+                       nelems = aper_get_length(pd, ct ? ct->upper_bound - ct->lower_bound + 1 : -1,
+                                                ct ? ct->effective_bits : -1, &repeat);
+                       ASN_DEBUG("Got to decode %d elements (eff %d)",
+                                 (int)nelems, (int)(ct ? ct->effective_bits : -1));
+                       if(nelems < 0) ASN__DECODE_STARVED;
+               }
+
+               for(i = 0; i < nelems; i++) {
+                       void *ptr = 0;
+                       ASN_DEBUG("SET OF %s decoding", elm->type->name);
+                       rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type,
+                                                        elm->encoding_constraints.per_constraints, &ptr, pd);
+                       ASN_DEBUG("%s SET OF %s decoded %d, %p",
+                                 td->name, elm->type->name, rv.code, ptr);
+                       if(rv.code == RC_OK) {
+                               if(ASN_SET_ADD(list, ptr) == 0)
+                                       continue;
+                               ASN_DEBUG("Failed to add element into %s",
+                                         td->name);
+                               /* Fall through */
+                               rv.code = RC_FAIL;
+                       } else {
+                               ASN_DEBUG("Failed decoding %s of %s (SET OF)",
+                                         elm->type->name, td->name);
+                       }
+                       if(ptr) ASN_STRUCT_FREE(*elm->type, ptr);
+                       return rv;
+               }
+
+               nelems = -1;    /* Allow uper_get_length() */
+       } while(repeat);
+
+       ASN_DEBUG("Decoded %s as SET OF", td->name);
+
+       rv.code = RC_OK;
+       rv.consumed = 0;
+       return rv;
+}
+
+#endif  /* ASN_DISABLE_PER_SUPPORT */
+
+struct comparable_ptr {
+    const asn_TYPE_descriptor_t *td;
+    const void *sptr;
+};
+
+static int
+SET_OF__compare_cb(const void *aptr, const void *bptr) {
+    const struct comparable_ptr *a = aptr;
+    const struct comparable_ptr *b = bptr;
+    assert(a->td == b->td);
+    return a->td->op->compare_struct(a->td, a->sptr, b->sptr);
+}
+
+int
+SET_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
+               const void *bptr) {
+    const asn_anonymous_set_ *a = _A_CSET_FROM_VOID(aptr);
+    const asn_anonymous_set_ *b = _A_CSET_FROM_VOID(bptr);
+
+    if(a && b) {
+        struct comparable_ptr *asorted;
+        struct comparable_ptr *bsorted;
+        ssize_t common_length;
+        ssize_t idx;
+
+        if(a->count == 0) {
+            if(b->count) return -1;
+            return 0;
+        } else if(b->count == 0) {
+            return 1;
+        }
+
+        asorted = MALLOC(a->count * sizeof(asorted[0]));
+        bsorted = MALLOC(b->count * sizeof(bsorted[0]));
+        if(!asorted || !bsorted) {
+            FREEMEM(asorted);
+            FREEMEM(bsorted);
+            return -1;
+        }
+
+        for(idx = 0; idx < a->count; idx++) {
+            asorted[idx].td = td->elements->type;
+            asorted[idx].sptr = a->array[idx];
+        }
+
+        for(idx = 0; idx < b->count; idx++) {
+            bsorted[idx].td = td->elements->type;
+            bsorted[idx].sptr = b->array[idx];
+        }
+
+        qsort(asorted, a->count, sizeof(asorted[0]), SET_OF__compare_cb);
+        qsort(bsorted, b->count, sizeof(bsorted[0]), SET_OF__compare_cb);
+
+        common_length = (a->count < b->count ? a->count : b->count);
+        for(idx = 0; idx < common_length; idx++) {
+            int ret = td->elements->type->op->compare_struct(
+                td->elements->type, asorted[idx].sptr, bsorted[idx].sptr);
+            if(ret) {
+                FREEMEM(asorted);
+                FREEMEM(bsorted);
+                return ret;
+            }
+        }
+
+        FREEMEM(asorted);
+        FREEMEM(bsorted);
+
+        if(idx < b->count) /* more elements in b */
+            return -1;     /* a is shorter, so put it first */
+        if(idx < a->count) return 1;
+    } else if(!a) {
+        return -1;
+    } else if(!b) {
+        return 1;
+    }
+
+       return 0;
+}
+
+
+asn_TYPE_operation_t asn_OP_SET_OF = {
+       SET_OF_free,
+       SET_OF_print,
+       SET_OF_compare,
+       SET_OF_decode_ber,
+       SET_OF_encode_der,
+       SET_OF_decode_xer,
+       SET_OF_encode_xer,
+#ifdef ASN_DISABLE_OER_SUPPORT
+       0,
+       0,
+#else
+       SET_OF_decode_oer,
+       SET_OF_encode_oer,
+#endif
+#ifdef ASN_DISABLE_PER_SUPPORT
+       0,
+       0,
+       0,
+       0,
+#else
+       SET_OF_decode_uper,
+       SET_OF_encode_uper,
+       SET_OF_decode_aper,
+       0,      /* SET_OF_encode_aper */
+#endif /* ASN_DISABLE_PER_SUPPORT */
+       SET_OF_random_fill,
+       0       /* Use generic outmost tag fetcher */
+};
+
+
+asn_random_fill_result_t
+SET_OF_random_fill(const asn_TYPE_descriptor_t *td, void **sptr,
+                   const asn_encoding_constraints_t *constraints,
+                   size_t max_length) {
+    const asn_SET_OF_specifics_t *specs =
+        (const asn_SET_OF_specifics_t *)td->specifics;
+    asn_random_fill_result_t res_ok = {ARFILL_OK, 0};
+    asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0};
+    asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0};
+    const asn_TYPE_member_t *elm = td->elements;
+    void *st = *sptr;
+    long max_elements = 5;
+    long slb = 0;   /* Lower size bound */
+    long sub = 0;   /* Upper size bound */
+    size_t rnd_len;
+
+    if(max_length == 0) return result_skipped;
+
+    if(st == NULL) {
+        st = (*sptr = CALLOC(1, specs->struct_size));
+        if(st == NULL) {
+            return result_failed;
+        }
+    }
+
+    switch(asn_random_between(0, 6)) {
+    case 0: max_elements = 0; break;
+    case 1: max_elements = 1; break;
+    case 2: max_elements = 5; break;
+    case 3: max_elements = max_length; break;
+    case 4: max_elements = max_length / 2; break;
+    case 5: max_elements = max_length / 4; break;
+    default: break;
+    }
+    sub = slb + max_elements;
+
+    if(!constraints || !constraints->per_constraints)
+        constraints = &td->encoding_constraints;
+    if(constraints->per_constraints) {
+        const asn_per_constraint_t *pc = &constraints->per_constraints->size;
+        if(pc->flags & APC_SEMI_CONSTRAINED) {
+            slb = pc->lower_bound;
+            sub = pc->lower_bound + max_elements;
+        } else if(pc->flags & APC_CONSTRAINED) {
+            slb = pc->lower_bound;
+            sub = pc->upper_bound;
+            if(sub - slb > max_elements) sub = slb + max_elements;
+        }
+    }
+
+    /* Bias towards edges of allowed space */
+    switch(asn_random_between(-1, 4)) {
+    default:
+    case -1:
+        /* Prepare lengths somewhat outside of constrained range. */
+        if(constraints->per_constraints
+           && (constraints->per_constraints->size.flags & APC_EXTENSIBLE)) {
+            switch(asn_random_between(0, 5)) {
+            default:
+            case 0:
+                rnd_len = 0;
+                break;
+            case 1:
+                if(slb > 0) {
+                    rnd_len = slb - 1;
+                } else {
+                    rnd_len = 0;
+                }
+                break;
+            case 2:
+                rnd_len = asn_random_between(0, slb);
+                break;
+            case 3:
+                if(sub < (ssize_t)max_length) {
+                    rnd_len = sub + 1;
+                } else {
+                    rnd_len = max_length;
+                }
+                break;
+            case 4:
+                if(sub < (ssize_t)max_length) {
+                    rnd_len = asn_random_between(sub + 1, max_length);
+                } else {
+                    rnd_len = max_length;
+                }
+                break;
+            case 5:
+                rnd_len = max_length;
+                break;
+            }
+            break;
+        }
+        /* Fall through */
+    case 0:
+        rnd_len = asn_random_between(slb, sub);
+        break;
+    case 1:
+        if(slb < sub) {
+            rnd_len = asn_random_between(slb + 1, sub);
+            break;
+        }
+        /* Fall through */
+    case 2:
+        rnd_len = asn_random_between(slb, slb);
+        break;
+    case 3:
+        if(slb < sub) {
+            rnd_len = asn_random_between(slb, sub - 1);
+            break;
+        }
+        /* Fall through */
+    case 4:
+        rnd_len = asn_random_between(sub, sub);
+        break;
+    }
+
+    for(; rnd_len > 0; rnd_len--) {
+        asn_anonymous_set_ *list = _A_SET_FROM_VOID(st);
+        void *ptr = 0;
+        asn_random_fill_result_t tmpres = elm->type->op->random_fill(
+            elm->type, &ptr, &elm->encoding_constraints,
+            (max_length > res_ok.length ? max_length - res_ok.length : 0)
+                / rnd_len);
+        switch(tmpres.code) {
+        case ARFILL_OK:
+            ASN_SET_ADD(list, ptr);
+            res_ok.length += tmpres.length;
+            break;
+        case ARFILL_SKIPPED:
+            break;
+        case ARFILL_FAILED:
+            assert(ptr == 0);
+            return tmpres;
+        }
+    }
+
+    return res_ok;
+}
+
diff --git a/e2ap/lib/constr_SET_OF_oer.c b/e2ap/lib/constr_SET_OF_oer.c
new file mode 100644 (file)
index 0000000..5200518
--- /dev/null
@@ -0,0 +1,285 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN_DISABLE_OER_SUPPORT
+
+#include <asn_internal.h>
+#include <constr_SET_OF.h>
+#include <asn_SET_OF.h>
+#include <errno.h>
+
+/*
+ * This macro "eats" the part of the buffer which is definitely "consumed",
+ * i.e. was correctly converted into local representation or rightfully skipped.
+ */
+#undef  ADVANCE
+#define ADVANCE(num_bytes)                   \
+    do {                                     \
+        size_t num = num_bytes;              \
+        ptr = ((const char *)ptr) + num;     \
+        size -= num;                         \
+        consumed_myself += num;              \
+    } while(0)
+
+/*
+ * Switch to the next phase of parsing.
+ */
+#undef  NEXT_PHASE
+#define NEXT_PHASE(ctx) \
+    do {                \
+        ctx->phase++;   \
+        ctx->step = 0;  \
+    } while(0)
+#undef  SET_PHASE
+#define SET_PHASE(ctx, value) \
+    do {                      \
+        ctx->phase = value;   \
+        ctx->step = 0;        \
+    } while(0)
+
+/*
+ * Return a standardized complex structure.
+ */
+#undef  RETURN
+#define RETURN(_code)                    \
+    do {                                 \
+        asn_dec_rval_t rval;             \
+        rval.code = _code;               \
+        rval.consumed = consumed_myself; \
+        return rval;                     \
+    } while(0)
+
+/*
+ * The SEQUENCE OF and SET OF values utilize a "quantity field".
+ * It is is a pointless combination of #8.6 (length determinant, capable
+ * of encoding tiny and huge numbers in the shortest possible number of octets)
+ * and the variable sized integer. What could have been encoded by #8.6 alone
+ * is required to be encoded by #8.6 followed by that number of unsigned octets.
+ * This doesn't make too much sense. It seems that the original version of OER
+ * standard have been using the unconstrained unsigned integer as a quantity
+ * field, and this legacy have gone through ISO/ITU-T standardization process.
+ */
+static ssize_t
+oer_fetch_quantity(const void *ptr, size_t size, size_t *qty_r) {
+    const uint8_t *b;
+    const uint8_t *bend;
+    size_t len = 0;
+    size_t qty;
+
+    ssize_t len_len = oer_fetch_length(ptr, size, &len);
+    if(len_len <= 0) {
+        *qty_r = 0;
+        return len_len;
+    }
+
+    if((len_len + len) > size) {
+        *qty_r = 0;
+        return 0;
+    }
+
+    b = (const uint8_t *)ptr + len_len;
+    bend = b + len;
+
+    /* Skip the leading 0-bytes */
+    for(; b < bend && *b == 0; b++) {
+    }
+
+    if((bend - b) > (ssize_t)sizeof(size_t)) {
+        /* Length is not representable by the native size_t type */
+        *qty_r = 0;
+        return -1;
+    }
+
+    for(qty = 0; b < bend; b++) {
+        qty = (qty << 8) + *b;
+    }
+
+    if(qty > RSIZE_MAX) { /* A bit of C11 validation */
+        *qty_r = 0;
+        return -1;
+    }
+
+    *qty_r = qty;
+    assert((size_t)len_len + len == (size_t)(bend - (const uint8_t *)ptr));
+    return len_len + len;
+}
+
+asn_dec_rval_t
+SET_OF_decode_oer(const asn_codec_ctx_t *opt_codec_ctx,
+                  const asn_TYPE_descriptor_t *td,
+                  const asn_oer_constraints_t *constraints, void **struct_ptr,
+                  const void *ptr, size_t size) {
+    const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics;
+    asn_dec_rval_t rval = {RC_OK, 0};
+    void *st = *struct_ptr; /* Target structure */
+    asn_struct_ctx_t *ctx; /* Decoder context */
+    size_t consumed_myself = 0; /* Consumed bytes from ptr. */
+
+    (void)constraints;
+
+    if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx))
+        ASN__DECODE_FAILED;
+
+    /*
+     * Create the target structure if it is not present already.
+     */
+    if(st == 0) {
+        st = *struct_ptr = CALLOC(1, specs->struct_size);
+        if(st == 0) {
+            RETURN(RC_FAIL);
+        }
+    }
+
+    /*
+     * Restore parsing context.
+     */
+    ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset);
+
+    /*
+     * Start to parse where left previously.
+     */
+    switch(ctx->phase) {
+    case 0: {
+        /*
+         * Fetch number of elements to decode.
+         */
+        size_t length = 0;
+        size_t len_size = oer_fetch_quantity(ptr, size, &length);
+        switch(len_size) {
+        case 0:
+            RETURN(RC_WMORE);
+        case -1:
+            RETURN(RC_FAIL);
+        default:
+            ADVANCE(len_size);
+            ctx->left = length;
+        }
+    }
+        NEXT_PHASE(ctx);
+        /* FALL THROUGH */
+    case 1: {
+        /* Decode components of the extension root */
+        asn_TYPE_member_t *elm = td->elements;
+        asn_anonymous_set_ *list = _A_SET_FROM_VOID(st);
+        const void *base_ptr = ptr;
+        ber_tlv_len_t base_ctx_left = ctx->left;
+
+        assert(td->elements_count == 1);
+
+        ASN_DEBUG("OER SET OF %s Decoding PHASE 1", td->name);
+
+        for(; ctx->left > 0; ctx->left--) {
+            asn_dec_rval_t rv = elm->type->op->oer_decoder(
+                opt_codec_ctx, elm->type,
+                elm->encoding_constraints.oer_constraints, &ctx->ptr, ptr,
+                size);
+            ADVANCE(rv.consumed);
+            switch(rv.code) {
+            case RC_OK:
+                if(ASN_SET_ADD(list, ctx->ptr) != 0) {
+                    RETURN(RC_FAIL);
+                } else {
+                    ctx->ptr = 0;
+                    /*
+                     * This check is to avoid compression bomb with
+                     * specs like SEQUENCE/SET OF NULL which don't
+                     * consume data at all.
+                     */
+                    if(rv.consumed == 0 && base_ptr == ptr
+                       && (base_ctx_left - ctx->left) > 200) {
+                        ASN__DECODE_FAILED;
+                    }
+                    break;
+                }
+            case RC_WMORE:
+                RETURN(RC_WMORE);
+            case RC_FAIL:
+                ASN_STRUCT_FREE(*elm->type, ctx->ptr);
+                ctx->ptr = 0;
+                SET_PHASE(ctx, 3);
+                RETURN(RC_FAIL);
+            }
+        }
+        /* Decoded decently. */
+        NEXT_PHASE(ctx);
+    }
+        /* Fall through */
+    case 2:
+        /* Ignore fully decoded */
+        assert(ctx->left == 0);
+        RETURN(RC_OK);
+    case 3:
+        /* Failed to decode. */
+        RETURN(RC_FAIL);
+    }
+
+    return rval;
+}
+
+static ssize_t
+oer_put_quantity(size_t qty, asn_app_consume_bytes_f *cb, void *app_key) {
+    uint8_t buf[1 + sizeof(size_t)];
+    uint8_t *b = &buf[sizeof(size_t)]; /* Last addressable */
+    size_t encoded;
+
+    do {
+        *b-- = qty;
+        qty >>= 8;
+    } while(qty);
+
+    *b = sizeof(buf) - (b-buf) - 1;
+    encoded = sizeof(buf) - (b-buf);
+    if(cb(b, encoded, app_key) < 0)
+        return -1;
+    return encoded;
+}
+
+/*
+ * Encode as Canonical OER.
+ */
+asn_enc_rval_t
+SET_OF_encode_oer(const asn_TYPE_descriptor_t *td,
+                  const asn_oer_constraints_t *constraints, const void *sptr,
+                  asn_app_consume_bytes_f *cb, void *app_key) {
+    const asn_TYPE_member_t *elm;
+    const asn_anonymous_set_ *list;
+    size_t computed_size = 0;
+    ssize_t qty_len;
+    int n;
+
+    (void)constraints;
+
+    if(!sptr) ASN__ENCODE_FAILED;
+
+    elm = td->elements;
+    list = _A_CSET_FROM_VOID(sptr);
+
+    qty_len = oer_put_quantity(list->count, cb, app_key);
+    if(qty_len < 0) {
+        ASN__ENCODE_FAILED;
+    }
+    computed_size += qty_len;
+
+    for(n = 0; n < list->count; n++) {
+        void *memb_ptr = list->array[n];
+        asn_enc_rval_t er = {0,0,0};
+        er = elm->type->op->oer_encoder(
+            elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb,
+            app_key);
+        if(er.encoded < 0) {
+            return er;
+        } else {
+            computed_size += er.encoded;
+        }
+    }
+
+    {
+        asn_enc_rval_t erval = {0,0,0};
+        erval.encoded = computed_size;
+        ASN__ENCODED_OK(erval);
+    }
+}
+
+#endif  /* ASN_DISABLE_OER_SUPPORT */
diff --git a/e2ap/lib/constr_TYPE.c b/e2ap/lib/constr_TYPE.c
new file mode 100644 (file)
index 0000000..aefaefd
--- /dev/null
@@ -0,0 +1,80 @@
+/*-
+ * Copyright (c) 2003, 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <constr_TYPE.h>
+#include <errno.h>
+
+/*
+ * Version of the ASN.1 infrastructure shipped with compiler.
+ */
+int get_asn1c_environment_version() { return ASN1C_ENVIRONMENT_VERSION; }
+
+static asn_app_consume_bytes_f _print2fp;
+
+/*
+ * Return the outmost tag of the type.
+ */
+ber_tlv_tag_t
+asn_TYPE_outmost_tag(const asn_TYPE_descriptor_t *type_descriptor,
+               const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag) {
+
+       if(tag_mode)
+               return tag;
+
+       if(type_descriptor->tags_count)
+               return type_descriptor->tags[0];
+
+       return type_descriptor->op->outmost_tag(type_descriptor, struct_ptr, 0, 0);
+}
+
+/*
+ * Print the target language's structure in human readable form.
+ */
+int
+asn_fprint(FILE *stream, const asn_TYPE_descriptor_t *td,
+           const void *struct_ptr) {
+    if(!stream) stream = stdout;
+    if(!td || !struct_ptr) {
+        errno = EINVAL;
+        return -1;
+       }
+
+       /* Invoke type-specific printer */
+    if(td->op->print_struct(td, struct_ptr, 1, _print2fp, stream)) {
+        return -1;
+    }
+
+    /* Terminate the output */
+    if(_print2fp("\n", 1, stream)) {
+        return -1;
+    }
+
+    return fflush(stream);
+}
+
+/* Dump the data into the specified stdio stream */
+static int
+_print2fp(const void *buffer, size_t size, void *app_key) {
+       FILE *stream = (FILE *)app_key;
+
+       if(fwrite(buffer, 1, size, stream) != size)
+               return -1;
+
+       return 0;
+}
+
+
+/*
+ * Some compilers do not support variable args macros.
+ * This function is a replacement of ASN_DEBUG() macro.
+ */
+void ASN_DEBUG_f(const char *fmt, ...);
+void ASN_DEBUG_f(const char *fmt, ...) {
+       va_list ap;
+       va_start(ap, fmt);
+       vfprintf(stderr, fmt, ap);
+       fprintf(stderr, "\n");
+       va_end(ap);
+}
diff --git a/e2ap/lib/constraints.c b/e2ap/lib/constraints.c
new file mode 100644 (file)
index 0000000..df3c6c1
--- /dev/null
@@ -0,0 +1,93 @@
+#include <asn_internal.h>
+#include <constraints.h>
+
+int
+asn_generic_no_constraint(const asn_TYPE_descriptor_t *type_descriptor,
+                          const void *struct_ptr,
+                          asn_app_constraint_failed_f *cb, void *key) {
+    (void)type_descriptor;     /* Unused argument */
+       (void)struct_ptr;       /* Unused argument */
+       (void)cb;       /* Unused argument */
+       (void)key;      /* Unused argument */
+
+       /* Nothing to check */
+       return 0;
+}
+
+int
+asn_generic_unknown_constraint(const asn_TYPE_descriptor_t *type_descriptor,
+                               const void *struct_ptr,
+                               asn_app_constraint_failed_f *cb, void *key) {
+    (void)type_descriptor;     /* Unused argument */
+       (void)struct_ptr;       /* Unused argument */
+       (void)cb;       /* Unused argument */
+       (void)key;      /* Unused argument */
+
+       /* Unknown how to check */
+       return 0;
+}
+
+struct errbufDesc {
+    const asn_TYPE_descriptor_t *failed_type;
+    const void *failed_struct_ptr;
+       char *errbuf;
+       size_t errlen;
+};
+
+static void
+_asn_i_ctfailcb(void *key, const asn_TYPE_descriptor_t *td, const void *sptr,
+                const char *fmt, ...) {
+    struct errbufDesc *arg = key;
+       va_list ap;
+       ssize_t vlen;
+       ssize_t maxlen;
+
+       arg->failed_type = td;
+       arg->failed_struct_ptr = sptr;
+
+       maxlen = arg->errlen;
+       if(maxlen <= 0)
+               return;
+
+       va_start(ap, fmt);
+       vlen = vsnprintf(arg->errbuf, maxlen, fmt, ap);
+       va_end(ap);
+       if(vlen >= maxlen) {
+               arg->errbuf[maxlen-1] = '\0';   /* Ensuring libc correctness */
+               arg->errlen = maxlen - 1;       /* Not counting termination */
+               return;
+       } else if(vlen >= 0) {
+               arg->errbuf[vlen] = '\0';       /* Ensuring libc correctness */
+               arg->errlen = vlen;             /* Not counting termination */
+       } else {
+               /*
+                * The libc on this system is broken.
+                */
+               vlen = sizeof("<broken vsnprintf>") - 1;
+               maxlen--;
+               arg->errlen = vlen < maxlen ? vlen : maxlen;
+               memcpy(arg->errbuf, "<broken vsnprintf>", arg->errlen);
+               arg->errbuf[arg->errlen] = 0;
+       }
+
+       return;
+}
+
+int
+asn_check_constraints(const asn_TYPE_descriptor_t *type_descriptor,
+                      const void *struct_ptr, char *errbuf, size_t *errlen) {
+    struct errbufDesc arg;
+    int ret;
+
+    arg.failed_type = 0;
+    arg.failed_struct_ptr = 0;
+    arg.errbuf = errbuf;
+    arg.errlen = errlen ? *errlen : 0;
+
+    ret = type_descriptor->encoding_constraints.general_constraints(
+        type_descriptor, struct_ptr, _asn_i_ctfailcb, &arg);
+    if(ret == -1 && errlen) *errlen = arg.errlen;
+
+    return ret;
+}
+
diff --git a/e2ap/lib/der_encoder.c b/e2ap/lib/der_encoder.c
new file mode 100644 (file)
index 0000000..2c6a6f7
--- /dev/null
@@ -0,0 +1,194 @@
+/*-
+ * Copyright (c) 2003, 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <errno.h>
+
+static ssize_t der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len,
+       asn_app_consume_bytes_f *cb, void *app_key, int constructed);
+
+/*
+ * The DER encoder of any type.
+ */
+asn_enc_rval_t
+der_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr,
+           asn_app_consume_bytes_f *consume_bytes, void *app_key) {
+    ASN_DEBUG("DER encoder invoked for %s",
+               type_descriptor->name);
+
+       /*
+        * Invoke type-specific encoder.
+        */
+    return type_descriptor->op->der_encoder(
+        type_descriptor, struct_ptr, /* Pointer to the destination structure */
+        0, 0, consume_bytes, app_key);
+}
+
+/*
+ * Argument type and callback necessary for der_encode_to_buffer().
+ */
+typedef struct enc_to_buf_arg {
+       void *buffer;
+       size_t left;
+} enc_to_buf_arg;
+static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) {
+       enc_to_buf_arg *arg = (enc_to_buf_arg *)key;
+
+       if(arg->left < size)
+               return -1;      /* Data exceeds the available buffer size */
+
+       memcpy(arg->buffer, buffer, size);
+       arg->buffer = ((char *)arg->buffer) + size;
+       arg->left -= size;
+
+       return 0;
+}
+
+/*
+ * A variant of the der_encode() which encodes the data into the provided buffer
+ */
+asn_enc_rval_t
+der_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor,
+                     const void *struct_ptr, void *buffer, size_t buffer_size) {
+    enc_to_buf_arg arg;
+       asn_enc_rval_t ec;
+
+       arg.buffer = buffer;
+       arg.left = buffer_size;
+
+       ec = type_descriptor->op->der_encoder(type_descriptor,
+               struct_ptr,     /* Pointer to the destination structure */
+               0, 0, encode_to_buffer_cb, &arg);
+       if(ec.encoded != -1) {
+               assert(ec.encoded == (ssize_t)(buffer_size - arg.left));
+               /* Return the encoded contents size */
+       }
+       return ec;
+}
+
+
+/*
+ * Write out leading TL[v] sequence according to the type definition.
+ */
+ssize_t
+der_write_tags(const asn_TYPE_descriptor_t *sd, size_t struct_length,
+               int tag_mode, int last_tag_form,
+               ber_tlv_tag_t tag, /* EXPLICIT or IMPLICIT tag */
+               asn_app_consume_bytes_f *cb, void *app_key) {
+#define ASN1_DER_MAX_TAGS_COUNT 4
+    ber_tlv_tag_t
+        tags_buf_scratch[ASN1_DER_MAX_TAGS_COUNT * sizeof(ber_tlv_tag_t)];
+    ssize_t lens[ASN1_DER_MAX_TAGS_COUNT * sizeof(ssize_t)];
+    const ber_tlv_tag_t *tags; /* Copy of tags stream */
+    int tags_count;            /* Number of tags */
+    size_t overall_length;
+    int i;
+
+    ASN_DEBUG("Writing tags (%s, tm=%d, tc=%d, tag=%s, mtc=%d)",
+               sd->name, tag_mode, sd->tags_count,
+               ber_tlv_tag_string(tag),
+               tag_mode
+                       ?(sd->tags_count+1
+                               -((tag_mode == -1) && sd->tags_count))
+                       :sd->tags_count
+       );
+
+    if(sd->tags_count + 1 > ASN1_DER_MAX_TAGS_COUNT) {
+        ASN_DEBUG("System limit %d on tags count", ASN1_DER_MAX_TAGS_COUNT);
+        return -1;
+    }
+
+       if(tag_mode) {
+               /*
+                * Instead of doing shaman dance like we do in ber_check_tags(),
+                * allocate a small array on the stack
+                * and initialize it appropriately.
+                */
+               int stag_offset;
+               ber_tlv_tag_t *tags_buf = tags_buf_scratch;
+               tags_count = sd->tags_count
+                       + 1     /* EXPLICIT or IMPLICIT tag is given */
+                       - ((tag_mode == -1) && sd->tags_count);
+               /* Copy tags over */
+               tags_buf[0] = tag;
+               stag_offset = -1 + ((tag_mode == -1) && sd->tags_count);
+               for(i = 1; i < tags_count; i++)
+                       tags_buf[i] = sd->tags[i + stag_offset];
+               tags = tags_buf;
+       } else {
+               tags = sd->tags;
+               tags_count = sd->tags_count;
+       }
+
+       /* No tags to write */
+       if(tags_count == 0)
+               return 0;
+
+       /*
+        * Array of tags is initialized.
+        * Now, compute the size of the TLV pairs, from right to left.
+        */
+       overall_length = struct_length;
+       for(i = tags_count - 1; i >= 0; --i) {
+               lens[i] = der_write_TL(tags[i], overall_length, 0, 0, 0);
+               if(lens[i] == -1) return -1;
+               overall_length += lens[i];
+               lens[i] = overall_length - lens[i];
+       }
+
+       if(!cb) return overall_length - struct_length;
+
+       ASN_DEBUG("Encoding %s TL sequence (%d elements)", sd->name,
+                  tags_count);
+
+       /*
+        * Encode the TL sequence for real.
+        */
+       for(i = 0; i < tags_count; i++) {
+               ssize_t len;
+               int _constr;
+
+               /* Check if this tag happens to be constructed */
+               _constr = (last_tag_form || i < (tags_count - 1));
+
+               len = der_write_TL(tags[i], lens[i], cb, app_key, _constr);
+               if(len == -1) return -1;
+       }
+
+       return overall_length - struct_length;
+}
+
+static ssize_t
+der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len,
+               asn_app_consume_bytes_f *cb, void *app_key,
+               int constructed) {
+       uint8_t buf[32];
+       size_t size = 0;
+       int buf_size = cb?sizeof(buf):0;
+       ssize_t tmp;
+
+       /* Serialize tag (T from TLV) into possibly zero-length buffer */
+       tmp = ber_tlv_tag_serialize(tag, buf, buf_size);
+       if(tmp == -1 || tmp > (ssize_t)sizeof(buf)) return -1;
+       size += tmp;
+
+       /* Serialize length (L from TLV) into possibly zero-length buffer */
+       tmp = der_tlv_length_serialize(len, buf+size, buf_size?buf_size-size:0);
+       if(tmp == -1) return -1;
+       size += tmp;
+
+       if(size > sizeof(buf))
+               return -1;
+
+       /*
+        * If callback is specified, invoke it, and check its return value.
+        */
+       if(cb) {
+               if(constructed) *buf |= 0x20;
+               if(cb(buf, size, app_key) < 0)
+                       return -1;
+       }
+
+       return size;
+}
diff --git a/e2ap/lib/oer_decoder.c b/e2ap/lib/oer_decoder.c
new file mode 100644 (file)
index 0000000..0701738
--- /dev/null
@@ -0,0 +1,152 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <asn_codecs_prim.h>
+
+/*
+ * The OER decoder of any type.
+ */
+asn_dec_rval_t
+oer_decode(const asn_codec_ctx_t *opt_codec_ctx,
+           const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr,
+           const void *ptr, size_t size) {
+    asn_codec_ctx_t s_codec_ctx;
+
+       /*
+        * Stack checker requires that the codec context
+        * must be allocated on the stack.
+        */
+       if(opt_codec_ctx) {
+               if(opt_codec_ctx->max_stack_size) {
+                       s_codec_ctx = *opt_codec_ctx;
+                       opt_codec_ctx = &s_codec_ctx;
+               }
+       } else {
+               /* If context is not given, be security-conscious anyway */
+               memset(&s_codec_ctx, 0, sizeof(s_codec_ctx));
+               s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX;
+               opt_codec_ctx = &s_codec_ctx;
+       }
+
+       /*
+        * Invoke type-specific decoder.
+        */
+       return type_descriptor->op->oer_decoder(opt_codec_ctx, type_descriptor, 0,
+               struct_ptr,     /* Pointer to the destination structure */
+               ptr, size       /* Buffer and its size */
+               );
+}
+
+/*
+ * Open Type is encoded as a length (#8.6) followed by that number of bytes.
+ * Since we're just skipping, reading the length would be enough.
+ */
+ssize_t
+oer_open_type_skip(const void *bufptr, size_t size) {
+    size_t len = 0;
+    return oer_fetch_length(bufptr, size, &len);
+}
+
+/*
+ * Read the Open Type (X.696 (08/2015), #30).
+ * RETURN VALUES:
+ *       0:     More data expected than bufptr contains.
+ *      -1:     Fatal error deciphering length.
+ *      >0:     Number of bytes used from bufptr.
+ */
+ssize_t
+oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx,
+                  const struct asn_TYPE_descriptor_s *td,
+                  const asn_oer_constraints_t *constraints, void **struct_ptr,
+                  const void *bufptr, size_t size) {
+    asn_dec_rval_t dr;
+    size_t container_len = 0;
+    ssize_t len_len;
+    enum asn_struct_free_method dispose_method =
+        (*struct_ptr) ? ASFM_FREE_UNDERLYING_AND_RESET : ASFM_FREE_EVERYTHING;
+
+    /* Get the size of a length determinant */
+    len_len = oer_fetch_length(bufptr, size, &container_len);
+    if(len_len <= 0) {
+        return len_len; /* Error or more data expected */
+    }
+
+    /*
+     * len_len can't be bigger than size, but size without len_len
+     * should be bigger or equal to container length
+     */
+    if(size - len_len < container_len) {
+        /* More data is expected */
+        return 0;
+    }
+
+    dr = td->op->oer_decoder(opt_codec_ctx, td, constraints, struct_ptr,
+                         (const uint8_t *)bufptr + len_len, container_len);
+    if(dr.code == RC_OK) {
+        return len_len + container_len;
+    } else {
+        /* Even if RC_WMORE, we can't get more data into a closed container. */
+        td->op->free_struct(td, *struct_ptr, dispose_method);
+        *struct_ptr = NULL;
+        return -1;
+    }
+}
+
+
+asn_dec_rval_t
+oer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx,
+                     const asn_TYPE_descriptor_t *td,
+                     const asn_oer_constraints_t *constraints, void **sptr,
+                     const void *ptr, size_t size) {
+    ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr;
+    asn_dec_rval_t rval = {RC_OK, 0};
+    size_t expected_length = 0;
+    ssize_t len_len;
+
+    (void)td;
+    (void)opt_codec_ctx;
+    (void)constraints;
+
+    if(!st) {
+        st = (ASN__PRIMITIVE_TYPE_t *)(*sptr = CALLOC(
+                                           1, sizeof(ASN__PRIMITIVE_TYPE_t)));
+        if(!st) ASN__DECODE_FAILED;
+    }
+
+
+    /*
+     * X.696 (08/2015) #27.2
+     * Encode length determinant as _number of octets_, but only
+     * if upper bound is not equal to lower bound.
+     */
+    len_len = oer_fetch_length(ptr, size, &expected_length);
+    if(len_len > 0) {
+        rval.consumed = len_len;
+        ptr = (const char *)ptr + len_len;
+        size -= len_len;
+    } else if(len_len == 0) {
+        ASN__DECODE_STARVED;
+    } else if(len_len < 0) {
+        ASN__DECODE_FAILED;
+    }
+
+    if(size < expected_length) {
+        ASN__DECODE_STARVED;
+    } else {
+        uint8_t *buf = MALLOC(expected_length + 1);
+        if(buf == NULL) {
+            ASN__DECODE_FAILED;
+        } else {
+            memcpy(buf, ptr, expected_length);
+            buf[expected_length] = '\0';
+        }
+        FREEMEM(st->buf);
+        st->buf = buf;
+        st->size = expected_length;
+
+        rval.consumed += expected_length;
+        return rval;
+    }
+}
diff --git a/e2ap/lib/oer_encoder.c b/e2ap/lib/oer_encoder.c
new file mode 100644 (file)
index 0000000..a284cc2
--- /dev/null
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <asn_codecs_prim.h>
+
+/*
+ * The OER encoder of any type.
+ */
+asn_enc_rval_t
+oer_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr,
+           asn_app_consume_bytes_f *consume_bytes, void *app_key) {
+    ASN_DEBUG("OER encoder invoked for %s", type_descriptor->name);
+
+    /*
+     * Invoke type-specific encoder.
+     */
+    return type_descriptor->op->oer_encoder(
+        type_descriptor, 0,
+        struct_ptr, /* Pointer to the destination structure */
+        consume_bytes, app_key);
+}
+
+/*
+ * Argument type and callback necessary for oer_encode_to_buffer().
+ */
+typedef struct enc_to_buf_arg {
+        void *buffer;
+        size_t left;
+} enc_to_buf_arg;
+static int
+encode_to_buffer_cb(const void *buffer, size_t size, void *key) {
+    enc_to_buf_arg *arg = (enc_to_buf_arg *)key;
+
+    if(arg->left < size) return -1; /* Data exceeds the available buffer size */
+
+    memcpy(arg->buffer, buffer, size);
+    arg->buffer = ((char *)arg->buffer) + size;
+    arg->left -= size;
+
+    return 0;
+}
+
+/*
+ * A variant of the oer_encode() which encodes the data into the provided buffer
+ */
+asn_enc_rval_t
+oer_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor,
+                     const asn_oer_constraints_t *constraints,
+                     const void *struct_ptr, /* Structure to be encoded */
+                     void *buffer,           /* Pre-allocated buffer */
+                     size_t buffer_size      /* Initial buffer size (maximum) */
+) {
+    enc_to_buf_arg arg;
+    asn_enc_rval_t ec;
+
+    arg.buffer = buffer;
+    arg.left = buffer_size;
+
+    if(type_descriptor->op->oer_encoder == NULL) {
+        ec.encoded = -1;
+        ec.failed_type = type_descriptor;
+        ec.structure_ptr = struct_ptr;
+        ASN_DEBUG("OER encoder is not defined for %s",
+                type_descriptor->name);
+    } else {
+        ec = type_descriptor->op->oer_encoder(
+            type_descriptor, constraints,
+            struct_ptr, /* Pointer to the destination structure */
+            encode_to_buffer_cb, &arg);
+        if(ec.encoded != -1) {
+            assert(ec.encoded == (ssize_t)(buffer_size - arg.left));
+            /* Return the encoded contents size */
+        }
+    }
+    return ec;
+}
+
+asn_enc_rval_t
+oer_encode_primitive(const asn_TYPE_descriptor_t *td,
+                     const asn_oer_constraints_t *constraints, const void *sptr,
+                     asn_app_consume_bytes_f *cb, void *app_key) {
+    const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr;
+    asn_enc_rval_t er = {0, 0, 0};
+    ssize_t ret;
+
+    (void)constraints;
+
+    if(!st) ASN__ENCODE_FAILED;
+
+    ASN_DEBUG("Encoding %s (%" ASN_PRI_SIZE " bytes)", td ? td->name : "", st->size);
+
+    /*
+     * X.696 (08/2015) #27.2
+     */
+    ret = oer_serialize_length(st->size, cb, app_key);
+    if(ret < 0) {
+        ASN__ENCODE_FAILED;
+    }
+    er.encoded += ret;
+
+    er.encoded += st->size;
+    if(cb(st->buf, st->size, app_key) < 0) {
+        ASN__ENCODE_FAILED;
+    } else {
+        ASN__ENCODED_OK(er);
+    }
+}
+
+static int
+oer__count_bytes(const void *buffer, size_t size, void *bytes_ptr) {
+    size_t *bytes = bytes_ptr;
+    (void)buffer;
+    *bytes += size;
+    return 0;
+}
+
+ssize_t
+oer_open_type_put(const asn_TYPE_descriptor_t *td,
+                  const asn_oer_constraints_t *constraints, const void *sptr,
+                  asn_app_consume_bytes_f *cb, void *app_key) {
+    size_t serialized_byte_count = 0;
+    asn_enc_rval_t er = {0,0,0};
+    ssize_t len_len;
+
+    er = td->op->oer_encoder(td, constraints, sptr, oer__count_bytes,
+                             &serialized_byte_count);
+    if(er.encoded < 0) return -1;
+    assert(serialized_byte_count == (size_t)er.encoded);
+
+    len_len = oer_serialize_length(serialized_byte_count, cb, app_key);
+    if(len_len == -1) return -1;
+
+    er = td->op->oer_encoder(td, constraints, sptr, cb, app_key);
+    if(er.encoded < 0) return -1;
+    assert(serialized_byte_count == (size_t)er.encoded);
+
+    return len_len + er.encoded;
+}
+
diff --git a/e2ap/lib/oer_support.c b/e2ap/lib/oer_support.c
new file mode 100644 (file)
index 0000000..b15a3bc
--- /dev/null
@@ -0,0 +1,122 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_system.h>
+#include <asn_internal.h>
+
+#include <oer_support.h>
+
+/*
+ * Fetch the length determinant (X.696 08/2015, #8.6) into *len_r.
+ * RETURN VALUES:
+ *       0:     More data expected than bufptr contains.
+ *      -1:     Fatal error deciphering length.
+ *      >0:     Number of bytes used from bufptr.
+ */
+ssize_t
+oer_fetch_length(const void *bufptr, size_t size, size_t *len_r) {
+    uint8_t first_byte;
+    size_t len_len;    /* Length of the length determinant */
+    const uint8_t *b;
+    const uint8_t *bend;
+    size_t len;
+
+    if(size == 0) {
+        *len_r = 0;
+        return 0;
+    }
+
+    first_byte = *(const uint8_t *)bufptr;
+    if((first_byte & 0x80) == 0) {   /* Short form */
+        *len_r = first_byte; /* 0..127 */
+        return 1;
+    }
+
+    len_len = (first_byte & 0x7f);
+    if((1 + len_len) > size) {
+        *len_r = 0;
+        return 0;
+    }
+
+    b = (const uint8_t *)bufptr + 1;
+    bend = b + len_len;
+
+    for(; b < bend && *b == 0; b++) {
+        /* Skip the leading 0-bytes */
+    }
+
+    if((bend - b) > (ssize_t)sizeof(size_t)) {
+        /* Length is not representable by the native size_t type */
+        *len_r = 0;
+        return -1;
+    }
+
+    for(len = 0; b < bend; b++) {
+        len = (len << 8) + *b;
+    }
+
+    if(len > RSIZE_MAX) { /* A bit of C11 validation */
+        *len_r = 0;
+        return -1;
+    }
+
+    *len_r = len;
+    assert(len_len + 1 == (size_t)(bend - (const uint8_t *)bufptr));
+    return len_len + 1;
+}
+
+
+/*
+ * Serialize OER length. Returns the number of bytes serialized
+ * or -1 if a given callback returned with negative result.
+ */
+ssize_t
+oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb,
+                     void *app_key) {
+    uint8_t scratch[1 + sizeof(length)];
+    uint8_t *sp = scratch;
+    int littleEndian = 1;   /* Run-time detection */
+    const uint8_t *pstart;
+    const uint8_t *pend;
+    const uint8_t *p;
+    int add;
+
+    if(length <= 127) {
+        uint8_t b = length;
+        if(cb(&b, 1, app_key) < 0) {
+            return -1;
+        }
+        return 1;
+    }
+
+    if(*(char *)&littleEndian) {
+        pstart = (const uint8_t *)&length + sizeof(length) - 1;
+        pend = (const uint8_t *)&length;
+        add = -1;
+    } else {
+        pstart = (const uint8_t *)&length;
+        pend = pstart + sizeof(length);
+        add = 1;
+    }
+
+    for(p = pstart; p != pend; p += add) {
+        /* Skip leading zeros. */
+        if(*p) break;
+    }
+
+    for(sp = scratch + 1; ; p += add) {
+        *sp++ = *p;
+        if(p == pend) break;
+    }
+    assert((sp - scratch) - 1 <= 0x7f);
+    scratch[0] = 0x80 + ((sp - scratch) - 1);
+
+    if(cb(scratch, sp - scratch, app_key) < 0) {
+        return -1;
+    }
+
+    return sp - scratch;
+}
+
diff --git a/e2ap/lib/pdu_collection.c b/e2ap/lib/pdu_collection.c
new file mode 100644 (file)
index 0000000..025da67
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ */
+
+struct asn_TYPE_descriptor_s;  /* Forward declaration */
+
+extern struct asn_TYPE_descriptor_s asn_DEF_E2AP_PDU;
+extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_gNB_X2_eventTriggerDefinition;
+extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_gNB_X2_actionDefinition;
+extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_gNB_X2_indicationHeader;
+extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_gNB_X2_indicationMessage;
+extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_gNB_X2_callProcessID;
+extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_gNB_X2_controlHeader;
+extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_gNB_X2_controlMessage;
+extern struct asn_TYPE_descriptor_s asn_DEF_X2AP_PDU;
+
+
+struct asn_TYPE_descriptor_s *asn_pdu_collection[] = {
+       /* From module E2AP-PDU-Descriptions in Spec/e2ap-v031ex.asn */
+       &asn_DEF_E2AP_PDU,      
+       /* From module E2SM-gNB-X2-IEs in Spec/e2ap-v031ex.asn */
+       &asn_DEF_E2SM_gNB_X2_eventTriggerDefinition,    
+       &asn_DEF_E2SM_gNB_X2_actionDefinition,  
+       &asn_DEF_E2SM_gNB_X2_indicationHeader,  
+       &asn_DEF_E2SM_gNB_X2_indicationMessage, 
+       &asn_DEF_E2SM_gNB_X2_callProcessID,     
+       &asn_DEF_E2SM_gNB_X2_controlHeader,     
+       &asn_DEF_E2SM_gNB_X2_controlMessage,    
+       /* From module X2AP-PDU-Descriptions in Spec/e2ap-v031ex.asn */
+       &asn_DEF_X2AP_PDU,      
+       0
+};
+
diff --git a/e2ap/lib/per_decoder.c b/e2ap/lib/per_decoder.c
new file mode 100644 (file)
index 0000000..8a3e39d
--- /dev/null
@@ -0,0 +1,185 @@
+#include <asn_application.h>
+#include <asn_internal.h>
+#include <per_decoder.h>
+
+/*
+ * Decode a "Production of a complete encoding", X.691#10.1.
+ * The complete encoding contains at least one byte, and is an integral
+ * multiple of 8 bytes.
+ */
+asn_dec_rval_t
+uper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx,
+                     const asn_TYPE_descriptor_t *td, void **sptr,
+                     const void *buffer, size_t size) {
+    asn_dec_rval_t rval;
+
+       rval = uper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0);
+       if(rval.consumed) {
+               /*
+                * We've always given 8-aligned data,
+                * so convert bits to integral bytes.
+                */
+               rval.consumed += 7;
+               rval.consumed >>= 3;
+       } else if(rval.code == RC_OK) {
+               if(size) {
+                       if(((const uint8_t *)buffer)[0] == 0) {
+                               rval.consumed = 1;      /* 1 byte */
+                       } else {
+                               ASN_DEBUG("Expecting single zeroed byte");
+                               rval.code = RC_FAIL;
+                       }
+               } else {
+                       /* Must contain at least 8 bits. */
+                       rval.code = RC_WMORE;
+               }
+       }
+
+       return rval;
+}
+
+asn_dec_rval_t
+uper_decode(const asn_codec_ctx_t *opt_codec_ctx,
+            const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer,
+            size_t size, int skip_bits, int unused_bits) {
+    asn_codec_ctx_t s_codec_ctx;
+       asn_dec_rval_t rval;
+       asn_per_data_t pd;
+
+       if(skip_bits < 0 || skip_bits > 7
+       || unused_bits < 0 || unused_bits > 7
+       || (unused_bits > 0 && !size))
+               ASN__DECODE_FAILED;
+
+       /*
+        * Stack checker requires that the codec context
+        * must be allocated on the stack.
+        */
+       if(opt_codec_ctx) {
+               if(opt_codec_ctx->max_stack_size) {
+                       s_codec_ctx = *opt_codec_ctx;
+                       opt_codec_ctx = &s_codec_ctx;
+               }
+       } else {
+               /* If context is not given, be security-conscious anyway */
+               memset(&s_codec_ctx, 0, sizeof(s_codec_ctx));
+               s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX;
+               opt_codec_ctx = &s_codec_ctx;
+       }
+
+       /* Fill in the position indicator */
+       memset(&pd, 0, sizeof(pd));
+       pd.buffer = (const uint8_t *)buffer;
+       pd.nboff = skip_bits;
+       pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from <limits.h> */
+       if(pd.nboff > pd.nbits)
+               ASN__DECODE_FAILED;
+
+       /*
+        * Invoke type-specific decoder.
+        */
+       if(!td->op->uper_decoder)
+               ASN__DECODE_FAILED;     /* PER is not compiled in */
+       rval = td->op->uper_decoder(opt_codec_ctx, td, 0, sptr, &pd);
+       if(rval.code == RC_OK) {
+               /* Return the number of consumed bits */
+               rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3)
+                                       + pd.nboff - skip_bits;
+               ASN_DEBUG("PER decoding consumed %ld, counted %ld",
+                       (long)rval.consumed, (long)pd.moved);
+               assert(rval.consumed == pd.moved);
+       } else {
+               /* PER codec is not a restartable */
+               rval.consumed = 0;
+       }
+       return rval;
+}
+
+asn_dec_rval_t
+aper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx,
+                     const asn_TYPE_descriptor_t *td, void **sptr,
+                     const void *buffer, size_t size) {
+       asn_dec_rval_t rval;
+
+       rval = aper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0);
+       if(rval.consumed) {
+               /*
+                * We've always given 8-aligned data,
+                * so convert bits to integral bytes.
+                */
+               rval.consumed += 7;
+               rval.consumed >>= 3;
+       } else if(rval.code == RC_OK) {
+               if(size) {
+                       if(((const uint8_t *)buffer)[0] == 0) {
+                               rval.consumed = 1;      /* 1 byte */
+                       } else {
+                               ASN_DEBUG("Expecting single zeroed byte");
+                               rval.code = RC_FAIL;
+                       }
+               } else {
+                       /* Must contain at least 8 bits. */
+                       rval.code = RC_WMORE;
+               }
+       }
+
+       return rval;
+}
+
+asn_dec_rval_t
+aper_decode(const asn_codec_ctx_t *opt_codec_ctx,
+            const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer,
+            size_t size, int skip_bits, int unused_bits) {
+       asn_codec_ctx_t s_codec_ctx;
+       asn_dec_rval_t rval;
+       asn_per_data_t pd;
+
+       if(skip_bits < 0 || skip_bits > 7
+               || unused_bits < 0 || unused_bits > 7
+               || (unused_bits > 0 && !size))
+               ASN__DECODE_FAILED;
+
+       /*
+        * Stack checker requires that the codec context
+        * must be allocated on the stack.
+        */
+       if(opt_codec_ctx) {
+               if(opt_codec_ctx->max_stack_size) {
+                       s_codec_ctx = *opt_codec_ctx;
+                       opt_codec_ctx = &s_codec_ctx;
+               }
+       } else {
+               /* If context is not given, be security-conscious anyway */
+               memset(&s_codec_ctx, 0, sizeof(s_codec_ctx));
+               s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX;
+               opt_codec_ctx = &s_codec_ctx;
+       }
+
+       /* Fill in the position indicator */
+       memset(&pd, 0, sizeof(pd));
+       pd.buffer = (const uint8_t *)buffer;
+       pd.nboff = skip_bits;
+       pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from <limits.h> */
+       if(pd.nboff > pd.nbits)
+               ASN__DECODE_FAILED;
+
+       /*
+        * Invoke type-specific decoder.
+        */
+       if(!td->op->aper_decoder)
+               ASN__DECODE_FAILED;     /* PER is not compiled in */
+               rval = td->op->aper_decoder(opt_codec_ctx, td, 0, sptr, &pd);
+       if(rval.code == RC_OK) {
+               /* Return the number of consumed bits */
+               rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3)
+               + pd.nboff - skip_bits;
+               ASN_DEBUG("PER decoding consumed %zu, counted %zu",
+                                 rval.consumed, pd.moved);
+               assert(rval.consumed == pd.moved);
+       } else {
+               /* PER codec is not a restartable */
+               rval.consumed = 0;
+       }
+       return rval;
+}
+
diff --git a/e2ap/lib/per_encoder.c b/e2ap/lib/per_encoder.c
new file mode 100644 (file)
index 0000000..a35e1f0
--- /dev/null
@@ -0,0 +1,265 @@
+#include <asn_application.h>
+#include <asn_internal.h>
+#include <per_encoder.h>
+
+static int _uper_encode_flush_outp(asn_per_outp_t *po);
+
+static int
+ignore_output(const void *data, size_t size, void *app_key) {
+    (void)data;
+    (void)size;
+    (void)app_key;
+    return 0;
+}
+
+asn_enc_rval_t
+uper_encode(const asn_TYPE_descriptor_t *td,
+            const asn_per_constraints_t *constraints, const void *sptr,
+            asn_app_consume_bytes_f *cb, void *app_key) {
+    asn_per_outp_t po;
+    asn_enc_rval_t er = {0,0,0};
+
+    /*
+     * Invoke type-specific encoder.
+     */
+    if(!td || !td->op->uper_encoder)
+        ASN__ENCODE_FAILED;    /* PER is not compiled in */
+
+    po.buffer = po.tmpspace;
+    po.nboff = 0;
+    po.nbits = 8 * sizeof(po.tmpspace);
+    po.output = cb ? cb : ignore_output;
+    po.op_key = app_key;
+    po.flushed_bytes = 0;
+
+    er = td->op->uper_encoder(td, constraints, sptr, &po);
+    if(er.encoded != -1) {
+        size_t bits_to_flush;
+
+        bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff;
+
+        /* Set number of bits encoded to a firm value */
+        er.encoded = (po.flushed_bytes << 3) + bits_to_flush;
+
+        if(_uper_encode_flush_outp(&po)) ASN__ENCODE_FAILED;
+    }
+
+    return er;
+}
+
+/*
+ * Argument type and callback necessary for uper_encode_to_buffer().
+ */
+typedef struct enc_to_buf_arg {
+       void *buffer;
+       size_t left;
+} enc_to_buf_arg;
+static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) {
+       enc_to_buf_arg *arg = (enc_to_buf_arg *)key;
+
+       if(arg->left < size)
+               return -1;      /* Data exceeds the available buffer size */
+
+       memcpy(arg->buffer, buffer, size);
+       arg->buffer = ((char *)arg->buffer) + size;
+       arg->left -= size;
+
+       return 0;
+}
+
+asn_enc_rval_t
+uper_encode_to_buffer(const asn_TYPE_descriptor_t *td,
+                      const asn_per_constraints_t *constraints,
+                      const void *sptr, void *buffer, size_t buffer_size) {
+    enc_to_buf_arg key;
+
+    key.buffer = buffer;
+    key.left = buffer_size;
+
+    if(td) ASN_DEBUG("Encoding \"%s\" using UNALIGNED PER", td->name);
+
+    return uper_encode(td, constraints, sptr, encode_to_buffer_cb, &key);
+}
+
+typedef struct enc_dyn_arg {
+       void *buffer;
+       size_t length;
+       size_t allocated;
+} enc_dyn_arg;
+static int
+encode_dyn_cb(const void *buffer, size_t size, void *key) {
+    enc_dyn_arg *arg = key;
+    if(arg->length + size >= arg->allocated) {
+        size_t new_size = arg->allocated ? arg->allocated : 8;
+        void *p;
+
+        do {
+            new_size <<= 2;
+        } while(arg->length + size >= new_size);
+
+        p = REALLOC(arg->buffer, new_size);
+        if(!p) {
+            FREEMEM(arg->buffer);
+            memset(arg, 0, sizeof(*arg));
+            return -1;
+        }
+        arg->buffer = p;
+        arg->allocated = new_size;
+    }
+    memcpy(((char *)arg->buffer) + arg->length, buffer, size);
+    arg->length += size;
+    return 0;
+}
+ssize_t
+uper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td,
+                          const asn_per_constraints_t *constraints,
+                          const void *sptr, void **buffer_r) {
+    asn_enc_rval_t er = {0,0,0};
+       enc_dyn_arg key;
+
+       memset(&key, 0, sizeof(key));
+
+       er = uper_encode(td, constraints, sptr, encode_dyn_cb, &key);
+       switch(er.encoded) {
+       case -1:
+               FREEMEM(key.buffer);
+               return -1;
+       case 0:
+               FREEMEM(key.buffer);
+               key.buffer = MALLOC(1);
+               if(key.buffer) {
+                       *(char *)key.buffer = '\0';
+                       *buffer_r = key.buffer;
+                       return 1;
+               } else {
+                       return -1;
+               }
+       default:
+               *buffer_r = key.buffer;
+               ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded);
+               return ((er.encoded + 7) >> 3);
+       }
+}
+
+/*
+ * Internally useful functions.
+ */
+
+/* Flush partially filled buffer */
+static int
+_uper_encode_flush_outp(asn_per_outp_t *po) {
+       uint8_t *buf;
+
+       if(po->nboff == 0 && po->buffer == po->tmpspace)
+               return 0;
+
+       buf = po->buffer + (po->nboff >> 3);
+       /* Make sure we account for the last, partially filled */
+       if(po->nboff & 0x07) {
+               buf[0] &= 0xff << (8 - (po->nboff & 0x07));
+               buf++;
+       }
+
+       return po->output(po->tmpspace, buf - po->tmpspace, po->op_key);
+}
+
+asn_enc_rval_t
+aper_encode_to_buffer(const asn_TYPE_descriptor_t *td,
+                      const asn_per_constraints_t *constraints,
+                      const void *sptr, void *buffer, size_t buffer_size) {
+    enc_to_buf_arg key;
+
+    key.buffer = buffer;
+    key.left = buffer_size;
+
+    if(td) ASN_DEBUG("Encoding \"%s\" using ALIGNED PER", td->name);
+
+    return aper_encode(td, constraints, sptr, encode_to_buffer_cb, &key);
+}
+
+ssize_t
+aper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td,
+                          const asn_per_constraints_t *constraints,
+                          const void *sptr, void **buffer_r) {
+    asn_enc_rval_t er = {0,0,0};
+       enc_dyn_arg key;
+
+       memset(&key, 0, sizeof(key));
+
+       er = aper_encode(td, constraints, sptr, encode_dyn_cb, &key);
+       switch(er.encoded) {
+       case -1:
+               FREEMEM(key.buffer);
+               return -1;
+       case 0:
+               FREEMEM(key.buffer);
+               key.buffer = MALLOC(1);
+               if(key.buffer) {
+                       *(char *)key.buffer = '\0';
+                       *buffer_r = key.buffer;
+                       return 1;
+               } else {
+                       return -1;
+               }
+       default:
+               *buffer_r = key.buffer;
+               ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded);
+               return ((er.encoded + 7) >> 3);
+       }
+}
+
+static int
+_aper_encode_flush_outp(asn_per_outp_t *po) {
+       uint8_t *buf;
+
+       if(po->nboff == 0 && po->buffer == po->tmpspace)
+               return 0;
+
+       buf = po->buffer + (po->nboff >> 3);
+       /* Make sure we account for the last, partially filled */
+       if(po->nboff & 0x07) {
+               buf[0] &= 0xff << (8 - (po->nboff & 0x07));
+               buf++;
+       }
+
+       if (po->output) {
+               return po->output(po->tmpspace, buf - po->tmpspace, po->op_key);
+       }
+       return 0;
+}
+
+asn_enc_rval_t
+aper_encode(const asn_TYPE_descriptor_t *td,
+        const asn_per_constraints_t *constraints,
+        const void *sptr, asn_app_consume_bytes_f *cb, void *app_key) {
+       asn_per_outp_t po;
+       asn_enc_rval_t er = {0,0,0};
+
+       /*
+        * Invoke type-specific encoder.
+        */
+       if(!td || !td->op->aper_encoder)
+               ASN__ENCODE_FAILED;      /* PER is not compiled in */
+
+       po.buffer = po.tmpspace;
+       po.nboff = 0;
+       po.nbits = 8 * sizeof(po.tmpspace);
+       po.output = cb;
+       po.op_key = app_key;
+       po.flushed_bytes = 0;
+
+       er = td->op->aper_encoder(td, constraints, sptr, &po);
+       if(er.encoded != -1) {
+               size_t bits_to_flush;
+
+               bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff;
+
+               /* Set number of bits encoded to a firm value */
+               er.encoded = (po.flushed_bytes << 3) + bits_to_flush;
+
+               if(_aper_encode_flush_outp(&po))
+                       ASN__ENCODE_FAILED;
+       }
+
+       return er;
+}
diff --git a/e2ap/lib/per_opentype.c b/e2ap/lib/per_opentype.c
new file mode 100644 (file)
index 0000000..28f3cb6
--- /dev/null
@@ -0,0 +1,533 @@
+/*
+ * Copyright (c) 2007 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <per_support.h>
+#include <constr_TYPE.h>
+#include <per_opentype.h>
+
+typedef struct uper_ugot_key {
+       asn_per_data_t oldpd;   /* Old per data source */
+       size_t unclaimed;
+       size_t ot_moved;        /* Number of bits moved by OT processing */
+       int repeat;
+} uper_ugot_key;
+
+static int uper_ugot_refill(asn_per_data_t *pd);
+static int per_skip_bits(asn_per_data_t *pd, int skip_nbits);
+static asn_dec_rval_t uper_sot_suck(const asn_codec_ctx_t *,
+                                    const asn_TYPE_descriptor_t *td,
+                                    const asn_per_constraints_t *constraints,
+                                    void **sptr, asn_per_data_t *pd);
+
+/*
+ * Encode an "open type field".
+ * #10.1, #10.2
+ */
+int
+uper_open_type_put(const asn_TYPE_descriptor_t *td,
+                   const asn_per_constraints_t *constraints, const void *sptr,
+                   asn_per_outp_t *po) {
+    void *buf;
+    void *bptr;
+    ssize_t size;
+
+    ASN_DEBUG("Open type put %s ...", td->name);
+
+    size = uper_encode_to_new_buffer(td, constraints, sptr, &buf);
+    if(size <= 0) return -1;
+
+    ASN_DEBUG("Open type put %s of length %" ASN_PRI_SSIZE " + overhead (1byte?)", td->name,
+              size);
+
+    bptr = buf;
+    do {
+        int need_eom = 0;
+        ssize_t may_save = uper_put_length(po, size, &need_eom);
+        ASN_DEBUG("Prepending length %" ASN_PRI_SSIZE
+                  " to %s and allowing to save %" ASN_PRI_SSIZE,
+                  size, td->name, may_save);
+        if(may_save < 0) break;
+        if(per_put_many_bits(po, bptr, may_save * 8)) break;
+        bptr = (char *)bptr + may_save;
+        size -= may_save;
+        if(need_eom && uper_put_length(po, 0, 0)) {
+            FREEMEM(buf);
+            return -1;
+        }
+    } while(size);
+
+    FREEMEM(buf);
+    if(size) return -1;
+
+    return 0;
+}
+
+static asn_dec_rval_t
+uper_open_type_get_simple(const asn_codec_ctx_t *ctx,
+                          const asn_TYPE_descriptor_t *td,
+                          const asn_per_constraints_t *constraints, void **sptr,
+                          asn_per_data_t *pd) {
+    asn_dec_rval_t rv;
+       ssize_t chunk_bytes;
+       int repeat;
+       uint8_t *buf = 0;
+       size_t bufLen = 0;
+       size_t bufSize = 0;
+       asn_per_data_t spd;
+       size_t padding;
+
+       ASN__STACK_OVERFLOW_CHECK(ctx);
+
+       ASN_DEBUG("Getting open type %s...", td->name);
+
+       do {
+               chunk_bytes = uper_get_length(pd, -1, 0, &repeat);
+               if(chunk_bytes < 0) {
+                       FREEMEM(buf);
+                       ASN__DECODE_STARVED;
+               }
+               if(bufLen + chunk_bytes > bufSize) {
+                       void *ptr;
+                       bufSize = chunk_bytes + (bufSize << 2);
+                       ptr = REALLOC(buf, bufSize);
+                       if(!ptr) {
+                               FREEMEM(buf);
+                               ASN__DECODE_FAILED;
+                       }
+                       buf = ptr;
+               }
+               if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) {
+                       FREEMEM(buf);
+                       ASN__DECODE_STARVED;
+               }
+               bufLen += chunk_bytes;
+       } while(repeat);
+
+       ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name,
+               (long)bufLen);
+
+       memset(&spd, 0, sizeof(spd));
+       spd.buffer = buf;
+       spd.nbits = bufLen << 3;
+
+       ASN_DEBUG_INDENT_ADD(+4);
+       rv = td->op->uper_decoder(ctx, td, constraints, sptr, &spd);
+       ASN_DEBUG_INDENT_ADD(-4);
+
+       if(rv.code == RC_OK) {
+               /* Check padding validity */
+               padding = spd.nbits - spd.nboff;
+                if (((padding > 0 && padding < 8) ||
+               /* X.691#10.1.3 */
+               (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) &&
+                    per_get_few_bits(&spd, padding) == 0) {
+                       /* Everything is cool */
+                       FREEMEM(buf);
+                       return rv;
+               }
+               FREEMEM(buf);
+               if(padding >= 8) {
+                       ASN_DEBUG("Too large padding %d in open type", (int)padding);
+                       ASN__DECODE_FAILED;
+               } else {
+                       ASN_DEBUG("No padding");
+               }
+       } else {
+               FREEMEM(buf);
+               /* rv.code could be RC_WMORE, nonsense in this context */
+               rv.code = RC_FAIL; /* Noone would give us more */
+       }
+
+       return rv;
+}
+
+static asn_dec_rval_t CC_NOTUSED
+uper_open_type_get_complex(const asn_codec_ctx_t *ctx,
+                           const asn_TYPE_descriptor_t *td,
+                           asn_per_constraints_t *constraints, void **sptr,
+                           asn_per_data_t *pd) {
+    uper_ugot_key arg;
+       asn_dec_rval_t rv;
+       ssize_t padding;
+
+       ASN__STACK_OVERFLOW_CHECK(ctx);
+
+       ASN_DEBUG("Getting open type %s from %s", td->name,
+               asn_bit_data_string(pd));
+       arg.oldpd = *pd;
+       arg.unclaimed = 0;
+       arg.ot_moved = 0;
+       arg.repeat = 1;
+       pd->refill = uper_ugot_refill;
+       pd->refill_key = &arg;
+       pd->nbits = pd->nboff;  /* 0 good bits at this point, will refill */
+       pd->moved = 0;  /* This now counts the open type size in bits */
+
+       ASN_DEBUG_INDENT_ADD(+4);
+       rv = td->op->uper_decoder(ctx, td, constraints, sptr, pd);
+       ASN_DEBUG_INDENT_ADD(-4);
+
+#define        UPDRESTOREPD    do {                                            \
+       /* buffer and nboff are valid, preserve them. */                \
+       pd->nbits = arg.oldpd.nbits - (pd->moved - arg.ot_moved);       \
+       pd->moved = arg.oldpd.moved + (pd->moved - arg.ot_moved);       \
+       pd->refill = arg.oldpd.refill;                                  \
+       pd->refill_key = arg.oldpd.refill_key;                          \
+  } while(0)
+
+       if(rv.code != RC_OK) {
+               UPDRESTOREPD;
+               return rv;
+       }
+
+       ASN_DEBUG("OpenType %s pd%s old%s unclaimed=%d, repeat=%d", td->name,
+               asn_bit_data_string(pd),
+               asn_bit_data_string(&arg.oldpd),
+               (int)arg.unclaimed, (int)arg.repeat);
+
+       padding = pd->moved % 8;
+       if(padding) {
+               int32_t pvalue;
+               if(padding > 7) {
+                       ASN_DEBUG("Too large padding %d in open type",
+                               (int)padding);
+                       rv.code = RC_FAIL;
+                       UPDRESTOREPD;
+                       return rv;
+               }
+               padding = 8 - padding;
+               ASN_DEBUG("Getting padding of %d bits", (int)padding);
+               pvalue = per_get_few_bits(pd, padding);
+               switch(pvalue) {
+               case -1:
+                       ASN_DEBUG("Padding skip failed");
+                       UPDRESTOREPD;
+                       ASN__DECODE_STARVED;
+               case 0: break;
+               default:
+                       ASN_DEBUG("Non-blank padding (%d bits 0x%02x)",
+                               (int)padding, (int)pvalue);
+                       UPDRESTOREPD;
+                       ASN__DECODE_FAILED;
+               }
+       }
+       if(pd->nboff != pd->nbits) {
+               ASN_DEBUG("Open type %s overhead pd%s old%s", td->name,
+                       asn_bit_data_string(pd), asn_bit_data_string(&arg.oldpd));
+               if(1) {
+                       UPDRESTOREPD;
+                       ASN__DECODE_FAILED;
+               } else {
+                       arg.unclaimed += pd->nbits - pd->nboff;
+               }
+       }
+
+       /* Adjust pd back so it points to original data */
+       UPDRESTOREPD;
+
+       /* Skip data not consumed by the decoder */
+       if(arg.unclaimed) {
+               ASN_DEBUG("Getting unclaimed %d", (int)arg.unclaimed);
+               switch(per_skip_bits(pd, arg.unclaimed)) {
+               case -1:
+                       ASN_DEBUG("Claim of %d failed", (int)arg.unclaimed);
+                       ASN__DECODE_STARVED;
+               case 0:
+                       ASN_DEBUG("Got claim of %d", (int)arg.unclaimed);
+                       break;
+               default:
+                       /* Padding must be blank */
+                       ASN_DEBUG("Non-blank unconsumed padding");
+                       ASN__DECODE_FAILED;
+               }
+               arg.unclaimed = 0;
+       }
+
+       if(arg.repeat) {
+               ASN_DEBUG("Not consumed the whole thing");
+               rv.code = RC_FAIL;
+               return rv;
+       }
+
+       return rv;
+}
+
+
+asn_dec_rval_t
+uper_open_type_get(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td,
+                   const asn_per_constraints_t *constraints, void **sptr,
+                   asn_per_data_t *pd) {
+    return uper_open_type_get_simple(ctx, td, constraints, sptr, pd);
+}
+
+int
+uper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) {
+       asn_TYPE_descriptor_t s_td;
+    asn_TYPE_operation_t s_op;
+       asn_dec_rval_t rv;
+
+       s_td.name = "<unknown extension>";
+       s_td.op = &s_op;
+    s_op.uper_decoder = uper_sot_suck;
+
+       rv = uper_open_type_get(ctx, &s_td, 0, 0, pd);
+       if(rv.code != RC_OK)
+               return -1;
+       else
+               return 0;
+}
+
+/*
+ * Internal functions.
+ */
+
+static asn_dec_rval_t
+uper_sot_suck(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td,
+              const asn_per_constraints_t *constraints, void **sptr,
+              asn_per_data_t *pd) {
+    asn_dec_rval_t rv;
+
+       (void)ctx;
+       (void)td;
+       (void)constraints;
+       (void)sptr;
+
+       while(per_get_few_bits(pd, 1) >= 0);
+
+       rv.code = RC_OK;
+       rv.consumed = pd->moved;
+
+       return rv;
+}
+
+static int
+uper_ugot_refill(asn_per_data_t *pd) {
+       uper_ugot_key *arg = pd->refill_key;
+       ssize_t next_chunk_bytes, next_chunk_bits;
+       ssize_t avail;
+
+       asn_per_data_t *oldpd = &arg->oldpd;
+
+       ASN_DEBUG("REFILLING pd->moved=%ld, oldpd->moved=%ld",
+               (long)pd->moved, (long)oldpd->moved);
+
+       /* Advance our position to where pd is */
+       oldpd->buffer = pd->buffer;
+       oldpd->nboff  = pd->nboff;
+       oldpd->nbits -= pd->moved - arg->ot_moved;
+       oldpd->moved += pd->moved - arg->ot_moved;
+       arg->ot_moved = pd->moved;
+
+       if(arg->unclaimed) {
+               /* Refill the container */
+               if(per_get_few_bits(oldpd, 1))
+                       return -1;
+               if(oldpd->nboff == 0) {
+                       assert(0);
+                       return -1;
+               }
+               pd->buffer = oldpd->buffer;
+               pd->nboff = oldpd->nboff - 1;
+               pd->nbits = oldpd->nbits;
+               ASN_DEBUG("UNCLAIMED <- return from (pd->moved=%ld)",
+                       (long)pd->moved);
+               return 0;
+       }
+
+       if(!arg->repeat) {
+               ASN_DEBUG("Want more but refill doesn't have it");
+               return -1;
+       }
+
+       next_chunk_bytes = uper_get_length(oldpd, -1, 0, &arg->repeat);
+       ASN_DEBUG("Open type LENGTH %ld bytes at off %ld, repeat %ld",
+               (long)next_chunk_bytes, (long)oldpd->moved, (long)arg->repeat);
+       if(next_chunk_bytes < 0) return -1;
+       if(next_chunk_bytes == 0) {
+               pd->refill = 0; /* No more refills, naturally */
+               assert(!arg->repeat);   /* Implementation guarantee */
+       }
+       next_chunk_bits = next_chunk_bytes << 3;
+       avail = oldpd->nbits - oldpd->nboff;
+       if(avail >= next_chunk_bits) {
+               pd->nbits = oldpd->nboff + next_chunk_bits;
+               arg->unclaimed = 0;
+               ASN_DEBUG("!+Parent frame %ld bits, alloting %ld [%ld..%ld] (%ld)",
+                       (long)next_chunk_bits, (long)oldpd->moved,
+                       (long)oldpd->nboff, (long)oldpd->nbits,
+                       (long)(oldpd->nbits - oldpd->nboff));
+       } else {
+               pd->nbits = oldpd->nbits;
+               arg->unclaimed = next_chunk_bits - avail;
+               ASN_DEBUG("!-Parent frame %ld, require %ld, will claim %ld",
+                       (long)avail, (long)next_chunk_bits,
+                       (long)arg->unclaimed);
+       }
+       pd->buffer = oldpd->buffer;
+       pd->nboff = oldpd->nboff;
+       ASN_DEBUG("Refilled pd%s old%s",
+               asn_bit_data_string(pd), asn_bit_data_string(oldpd));
+       return 0;
+}
+
+static int
+per_skip_bits(asn_per_data_t *pd, int skip_nbits) {
+       int hasNonZeroBits = 0;
+       while(skip_nbits > 0) {
+               int skip;
+
+               /* per_get_few_bits() is more efficient when nbits <= 24 */
+               if(skip_nbits < 24)
+                       skip = skip_nbits;
+               else
+                       skip = 24;
+               skip_nbits -= skip;
+
+               switch(per_get_few_bits(pd, skip)) {
+               case -1: return -1;     /* Starving */
+               case 0: continue;       /* Skipped empty space */
+               default: hasNonZeroBits = 1; continue;
+               }
+       }
+       return hasNonZeroBits;
+}
+
+static asn_dec_rval_t
+aper_open_type_get_simple(const asn_codec_ctx_t *ctx,
+                          const asn_TYPE_descriptor_t *td,
+                          const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) {
+       asn_dec_rval_t rv;
+       ssize_t chunk_bytes;
+       int repeat;
+       uint8_t *buf = 0;
+       size_t bufLen = 0;
+       size_t bufSize = 0;
+       asn_per_data_t spd;
+       size_t padding;
+
+       ASN__STACK_OVERFLOW_CHECK(ctx);
+
+       ASN_DEBUG("Getting open type %s...", td->name);
+
+       do {
+               chunk_bytes = aper_get_length(pd, -1, -1, &repeat);
+               if(chunk_bytes < 0) {
+                       FREEMEM(buf);
+                       ASN__DECODE_STARVED;
+               }
+               if(bufLen + chunk_bytes > bufSize) {
+                       void *ptr;
+                       bufSize = chunk_bytes + (bufSize << 2);
+                       ptr = REALLOC(buf, bufSize);
+                       if(!ptr) {
+                               FREEMEM(buf);
+                               ASN__DECODE_FAILED;
+                       }
+                       buf = ptr;
+               }
+               if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) {
+                       FREEMEM(buf);
+                       ASN__DECODE_STARVED;
+               }
+               bufLen += chunk_bytes;
+       } while(repeat);
+
+       ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name,
+               (long)bufLen);
+
+       memset(&spd, 0, sizeof(spd));
+       spd.buffer = buf;
+       spd.nbits = bufLen << 3;
+
+       ASN_DEBUG_INDENT_ADD(+4);
+       rv = td->op->aper_decoder(ctx, td, constraints, sptr, &spd);
+       ASN_DEBUG_INDENT_ADD(-4);
+
+       if(rv.code == RC_OK) {
+               /* Check padding validity */
+               padding = spd.nbits - spd.nboff;
+                if (((padding > 0 && padding < 8) ||
+               /* X.691#10.1.3 */
+               (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) &&
+                    per_get_few_bits(&spd, padding) == 0) {
+                       /* Everything is cool */
+                       FREEMEM(buf);
+                       return rv;
+               }
+               FREEMEM(buf);
+               if(padding >= 8) {
+                       ASN_DEBUG("Too large padding %d in open type", (int)padding);
+                       ASN__DECODE_FAILED;
+               } else {
+                       ASN_DEBUG("No padding");
+               }
+       } else {
+               FREEMEM(buf);
+               /* rv.code could be RC_WMORE, nonsense in this context */
+               rv.code = RC_FAIL; /* Noone would give us more */
+       }
+
+       return rv;
+}
+
+int
+aper_open_type_put(const asn_TYPE_descriptor_t *td,
+                   const asn_per_constraints_t *constraints,
+                   const void *sptr, asn_per_outp_t *po) {
+       void *buf;
+       void *bptr;
+       ssize_t size;
+       size_t toGo;
+
+       ASN_DEBUG("Open type put %s ...", td->name);
+
+       size = aper_encode_to_new_buffer(td, constraints, sptr, &buf);
+       if(size <= 0) return -1;
+
+       for(bptr = buf, toGo = size; toGo;) {
+               ssize_t maySave = aper_put_length(po, -1, toGo);
+               if(maySave < 0) break;
+               if(per_put_many_bits(po, bptr, maySave * 8)) break;
+               bptr = (char *)bptr + maySave;
+               toGo -= maySave;
+       }
+
+       FREEMEM(buf);
+       if(toGo) return -1;
+
+       ASN_DEBUG("Open type put %s of length %ld + overhead (1byte?)",
+                         td->name, size);
+
+       return 0;
+}
+
+asn_dec_rval_t
+aper_open_type_get(const asn_codec_ctx_t *ctx,
+                   const asn_TYPE_descriptor_t *td,
+                   const asn_per_constraints_t *constraints,
+                   void **sptr, asn_per_data_t *pd) {
+
+       return aper_open_type_get_simple(ctx, td, constraints, sptr, pd);
+}
+
+int
+aper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) {
+       asn_TYPE_descriptor_t s_td;
+       asn_dec_rval_t rv;
+       asn_TYPE_operation_t op_t;
+
+       memset(&op_t, 0, sizeof(op_t));
+       s_td.name = "<unknown extension>";
+       s_td.op = &op_t;
+       s_td.op->aper_decoder = uper_sot_suck;
+
+       rv = aper_open_type_get(ctx, &s_td, 0, 0, pd);
+       if(rv.code != RC_OK)
+               return -1;
+       else
+               return 0;
+}
+
+
diff --git a/e2ap/lib/per_support.c b/e2ap/lib/per_support.c
new file mode 100644 (file)
index 0000000..2285677
--- /dev/null
@@ -0,0 +1,489 @@
+/*
+ * Copyright (c) 2005-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_system.h>
+#include <asn_internal.h>
+#include <per_support.h>
+
+/*
+ * X.691-201508 #10.9 General rules for encoding a length determinant.
+ * Get the optionally constrained length "n" from the stream.
+ */
+ssize_t
+uper_get_length(asn_per_data_t *pd, int ebits, size_t lower_bound,
+                int *repeat) {
+    ssize_t value;
+
+    *repeat = 0;
+
+    /* #11.9.4.1 Encoding if constrained (according to effective bits) */
+    if(ebits >= 0 && ebits <= 16) {
+        value = per_get_few_bits(pd, ebits);
+        if(value >= 0) value += lower_bound;
+        return value;
+    }
+
+       value = per_get_few_bits(pd, 8);
+    if((value & 0x80) == 0) { /* #11.9.3.6 */
+        return (value & 0x7F);
+    } else if((value & 0x40) == 0) { /* #11.9.3.7 */
+        /* bit 8 ... set to 1 and bit 7 ... set to zero */
+        value = ((value & 0x3f) << 8) | per_get_few_bits(pd, 8);
+        return value; /* potential -1 from per_get_few_bits passes through. */
+    } else if(value < 0) {
+        ASN_DEBUG("END of stream reached for PER");
+        return -1;
+    }
+    value &= 0x3f; /* this is "m" from X.691, #11.9.3.8 */
+    if(value < 1 || value > 4) {
+        return -1; /* Prohibited by #11.9.3.8 */
+    }
+    *repeat = 1;
+    return (16384 * value);
+}
+
+/*
+ * Get the normally small length "n".
+ * This procedure used to decode length of extensions bit-maps
+ * for SET and SEQUENCE types.
+ */
+ssize_t
+uper_get_nslength(asn_per_data_t *pd) {
+       ssize_t length;
+
+       ASN_DEBUG("Getting normally small length");
+
+       if(per_get_few_bits(pd, 1) == 0) {
+               length = per_get_few_bits(pd, 6) + 1;
+               if(length <= 0) return -1;
+               ASN_DEBUG("l=%d", (int)length);
+               return length;
+       } else {
+               int repeat;
+               length = uper_get_length(pd, -1, 0, &repeat);
+               if(length >= 0 && !repeat) return length;
+               return -1; /* Error, or do not support >16K extensions */
+       }
+}
+
+/*
+ * Get the normally small non-negative whole number.
+ * X.691, #10.6
+ */
+ssize_t
+uper_get_nsnnwn(asn_per_data_t *pd) {
+       ssize_t value;
+
+       value = per_get_few_bits(pd, 7);
+       if(value & 64) {        /* implicit (value < 0) */
+               value &= 63;
+               value <<= 2;
+               value |= per_get_few_bits(pd, 2);
+               if(value & 128) /* implicit (value < 0) */
+                       return -1;
+               if(value == 0)
+                       return 0;
+               if(value >= 3)
+                       return -1;
+               value = per_get_few_bits(pd, 8 * value);
+               return value;
+       }
+
+       return value;
+}
+
+/*
+ * X.691-11/2008, #11.6
+ * Encoding of a normally small non-negative whole number
+ */
+int
+uper_put_nsnnwn(asn_per_outp_t *po, int n) {
+       int bytes;
+
+       if(n <= 63) {
+               if(n < 0) return -1;
+               return per_put_few_bits(po, n, 7);
+       }
+       if(n < 256)
+               bytes = 1;
+       else if(n < 65536)
+               bytes = 2;
+       else if(n < 256 * 65536)
+               bytes = 3;
+       else
+               return -1;      /* This is not a "normally small" value */
+       if(per_put_few_bits(po, bytes, 8))
+               return -1;
+
+       return per_put_few_bits(po, n, 8 * bytes);
+}
+
+
+/* X.691-2008/11, #11.5.6 -> #11.3 */
+int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *out_value, int nbits) {
+       unsigned long lhalf;    /* Lower half of the number*/
+       long half;
+
+       if(nbits <= 31) {
+               half = per_get_few_bits(pd, nbits);
+               if(half < 0) return -1;
+               *out_value = half;
+               return 0;
+       }
+
+       if((size_t)nbits > 8 * sizeof(*out_value))
+               return -1;  /* RANGE */
+
+       half = per_get_few_bits(pd, 31);
+       if(half < 0) return -1;
+
+       if(uper_get_constrained_whole_number(pd, &lhalf, nbits - 31))
+               return -1;
+
+       *out_value = ((unsigned long)half << (nbits - 31)) | lhalf;
+       return 0;
+}
+
+
+/* X.691-2008/11, #11.5.6 -> #11.3 */
+int
+uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v,
+                                    int nbits) {
+    if(nbits <= 31) {
+        return per_put_few_bits(po, v, nbits);
+    } else {
+        /* Put higher portion first, followed by lower 31-bit */
+        if(uper_put_constrained_whole_number_u(po, v >> 31, nbits - 31))
+            return -1;
+        return per_put_few_bits(po, v, 31);
+    }
+}
+
+/*
+ * X.691 (08/2015) #11.9 "General rules for encoding a length determinant"
+ * Put the length "n" (or part of it) into the stream.
+ */
+ssize_t
+uper_put_length(asn_per_outp_t *po, size_t length, int *need_eom) {
+    int dummy = 0;
+    if(!need_eom) need_eom = &dummy;
+
+    if(length <= 127) {        /* #11.9.3.6 */
+        *need_eom = 0;
+        return per_put_few_bits(po, length, 8)
+            ? -1 : (ssize_t)length;
+    } else if(length < 16384) { /* #10.9.3.7 */
+        *need_eom = 0;
+        return per_put_few_bits(po, length|0x8000, 16)
+            ? -1 : (ssize_t)length;
+    }
+
+    *need_eom = 0 == (length & 16383);
+    length >>= 14;
+    if(length > 4) {
+        *need_eom = 0;
+        length = 4;
+    }
+
+    return per_put_few_bits(po, 0xC0 | length, 8)
+            ? -1 : (ssize_t)(length << 14);
+
+}
+
+
+/*
+ * Put the normally small length "n" into the stream.
+ * This procedure used to encode length of extensions bit-maps
+ * for SET and SEQUENCE types.
+ */
+int
+uper_put_nslength(asn_per_outp_t *po, size_t length) {
+    if(length <= 64) {
+        /* #11.9.3.4 */
+        if(length == 0) return -1;
+        return per_put_few_bits(po, length - 1, 7) ? -1 : 0;
+    } else {
+        int need_eom = 0;
+        if(uper_put_length(po, length, &need_eom) != (ssize_t)length
+           || need_eom) {
+            /* This might happen in case of >16K extensions */
+            return -1;
+        }
+    }
+
+    return 0;
+}
+
+static int
+per__long_range(long lb, long ub, unsigned long *range_r) {
+    unsigned long bounds_range;
+    if((ub < 0) == (lb < 0)) {
+        bounds_range = ub - lb;
+    } else if(lb < 0) {
+        assert(ub >= 0);
+        bounds_range = 1 + ((unsigned long)ub + (unsigned long)-(lb + 1));
+    } else {
+        assert(!"Unreachable");
+        return -1;
+    }
+    *range_r = bounds_range;
+    return 0;
+}
+
+int
+per_long_range_rebase(long v, long lb, long ub, unsigned long *output) {
+    unsigned long range;
+
+    assert(lb <= ub);
+
+    if(v < lb || v > ub || per__long_range(lb, ub, &range) < 0) {
+        /* Range error. */
+        return -1;
+    }
+
+    /*
+     * Fundamentally what we're doing is returning (v-lb).
+     * However, this triggers undefined behavior when the word width
+     * of signed (v) is the same as the size of unsigned (*output).
+     * In practice, it triggers the UndefinedSanitizer. Therefore we shall
+     * compute the ranges accurately to avoid C's undefined behavior.
+     */
+    if((v < 0) == (lb < 0)) {
+        *output = v-lb;
+        return 0;
+    } else if(v < 0) {
+        unsigned long rebased = 1 + (unsigned long)-(v+1) + (unsigned long)lb;
+        assert(rebased <= range);   /* By construction */
+        *output = rebased;
+        return 0;
+    } else if(lb < 0) {
+        unsigned long rebased = 1 + (unsigned long)-(lb+1) + (unsigned long)v;
+        assert(rebased <= range);   /* By construction */
+        *output = rebased;
+        return 0;
+    } else {
+        assert(!"Unreachable");
+        return -1;
+    }
+}
+
+int
+per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp) {
+    unsigned long range;
+
+    if(per__long_range(lb, ub, &range) != 0) {
+        return -1;
+    }
+
+    if(inp > range) {
+        /*
+         * We can encode something in the given number of bits that technically
+         * exceeds the range. This is an avenue for security errors,
+         * so we don't allow that.
+         */
+        return -1;
+    }
+
+    if(inp <= LONG_MAX) {
+        *outp = (long)inp + lb;
+    } else {
+        *outp = (lb + LONG_MAX + 1) + (long)((inp - LONG_MAX) - 1);
+    }
+
+    return 0;
+}
+
+int32_t
+aper_get_align(asn_per_data_t *pd) {
+
+       if(pd->nboff & 0x7) {
+               ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)pd->nboff & 0x7));
+               return per_get_few_bits(pd, 8 - (pd->nboff & 0x7));
+       }
+       return 0;
+}
+
+ssize_t
+aper_get_length(asn_per_data_t *pd, int range, int ebits, int *repeat) {
+       ssize_t value;
+
+       *repeat = 0;
+
+       if (range <= 65536 && range >= 0)
+               return aper_get_nsnnwn(pd, range);
+
+       if (aper_get_align(pd) < 0)
+               return -1;
+
+       if(ebits >= 0) return per_get_few_bits(pd, ebits);
+
+       value = per_get_few_bits(pd, 8);
+       if(value < 0) return -1;
+       if((value & 128) == 0)  /* #10.9.3.6 */
+               return (value & 0x7F);
+       if((value & 64) == 0) { /* #10.9.3.7 */
+               value = ((value & 63) << 8) | per_get_few_bits(pd, 8);
+               if(value < 0) return -1;
+               return value;
+       }
+       value &= 63;    /* this is "m" from X.691, #10.9.3.8 */
+       if(value < 1 || value > 4)
+               return -1;
+       *repeat = 1;
+       return (16384 * value);
+}
+
+ssize_t
+aper_get_nslength(asn_per_data_t *pd) {
+       ssize_t length;
+
+       ASN_DEBUG("Getting normally small length");
+
+       if(per_get_few_bits(pd, 1) == 0) {
+               length = per_get_few_bits(pd, 6) + 1;
+               if(length <= 0) return -1;
+               ASN_DEBUG("l=%ld", length);
+               return length;
+       } else {
+               int repeat;
+               length = aper_get_length(pd, -1, -1, &repeat);
+               if(length >= 0 && !repeat) return length;
+               return -1; /* Error, or do not support >16K extensions */
+       }
+}
+
+ssize_t
+aper_get_nsnnwn(asn_per_data_t *pd, int range) {
+       ssize_t value;
+       int bytes = 0;
+
+       ASN_DEBUG("getting nsnnwn with range %d", range);
+
+       if(range <= 255) {
+               int i;
+
+               if (range < 0) return -1;
+               /* 1 -> 8 bits */
+               for (i = 1; i <= 8; i++) {
+                       int upper = 1 << i;
+                       if (upper >= range)
+                               break;
+               }
+               value = per_get_few_bits(pd, i);
+               return value;
+       } else if (range == 256){
+               /* 1 byte */
+               bytes = 1;
+       } else if (range <= 65536) {
+               /* 2 bytes */
+               bytes = 2;
+       } else {
+               return -1;
+       }
+       if (aper_get_align(pd) < 0)
+               return -1;
+       value = per_get_few_bits(pd, 8 * bytes);
+       return value;
+}
+
+int aper_put_align(asn_per_outp_t *po) {
+
+       if(po->nboff & 0x7) {
+               ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)po->nboff & 0x7));
+               if(per_put_few_bits(po, 0x00, (8 - (po->nboff & 0x7))))
+                       return -1;
+       }
+       return 0;
+}
+
+ssize_t
+aper_put_length(asn_per_outp_t *po, int range, size_t length) {
+
+       ASN_DEBUG("APER put length %zu with range %d", length, range);
+
+       /* 10.9 X.691 Note 2 */
+       if (range <= 65536 && range >= 0)
+               return aper_put_nsnnwn(po, range, length);
+
+       if (aper_put_align(po) < 0)
+               return -1;
+
+       if(length <= 127)          /* #10.9.3.6 */{
+               return per_put_few_bits(po, length, 8)
+               ? -1 : (ssize_t)length;
+       }
+       else if(length < 16384) /* #10.9.3.7 */
+               return per_put_few_bits(po, length|0x8000, 16)
+               ? -1 : (ssize_t)length;
+
+       length >>= 14;
+       if(length > 4) length = 4;
+
+       return per_put_few_bits(po, 0xC0 | length, 8)
+       ? -1 : (ssize_t)(length << 14);
+}
+
+
+int
+aper_put_nslength(asn_per_outp_t *po, size_t length) {
+
+       if(length <= 64) {
+               /* #10.9.3.4 */
+               if(length == 0) return -1;
+               return per_put_few_bits(po, length-1, 7) ? -1 : 0;
+       } else {
+               if(aper_put_length(po, -1, length) != (ssize_t)length) {
+                       /* This might happen in case of >16K extensions */
+                       return -1;
+               }
+       }
+
+       return 0;
+}
+
+int
+aper_put_nsnnwn(asn_per_outp_t *po, int range, int number) {
+       int bytes;
+
+    ASN_DEBUG("aper put nsnnwn %d with range %d", number, range);
+       /* 10.5.7.1 X.691 */
+       if(range < 0) {
+               int i;
+               for (i = 1; ; i++) {
+                       int bits = 1 << (8 * i);
+                       if (number <= bits)
+                               break;
+               }
+               bytes = i;
+               assert(i <= 4);
+       }
+       if(range <= 255) {
+               int i;
+               for (i = 1; i <= 8; i++) {
+                       int bits = 1 << i;
+                       if (range <= bits)
+                               break;
+               }
+               return per_put_few_bits(po, number, i);
+       } else if(range == 256) {
+               bytes = 1;
+       } else if(range <= 65536) {
+               bytes = 2;
+       } else { /* Ranges > 64K */
+               int i;
+               for (i = 1; ; i++) {
+                       int bits = 1 << (8 * i);
+                       if (range <= bits)
+                               break;
+               }
+               assert(i <= 4);
+               bytes = i;
+       }
+       if(aper_put_align(po) < 0) /* Aligning on octet */
+               return -1;
+/*     if(per_put_few_bits(po, bytes, 8))
+               return -1;
+*/
+    return per_put_few_bits(po, number, 8 * bytes);
+}
diff --git a/e2ap/lib/xer_decoder.c b/e2ap/lib/xer_decoder.c
new file mode 100644 (file)
index 0000000..5b87703
--- /dev/null
@@ -0,0 +1,369 @@
+/*
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_application.h>
+#include <asn_internal.h>
+#include <xer_support.h>               /* XER/XML parsing support */
+
+
+/*
+ * Decode the XER encoding of a given type.
+ */
+asn_dec_rval_t
+xer_decode(const asn_codec_ctx_t *opt_codec_ctx,
+           const asn_TYPE_descriptor_t *td, void **struct_ptr,
+           const void *buffer, size_t size) {
+    asn_codec_ctx_t s_codec_ctx;
+
+       /*
+        * Stack checker requires that the codec context
+        * must be allocated on the stack.
+        */
+       if(opt_codec_ctx) {
+               if(opt_codec_ctx->max_stack_size) {
+                       s_codec_ctx = *opt_codec_ctx;
+                       opt_codec_ctx = &s_codec_ctx;
+               }
+       } else {
+               /* If context is not given, be security-conscious anyway */
+               memset(&s_codec_ctx, 0, sizeof(s_codec_ctx));
+               s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX;
+               opt_codec_ctx = &s_codec_ctx;
+       }
+
+       /*
+        * Invoke type-specific decoder.
+        */
+       return td->op->xer_decoder(opt_codec_ctx, td, struct_ptr, 0, buffer, size);
+}
+
+
+
+struct xer__cb_arg {
+       pxml_chunk_type_e       chunk_type;
+       size_t                  chunk_size;
+       const void              *chunk_buf;
+       int callback_not_invoked;
+};
+
+static int
+xer__token_cb(pxml_chunk_type_e type, const void *_chunk_data, size_t _chunk_size, void *key) {
+       struct xer__cb_arg *arg = (struct xer__cb_arg *)key;
+       arg->chunk_type = type;
+       arg->chunk_size = _chunk_size;
+       arg->chunk_buf = _chunk_data;
+       arg->callback_not_invoked = 0;
+       return -1;      /* Terminate the XML parsing */
+}
+
+/*
+ * Fetch the next token from the XER/XML stream.
+ */
+ssize_t
+xer_next_token(int *stateContext, const void *buffer, size_t size, pxer_chunk_type_e *ch_type) {
+       struct xer__cb_arg arg;
+       int new_stateContext = *stateContext;
+       ssize_t ret;
+
+       arg.callback_not_invoked = 1;
+       ret = pxml_parse(&new_stateContext, buffer, size, xer__token_cb, &arg);
+       if(ret < 0) return -1;
+       if(arg.callback_not_invoked) {
+               assert(ret == 0);       /* No data was consumed */
+        *ch_type = PXER_WMORE;
+               return 0;               /* Try again with more data */
+       } else {
+               assert(arg.chunk_size);
+               assert(arg.chunk_buf == buffer);
+       }
+
+       /*
+        * Translate the XML chunk types into more convenient ones.
+        */
+       switch(arg.chunk_type) {
+       case PXML_TEXT:
+               *ch_type = PXER_TEXT;
+               break;
+       case PXML_TAG:
+               *ch_type = PXER_WMORE;
+               return 0;       /* Want more */
+       case PXML_TAG_END:
+               *ch_type = PXER_TAG;
+               break;
+       case PXML_COMMENT:
+       case PXML_COMMENT_END:
+               *ch_type = PXER_COMMENT;
+               break;
+       }
+
+       *stateContext = new_stateContext;
+       return arg.chunk_size;
+}
+
+#define        CSLASH  0x2f    /* '/' */
+#define        LANGLE  0x3c    /* '<' */
+#define        RANGLE  0x3e    /* '>' */
+
+xer_check_tag_e
+xer_check_tag(const void *buf_ptr, int size, const char *need_tag) {
+       const char *buf = (const char *)buf_ptr;
+       const char *end;
+       xer_check_tag_e ct = XCT_OPENING;
+
+       if(size < 2 || buf[0] != LANGLE || buf[size-1] != RANGLE) {
+               if(size >= 2)
+                       ASN_DEBUG("Broken XML tag: \"%c...%c\"",
+                       buf[0], buf[size - 1]);
+               return XCT_BROKEN;
+       }
+
+       /*
+        * Determine the tag class.
+        */
+       if(buf[1] == CSLASH) {
+               buf += 2;       /* advance past "</" */
+               size -= 3;      /* strip "</" and ">" */
+               ct = XCT_CLOSING;
+               if(size > 0 && buf[size-1] == CSLASH)
+                       return XCT_BROKEN;      /* </abc/> */
+       } else {
+               buf++;          /* advance past "<" */
+               size -= 2;      /* strip "<" and ">" */
+               if(size > 0 && buf[size-1] == CSLASH) {
+                       ct = XCT_BOTH;
+                       size--; /* One more, for "/" */
+               }
+       }
+
+       /* Sometimes we don't care about the tag */
+       if(!need_tag || !*need_tag)
+               return (xer_check_tag_e)(XCT__UNK__MASK | ct);
+
+       /*
+        * Determine the tag name.
+        */
+       for(end = buf + size; buf < end; buf++, need_tag++) {
+               int b = *buf, n = *need_tag;
+               if(b != n) {
+                       if(n == 0) {
+                               switch(b) {
+                               case 0x09: case 0x0a: case 0x0c: case 0x0d:
+                               case 0x20:
+                                       /* "<abc def/>": whitespace is normal */
+                                       return ct;
+                               }
+                       }
+                       return (xer_check_tag_e)(XCT__UNK__MASK | ct);
+               }
+               if(b == 0)
+                       return XCT_BROKEN;      /* Embedded 0 in buf?! */
+       }
+       if(*need_tag)
+               return (xer_check_tag_e)(XCT__UNK__MASK | ct);
+
+       return ct;
+}
+
+
+#undef ADVANCE
+#define        ADVANCE(num_bytes)      do {                            \
+               size_t num = (num_bytes);                       \
+               buf_ptr = ((const char *)buf_ptr) + num;        \
+               size -= num;                                    \
+               consumed_myself += num;                         \
+       } while(0)
+
+#undef RETURN
+#define        RETURN(_code)   do {                                    \
+               rval.code = _code;                              \
+               rval.consumed = consumed_myself;                \
+               if(rval.code != RC_OK)                          \
+                       ASN_DEBUG("Failed with %d", rval.code); \
+               return rval;                                    \
+       } while(0)
+
+#define        XER_GOT_BODY(chunk_buf, chunk_size, size)       do {    \
+               ssize_t converted_size = body_receiver          \
+                       (struct_key, chunk_buf, chunk_size,     \
+                               (size_t)chunk_size < size);     \
+               if(converted_size == -1) RETURN(RC_FAIL);       \
+               if(converted_size == 0                          \
+                       && size == (size_t)chunk_size)          \
+                       RETURN(RC_WMORE);                       \
+               chunk_size = converted_size;                    \
+       } while(0)
+#define        XER_GOT_EMPTY() do {                                    \
+       if(body_receiver(struct_key, 0, 0, size > 0) == -1)     \
+                       RETURN(RC_FAIL);                        \
+       } while(0)
+
+/*
+ * Generalized function for decoding the primitive values.
+ */
+asn_dec_rval_t
+xer_decode_general(const asn_codec_ctx_t *opt_codec_ctx,
+       asn_struct_ctx_t *ctx,  /* Type decoder context */
+       void *struct_key,
+       const char *xml_tag,    /* Expected XML tag */
+       const void *buf_ptr, size_t size,
+       int (*opt_unexpected_tag_decoder)
+               (void *struct_key, const void *chunk_buf, size_t chunk_size),
+       ssize_t (*body_receiver)
+               (void *struct_key, const void *chunk_buf, size_t chunk_size,
+                       int have_more)
+       ) {
+
+       asn_dec_rval_t rval;
+       ssize_t consumed_myself = 0;
+
+       (void)opt_codec_ctx;
+
+       /*
+        * Phases of XER/XML processing:
+        * Phase 0: Check that the opening tag matches our expectations.
+        * Phase 1: Processing body and reacting on closing tag.
+        */
+       if(ctx->phase > 1) RETURN(RC_FAIL);
+       for(;;) {
+               pxer_chunk_type_e ch_type;      /* XER chunk type */
+               ssize_t ch_size;                /* Chunk size */
+               xer_check_tag_e tcv;            /* Tag check value */
+
+               /*
+                * Get the next part of the XML stream.
+                */
+               ch_size = xer_next_token(&ctx->context, buf_ptr, size,
+                       &ch_type);
+               if(ch_size == -1) {
+            RETURN(RC_FAIL);
+        } else {
+                       switch(ch_type) {
+                       case PXER_WMORE:
+                RETURN(RC_WMORE);
+                       case PXER_COMMENT:              /* Got XML comment */
+                               ADVANCE(ch_size);       /* Skip silently */
+                               continue;
+                       case PXER_TEXT:
+                               if(ctx->phase == 0) {
+                                       /*
+                                        * We have to ignore whitespace here,
+                                        * but in order to be forward compatible
+                                        * with EXTENDED-XER (EMBED-VALUES, #25)
+                                        * any text is just ignored here.
+                                        */
+                               } else {
+                                       XER_GOT_BODY(buf_ptr, ch_size, size);
+                               }
+                               ADVANCE(ch_size);
+                               continue;
+                       case PXER_TAG:
+                               break;  /* Check the rest down there */
+                       }
+               }
+
+               assert(ch_type == PXER_TAG && size);
+
+               tcv = xer_check_tag(buf_ptr, ch_size, xml_tag);
+               /*
+                * Phase 0:
+                *      Expecting the opening tag
+                *      for the type being processed.
+                * Phase 1:
+                *      Waiting for the closing XML tag.
+                */
+               switch(tcv) {
+               case XCT_BOTH:
+                       if(ctx->phase) break;
+                       /* Finished decoding of an empty element */
+                       XER_GOT_EMPTY();
+                       ADVANCE(ch_size);
+                       ctx->phase = 2; /* Phase out */
+                       RETURN(RC_OK);
+               case XCT_OPENING:
+                       if(ctx->phase) break;
+                       ADVANCE(ch_size);
+                       ctx->phase = 1; /* Processing body phase */
+                       continue;
+               case XCT_CLOSING:
+                       if(!ctx->phase) break;
+                       ADVANCE(ch_size);
+                       ctx->phase = 2; /* Phase out */
+                       RETURN(RC_OK);
+               case XCT_UNKNOWN_BO:
+                       /*
+                        * Certain tags in the body may be expected.
+                        */
+                       if(opt_unexpected_tag_decoder
+                       && opt_unexpected_tag_decoder(struct_key,
+                                       buf_ptr, ch_size) >= 0) {
+                               /* Tag's processed fine */
+                               ADVANCE(ch_size);
+                               if(!ctx->phase) {
+                                       /* We are not expecting
+                                        * the closing tag anymore. */
+                                       ctx->phase = 2; /* Phase out */
+                                       RETURN(RC_OK);
+                               }
+                               continue;
+                       }
+                       /* Fall through */
+               default:
+                       break;          /* Unexpected tag */
+               }
+
+               ASN_DEBUG("Unexpected XML tag (expected \"%s\")", xml_tag);
+               break;  /* Dark and mysterious things have just happened */
+       }
+
+       RETURN(RC_FAIL);
+}
+
+
+size_t
+xer_whitespace_span(const void *chunk_buf, size_t chunk_size) {
+       const char *p = (const char *)chunk_buf;
+       const char *pend = p + chunk_size;
+
+       for(; p < pend; p++) {
+               switch(*p) {
+               /* X.693, #8.1.4
+                * HORISONTAL TAB (9)
+                * LINE FEED (10) 
+                * CARRIAGE RETURN (13) 
+                * SPACE (32)
+                */
+               case 0x09: case 0x0a: case 0x0d: case 0x20:
+                       continue;
+               default:
+                       break;
+               }
+               break;
+       }
+       return (p - (const char *)chunk_buf);
+}
+
+/*
+ * This is a vastly simplified, non-validating XML tree skipper.
+ */
+int
+xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth) {
+       assert(*depth > 0);
+       switch(tcv) {
+       case XCT_BOTH:
+       case XCT_UNKNOWN_BO:
+               /* These negate each other. */
+               return 0;
+       case XCT_OPENING:
+       case XCT_UNKNOWN_OP:
+               ++(*depth);
+               return 0;
+       case XCT_CLOSING:
+       case XCT_UNKNOWN_CL:
+               if(--(*depth) == 0)
+                       return (tcv == XCT_CLOSING) ? 2 : 1;
+               return 0;
+       default:
+               return -1;
+       }
+}
diff --git a/e2ap/lib/xer_encoder.c b/e2ap/lib/xer_encoder.c
new file mode 100644 (file)
index 0000000..4177ede
--- /dev/null
@@ -0,0 +1,237 @@
+/*-
+ * Copyright (c) 2003, 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <stdio.h>
+#include <errno.h>
+
+/*
+ * The XER encoder of any type. May be invoked by the application.
+ */
+asn_enc_rval_t
+xer_encode(const asn_TYPE_descriptor_t *td, const void *sptr,
+           enum xer_encoder_flags_e xer_flags, asn_app_consume_bytes_f *cb,
+           void *app_key) {
+    asn_enc_rval_t er = {0, 0, 0};
+       asn_enc_rval_t tmper;
+       const char *mname;
+       size_t mlen;
+       int xcan = (xer_flags & XER_F_CANONICAL) ? 1 : 2;
+
+       if(!td || !sptr) goto cb_failed;
+
+       mname = td->xml_tag;
+       mlen = strlen(mname);
+
+       ASN__CALLBACK3("<", 1, mname, mlen, ">", 1);
+
+       tmper = td->op->xer_encoder(td, sptr, 1, xer_flags, cb, app_key);
+       if(tmper.encoded == -1) return tmper;
+       er.encoded += tmper.encoded;
+
+       ASN__CALLBACK3("</", 2, mname, mlen, ">\n", xcan);
+
+       ASN__ENCODED_OK(er);
+cb_failed:
+       ASN__ENCODE_FAILED;
+}
+
+/*
+ * This is a helper function for xer_fprint, which directs all incoming data
+ * into the provided file descriptor.
+ */
+static int
+xer__print2fp(const void *buffer, size_t size, void *app_key) {
+       FILE *stream = (FILE *)app_key;
+
+       if(fwrite(buffer, 1, size, stream) != size)
+               return -1;
+
+       return 0;
+}
+
+int
+xer_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, const void *sptr) {
+       asn_enc_rval_t er = {0,0,0};
+
+       if(!stream) stream = stdout;
+       if(!td || !sptr)
+               return -1;
+
+       er = xer_encode(td, sptr, XER_F_BASIC, xer__print2fp, stream);
+       if(er.encoded == -1)
+               return -1;
+
+       return fflush(stream);
+}
+
+struct xer_buffer {
+    char *buffer;
+    size_t buffer_size;
+    size_t allocated_size;
+};
+
+static int
+xer__buffer_append(const void *buffer, size_t size, void *app_key) {
+    struct xer_buffer *xb = app_key;
+
+    while(xb->buffer_size + size + 1 > xb->allocated_size) {
+        size_t new_size = 2 * (xb->allocated_size ? xb->allocated_size : 64);
+        char *new_buf = MALLOC(new_size);
+        if(!new_buf) return -1;
+        if (xb->buffer) {
+            memcpy(new_buf, xb->buffer, xb->buffer_size);
+        }
+        FREEMEM(xb->buffer);
+        xb->buffer = new_buf;
+        xb->allocated_size = new_size;
+    }
+
+    memcpy(xb->buffer + xb->buffer_size, buffer, size);
+    xb->buffer_size += size;
+    xb->buffer[xb->buffer_size] = '\0';
+    return 0;
+}
+
+enum xer_equivalence_e
+xer_equivalent(const struct asn_TYPE_descriptor_s *td, const void *struct1,
+               const void *struct2, FILE *opt_debug_stream) {
+    struct xer_buffer xb1 = {0, 0, 0};
+    struct xer_buffer xb2 = {0, 0, 0};
+    asn_enc_rval_t e1, e2;
+    asn_dec_rval_t rval;
+    void *sptr = NULL;
+
+    if(!td || !struct1 || !struct2) {
+        if(opt_debug_stream) {
+            if(!td) fprintf(opt_debug_stream, "Type descriptor missing\n");
+            if(!struct1) fprintf(opt_debug_stream, "Structure 1 missing\n");
+            if(!struct2) fprintf(opt_debug_stream, "Structure 2 missing\n");
+        }
+        return XEQ_FAILURE;
+    }
+
+    e1 = xer_encode(td, struct1, XER_F_BASIC, xer__buffer_append, &xb1);
+    if(e1.encoded == -1) {
+        if(opt_debug_stream) {
+            fprintf(stderr, "XER Encoding of %s failed\n", td->name);
+        }
+        FREEMEM(xb1.buffer);
+        return XEQ_ENCODE1_FAILED;
+    }
+
+    e2 = xer_encode(td, struct2, XER_F_BASIC, xer__buffer_append, &xb2);
+    if(e2.encoded == -1) {
+        if(opt_debug_stream) {
+            fprintf(stderr, "XER Encoding of %s failed\n", td->name);
+        }
+        FREEMEM(xb1.buffer);
+        FREEMEM(xb2.buffer);
+        return XEQ_ENCODE1_FAILED;
+    }
+
+    if(xb1.buffer_size != xb2.buffer_size
+       || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) {
+        if(opt_debug_stream) {
+            fprintf(opt_debug_stream,
+                    "Structures XER-encoded into different byte streams:\n=== "
+                    "Structure 1 ===\n%s\n=== Structure 2 ===\n%s\n",
+                    xb1.buffer, xb2.buffer);
+        }
+        FREEMEM(xb1.buffer);
+        FREEMEM(xb2.buffer);
+        return XEQ_DIFFERENT;
+    } else {
+        if(opt_debug_stream) {
+            fprintf(opt_debug_stream,
+                    "Both structures encoded into the same XER byte stream "
+                    "of size %" ASN_PRI_SIZE ":\n%s",
+                    xb1.buffer_size, xb1.buffer);
+        }
+    }
+
+    rval = xer_decode(NULL, td, (void **)&sptr, xb1.buffer,
+               xb1.buffer_size);
+    switch(rval.code) {
+    case RC_OK:
+        break;
+    case RC_WMORE:
+        if(opt_debug_stream) {
+            fprintf(opt_debug_stream,
+                    "Structure %s XER decode unexpectedly requires "
+                    "more data:\n%s\n",
+                    td->name, xb1.buffer);
+        }
+        /* Fall through */
+    case RC_FAIL:
+    default:
+        if(opt_debug_stream) {
+            fprintf(opt_debug_stream,
+                    "Structure %s XER decoding resulted in failure.\n",
+                    td->name);
+        }
+        ASN_STRUCT_FREE(*td, sptr);
+        FREEMEM(xb1.buffer);
+        FREEMEM(xb2.buffer);
+        return XEQ_DECODE_FAILED;
+    }
+
+    if(rval.consumed != xb1.buffer_size
+       && ((rval.consumed > xb1.buffer_size)
+           || xer_whitespace_span(xb1.buffer + rval.consumed,
+                                  xb1.buffer_size - rval.consumed)
+                  != (xb1.buffer_size - rval.consumed))) {
+        if(opt_debug_stream) {
+            fprintf(opt_debug_stream,
+                    "Round-trip decode of %s required less bytes (%" ASN_PRI_SIZE ") than "
+                    "encoded (%" ASN_PRI_SIZE ")\n",
+                    td->name, rval.consumed, xb1.buffer_size);
+        }
+        ASN_STRUCT_FREE(*td, sptr);
+        FREEMEM(xb1.buffer);
+        FREEMEM(xb2.buffer);
+        return XEQ_ROUND_TRIP_FAILED;
+    }
+
+    /*
+     * Reuse xb2 to encode newly decoded structure.
+     */
+    FREEMEM(xb2.buffer);
+    memset(&xb2, 0, sizeof(xb2));
+
+    e2 = xer_encode(td, sptr, XER_F_BASIC, xer__buffer_append, &xb2);
+    if(e2.encoded == -1) {
+        if(opt_debug_stream) {
+            fprintf(stderr, "XER Encoding of round-trip decode of %s failed\n",
+                    td->name);
+        }
+        ASN_STRUCT_FREE(*td, sptr);
+        FREEMEM(xb1.buffer);
+        FREEMEM(xb2.buffer);
+        return XEQ_ROUND_TRIP_FAILED;
+    }
+
+    ASN_STRUCT_FREE(*td, sptr);
+    sptr = 0;
+
+    if(xb1.buffer_size != xb2.buffer_size
+       || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) {
+        if(opt_debug_stream) {
+            fprintf(opt_debug_stream,
+                    "XER Encoding of round-trip decode of %s resulted in "
+                    "different byte stream:\n"
+                    "=== Original ===\n%s\n"
+                    "=== Round-tripped ===\n%s\n",
+                    xb1.buffer, xb2.buffer, td->name);
+        }
+        FREEMEM(xb1.buffer);
+        FREEMEM(xb2.buffer);
+        return XEQ_ROUND_TRIP_FAILED;
+    }
+
+       FREEMEM(xb1.buffer);
+       FREEMEM(xb2.buffer);
+       return XEQ_SUCCESS;
+}
+
diff --git a/e2ap/lib/xer_support.c b/e2ap/lib/xer_support.c
new file mode 100644 (file)
index 0000000..36b4bfb
--- /dev/null
@@ -0,0 +1,227 @@
+/*
+ * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com.
+ * Copyright (c) 2003, 2004, 2005 Lev Walkin <vlm@lionet.info>.
+ *     All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_system.h>
+#include <xer_support.h>
+
+/* Parser states */
+typedef enum {
+       ST_TEXT,
+       ST_TAG_START,
+       ST_TAG_BODY,
+       ST_TAG_QUOTE_WAIT,
+       ST_TAG_QUOTED_STRING,
+       ST_TAG_UNQUOTED_STRING,
+       ST_COMMENT_WAIT_DASH1,  /* "<!--"[1] */
+       ST_COMMENT_WAIT_DASH2,  /* "<!--"[2] */
+       ST_COMMENT,
+       ST_COMMENT_CLO_DASH2,   /* "-->"[0] */
+       ST_COMMENT_CLO_RT       /* "-->"[1] */
+} pstate_e;
+
+static const int
+_charclass[256] = {
+       0,0,0,0,0,0,0,0, 0,1,1,0,1,1,0,0,
+       0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,
+       1,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,
+       2,2,2,2,2,2,2,2, 2,2,0,0,0,0,0,0,       /* 01234567 89       */
+       0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,       /*  ABCDEFG HIJKLMNO */
+       3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0,       /* PQRSTUVW XYZ      */
+       0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,       /*  abcdefg hijklmno */
+       3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0        /* pqrstuvw xyz      */
+};
+#define WHITESPACE(c)  (_charclass[(unsigned char)(c)] == 1)
+#define ALNUM(c)       (_charclass[(unsigned char)(c)] >= 2)
+#define ALPHA(c)       (_charclass[(unsigned char)(c)] == 3)
+
+/* Aliases for characters, ASCII/UTF-8 */
+#define        EXCLAM  0x21    /* '!' */
+#define        CQUOTE  0x22    /* '"' */
+#define        CDASH   0x2d    /* '-' */
+#define        CSLASH  0x2f    /* '/' */
+#define        LANGLE  0x3c    /* '<' */
+#define        CEQUAL  0x3d    /* '=' */
+#define        RANGLE  0x3e    /* '>' */
+#define        CQUEST  0x3f    /* '?' */
+
+/* Invoke token callback */
+#define        TOKEN_CB_CALL(type, _ns, _current_too, _final) do {     \
+               int _ret;                                       \
+               pstate_e ns  = _ns;                             \
+               ssize_t _sz = (p - chunk_start) + _current_too; \
+               if (!_sz) {                                     \
+                       /* Shortcut */                          \
+                       state = _ns;                            \
+                       break;                                  \
+               }                                               \
+               _ret = cb(type, chunk_start, _sz, key);         \
+               if(_ret < _sz) {                                \
+                       if(_current_too && _ret == -1)          \
+                               state = ns;                     \
+                       goto finish;                            \
+               }                                               \
+               chunk_start = p + _current_too;                 \
+               state = ns;                                     \
+       } while(0)
+
+#define TOKEN_CB(_type, _ns, _current_too)                     \
+       TOKEN_CB_CALL(_type, _ns, _current_too, 0)
+
+#define PXML_TAG_FINAL_CHUNK_TYPE      PXML_TAG_END
+#define PXML_COMMENT_FINAL_CHUNK_TYPE  PXML_COMMENT_END
+
+#define TOKEN_CB_FINAL(_type, _ns, _current_too)               \
+       TOKEN_CB_CALL( _type ## _FINAL_CHUNK_TYPE , _ns, _current_too, 1)
+
+/*
+ * Parser itself
+ */
+ssize_t pxml_parse(int *stateContext, const void *xmlbuf, size_t size, pxml_callback_f *cb, void *key) {
+       pstate_e state = (pstate_e)*stateContext;
+       const char *chunk_start = (const char *)xmlbuf;
+       const char *p = chunk_start;
+       const char *end = p + size;
+
+       for(; p < end; p++) {
+         int C = *(const unsigned char *)p;
+         switch(state) {
+         case ST_TEXT:
+               /*
+                * Initial state: we're in the middle of some text,
+                * or just have started.
+                */
+               if (C == LANGLE) 
+                       /* We're now in the tag, probably */
+                       TOKEN_CB(PXML_TEXT, ST_TAG_START, 0);
+               break;
+         case ST_TAG_START:
+               if (ALPHA(C) || (C == CSLASH))
+                       state = ST_TAG_BODY;
+               else if (C == EXCLAM)
+                       state = ST_COMMENT_WAIT_DASH1;
+               else 
+                       /*
+                        * Not characters and not whitespace.
+                        * Must be something like "3 < 4".
+                        */
+                       TOKEN_CB(PXML_TEXT, ST_TEXT, 1);/* Flush as data */
+               break;
+         case ST_TAG_BODY:
+               switch(C) {
+               case RANGLE:
+                       /* End of the tag */
+                       TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1);
+                       break;
+               case LANGLE:
+                       /*
+                        * The previous tag wasn't completed, but still
+                        * recognized as valid. (Mozilla-compatible)
+                        */
+                       TOKEN_CB_FINAL(PXML_TAG, ST_TAG_START, 0);      
+                       break;
+               case CEQUAL:
+                       state = ST_TAG_QUOTE_WAIT;
+                       break;
+               }
+               break;
+         case ST_TAG_QUOTE_WAIT:
+               /*
+                * State after the equal sign ("=") in the tag.
+                */
+               switch(C) {
+               case CQUOTE:
+                       state = ST_TAG_QUOTED_STRING;
+                       break;
+               case RANGLE:
+                       /* End of the tag */
+                       TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1);
+                       break;
+               default:
+                       if(!WHITESPACE(C))
+                               /* Unquoted string value */
+                               state = ST_TAG_UNQUOTED_STRING;
+               }
+               break;
+         case ST_TAG_QUOTED_STRING:
+               /*
+                * Tag attribute's string value in quotes.
+                */
+               if(C == CQUOTE) {
+                       /* Return back to the tag state */
+                       state = ST_TAG_BODY;
+               }
+               break;
+         case ST_TAG_UNQUOTED_STRING:
+               if(C == RANGLE) {
+                       /* End of the tag */
+                       TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1);
+               } else if(WHITESPACE(C)) {
+                       /* Return back to the tag state */
+                       state = ST_TAG_BODY;
+               }
+               break;
+         case ST_COMMENT_WAIT_DASH1:
+               if(C == CDASH) {
+                       state = ST_COMMENT_WAIT_DASH2;
+               } else {
+                       /* Some ordinary tag. */
+                       state = ST_TAG_BODY;
+               }
+               break;
+         case ST_COMMENT_WAIT_DASH2:
+               if(C == CDASH) {
+                       /* Seen "<--" */
+                       state = ST_COMMENT;
+               } else {
+                       /* Some ordinary tag */
+                       state = ST_TAG_BODY;
+               }
+               break;
+         case ST_COMMENT:
+               if(C == CDASH) {
+                       state = ST_COMMENT_CLO_DASH2;
+               }
+               break;
+         case ST_COMMENT_CLO_DASH2:
+               if(C == CDASH) {
+                       state = ST_COMMENT_CLO_RT;
+               } else {
+                       /* This is not an end of a comment */
+                       state = ST_COMMENT;
+               }
+               break;
+         case ST_COMMENT_CLO_RT:
+               if(C == RANGLE) {
+                       TOKEN_CB_FINAL(PXML_COMMENT, ST_TEXT, 1);
+               } else if(C == CDASH) {
+                       /* Maintain current state, still waiting for '>' */
+               } else {
+                       state = ST_COMMENT;
+               }
+               break;
+         } /* switch(*ptr) */
+       } /* for() */
+
+       /*
+        * Flush the partially processed chunk, state permitting.
+        */
+       if(p - chunk_start) {
+               switch (state) {
+               case ST_COMMENT:
+                       TOKEN_CB(PXML_COMMENT, state, 0);
+                       break;
+               case ST_TEXT:
+                       TOKEN_CB(PXML_TEXT, state, 0);
+                       break;
+               default: break; /* a no-op */
+               }
+       }
+
+finish:
+       *stateContext = (int)state;
+       return chunk_start - (const char *)xmlbuf;
+}
+
diff --git a/e2ap/wrapper.c b/e2ap/wrapper.c
new file mode 100644 (file)
index 0000000..61c13a9
--- /dev/null
@@ -0,0 +1,116 @@
+#include <errno.h>\r
+#include "wrapper.h"\r
+\r
+ssize_t encode_RIC_subscription_request(RICsubscriptionRequest_t* pdu, void* buffer, size_t buf_size)\r
+{\r
+\r
+    asn_enc_rval_t encode_result;\r
+    encode_result = aper_encode_to_buffer(&asn_DEF_RICsubscriptionRequest, NULL, pdu, buffer, buf_size);\r
+    if(encode_result.encoded == -1) {\r
+        return -1;\r
+    }\r
+    return encode_result.encoded;\r
+}\r
+\r
+RICsubscriptionRequest_t* decode_RIC_subscription_request(const void *buffer, size_t buf_size)\r
+{\r
+    asn_dec_rval_t decode_result;\r
+    RICsubscriptionRequest_t *pdu = 0;\r
+    decode_result = aper_decode_complete(NULL, &asn_DEF_RICsubscriptionRequest, (void **)&pdu, buffer, buf_size);\r
+    if(decode_result.code == RC_OK) {\r
+        return pdu;\r
+    } else {\r
+        ASN_STRUCT_FREE(asn_DEF_RICsubscriptionRequest, pdu);\r
+        return 0;\r
+    }\r
+}\r
+\r
+long e2ap_get_ric_subscription_request_sequence_number(void *buffer, size_t buf_size)\r
+{\r
+    RICsubscriptionRequest_t *pdu = decode_RIC_subscription_request(buffer, buf_size);\r
+    if(pdu != NULL)\r
+    {\r
+        for (int i = 0; i < pdu->protocolIEs.list.count; ++i )\r
+            {\r
+                if ( pdu->protocolIEs.list.array[i]->id == ProtocolIE_ID_id_RICrequestID )\r
+                {\r
+                    return pdu->protocolIEs.list.array[i]->value.choice.RICrequestID.ricRequestSequenceNumber;\r
+                }\r
+            }\r
+    }\r
+    return -1;\r
+}\r
+\r
+ssize_t  e2ap_set_ric_subscription_request_sequence_number(void *buffer, size_t buf_size, long sequence_number)\r
+{\r
+    RICsubscriptionRequest_t *pdu = decode_RIC_subscription_request(buffer, buf_size);\r
+    if(pdu != NULL)\r
+    {\r
+        for (int i = 0; i < pdu->protocolIEs.list.count; ++i )\r
+            {\r
+                if ( pdu->protocolIEs.list.array[i]->id == ProtocolIE_ID_id_RICrequestID )\r
+                {\r
+                    pdu->protocolIEs.list.array[i]->value.choice.RICrequestID.ricRequestSequenceNumber = sequence_number;\r
+                    return encode_RIC_subscription_request(pdu, buffer, buf_size);\r
+                }\r
+            }\r
+    }\r
+    return -1;\r
+}\r
+\r
+ssize_t encode_RIC_subscription_response(RICsubscriptionResponse_t* pdu, void* buffer, size_t buf_size)\r
+{\r
+\r
+    asn_enc_rval_t encode_result;\r
+    encode_result = aper_encode_to_buffer(&asn_DEF_RICsubscriptionResponse, NULL, pdu, buffer, buf_size);\r
+    if(encode_result.encoded == -1) {\r
+        return -1;\r
+    }\r
+    return encode_result.encoded;\r
+}\r
+\r
+RICsubscriptionResponse_t* decode_RIC_subscription_response(const void *buffer, size_t buf_size)\r
+{\r
+    asn_dec_rval_t decode_result;\r
+    RICsubscriptionResponse_t *pdu = 0;\r
+    decode_result = aper_decode_complete(NULL, &asn_DEF_RICsubscriptionResponse, (void **)&pdu, buffer, buf_size);\r
+    if(decode_result.code == RC_OK) {\r
+        return pdu;\r
+    } else {\r
+        ASN_STRUCT_FREE(asn_DEF_RICsubscriptionResponse, pdu);\r
+        return 0;\r
+    }\r
+}\r
+\r
+long e2ap_get_ric_subscription_response_sequence_number(void *buffer, size_t buf_size)\r
+{\r
+    RICsubscriptionResponse_t *pdu = decode_RIC_subscription_response(buffer, buf_size);\r
+    if(pdu != NULL)\r
+    {\r
+        for (int i = 0; i < pdu->protocolIEs.list.count; ++i )\r
+        {\r
+            if ( pdu->protocolIEs.list.array[i]->id == ProtocolIE_ID_id_RICrequestID )\r
+            {\r
+                return pdu->protocolIEs.list.array[i]->value.choice.RICrequestID.ricRequestSequenceNumber;\r
+            }\r
+        }\r
+    }\r
+    return -1;\r
+}\r
+\r
+ssize_t  e2ap_set_ric_subscription_response_sequence_number(void *buffer, size_t buf_size, long sequence_number)\r
+{\r
+    RICsubscriptionResponse_t *pdu = decode_RIC_subscription_response(buffer, buf_size);\r
+    if(pdu != NULL)\r
+    {\r
+        for (int i = 0; i < pdu->protocolIEs.list.count; ++i )\r
+        {\r
+            if ( pdu->protocolIEs.list.array[i]->id == ProtocolIE_ID_id_RICrequestID )\r
+            {\r
+                pdu->protocolIEs.list.array[i]->value.choice.RICrequestID.ricRequestSequenceNumber = sequence_number;\r
+                return encode_RIC_subscription_response(pdu, buffer, buf_size);\r
+            }\r
+        }\r
+    }\r
+    return -1;\r
+}\r
diff --git a/e2ap/wrapper.h b/e2ap/wrapper.h
new file mode 100644 (file)
index 0000000..0e919b8
--- /dev/null
@@ -0,0 +1,23 @@
+#ifndef        _WRAPPER_H_\r
+#define        _WRAPPER_H_\r
+\r
+#include "RICsubscriptionRequest.h"\r
+#include "RICsubscriptionResponse.h"\r
+#include "ProtocolIE-Container.h"\r
+#include "ProtocolIE-Field.h"\r
+\r
+\r
+ssize_t encode_RIC_subscription_request(RICsubscriptionRequest_t* pdu, void* buffer, size_t buf_size);\r
+RICsubscriptionRequest_t* decode_RIC_subscription_request(const void *buffer, size_t buf_size);\r
+\r
+long e2ap_get_ric_subscription_request_sequence_number(void *buffer, size_t buf_size);\r
+ssize_t  e2ap_set_ric_subscription_request_sequence_number(void *buffer, size_t buf_size, long sequence_number);\r
+\r
+ssize_t encode_RIC_subscription_response(RICsubscriptionResponse_t* pdu, void* buffer, size_t buf_size);\r
+RICsubscriptionResponse_t* decode_RIC_subscription_response(const void *buffer, size_t buf_size);\r
+\r
+long e2ap_get_ric_subscription_response_sequence_number(void *buffer, size_t buf_size);\r
+ssize_t  e2ap_set_ric_subscription_response_sequence_number(void *buffer, size_t buf_size, long sequence_number);\r
+\r
+\r
+#endif /* _WRAPPER_H_ */
\ No newline at end of file
diff --git a/go.mod b/go.mod
index 053212c..6f22d1f 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -2,7 +2,10 @@ go 1.12
 
 module gerrit.o-ran-sc.org/r/ric-plt/submgr
 
-require gerrit.o-ran-sc.org/r/ric-plt/xapp-frame v0.0.5
+require (
+       gerrit.o-ran-sc.org/r/ric-plt/xapp-frame v0.0.5
+       github.com/spf13/viper v1.3.2
+)
 
 replace gerrit.o-ran-sc.org/r/ric-plt/sdlgo => gerrit.o-ran-sc.org/r/ric-plt/sdlgo.git v0.1.1
 
index 70797bf..92b6d15 100644 (file)
@@ -37,11 +37,13 @@ spec:
     spec:
       containers:
       - name: submgr
-        image: cmaster:5000/submgr:0.1.1
+        image: cmaster:5000/submgr:builder
         command: ["/run_submgr.sh"]
         env:
         - name: DBAAS_SERVICE_HOST
           value: dbaas
+        - name: SUBMGR_SEED_SN
+          value: "1"
         ports:
         - containerPort: 8080
         - containerPort: 4560
index d213c65..9a5022f 100644 (file)
@@ -27,69 +27,97 @@ package control
 */
 import "C"
 
-
 import (
-  "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
-  "errors"
-  "strconv"
+       "errors"
+       "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
+       "github.com/spf13/viper"
+       "math/rand"
+       "strconv"
+       "time"
 )
 
 type Control struct {
-  e2ap *E2ap
-  registry *Registry
+       e2ap     *E2ap
+       registry *Registry
+}
+
+var SEEDSN uint16
+
+func init() {
+       viper.AutomaticEnv()
+       viper.SetEnvPrefix("submgr")
+       viper.AllowEmptyEnv(true)
+       SEEDSN = uint16(viper.GetInt("seed_sn"))
+       if SEEDSN == 0 {
+               rand.Seed(time.Now().UnixNano())
+               SEEDSN = uint16(rand.Intn(65535))
+       }
+       if SEEDSN > 65535 {
+               SEEDSN = 0
+       }
+       xapp.Logger.Info("SUBMGR: Initial Sequence Number: %v", SEEDSN)
 }
 
 func NewControl() Control {
-  return Control{new(E2ap),new(Registry)}
+       registry := new(Registry)
+       registry.Initialize(SEEDSN)
+       return Control{new(E2ap), registry}
 }
 
 func (c *Control) Run() {
-  xapp.Run(c)
+       xapp.Run(c)
 }
 
 func (c *Control) Consume(mtype, sub_id int, len int, payload []byte) (err error) {
-  switch mtype {
-  case C.RIC_SUB_REQ:
-    err = c.handleSubscriptionRequest(&RmrDatagram{mtype, sub_id, payload})
-  case C.RIC_SUB_RESP:
-    err = c.handleSubscriptionResponse(&RmrDatagram{mtype, sub_id, payload})
-  default:
-    err = errors.New("Message Type "+strconv.Itoa(mtype)+" discarded")
-  }
-  return
+       switch mtype {
+       case C.RIC_SUB_REQ:
+               err = c.handleSubscriptionRequest(&RmrDatagram{mtype, uint16(sub_id), payload})
+       case C.RIC_SUB_RESP:
+               err = c.handleSubscriptionResponse(&RmrDatagram{mtype, uint16(sub_id), payload})
+       default:
+               err = errors.New("Message Type " + strconv.Itoa(mtype) + " is discarded")
+       }
+       return
 }
 
 func (c *Control) rmrSend(datagram *RmrDatagram) (err error) {
-  if !xapp.Rmr.Send(datagram.MessageType, datagram.SubscriptionId, len(datagram.Payload), datagram.Payload) {
-    err = errors.New("rmr.Send() failed")
-  }
-  return
+       if !xapp.Rmr.Send(datagram.MessageType, int(datagram.SubscriptionId), len(datagram.Payload), datagram.Payload) {
+               err = errors.New("rmr.Send() failed")
+       }
+       return
 }
 
-func (c *Control) handleSubscriptionRequest(datagram *RmrDatagram) ( err error) {
-  /* TODO: removed to being able to integrate with UEMGR
-  content, err := c.e2ap.GetPayloadContent(datagram.Payload)
-  */
-  xapp.Logger.Info("Subscription Request Message received with ID: %v", datagram.SubscriptionId)
-  new_sub_id := c.registry.GetSubscriptionId()
-  /* TODO: removed to being able to integrate with UEMGR
-  payload, err := c.e2ap.SetSubscriptionSequenceNumber(datagram.Payload, new_sub_id)
-  if err != nil {
-    xapp.Logger.Error("Unable to set Subscription Sequence Number in Payload due to: "+ err.Error())
-    return
-  }
-  */
-  xapp.Logger.Info("New Subscription Registered, forwarding to E2T")
-  c.rmrSend(&RmrDatagram{C.RIC_SUB_REQ , new_sub_id, datagram.Payload})
-  return
+func (c *Control) handleSubscriptionRequest(datagram *RmrDatagram) (err error) {
+       payload_seq_num, err := c.e2ap.GetSubscriptionRequestSequenceNumber(datagram.Payload)
+       if err != nil {
+               err = errors.New("Unable to get Subscription Sequence Number from Payload due to: " + err.Error())
+               return
+       }
+       xapp.Logger.Info("Subscription Request Received. RMR SUBSCRIPTION_ID: %v | PAYLOAD SEQUENCE_NUMBER: %v", datagram.SubscriptionId, payload_seq_num)
+       new_sub_id := c.registry.ReserveSequenceNumber()
+       payload, err := c.e2ap.SetSubscriptionRequestSequenceNumber(datagram.Payload, new_sub_id)
+       if err != nil {
+               err = errors.New("Unable to set Subscription Sequence Number in Payload due to: " + err.Error())
+               return
+       }
+       xapp.Logger.Info("Generated ID: %v. Forwarding to E2 Termination...", int(new_sub_id))
+       c.rmrSend(&RmrDatagram{C.RIC_SUB_REQ, new_sub_id, payload})
+       return
 }
 
-func (c *Control) handleSubscriptionResponse(datagram *RmrDatagram) ( err error) {
-  /* TODO: removed to being able to integrate with UEMGR
-  content, err := c.e2ap.GetPayloadContent(datagram.Payload)
-  */
-  xapp.Logger.Info("Subscription Response Message received with ID: %v", datagram.SubscriptionId)
-  xapp.Logger.Info("Subscription Response Registered, forwarding to Requestor")
-  c.rmrSend(&RmrDatagram{C.RIC_SUB_RESP , datagram.SubscriptionId, datagram.Payload})
-  return
-}
\ No newline at end of file
+func (c *Control) handleSubscriptionResponse(datagram *RmrDatagram) (err error) {
+       payload_seq_num, err := c.e2ap.GetSubscriptionResponseSequenceNumber(datagram.Payload)
+       if err != nil {
+               err = errors.New("Unable to get Subscription Sequence Number from Payload due to: " + err.Error())
+               return
+       }
+       xapp.Logger.Info("Subscription Response Received. RMR SUBSCRIPTION_ID: %v | PAYLOAD SEQUENCE_NUMBER: %v", datagram.SubscriptionId, payload_seq_num)
+       if !c.registry.IsValidSequenceNumber(payload_seq_num) {
+               err = errors.New("Unknown Subscription ID: " + strconv.Itoa(int(payload_seq_num)) + " in Subscritpion Response. Message discarded.")
+               return
+       }
+       c.registry.setSubscriptionToConfirmed(payload_seq_num)
+       xapp.Logger.Info("Subscription Response Registered. Forwarding to Requestor...")
+       c.rmrSend(&RmrDatagram{C.RIC_SUB_RESP, payload_seq_num, datagram.Payload})
+       return
+}
index ff9c778..c6b5e28 100644 (file)
 
 package control
 
+/*
+#include <wrapper.h>
+
+#cgo LDFLAGS: -lwrapper
+*/
+import "C"
+
 import (
-  "encoding/gob"
-  "bytes"
-  "errors"
+       "errors"
+       "unsafe"
 )
 
 type E2ap struct {
 }
 
-func (c *E2ap) GetSubscriptionSequenceNumber(payload []byte) (int, error) {
-  asn1 := new(Asn1)
-  message, err := asn1.Decode(payload)
-  if err != nil {
-    return 0, errors.New("Unable to decode payload due to "+ err.Error()) 
-  }
-  return message.SubscriptionId, nil
-}
-
-func (c *E2ap) SetSubscriptionSequenceNumber(payload []byte, newSubscriptionid int) ([]byte ,error) {
-  asn1 := new(Asn1)
-  message, err := asn1.Decode(payload)
-  if err != nil {
-    return make([]byte,0), errors.New("Unable to decode payload due to "+ err.Error()) 
-  }
-  message.SubscriptionId = newSubscriptionid
-  payload, err = asn1.Encode(message)
-  if err != nil {
-    return make([]byte,0), errors.New("Unable to encode message due to "+ err.Error()) 
-  }
-  return payload, nil
+func (c *E2ap) GetSubscriptionRequestSequenceNumber(payload []byte) (sub_id uint16, err error) {
+       cptr := unsafe.Pointer(&payload[0])
+       cret := C.e2ap_get_ric_subscription_request_sequence_number(cptr, C.size_t(len(payload)))
+       if cret < 0 {
+               return 0, errors.New("e2ap wrapper is unable to get Subscirption Request Sequence Number due to wrong or invalid payload")
+       }
+       sub_id = uint16(cret)
+       return
 }
 
-
-func (c *E2ap) GetPayloadContent(payload []byte) (content string, err error) {
-  asn1 := new(Asn1)
-  message, err := asn1.Decode(payload)
-  content = message.Content
-  return
-}
-/*
-Serialize and Deserialize message using this until real ASN1 GO wrapper is not in place
-*/
-type Asn1 struct {
+func (c *E2ap) SetSubscriptionRequestSequenceNumber(payload []byte, newSubscriptionid uint16) (new_payload []byte, err error) {
+       cptr := unsafe.Pointer(&payload[0])
+       size := C.e2ap_set_ric_subscription_request_sequence_number(cptr, C.size_t(len(payload)), C.long(newSubscriptionid))
+       if size < 0 {
+               return make([]byte, 0), errors.New("e2ap wrapper is unable to set Subscirption Request Sequence Number due to wrong or invalid payload")
+       }
+       new_payload = C.GoBytes(cptr, C.int(size))
+       return
 }
 
-func (a *Asn1) Encode(message RmrPayload) ([]byte, error) {
-       buffer := new(bytes.Buffer)
-       asn1 := gob.NewEncoder(buffer)
-       if err := asn1.Encode(message); err != nil {
-               return nil, err
-  }
-       return buffer.Bytes(), nil
+func (c *E2ap) GetSubscriptionResponseSequenceNumber(payload []byte) (sub_id uint16, err error) {
+       cptr := unsafe.Pointer(&payload[0])
+       cret := C.e2ap_get_ric_subscription_response_sequence_number(cptr, C.size_t(len(payload)))
+       if cret < 0 {
+               return 0, errors.New("e2ap wrapper is unable to get Subscirption Response Sequence Number due to wrong or invalid payload")
+       }
+       sub_id = uint16(cret)
+       return
 }
 
-func (a *Asn1) Decode(data []byte) (RmrPayload, error) {
-  message := new(RmrPayload)
-  buffer := bytes.NewBuffer(data)
-       asn1 := gob.NewDecoder(buffer)
-       if err := asn1.Decode(message); err != nil {
-               return RmrPayload{}, err
-  }
-       return *message, nil
+func (c *E2ap) SetSubscriptionResponseSequenceNumber(payload []byte, newSubscriptionid uint16) (new_payload []byte, err error) {
+       cptr := unsafe.Pointer(&payload[0])
+       size := C.e2ap_set_ric_subscription_response_sequence_number(cptr, C.size_t(len(payload)), C.long(newSubscriptionid))
+       if size < 0 {
+               return make([]byte, 0), errors.New("e2ap wrapper is unable to set Subscirption Reponse Sequence Number due to wrong or invalid payload")
+       }
+       new_payload = C.GoBytes(cptr, C.int(size))
+       return
 }
index 8f52f97..d182b3e 100644 (file)
 
 package control
 
+import "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
+
 type Registry struct {
-  counter int
+       register map[uint16]bool
+       counter  uint16
+}
+
+// This method should run as a constructor
+func (r *Registry) Initialize(seedsn uint16) {
+       r.register = make(map[uint16]bool)
+       r.counter = seedsn
+}
+
+// Reserves and returns the next free sequence number
+func (r *Registry) ReserveSequenceNumber() uint16 {
+       sequenceNumber := r.counter
+       r.register[sequenceNumber] = false
+       r.shift()
+       return sequenceNumber
+}
+
+// This function checks the validity of the given subscription id
+func (r *Registry) IsValidSequenceNumber(sn uint16) bool {
+       xapp.Logger.Debug("Registry map: %v", r.register)
+       if _, ok := r.register[sn]; ok {
+               return true
+       }
+       return false
 }
 
-func (r *Registry) GetSubscriptionId() int {
-  return r.generateId()
+// This function sets the give id as confirmed in the register
+func (r *Registry) setSubscriptionToConfirmed(sn uint16) {
+       r.register[sn] = true
 }
 
-func (r *Registry) generateId() int {
-  r.counter += 1
-  return r.counter
+func (r *Registry) shift() {
+       if r.counter == 65535 {
+               r.counter = 0
+       } else {
+               r.counter++
+       }
 }
index 5f46e65..2a4e9d5 100644 (file)
 
 package control
 
-type RmrPayload struct {
-       MessageType int
-       SubscriptionId int
-       Content string 
-}
-
 type RmrDatagram struct {
-  MessageType int
-       SubscriptionId int
-       Payload []byte 
+       MessageType    int
+       SubscriptionId uint16
+       Payload        []byte
 }
index 78b75bc..87f8f16 100644 (file)
@@ -1,5 +1,5 @@
-# DBaaS Stub Platform Component
-## General Description
-__DBaaS__ is a Stub provides SDL backend Stub for xApp-Frame based components
-* vanilla Redis instace from DockerHub
-
+# DBaaS Stub Platform Component\r
+## General Description\r
+__DBaaS__ is a Stub provides SDL backend Stub for xApp-Frame based components\r
+* vanilla Redis instace from DockerHub\r
+\r
index 5685fca..5e5c7b4 100644 (file)
@@ -1,6 +1,11 @@
-# E2T Test platform component
-Base project: https://gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp
-## General Description
-__E2T__ is a platform component stub which has following behaviors
-* Receives, decodes and prints out the content of any RMR messages
-* Sends Subscription Response message to each RMR message using it's sub_id
+# E2T Test platform component\r
+Base project: https://gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp\r
+## General Description\r
+__E2T__ is a platform component stub which has following behaviors\r
+* Receives, decodes and prints out the content of RMR messages\r
+* Sends Subscription Response message (12011) to each RMR message using it's sub_id\r
+* Sends Subscription Response with invalid subscription ID in every 14 second\r
+* Sends Subscription Response with malformed payload in every 14 second\r
+* Set `E2T_RAWDATA` to override default encoded payload (use hex dump format)\r
+\r
+\r
index 6540385..87f8af7 100644 (file)
 
 FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu18-c-go:1-u18.04-nng1.1.1 as submgrbuild
 
+ENV HTTP_PROXY=http://10.144.1.10:8080
+ENV HTTPS_PROXY=http://10.144.1.10:8080
+RUN echo 'use_proxy=yes \n http_proxy=http://10.144.1.10:8080 \n https_proxy=http://10.144.1.10:8080' > /etc/wgetrc
+RUN echo 'Acquire::http::Proxy "http://87.254.212.121:8080/";' > /etc/apt/apt.conf
+
+COPY . /opt/submgr
+
 # Install RMr shared library
 RUN wget --content-disposition https://packagecloud.io/o-ran-sc/master/packages/debian/stretch/rmr_1.0.36_amd64.deb/download.deb && dpkg -i rmr_1.0.36_amd64.deb
 # Install RMr development header files
@@ -32,7 +39,14 @@ RUN wget --content-disposition https://packagecloud.io/o-ran-sc/master/packages/
 RUN git clone "https://gerrit.o-ran-sc.org/r/com/log" /opt/log && cd /opt/log && \
  ./autogen.sh && ./configure && make install && ldconfig
 
-COPY . /opt/submgr
+# "COMPILING E2AP Wrapper"
+RUN cd /opt/submgr/e2ap && \
+ gcc -c -fPIC -Iheaders/ lib/*.c wrapper.c && \
+ gcc *.o -shared -o libwrapper.so && \
+ cp libwrapper.so /usr/local/lib/ && \
+ cp wrapper.h headers/*.h /usr/local/include/ && \
+ ldconfig
+
 RUN mkdir -p /opt/bin && cd /opt/submgr && \
  /usr/local/go/bin/go get && \
    /usr/local/go/bin/go build -o /opt/test/e2t/e2t ./test/e2t/e2t.go && \
index 2e1f4ac..631f636 100644 (file)
 package main
 
 import (
-       "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
-       /* TODO: removed to being able to integrate with UEMGR
-       submgr "gerrit.o-ran-sc.org/r/ric-plt/submgr/pkg/control"
-       */
+       "encoding/hex"
        "errors"
+       submgr "gerrit.o-ran-sc.org/r/ric-plt/submgr/pkg/control"
+       "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
+       "github.com/spf13/viper"
+       "time"
 )
 
+
 type E2t struct {
+       submgr.E2ap
+}
+
+var c chan submgr.RmrDatagram = make(chan submgr.RmrDatagram, 1)
+
+var RAWDATA string
+
+func init() {
+       viper.AutomaticEnv()
+       viper.SetEnvPrefix("e2t")
+       viper.AllowEmptyEnv(true)
+       RAWDATA = viper.GetString("rawdata")
+       if RAWDATA == "" {
+               RAWDATA = "000001ea7e000500aaaabbbb"
+       }
+       xapp.Logger.Info("Initial RAW Data: %v", RAWDATA)
 }
 
-func (e E2t ) Consume(mtype, sub_id int, len int, payload []byte) (err error) {
-       /* TODO: removed to being able to integrate with UEMGR
-       asn1 := submgr.Asn1{}
-       message, err := asn1.Decode(payload)
+func (e *E2t) GeneratePayload(sub_id uint16) (payload []byte, err error) {
+       skeleton, err := hex.DecodeString(RAWDATA)
        if err != nil {
-               xapp.Logger.Debug("E2T asn1Decoding failure due to "+ err.Error())
+               return make([]byte, 0), errors.New("Unable to decode data provided in RCO_RAWDATA environment variable")
+       }
+       payload, err = e.SetSubscriptionResponseSequenceNumber(skeleton, sub_id)
+       return
+}
+
+func (e E2t) Consume(mtype, sub_id int, len int, payload []byte) (err error) {
+       payload_seq_num, err := e.GetSubscriptionRequestSequenceNumber(payload)
+       if err != nil {
+               xapp.Logger.Error("Unable to get Subscription Sequence Number from Payload due to: " + err.Error())     
+       }       
+       xapp.Logger.Info("Message Received: RMR SUBSCRIPTION_ID: %v | PAYLOAD SEQUENCE_NUMBER: %v", sub_id, payload_seq_num)
+       err = e.sendSubscriptionResponse(uint16(sub_id))
+       return
+}
+
+func (e *E2t) sendSubscriptionResponse(sub_id uint16) (err error) {
+       payload, err := e.GeneratePayload(sub_id)
+       if err != nil {
+               xapp.Logger.Debug(err.Error())
                return
        }
-       */
-       xapp.Logger.Info("E2T Received Message with RMR Subsriprion ID: %v, Responding...", sub_id)
-       err = e.subscriptionResponse(sub_id, payload)
+       c  <- submgr.RmrDatagram{12011, sub_id, payload}
        return
 }
 
-func (e E2t ) subscriptionResponse(sub_id int, payload []byte) (err error) {
-       /* TODO: removed to being able to integrate with UEMGR
-       asn1 := submgr.Asn1{}
-       payload, err := asn1.Encode(submgr.RmrPayload{8, sub_id, "E2T: RCO Subscribed"})
+func (e *E2t) Run() {
+       for {
+               message := <-c
+               payload_seq_num, err := e.GetSubscriptionResponseSequenceNumber(message.Payload)
+               if err != nil {
+                       xapp.Logger.Debug("Unable to get Subscription Sequence Number from Payload due to: " + err.Error())     
+               }
+               xapp.Logger.Info("Sending Message: TYPE: %v | RMR SUBSCRIPTION_ID: %v | PAYLOAD SEQUENCE_NUMBER: %v)", message.MessageType, message.SubscriptionId, payload_seq_num)
+               xapp.Rmr.Send(message.MessageType, int(message.SubscriptionId), len(message.Payload), message.Payload)
+       }
+}
+
+func (e *E2t) sendInvalidTestMessages() {
+       payload, err := e.GeneratePayload(0)
        if err != nil {
                return
        }
-       */
-       if !xapp.Rmr.Send(12011, sub_id, len(payload), payload) {
-               err = errors.New("rmr.Send() failed")   
+       for {
+               time.Sleep(7 * time.Second)
+               c <- submgr.RmrDatagram{12011, 0, payload}
+               time.Sleep(7 * time.Second)
+               c <- submgr.RmrDatagram{12011, 0, make([]byte, 1)}
        }
-       return
 }
 
 func main() {
        e2t := E2t{}
+       go e2t.Run()
+       go e2t.sendInvalidTestMessages()
        xapp.Run(e2t)
 }
index e91fbdf..0060727 100644 (file)
@@ -16,7 +16,7 @@
 "local":
   "host": ":8080"
 "logger":
-  "level": 4
+  "level": 3
 "rmr":
   "protPort": "tcp:4560"
   "maxSize": 2072
similarity index 95%
rename from test/e2t/manifests/e2t_dep.yaml
rename to test/e2t/manifests/e2t-dep.yaml
index 1b009ec..61ef9bd 100644 (file)
@@ -42,6 +42,8 @@ spec:
         env:
         - name: DBAAS_SERVICE_HOST
           value: dbaas
+        - name: E2T_RAWDATA
+          value: 000001ea7e000500aaaabbbb
         ports:
         - containerPort: 8080
         - containerPort: 4560
index 07910a2..3ba74b6 100644 (file)
@@ -1,7 +1,14 @@
-# RCO Test xApp Instance
-Base project: https://gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp
-## General Description
-__RCO__ is an xApp instance which has following behaviors
-* sends one RMR message periodically in every 2 second. 
-* alternately sends Subscription Request (12010) and other (10000) type of messages
-
+# RCO Test xApp Instance\r
+Base project: https://gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp\r
+## General Description\r
+__RCO__ is an xApp instance which has following behaviors\r
+* sends valid SUB_REQ RMR message periodically in every 2 second. \r
+* sends invalid message (10000) message in every 14 second\r
+* sends subscription requsts (12010) with malformed payload in every 14 seconds\r
+* receives RMR messages and emmits log on it's standard output\r
+* default initial sequence number is `12345`. Set `RCO_SEED_SN` environment variable to override\r
+* Set `RCO_RAWDATA` to override default encoded payload (use hex dump format)\r
+\r
+\r
+\r
+\r
index 8945cec..995fe70 100644 (file)
 
 FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu18-c-go:1-u18.04-nng1.1.1 as submgrbuild
 
+ENV HTTP_PROXY=http://10.144.1.10:8080
+ENV HTTPS_PROXY=http://10.144.1.10:8080
+RUN echo 'use_proxy=yes \n http_proxy=http://10.144.1.10:8080 \n https_proxy=http://10.144.1.10:8080' > /etc/wgetrc
+RUN echo 'Acquire::http::Proxy "http://87.254.212.121:8080/";' > /etc/apt/apt.conf
+
+COPY . /opt/submgr
 # Install RMr shared library
 RUN wget --content-disposition https://packagecloud.io/o-ran-sc/master/packages/debian/stretch/rmr_1.0.36_amd64.deb/download.deb && dpkg -i rmr_1.0.36_amd64.deb
 # Install RMr development header files
@@ -32,7 +38,14 @@ RUN wget --content-disposition https://packagecloud.io/o-ran-sc/master/packages/
 RUN git clone "https://gerrit.o-ran-sc.org/r/com/log" /opt/log && cd /opt/log && \
  ./autogen.sh && ./configure && make install && ldconfig
 
-COPY . /opt/submgr
+# "COMPILING E2AP Wrapper"
+RUN cd /opt/submgr/e2ap && \
+ gcc -c -fPIC -Iheaders/ lib/*.c wrapper.c && \
+ gcc *.o -shared -o libwrapper.so && \
+ cp libwrapper.so /usr/local/lib/ && \
+ cp wrapper.h headers/*.h /usr/local/include/ && \
+ ldconfig
+
 RUN mkdir -p /opt/bin && cd /opt/submgr && \
  /usr/local/go/bin/go get && \
    /usr/local/go/bin/go build -o /opt/test/rco/rco ./test/rco/rco.go && \
index 1425b2b..fe4cdb1 100644 (file)
@@ -42,6 +42,10 @@ spec:
         env:
         - name: DBAAS_SERVICE_HOST
           value: dbaas
+        - name: RCO_RAWDATA
+          value: 000003ea7e000500aaaaccccea6300020000ea81000e00045465737400ea6b0003000100
+        - name: RCO_SEED_SN
+          value: "9999"
         ports:
         - containerPort: 8080
         - containerPort: 4560
index 5109530..5f740f2 100644 (file)
 package main
 
 import (
-       "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
+       "encoding/hex"
+       "errors"
        submgr "gerrit.o-ran-sc.org/r/ric-plt/submgr/pkg/control"
+       "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
+       "github.com/spf13/viper"
        "time"
        "os"
 )
 
 type Rco struct {
+       submgr.E2ap
+}
+
+var c chan submgr.RmrDatagram = make(chan submgr.RmrDatagram, 1)
+
+var RAWDATA string
+var SEEDSN uint16
+
+func init() {
+       viper.AutomaticEnv()
+       viper.SetEnvPrefix("rco")
+       viper.AllowEmptyEnv(true)
+       RAWDATA = viper.GetString("rawdata")
+       if RAWDATA == "" {
+               RAWDATA = "000003ea7e000500aaaaccccea6300020000ea81000e00045465737400ea6b0003000100"
+       }
+       xapp.Logger.Info("Initial RAW DATA: %v", RAWDATA)
+       SEEDSN = uint16(viper.GetInt("seed_sn"))
+       if SEEDSN == 0 || SEEDSN > 65535 {
+               SEEDSN = 12345
+       }
+       xapp.Logger.Info("Initial SEQUENCE NUMBER: %v", SEEDSN)
 }
 
-var    c chan submgr.RmrDatagram = make(chan submgr.RmrDatagram, 1)
+func (r *Rco) GeneratePayload(sub_id uint16) (payload []byte, err error) {
+       skeleton, err := hex.DecodeString(RAWDATA)
+       if err != nil {
+               return make([]byte, 0), errors.New("Unable to decode data provided in RCO_RAWDATA environment variable")
+       }
+       payload, err = r.SetSubscriptionRequestSequenceNumber(skeleton, sub_id)
+       return
+}
 
-func (m Rco) Consume(mtype, sub_id int, len int, payload []byte) (err error) {
+func (r Rco) Consume(mtype, sub_id int, len int, payload []byte) (err error) {
+       payload_seq_num, err := r.GetSubscriptionResponseSequenceNumber(payload)
+       if err != nil {
+               xapp.Logger.Error("Unable to get Subscription Sequence Number from Payload due to: " + err.Error())     
+       }
+       xapp.Logger.Info("Message Received: RMR SUBSCRIPTION_ID: %v | PAYLOAD SEQUENCE_NUMBER: %v", sub_id, payload_seq_num)
        return
 }
 
-func (r *Rco) send(datagram submgr.RmrDatagram) {
-       xapp.Rmr.Send(datagram.MessageType, datagram.SubscriptionId, len(datagram.Payload), datagram.Payload)
+func (r *Rco) SendSubscriptionRequests() (err error) {
+       message, err := r.GeneratePayload(SEEDSN)
+       if err != nil {
+               xapp.Logger.Debug(err.Error())
+               return
+       }
+       for {
+               time.Sleep(2 * time.Second)
+               c <- submgr.RmrDatagram{12010, SEEDSN, message}
+       }
+       return
 }
 
 func (r *Rco) Run() {
        for {
-               message := <- c
-               xapp.Logger.Info("RCO Message - Type=%v SubID=%v", message.MessageType, message.SubscriptionId)
-               r.send(message)
+               message := <-c
+               payload_seq_num, err := r.GetSubscriptionRequestSequenceNumber(message.Payload)
+               if err != nil {
+                       xapp.Logger.Debug("Unable to get Subscription Sequence Number from Payload due to: " + err.Error())     
+               }
+               xapp.Logger.Info("Sending Message: TYPE: %v | RMR SUBSCRIPTION_ID: %v | PAYLOAD SEQUENCE_NUMBER: %v)", message.MessageType, message.SubscriptionId, payload_seq_num)
+               xapp.Rmr.Send(message.MessageType, int(message.SubscriptionId), len(message.Payload), message.Payload)
+       }
+}
+
+func (r *Rco) sendInvalidTestMessages(){
+       for {
+               time.Sleep(7 * time.Second)
+               c <- submgr.RmrDatagram{10000, 0, make([]byte, 1)}
+               time.Sleep(7 * time.Second)
+               c <- submgr.RmrDatagram{12010, 0, make([]byte, 1)}
        }
 }
 
@@ -51,21 +110,9 @@ func main() {
        rco := Rco{}
        go xapp.Rmr.Start(rco)
        go rco.Run()
-       asn1 := submgr.Asn1{}
-       message, err := asn1.Encode(submgr.RmrPayload{8, 1111, "RCO: Subscription Request"})
+       go rco.sendInvalidTestMessages()
+       err := rco.SendSubscriptionRequests()
        if err != nil {
-               xapp.Logger.Debug(err.Error())
                os.Exit(1)
        }
-       doSubscribe := true
-       for {
-               time.Sleep(2 * time.Second)
-               if doSubscribe {
-                       c <- submgr.RmrDatagram{12010, 9999, message}
-                       doSubscribe = false
-               } else {
-                       c <- submgr.RmrDatagram{10000, 9999, make([]byte,0)}
-                       doSubscribe = true
-               }
-       }
-}
\ No newline at end of file
+}
index e91fbdf..0060727 100644 (file)
@@ -16,7 +16,7 @@
 "local":
   "host": ":8080"
 "logger":
-  "level": 4
+  "level": 3
 "rmr":
   "protPort": "tcp:4560"
   "maxSize": 2072